  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.

