my $re1 = qr{ (? x (? \d+ ) (?!\d) ) (?= (? (?<= (?! (? ab \g{digits} (?!\d) ) ) . (?=(?&lookback)) . | (?=(?&match)) . . ) ) ) }msx; my $re1_short = qr / (x(\d+)(?!\d)) (?=((?<=(?!( ab\2(?!\d) )).(?=(?-2)). |(?=(?-1))..)))/sx;