m/^(?! $a ) .*? $end/sx #### m/^(?! .*? $a ) .*? $end/sx #### $_ = '... ... foo'; if (m{^(?! .*? foo ) .*? }sx){ print "Match\n"; } # no match #### m/^ (?: . (?! $a ) )* $end /sx #### $_ = 'foo... ... '; if (m{^(?: . (?! .*? foo ))* }sx){ print "Match\n"; } # match #### m/^ (?: (?! $a ) . )* $end /sx