regcomp.c AOK %.*s matches null string many times $a = "ABC123" ; $a =~ /(?=a)*/' Strange *+?{} on zero-length expression /(?=a)?/ Character class syntax [. .] is reserved for future extensions Character class syntax [= =] is reserved for future extensions __END__ # regcomp.c use warnings 'unsafe' ; my $a = "ABC123" ; $a =~ /(?=a)*/ ; no warnings 'unsafe' ; $a =~ /(?=a)*/ ; EXPECT (?=a)* matches null string many times at - line 4. ######## # regcomp.c use warnings 'unsafe' ; $_ = "" ; /(?=a)?/; no warnings 'unsafe' ; /(?=a)?/; EXPECT Strange *+?{} on zero-length expression at - line 4. ######## # regcomp.c use warnings 'unsafe' ; $_ = "" ; /[:alpha:]/; /[.bar.]/; /[=zog=]/; /[[:alpha:]]/; /[[.foo.]]/; /[[=bar=]]/; /[:zog:]/; no warnings 'unsafe' ; /[:alpha:]/; /[.foo.]/; /[=bar=]/; /[[:alpha:]]/; /[[.foo.]]/; /[[=bar=]]/; /[:zog:]/; /[[:zog:]]/; EXPECT Character class syntax [: :] belongs inside character classes at - line 4. Character class syntax [. .] belongs inside character classes at - line 5. Character class syntax [. .] is reserved for future extensions at - line 5. Character class syntax [= =] belongs inside character classes at - line 6. Character class syntax [= =] is reserved for future extensions at - line 6. Character class syntax [. .] is reserved for future extensions at - line 8. Character class syntax [= =] is reserved for future extensions at - line 9. Character class syntax [: :] belongs inside character classes at - line 10. Character class [:zog:] unknown at - line 19.