/(a)b|/

/abc/
    abc
    defabc
    \Aabc
    *** Failers
    \Adefabc
    ABC

/^abc/
    abc
    \Aabc
    *** Failers
    defabc
    \Adefabc

/a+bc/

/a*bc/

/a{3}bc/

/(abc|a+z)/

/^abc$/
    abc
    *** Failers
    def\nabc

/ab\gdef/X

/(?X)ab\gdef/X

/x{5,4}/

/z{65536}/

/[abcd/

/[\B]/

/[a-\w]/

/[z-a]/

/^*/

/(abc/

/(?# abc/

/(?z)abc/

/.*b/

/.*?b/

/cat|dog|elephant/
    this sentence eventually mentions a cat
    this sentences rambles on and on for a while and then reaches elephant

/cat|dog|elephant/S
    this sentence eventually mentions a cat
    this sentences rambles on and on for a while and then reaches elephant

/cat|dog|elephant/iS
    this sentence eventually mentions a CAT cat
    this sentences rambles on and on for a while to elephant ElePhant

/a|[bcd]/S

/(a|[^\dZ])/S

/(a|b)*[\s]/S

/(ab\2)/

/{4,5}abc/

/(a)(b)(c)\2/
    abcb
    \O0abcb
    \O3abcb
    \O6abcb
    \O9abcb
    \O12abcb 

/(a)bc|(a)(b)\2/
    abc
    \O0abc
    \O3abc
    \O6abc
    aba
    \O0aba
    \O3aba
    \O6aba
    \O9aba
    \O12aba

/abc$/E
    abc
    *** Failers
    abc\n
    abc\ndef

/(a)(b)(c)(d)(e)\6/

/the quick brown fox/
    the quick brown fox
    this is a line with the quick brown fox

/the quick brown fox/A
    the quick brown fox
    *** Failers
    this is a line with the quick brown fox

/ab(?z)cd/

/^abc|def/
    abcdef
    abcdef\B

/.*((abc)$|(def))/
    defabc
    \Zdefabc

/abc/P
    abc
    *** Failers
    
/^abc|def/P
    abcdef
    abcdef\B

/.*((abc)$|(def))/P
    defabc
    \Zdefabc
  
/the quick brown fox/P
    the quick brown fox
    *** Failers 
    The Quick Brown Fox 

/the quick brown fox/Pi
    the quick brown fox
    The Quick Brown Fox 

/abc.def/P
    *** Failers
    abc\ndef
    
/abc$/P
    abc
    abc\n 

/(abc)\2/P

/(abc\1)/P
    abc

/)/

/a[]b/

/[^aeiou ]{3,}/
    co-processors, and for 
    
/<.*>/
    abc<def>ghi<klm>nop

/<.*?>/
    abc<def>ghi<klm>nop

/<.*>/U
    abc<def>ghi<klm>nop
    
/<.*>(?U)/
    abc<def>ghi<klm>nop

/<.*?>/U
    abc<def>ghi<klm>nop
    
/={3,}/U
    abc========def
    
/(?U)={3,}?/
    abc========def
    
/(?<!bar|cattle)foo/
    foo
    catfoo 
    *** Failers
    the barfoo
    and cattlefoo   

/(?<=a+)b/

/(?<=aaa|b{0,3})b/

/(?<!(foo)a\1)bar/

/(?i)abc/

/(a|(?m)a)/

/(?i)^1234/

/(^b|(?i)^d)/

/(?s).*/

/[abcd]/S

/(?i)[abcd]/S

/(?m)[xy]|(b|c)/S

/(^a|^b)/m

/(?i)(^a|^b)/m

/(a)(?(1)a|b|c)/

/(?(?=a)a|b|c)/

/(?(1a)/

/(?(?i))/

/(?(abc))/

/(?(?<ab))/

/((?s)blah)\s+\1/

/((?i)blah)\s+\1/

/((?i)b)/DS

/(a*b|(?i:c*(?-i)d))/S

/a$/
    a
    a\n
    *** Failers 
    \Za
    \Za\n   

/a$/m
    a
    a\n
    \Za\n   
    *** Failers 
    \Za
    
/\Aabc/m

/^abc/m 

/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
  aaaaabbbbbcccccdef

/(?<=foo)[ab]/S

/(?<!foo)(alpha|omega)/S

/(?!alphabet)[ab]/S

/(?<=foo\n)^bar/m

/(?>^abc)/m
    abc
    def\nabc
    *** Failers
    defabc   

/(?<=ab(c+)d)ef/

/(?<=ab(?<=c+)d)ef/

/(?<=ab(c|de)f)g/

/The next three are in testinput2 because they have variable length branches/

/(?<=bullock|donkey)-cart/
    the bullock-cart
    a donkey-cart race
    *** Failers
    cart
    horse-and-cart    
      
/(?<=ab(?i)x|y|z)/

/(?>.*)(?<=(abcd)|(xyz))/
    alphabetabcd
    endingxyz

/(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/
    abxyZZ
    abXyZZ
    ZZZ
    zZZ
    bZZ
    BZZ     
    *** Failers
    ZZ 
    abXYZZ 
    zzz
    bzz  

/(?<!(foo)a)bar/
    bar
    foobbar 
    *** Failers
    fooabar  

/This one is here because Perl 5.005_02 doesn't fail it/

/^(a)?(?(1)a|b)+$/
    *** Failers
    a 

/This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/

/^(a\1?){4}$/
    aaaaaa
    
/These are syntax tests from Perl 5.005/

/a[b-a]/

/a[]b/

/a[/

/*a/

/(*)b/

/abc)/

/(abc/

/a**/

/)(/

/\1/

/\2/

/(a)|\2/

/a[b-a]/i

/a[]b/i

/a[/i

/*a/i

/(*)b/i

/abc)/i

/(abc/i

/a**/i

/)(/i

/:(?:/

/(?<%)b/

/a(?{)b/

/a(?{{})b/

/a(?{}})b/

/a(?{"{"})b/

/a(?{"{"}})b/

/(?(1?)a|b)/

/(?(1)a|b|c)/

/[a[:xyz:/

/(?<=x+)y/

/a{37,17}/

/abc/\

/abc/\P

/abc/\i

/(a)bc(d)/
    abcd
    abcd\C2
    abcd\C5
     
/(.{20})/
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz\C1
    abcdefghijklmnopqrstuvwxyz\G1
     
/(.{15})/
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz\C1\G1

/(.{16})/
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz\C1\G1\L
    
/^(a|(bc))de(f)/
    adef\G1\G2\G3\G4\L 
    bcdef\G1\G2\G3\G4\L 
    adefghijk\C0 
    
/^abc\00def/
    abc\00def\L\C0 
    
/word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ 
)((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ 
)?)?)?)?)?)?)?)?)?otherword/M

/.*X/D

/.*X/Ds

/(.*X|^B)/D

/(.*X|^B)/Ds
    
/(?s)(.*X|^B)/D

/(?s:.*X|^B)/D

/ End of test input /
