regcomp.c AOK Strange *+?{} on zero-length expression [S_study_chunk] /(?=a)?/ %.*s matches null string many times [S_regpiece] $a = "ABC123" ; $a =~ /(?=a)*/' /%.127s/: Unrecognized escape \\%c passed through [S_regatom] $x = '\m' ; /$x/ Character class [:%.*s:] unknown [S_regpposixcc] Character class syntax [%c %c] belongs inside character classes [S_checkposixcc] /%.127s/: false [] range \"%*.*s\" in regexp [S_regclass] /%.127s/: false [] range \"%*.*s\" in regexp [S_regclassutf8] /%.127s/: Unrecognized escape \\%c in character class passed through" [S_regclass] /%.127s/: Unrecognized escape \\%c in character class passed through" [S_regclassutf8] __END__ # regcomp.c [S_regpiece] use warnings 'regexp' ; my $a = "ABC123" ; $a =~ /(?=a)*/ ; no warnings 'regexp' ; $a =~ /(?=a)*/ ; EXPECT (?=a)* matches null string many times before HERE mark in regex m/(?=a)* << HERE / at - line 4. ######## # regcomp.c [S_study_chunk] use warnings 'regexp' ; $_ = "" ; /(?=a)?/; no warnings 'regexp' ; /(?=a)?/; EXPECT Quantifier unexpected on zero-length expression before HERE mark in regex m/(?=a)? << HERE / at - line 4. ######## # regcomp.c [S_regatom] $x = '\m' ; use warnings 'regexp' ; $a =~ /a$x/ ; no warnings 'regexp' ; $a =~ /a$x/ ; EXPECT Unrecognized escape \m passed through before HERE mark in regex m/a\m << HERE / at - line 4. ######## # regcomp.c [S_regpposixcc S_checkposixcc] BEGIN { $ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3 } use warnings 'regexp' ; $_ = "" ; /[:alpha:]/; /[:zog:]/; /[[:zog:]]/; no warnings 'regexp' ; /[:alpha:]/; /[:zog:]/; /[[:zog:]]/; EXPECT POSIX syntax [: :] belongs inside character classes before HERE mark in regex m/[:alpha:] << HERE / at - line 5. POSIX syntax [: :] belongs inside character classes before HERE mark in regex m/[:zog:] << HERE / at - line 6. POSIX class [:zog:] unknown before HERE mark in regex m/[[:zog:] << HERE ]/ ######## # regcomp.c [S_checkposixcc] BEGIN { $ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3 } use warnings 'regexp' ; $_ = "" ; /[.zog.]/; no warnings 'regexp' ; /[.zog.]/; EXPECT POSIX syntax [. .] belongs inside character classes before HERE mark in regex m/[.zog.] << HERE / at - line 5. POSIX syntax [. .] is reserved for future extensions before HERE mark in regex m/[.zog.] << HERE / ######## # regcomp.c [S_checkposixcc] BEGIN { $ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3 } use warnings 'regexp' ; $_ = "" ; /[[.zog.]]/; no warnings 'regexp' ; /[[.zog.]]/; EXPECT POSIX syntax [. .] is reserved for future extensions before HERE mark in regex m/[[.zog.] << HERE ]/ ######## # regcomp.c [S_regclass] $_ = ""; use warnings 'regexp' ; /[a-b]/; /[a-\d]/; /[\d-b]/; /[\s-\d]/; /[\d-\s]/; /[a-[:digit:]]/; /[[:digit:]-b]/; /[[:alpha:]-[:digit:]]/; /[[:digit:]-[:alpha:]]/; no warnings 'regexp' ; /[a-b]/; /[a-\d]/; /[\d-b]/; /[\s-\d]/; /[\d-\s]/; /[a-[:digit:]]/; /[[:digit:]-b]/; /[[:alpha:]-[:digit:]]/; /[[:digit:]-[:alpha:]]/; EXPECT False [] range "a-\d" before HERE mark in regex m/[a-\d << HERE ]/ at - line 5. False [] range "\d-" before HERE mark in regex m/[\d- << HERE b]/ at - line 6. False [] range "\s-" before HERE mark in regex m/[\s- << HERE \d]/ at - line 7. False [] range "\d-" before HERE mark in regex m/[\d- << HERE \s]/ at - line 8. False [] range "a-[:digit:]" before HERE mark in regex m/[a-[:digit:] << HERE ]/ at - line 9. False [] range "[:digit:]-" before HERE mark in regex m/[[:digit:]- << HERE b]/ at - line 10. False [] range "[:alpha:]-" before HERE mark in regex m/[[:alpha:]- << HERE [:digit:]]/ at - line 11. False [] range "[:digit:]-" before HERE mark in regex m/[[:digit:]- << HERE [:alpha:]]/ at - line 12. ######## # regcomp.c [S_regclassutf8] BEGIN { if (ord("\t") == 5) { print "SKIPPED\n# ebcdic regular expression ranges differ."; exit 0; } } use utf8; $_ = ""; use warnings 'regexp' ; /[a-b]/; /[a-\d]/; /[\d-b]/; /[\s-\d]/; /[\d-\s]/; /[a-[:digit:]]/; /[[:digit:]-b]/; /[[:alpha:]-[:digit:]]/; /[[:digit:]-[:alpha:]]/; no warnings 'regexp' ; /[a-b]/; /[a-\d]/; /[\d-b]/; /[\s-\d]/; /[\d-\s]/; /[a-[:digit:]]/; /[[:digit:]-b]/; /[[:alpha:]-[:digit:]]/; /[[:digit:]-[:alpha:]]/; EXPECT False [] range "a-\d" before HERE mark in regex m/[a-\d << HERE ]/ at - line 12. False [] range "\d-" before HERE mark in regex m/[\d- << HERE b]/ at - line 13. False [] range "\s-" before HERE mark in regex m/[\s- << HERE \d]/ at - line 14. False [] range "\d-" before HERE mark in regex m/[\d- << HERE \s]/ at - line 15. False [] range "a-[:digit:]" before HERE mark in regex m/[a-[:digit:] << HERE ]/ at - line 16. False [] range "[:digit:]-" before HERE mark in regex m/[[:digit:]- << HERE b]/ at - line 17. False [] range "[:alpha:]-" before HERE mark in regex m/[[:alpha:]- << HERE [:digit:]]/ at - line 18. False [] range "[:digit:]-" before HERE mark in regex m/[[:digit:]- << HERE [:alpha:]]/ at - line 19. ######## # regcomp.c [S_regclass S_regclassutf8] use warnings 'regexp' ; $a =~ /[a\zb]/ ; no warnings 'regexp' ; $a =~ /[a\zb]/ ; EXPECT Unrecognized escape \z in character class passed through before HERE mark in regex m/[a\z << HERE b]/ at - line 3.