my $does_not_match = qr{((?:.*?(?=$match))|(?:(?:.(?!$match))*))};
####
#!/usr/bin/perl
use Test2::V0;
sub do_not_match {
my $pat = shift;
return qr{(?:.*?(?=$pat))|(?:(?:.(?!$pat))*)};
}
my $re = do_not_match(qr{\b[aeiou][a-z]*ion\b});
is [/($re)/], ['stimulated '], 'matches prefix'
for 'stimulated emission of radiation';
is [/($re)/], ['electron transition'],'no match'
for 'electron transition';
is [/($re)/], [''], 'matches empty prefix'
for 'absorbtion of photons';
is [/($re)/], ['light '], 'matches not greedy'
for 'light amplification by stimulated emission of radiation';
is [/($re)\bimpact/], ['electron '], 'gives characters back'
for 'electron impact ionization';
done_testing;
##
##
use Regexp::Common 'do_not_match';
my $re = $RE{do_not}{-match => 'something'}