my @string = ('0110','1','11','01110','001','100','1111','01001110'); #### 01110 111 #### foreach my $string (@string){ if(($string =~ m/1(?=[^1])/g)||($string =~ m/^0+$/g)){ print "not a match\n"; } else{print $string, "\n";} }