# Match any /\d./ that is *not* preceded by an /a/ my $re5 = qr{ (?! (? (?<= a | (?=(?&lookback)) . ) ) ) (? \d . ) }msx; my $re5_short = qr /(?!((?<= a |(?=(?-1)).))) (\d.) /sx; for my $regex ($re5,$re5_short) { unlike "fo", $regex; unlike "x5", $regex; unlike "ab5 x4", $regex; like "5ab", $regex; like "x5 ab5", $regex; like "x5 ab5 x2", $regex; my @results; while ("x2 4x3a55aaa1" =~ /$regex/g) { push @results, $+{target} // $2 } is_deeply \@results, ["2 ","4x","3a"]; } #### my $re5 = qr{ (? (? \d . ) }msx; my $re5_short = qr /((?