maybe some stuff foo maybe some more stuff; #### // maybe some stuff foo maybe some more stuff; #### $a="abcdefghijklm"; 1 print "match" if ( $a =~ /(?## $a = "mlkjihgfedcba"; print "match" if ( $a =~ /lkj(?!.*?edc/ ); # no match because edc DOES follow lkj. This is what is desired. (It does not match in the unreversed when cde precedes jkl) $a = "mlkjihgfzyx"; print "match" if ( $a =~ /lkj(?!.*?edc/ ); # match because edc does not follow lkj. Again, this is what I want. ( It does match jkl in the unreversed when not preceded by cde)