>perl -wMstrict -le "my $s = 'abcxyzdef'; my $exclude = qr{ xyz }xms; my $all_not_xyz = qr{ (?! $exclude) . }xms; my @matches = $s =~ m{ ($all_not_xyz+) }xmsg; print qq{@matches}; " abc yzdef #### >perl -wMstrict -le "my $s = 'abcxyzdef'; my $exclude = qr{ xyz }xms; my @matches = split m{ $exclude }xms, $s; print qq{@matches}; " abc def #### >perl -wMstrict -le "my $s = 'abcFOOdefBARghi'; my $exclude = qr{ FOO | BAR }xms; my $all_but = qr{ (?! $exclude) . }xms; my @matches = $s =~ m{ ($all_but+) }xmsg; print qq{@matches}; @matches = split m{ $exclude }xms, $s; print qq{@matches}; " abc OOdef ARghi abc def ghi