#!/usr/bin/perl -w #orig: reg(ular\s+)?exp?(ression)?!*? #mod: ^reg(ular_+)?exp?(ression)?!{0,3}? no warnings 'regexp'; # zero-length + quantifier 'aa' =~ /^ (?{'reg'}) ( (?{ $^R.'ular'}) (?: (?{ $^R."_" }) a )+ )? (?{ $^R.'ex'}) (?{ $^R.'p'})? ((?{ $^R.'ression'}))? (?: (?{ $^R."!" }) a ){0,3}? (?{print "$^R\n"; }) (?=a)(?!a) # fail /x; __END__