libraries/spcre/libpcre/pcre/testdata/testinput2
changeset 0 7f656887cf89
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libraries/spcre/libpcre/pcre/testdata/testinput2	Wed Jun 23 15:52:26 2010 +0100
@@ -0,0 +1,2729 @@
+/(a)b|/I
+
+/abc/I
+    abc
+    defabc
+    \Aabc
+    *** Failers
+    \Adefabc
+    ABC
+
+/^abc/I
+    abc
+    \Aabc
+    *** Failers
+    defabc
+    \Adefabc
+
+/a+bc/I
+
+/a*bc/I
+
+/a{3}bc/I
+
+/(abc|a+z)/I
+
+/^abc$/I
+    abc
+    *** Failers
+    def\nabc
+
+/ab\idef/X
+
+/(?X)ab\idef/X
+
+/x{5,4}/
+
+/z{65536}/
+
+/[abcd/
+
+/(?X)[\B]/
+
+/[z-a]/
+
+/^*/
+
+/(abc/
+
+/(?# abc/
+
+/(?z)abc/
+
+/.*b/I
+
+/.*?b/I
+
+/cat|dog|elephant/I
+    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
+    this sentences rambles on and on for a while and then reaches elephant
+
+/cat|dog|elephant/IiS
+    this sentence eventually mentions a CAT cat
+    this sentences rambles on and on for a while to elephant ElePhant
+
+/a|[bcd]/IS
+
+/(a|[^\dZ])/IS
+
+/(a|b)*[\s]/IS
+
+/(ab\2)/
+
+/{4,5}abc/
+
+/(a)(b)(c)\2/I
+    abcb
+    \O0abcb
+    \O3abcb
+    \O6abcb
+    \O9abcb
+    \O12abcb
+
+/(a)bc|(a)(b)\2/I
+    abc
+    \O0abc
+    \O3abc
+    \O6abc
+    aba
+    \O0aba
+    \O3aba
+    \O6aba
+    \O9aba
+    \O12aba
+
+/abc$/IE
+    abc
+    *** Failers
+    abc\n
+    abc\ndef
+
+/(a)(b)(c)(d)(e)\6/
+
+/the quick brown fox/I
+    the quick brown fox
+    this is a line with the quick brown fox
+
+/the quick brown fox/IA
+    the quick brown fox
+    *** Failers
+    this is a line with the quick brown fox
+
+/ab(?z)cd/
+
+/^abc|def/I
+    abcdef
+    abcdef\B
+
+/.*((abc)$|(def))/I
+    defabc
+    \Zdefabc
+
+/abc/IP
+    abc
+    *** Failers
+
+/^abc|def/IP
+    abcdef
+    abcdef\B
+
+/.*((abc)$|(def))/IP
+    defabc
+    \Zdefabc
+
+/the quick brown fox/IP
+    the quick brown fox
+    *** Failers
+    The Quick Brown Fox
+
+/the quick brown fox/IPi
+    the quick brown fox
+    The Quick Brown Fox
+
+/abc.def/IP
+    *** Failers
+    abc\ndef
+
+/abc$/IP
+    abc
+    abc\n
+
+/(abc)\2/IP
+
+/(abc\1)/IP
+    abc
+
+/)/
+
+/a[]b/
+
+/[^aeiou ]{3,}/I
+    co-processors, and for
+
+/<.*>/I
+    abc<def>ghi<klm>nop
+
+/<.*?>/I
+    abc<def>ghi<klm>nop
+
+/<.*>/IU
+    abc<def>ghi<klm>nop
+
+/(?U)<.*>/I
+    abc<def>ghi<klm>nop
+
+/<.*?>/IU
+    abc<def>ghi<klm>nop
+
+/={3,}/IU
+    abc========def
+
+/(?U)={3,}?/I
+    abc========def
+
+/(?<!bar|cattle)foo/I
+    foo
+    catfoo
+    *** Failers
+    the barfoo
+    and cattlefoo
+
+/(?<=a+)b/
+
+/(?<=aaa|b{0,3})b/
+
+/(?<!(foo)a\1)bar/
+
+/(?i)abc/I
+
+/(a|(?m)a)/I
+
+/(?i)^1234/I
+
+/(^b|(?i)^d)/I
+
+/(?s).*/I
+
+/[abcd]/IS
+
+/(?i)[abcd]/IS
+
+/(?m)[xy]|(b|c)/IS
+
+/(^a|^b)/Im
+
+/(?i)(^a|^b)/Im
+
+/(a)(?(1)a|b|c)/
+
+/(?(?=a)a|b|c)/
+
+/(?(1a)/
+
+/(?(1a))/
+
+/(?(?i))/
+
+/(?(abc))/
+
+/(?(?<ab))/
+
+/((?s)blah)\s+\1/I
+
+/((?i)blah)\s+\1/I
+
+/((?i)b)/IDZS
+
+/(a*b|(?i:c*(?-i)d))/IS
+
+/a$/I
+    a
+    a\n
+    *** Failers
+    \Za
+    \Za\n
+
+/a$/Im
+    a
+    a\n
+    \Za\n
+    *** Failers
+    \Za
+
+/\Aabc/Im
+
+/^abc/Im
+
+/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
+  aaaaabbbbbcccccdef
+
+/(?<=foo)[ab]/IS
+
+/(?<!foo)(alpha|omega)/IS
+
+/(?!alphabet)[ab]/IS
+
+/(?<=foo\n)^bar/Im
+    foo\nbarbar
+    ***Failers
+    rhubarb
+    barbell
+    abc\nbarton
+
+/^(?<=foo\n)bar/Im
+    foo\nbarbar
+    ***Failers
+    rhubarb
+    barbell
+    abc\nbarton
+
+/(?>^abc)/Im
+    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/I
+    the bullock-cart
+    a donkey-cart race
+    *** Failers
+    cart
+    horse-and-cart
+
+/(?<=ab(?i)x|y|z)/I
+
+/(?>.*)(?<=(abcd)|(xyz))/I
+    alphabetabcd
+    endingxyz
+
+/(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
+    abxyZZ
+    abXyZZ
+    ZZZ
+    zZZ
+    bZZ
+    BZZ
+    *** Failers
+    ZZ
+    abXYZZ
+    zzz
+    bzz
+
+/(?<!(foo)a)bar/I
+    bar
+    foobbar
+    *** Failers
+    fooabar
+
+/This one is here because Perl 5.005_02 doesn't fail it/I
+
+/^(a)?(?(1)a|b)+$/I
+    *** Failers
+    a
+
+/This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I
+
+/^(a\1?){4}$/I
+    aaaaaa
+
+/These are syntax tests from Perl 5.005/I
+
+/a[b-a]/
+
+/a[]b/
+
+/a[/
+
+/*a/
+
+/(*)b/
+
+/abc)/
+
+/(abc/
+
+/a**/
+
+/)(/
+
+/\1/
+
+/\2/
+
+/(a)|\2/
+
+/a[b-a]/Ii
+
+/a[]b/Ii
+
+/a[/Ii
+
+/*a/Ii
+
+/(*)b/Ii
+
+/abc)/Ii
+
+/(abc/Ii
+
+/a**/Ii
+
+/)(/Ii
+
+/:(?:/
+
+/(?<%)b/
+
+/a(?{)b/
+
+/a(?{{})b/
+
+/a(?{}})b/
+
+/a(?{"{"})b/
+
+/a(?{"{"}})b/
+
+/(?(1?)a|b)/
+
+/[a[:xyz:/
+
+/(?<=x+)y/
+
+/a{37,17}/
+
+/abc/\
+
+/abc/\P
+
+/abc/\i
+
+/(a)bc(d)/I
+    abcd
+    abcd\C2
+    abcd\C5
+
+/(.{20})/I
+    abcdefghijklmnopqrstuvwxyz
+    abcdefghijklmnopqrstuvwxyz\C1
+    abcdefghijklmnopqrstuvwxyz\G1
+
+/(.{15})/I
+    abcdefghijklmnopqrstuvwxyz
+    abcdefghijklmnopqrstuvwxyz\C1\G1
+
+/(.{16})/I
+    abcdefghijklmnopqrstuvwxyz
+    abcdefghijklmnopqrstuvwxyz\C1\G1\L
+
+/^(a|(bc))de(f)/I
+    adef\G1\G2\G3\G4\L
+    bcdef\G1\G2\G3\G4\L
+    adefghijk\C0
+
+/^abc\00def/I
+    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/I
+
+/.*X/IDZ
+
+/.*X/IDZs
+
+/(.*X|^B)/IDZ
+
+/(.*X|^B)/IDZs
+
+/(?s)(.*X|^B)/IDZ
+
+/(?s:.*X|^B)/IDZ
+
+/\Biss\B/I+
+    Mississippi
+
+/\Biss\B/I+P
+    Mississippi
+
+/iss/IG+
+    Mississippi
+
+/\Biss\B/IG+
+    Mississippi
+
+/\Biss\B/Ig+
+    Mississippi
+    *** Failers
+    Mississippi\A
+
+/(?<=[Ms])iss/Ig+
+    Mississippi
+
+/(?<=[Ms])iss/IG+
+    Mississippi
+
+/^iss/Ig+
+    ississippi
+
+/.*iss/Ig+
+    abciss\nxyzisspqr
+
+/.i./I+g
+    Mississippi
+    Mississippi\A
+    Missouri river
+    Missouri river\A
+
+/^.is/I+g
+    Mississippi
+
+/^ab\n/Ig+
+    ab\nab\ncd
+
+/^ab\n/Img+
+    ab\nab\ncd
+
+/abc/I
+
+/abc|bac/I
+
+/(abc|bac)/I
+
+/(abc|(c|dc))/I
+
+/(abc|(d|de)c)/I
+
+/a*/I
+
+/a+/I
+
+/(baa|a+)/I
+
+/a{0,3}/I
+
+/baa{3,}/I
+
+/"([^\\"]+|\\.)*"/I
+
+/(abc|ab[cd])/I
+
+/(a|.)/I
+
+/a|ba|\w/I
+
+/abc(?=pqr)/I
+
+/...(?<=abc)/I
+
+/abc(?!pqr)/I
+
+/ab./I
+
+/ab[xyz]/I
+
+/abc*/I
+
+/ab.c*/I
+
+/a.c*/I
+
+/.c*/I
+
+/ac*/I
+
+/(a.c*|b.c*)/I
+
+/a.c*|aba/I
+
+/.+a/I
+
+/(?=abcda)a.*/I
+
+/(?=a)a.*/I
+
+/a(b)*/I
+
+/a\d*/I
+
+/ab\d*/I
+
+/a(\d)*/I
+
+/abcde{0,0}/I
+
+/ab\d+/I
+
+/a(?(1)b)(.)/I
+
+/a(?(1)bag|big)(.)/I
+
+/a(?(1)bag|big)*(.)/I
+
+/a(?(1)bag|big)+(.)/I
+
+/a(?(1)b..|b..)(.)/I
+
+/ab\d{0}e/I
+
+/a?b?/I
+    a
+    b
+    ab
+    \
+    *** Failers
+    \N
+
+/|-/I
+    abcd
+    -abc
+    \Nab-c
+    *** Failers
+    \Nabc
+
+/a*(b+)(z)(z)/IP
+    aaaabbbbzzzz
+    aaaabbbbzzzz\O0
+    aaaabbbbzzzz\O1
+    aaaabbbbzzzz\O2
+    aaaabbbbzzzz\O3
+    aaaabbbbzzzz\O4
+    aaaabbbbzzzz\O5
+
+/^.?abcd/IS
+
+/\(             # ( at start
+  (?:           # Non-capturing bracket
+  (?>[^()]+)    # Either a sequence of non-brackets (no backtracking)
+  |             # Or
+  (?R)          # Recurse - i.e. nested bracketed string
+  )*            # Zero or more contents
+  \)            # Closing )
+  /Ix
+    (abcd)
+    (abcd)xyz
+    xyz(abcd)
+    (ab(xy)cd)pqr
+    (ab(xycd)pqr
+    () abc ()
+    12(abcde(fsh)xyz(foo(bar))lmno)89
+    *** Failers
+    abcd
+    abcd)
+    (abcd
+
+/\(  ( (?>[^()]+) | (?R) )* \) /Ixg
+    (ab(xy)cd)pqr
+    1(abcd)(x(y)z)pqr
+
+/\(  (?: (?>[^()]+) | (?R) ) \) /Ix
+    (abcd)
+    (ab(xy)cd)
+    (a(b(c)d)e)
+    ((ab))
+    *** Failers
+    ()
+
+/\(  (?: (?>[^()]+) | (?R) )? \) /Ix
+    ()
+    12(abcde(fsh)xyz(foo(bar))lmno)89
+
+/\(  ( (?>[^()]+) | (?R) )* \) /Ix
+    (ab(xy)cd)
+
+/\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
+    (ab(xy)cd)
+
+/\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
+    (ab(xy)cd)
+    (123ab(xy)cd)
+
+/\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
+    (ab(xy)cd)
+    (123ab(xy)cd)
+
+/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
+    (ab(xy)cd)
+
+/\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
+    (abcd(xyz<p>qrs)123)
+
+/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
+    (ab(cd)ef)
+    (ab(cd(ef)gh)ij)
+
+/^[[:alnum:]]/DZ
+
+/^[[:^alnum:]]/DZ
+
+/^[[:alpha:]]/DZ
+
+/^[[:^alpha:]]/DZ
+
+/[_[:alpha:]]/IS
+
+/^[[:ascii:]]/DZ
+
+/^[[:^ascii:]]/DZ
+
+/^[[:blank:]]/DZ
+
+/^[[:^blank:]]/DZ
+
+/[\n\x0b\x0c\x0d[:blank:]]/IS
+
+/^[[:cntrl:]]/DZ
+
+/^[[:digit:]]/DZ
+
+/^[[:graph:]]/DZ
+
+/^[[:lower:]]/DZ
+
+/^[[:print:]]/DZ
+
+/^[[:punct:]]/DZ
+
+/^[[:space:]]/DZ
+
+/^[[:upper:]]/DZ
+
+/^[[:xdigit:]]/DZ
+
+/^[[:word:]]/DZ
+
+/^[[:^cntrl:]]/DZ
+
+/^[12[:^digit:]]/DZ
+
+/^[[:^blank:]]/DZ
+
+/[01[:alpha:]%]/DZ
+
+/[[.ch.]]/I
+
+/[[=ch=]]/I
+
+/[[:rhubarb:]]/I
+
+/[[:upper:]]/Ii
+    A
+    a
+
+/[[:lower:]]/Ii
+    A
+    a
+
+/((?-i)[[:lower:]])[[:lower:]]/Ii
+    ab
+    aB
+    *** Failers
+    Ab
+    AB
+
+/[\200-\110]/I
+
+/^(?(0)f|b)oo/I
+
+/This one's here because of the large output vector needed/I
+
+/(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I
+    \O900 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC
+
+/This one's here because Perl does this differently and PCRE can't at present/I
+
+/(main(O)?)+/I
+    mainmain
+    mainOmain
+
+/These are all cases where Perl does it differently (nested captures)/I
+
+/^(a(b)?)+$/I
+    aba
+
+/^(aa(bb)?)+$/I
+    aabbaa
+
+/^(aa|aa(bb))+$/I
+    aabbaa
+
+/^(aa(bb)??)+$/I
+    aabbaa
+
+/^(?:aa(bb)?)+$/I
+    aabbaa
+
+/^(aa(b(b))?)+$/I
+    aabbaa
+
+/^(?:aa(b(b))?)+$/I
+    aabbaa
+
+/^(?:aa(b(?:b))?)+$/I
+    aabbaa
+
+/^(?:aa(bb(?:b))?)+$/I
+    aabbbaa
+
+/^(?:aa(b(?:bb))?)+$/I
+    aabbbaa
+
+/^(?:aa(?:b(b))?)+$/I
+    aabbaa
+
+/^(?:aa(?:b(bb))?)+$/I
+    aabbbaa
+
+/^(aa(b(bb))?)+$/I
+    aabbbaa
+
+/^(aa(bb(bb))?)+$/I
+    aabbbbaa
+
+/--------------------------------------------------------------------/I
+
+/#/IxDZ
+
+/a#/IxDZ
+
+/[\s]/DZ
+
+/[\S]/DZ
+
+/a(?i)b/DZ
+    ab
+    aB
+    *** Failers
+    AB
+
+/(a(?i)b)/DZ
+    ab
+    aB
+    *** Failers
+    AB
+
+/   (?i)abc/IxDZ
+
+/#this is a comment
+  (?i)abc/IxDZ
+
+/123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
+
+/\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
+
+/\Q\E/DZ
+    \
+
+/\Q\Ex/DZ
+
+/ \Q\E/DZ
+
+/a\Q\E/DZ
+  abc
+  bca
+  bac
+
+/a\Q\Eb/DZ
+  abc
+
+/\Q\Eabc/DZ
+
+/x*+\w/DZ
+    *** Failers
+    xxxxx
+
+/x?+/DZ
+
+/x++/DZ
+
+/x{1,3}+/DZ
+
+/(x)*+/DZ
+
+/^(\w++|\s++)*$/I
+    now is the time for all good men to come to the aid of the party
+    *** Failers
+    this is not a line with only words and spaces!
+
+/(\d++)(\w)/I
+    12345a
+    *** Failers
+    12345+
+
+/a++b/I
+    aaab
+
+/(a++b)/I
+    aaab
+
+/(a++)b/I
+    aaab
+
+/([^()]++|\([^()]*\))+/I
+    ((abc(ade)ufh()()x
+
+/\(([^()]++|\([^()]+\))+\)/I
+    (abc)
+    (abc(def)xyz)
+    *** Failers
+    ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+
+/(abc){1,3}+/DZ
+
+/a+?+/I
+
+/a{2,3}?+b/I
+
+/(?U)a+?+/I
+
+/a{2,3}?+b/IU
+
+/x(?U)a++b/DZ
+    xaaaab
+
+/(?U)xa++b/DZ
+    xaaaab
+
+/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
+
+/^x(?U)a+b/DZ
+
+/^x(?U)(a+)b/DZ
+
+/[.x.]/I
+
+/[=x=]/I
+
+/[:x:]/I
+
+/\l/I
+
+/\L/I
+
+/\N{name}/I
+
+/\u/I
+
+/\U/I
+
+/[/I
+
+/[a-/I
+
+/[[:space:]/I
+
+/[\s]/IDZ
+
+/[[:space:]]/IDZ
+
+/[[:space:]abcde]/IDZ
+
+/< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
+    <>
+    <abcd>
+    <abc <123> hij>
+    <abc <def> hij>
+    <abc<>def>
+    <abc<>
+    *** Failers
+    <abc
+
+|8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
+
+|\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
+
+/(.*)\d+\1/I
+
+/(.*)\d+/I
+
+/(.*)\d+\1/Is
+
+/(.*)\d+/Is
+
+/(.*(xyz))\d+\2/I
+
+/((.*))\d+\1/I
+    abc123bc
+
+/a[b]/I
+
+/(?=a).*/I
+
+/(?=abc).xyz/IiI
+
+/(?=abc)(?i).xyz/I
+
+/(?=a)(?=b)/I
+
+/(?=.)a/I
+
+/((?=abcda)a)/I
+
+/((?=abcda)ab)/I
+
+/()a/I
+
+/(?(1)ab|ac)(.)/I
+
+/(?(1)abz|acz)(.)/I
+
+/(?(1)abz)(.)/I
+
+/(?(1)abz)(1)23/I
+
+/(a)+/I
+
+/(a){2,3}/I
+
+/(a)*/I
+
+/[a]/I
+
+/[ab]/I
+
+/[ab]/IS
+
+/[^a]/I
+
+/\d456/I
+
+/\d456/IS
+
+/a^b/I
+
+/^a/Im
+  abcde
+  xy\nabc
+  *** Failers
+  xyabc
+
+/c|abc/I
+
+/(?i)[ab]/IS
+
+/[ab](?i)cd/IS
+
+/abc(?C)def/I
+    abcdef
+    1234abcdef
+    *** Failers
+    abcxyz
+    abcxyzf
+
+/abc(?C)de(?C1)f/I
+    123abcdef
+
+/(?C1)\dabc(?C2)def/I
+    1234abcdef
+    *** Failers
+    abcdef
+
+/(?C255)ab/I
+
+/(?C256)ab/I
+
+/(?Cab)xx/I
+
+/(?C12vr)x/I
+
+/abc(?C)def/I
+    *** Failers
+    \x83\x0\x61bcdef
+
+/(abc)(?C)de(?C1)f/I
+    123abcdef
+    123abcdef\C+
+    123abcdef\C-
+    *** Failers
+    123abcdef\C!1
+
+/(?C0)(abc(?C1))*/I
+    abcabcabc
+    abcabc\C!1!3
+    *** Failers
+    abcabcabc\C!1!3
+
+/(\d{3}(?C))*/I
+    123\C+
+    123456\C+
+    123456789\C+
+
+/((xyz)(?C)p|(?C1)xyzabc)/I
+    xyzabc\C+
+
+/(X)((xyz)(?C)p|(?C1)xyzabc)/I
+    Xxyzabc\C+
+
+/(?=(abc))(?C)abcdef/I
+    abcdef\C+
+
+/(?!(abc)(?C1)d)(?C2)abcxyz/I
+    abcxyz\C+
+
+/(?<=(abc)(?C))xyz/I
+   abcxyz\C+
+
+/a(b+)(c*)(?C1)/I
+    abbbbbccc\C*1
+
+/a(b+?)(c*?)(?C1)/I
+    abbbbbccc\C*1
+
+/(?C)abc/I
+
+/(?C)^abc/I
+
+/(?C)a|b/IS
+
+/(?R)/I
+
+/(a|(?R))/I
+
+/(ab|(bc|(de|(?R))))/I
+
+/x(ab|(bc|(de|(?R))))/I
+    xab
+    xbc
+    xde
+    xxab
+    xxxab
+    *** Failers
+    xyab
+
+/(ab|(bc|(de|(?1))))/I
+
+/x(ab|(bc|(de|(?1)x)x)x)/I
+
+/^([^()]|\((?1)*\))*$/I
+    abc
+    a(b)c
+    a(b(c))d
+    *** Failers)
+    a(b(c)d
+
+/^>abc>([^()]|\((?1)*\))*<xyz<$/I
+   >abc>123<xyz<
+   >abc>1(2)3<xyz<
+   >abc>(1(2)3)<xyz<
+
+/(a(?1)b)/DZ
+
+/(a(?1)+b)/DZ
+
+/^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii
+    1221
+    Satan, oscillate my metallic sonatas!
+    A man, a plan, a canal: Panama!
+    Able was I ere I saw Elba.
+    *** Failers
+    The quick brown fox
+
+/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
+    12
+    (((2+2)*-3)-7)
+    -12
+    *** Failers
+    ((2+2)*-3)-7)
+
+/^(x(y|(?1){2})z)/I
+    xyz
+    xxyzxyzz
+    *** Failers
+    xxyzz
+    xxyzxyzxyzz
+
+/((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
+    <>
+    <abcd>
+    <abc <123> hij>
+    <abc <def> hij>
+    <abc<>def>
+    <abc<>
+    *** Failers
+    <abc
+
+/(?1)/I
+
+/((?2)(abc)/I
+
+/^(abc)def(?1)/I
+    abcdefabc
+
+/^(a|b|c)=(?1)+/I
+    a=a
+    a=b
+    a=bc
+
+/^(a|b|c)=((?1))+/I
+    a=a
+    a=b
+    a=bc
+
+/a(?P<name1>b|c)d(?P<longername2>e)/DZ
+    abde
+    acde
+
+/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
+
+/(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
+
+/^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii
+    1221
+    Satan, oscillate my metallic sonatas!
+    A man, a plan, a canal: Panama!
+    Able was I ere I saw Elba.
+    *** Failers
+    The quick brown fox
+
+/((?(R)a|b))\1(?1)?/I
+  bb
+  bbaa
+
+/(.*)a/Is
+
+/(.*)a\1/Is
+
+/(.*)a(b)\2/Is
+
+/((.*)a|(.*)b)z/Is
+
+/((.*)a|(.*)b)z\1/Is
+
+/((.*)a|(.*)b)z\2/Is
+
+/((.*)a|(.*)b)z\3/Is
+
+/((.*)a|^(.*)b)z\3/Is
+
+/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
+
+/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
+
+/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
+
+/(a)(bc)/INDZ
+  abc
+
+/(?P<one>a)(bc)/INDZ
+  abc
+
+/(a)(?P<named>bc)/INDZ
+
+/(a+)*zz/I
+  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
+  aaaaaaaaaaaaaz\M
+
+/(aaa(?C1)bbb|ab)/I
+   aaabbb
+   aaabbb\C*0
+   aaabbb\C*1
+   aaabbb\C*-1
+
+/ab(?P<one>cd)ef(?P<two>gh)/I
+    abcdefgh
+    abcdefgh\C1\Gtwo
+    abcdefgh\Cone\Ctwo
+    abcdefgh\Cthree
+
+/(?P<Tes>)(?P<Test>)/DZ
+
+/(?P<Test>)(?P<Tes>)/DZ
+
+/(?P<Z>zz)(?P<A>aa)/I
+    zzaa\CZ
+    zzaa\CA
+
+/(?P<x>eks)(?P<x>eccs)/I
+
+/(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
+
+"\[((?P<elem>\d+)(,(?P>elem))*)\]"I
+    [10,20,30,5,5,4,4,2,43,23,4234]
+    *** Failers
+    []
+
+"\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
+    [10,20,30,5,5,4,4,2,43,23,4234]
+    []
+
+/(a(b(?2)c))?/DZ
+
+/(a(b(?2)c))*/DZ
+
+/(a(b(?2)c)){0,2}/DZ
+
+/[ab]{1}+/DZ
+
+/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
+     Baby Bjorn Active Carrier - With free SHIPPING!!
+
+/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
+     Baby Bjorn Active Carrier - With free SHIPPING!!
+
+/a*.*b/ISDZ
+
+/(a|b)*.?c/ISDZ
+
+/abc(?C255)de(?C)f/DZ
+
+/abcde/ICDZ
+  abcde
+  abcdfe
+
+/a*b/ICDZ
+  ab
+  aaaab
+  aaaacb
+
+/a+b/ICDZ
+  ab
+  aaaab
+  aaaacb
+
+/(abc|def)x/ICDZ
+  abcx
+  defx
+  abcdefzx
+
+/(ab|cd){3,4}/IC
+  ababab
+  abcdabcd
+  abcdcdcdcdcd
+
+/([ab]{,4}c|xy)/ICDZ
+    Note: that { does NOT introduce a quantifier
+
+/([ab]{1,4}c|xy){4,5}?123/ICDZ
+    aacaacaacaacaac123
+
+/\b.*/I
+  ab cd\>1
+
+/\b.*/Is
+  ab cd\>1
+
+/(?!.bcd).*/I
+  Xbcd12345
+
+/abcde/I
+    ab\P
+    abc\P
+    abcd\P
+    abcde\P
+    the quick brown abc\P
+    ** Failers\P
+    the quick brown abxyz fox\P
+
+"^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
+    13/05/04\P
+    13/5/2004\P
+    02/05/09\P
+    1\P
+    1/2\P
+    1/2/0\P
+    1/2/04\P
+    0\P
+    02/\P
+    02/0\P
+    02/1\P
+    ** Failers\P
+    \P
+    123\P
+    33/4/04\P
+    3/13/04\P
+    0/1/2003\P
+    0/\P
+    02/0/\P
+    02/13\P
+
+/0{0,2}ABC/I
+
+/\d{3,}ABC/I
+
+/\d*ABC/I
+
+/[abc]+DE/I
+
+/[abc]?123/I
+    123\P
+    a\P
+    b\P
+    c\P
+    c12\P
+    c123\P
+
+/^(?:\d){3,5}X/I
+    1\P
+    123\P
+    123X
+    1234\P
+    1234X
+    12345\P
+    12345X
+    *** Failers
+    1X
+    123456\P
+
+/abc/I>testsavedregex
+<testsavedregex
+    abc
+    ** Failers
+    bca
+
+/abc/IF>testsavedregex
+<testsavedregex
+    abc
+    ** Failers
+    bca
+
+/(a|b)/IS>testsavedregex
+<testsavedregex
+    abc
+    ** Failers
+    def
+
+/(a|b)/ISF>testsavedregex
+<testsavedregex
+    abc
+    ** Failers
+    def
+
+~<(\w+)/?>(.)*</(\1)>~smgI
+    <!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>
+
+/^a/IF
+
+/line\nbreak/I
+    this is a line\nbreak
+    line one\nthis is a line\nbreak in the second line
+
+/line\nbreak/If
+    this is a line\nbreak
+    ** Failers
+    line one\nthis is a line\nbreak in the second line
+
+/line\nbreak/Imf
+    this is a line\nbreak
+    ** Failers
+    line one\nthis is a line\nbreak in the second line
+
+/ab.cd/IP
+    ab-cd
+    ab=cd
+    ** Failers
+    ab\ncd
+
+/ab.cd/IPs
+    ab-cd
+    ab=cd
+    ab\ncd
+
+/(?i)(?-i)AbCd/I
+    AbCd
+    ** Failers
+    abcd
+
+/a{11111111111111111111}/I
+
+/(){64294967295}/I
+
+/(){2,4294967295}/I
+
+"(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B"I
+    abcdefghijklAkB
+
+"(?P<n0>a)(?P<n1>b)(?P<n2>c)(?P<n3>d)(?P<n4>e)(?P<n5>f)(?P<n6>g)(?P<n7>h)(?P<n8>i)(?P<n9>j)(?P<n10>k)(?P<n11>l)A\11B"I
+    abcdefghijklAkB
+
+"(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
+    abcdefghijklAkB
+
+"(?P<name0>a)(?P<name1>a)(?P<name2>a)(?P<name3>a)(?P<name4>a)(?P<name5>a)(?P<name6>a)(?P<name7>a)(?P<name8>a)(?P<name9>a)(?P<name10>a)(?P<name11>a)(?P<name12>a)(?P<name13>a)(?P<name14>a)(?P<name15>a)(?P<name16>a)(?P<name17>a)(?P<name18>a)(?P<name19>a)(?P<name20>a)(?P<name21>a)(?P<name22>a)(?P<name23>a)(?P<name24>a)(?P<name25>a)(?P<name26>a)(?P<name27>a)(?P<name28>a)(?P<name29>a)(?P<name30>a)(?P<name31>a)(?P<name32>a)(?P<name33>a)(?P<name34>a)(?P<name35>a)(?P<name36>a)(?P<name37>a)(?P<name38>a)(?P<name39>a)(?P<name40>a)(?P<name41>a)(?P<name42>a)(?P<name43>a)(?P<name44>a)(?P<name45>a)(?P<name46>a)(?P<name47>a)(?P<name48>a)(?P<name49>a)(?P<name50>a)(?P<name51>a)(?P<name52>a)(?P<name53>a)(?P<name54>a)(?P<name55>a)(?P<name56>a)(?P<name57>a)(?P<name58>a)(?P<name59>a)(?P<name60>a)(?P<name61>a)(?P<name62>a)(?P<name63>a)(?P<name64>a)(?P<name65>a)(?P<name66>a)(?P<name67>a)(?P<name68>a)(?P<name69>a)(?P<name70>a)(?P<name71>a)(?P<name72>a)(?P<name73>a)(?P<name74>a)(?P<name75>a)(?P<name76>a)(?P<name77>a)(?P<name78>a)(?P<name79>a)(?P<name80>a)(?P<name81>a)(?P<name82>a)(?P<name83>a)(?P<name84>a)(?P<name85>a)(?P<name86>a)(?P<name87>a)(?P<name88>a)(?P<name89>a)(?P<name90>a)(?P<name91>a)(?P<name92>a)(?P<name93>a)(?P<name94>a)(?P<name95>a)(?P<name96>a)(?P<name97>a)(?P<name98>a)(?P<name99>a)(?P<name100>a)"I
+    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+
+"(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)"I
+    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+
+/[^()]*(?:\((?R)\)[^()]*)*/I
+    (this(and)that
+    (this(and)that)
+    (this(and)that)stuff
+
+/[^()]*(?:\((?>(?R))\)[^()]*)*/I
+    (this(and)that
+    (this(and)that)
+
+/[^()]*(?:\((?R)\))*[^()]*/I
+    (this(and)that
+    (this(and)that)
+
+/(?:\((?R)\))*[^()]*/I
+    (this(and)that
+    (this(and)that)
+    ((this))
+
+/(?:\((?R)\))|[^()]*/I
+    (this(and)that
+    (this(and)that)
+    (this)
+    ((this))
+
+/a(b)c/IPN
+    abc
+
+/a(?P<name>b)c/IPN
+    abc
+
+/\x{100}/I
+
+/\x{0000ff}/I
+
+/^((?P<A>a1)|(?P<A>a2)b)/I
+
+/^((?P<A>a1)|(?P<A>a2)b)/IJ
+    a1b\CA
+    a2b\CA
+    ** Failers
+    a1b\CZ\CA
+
+/^(?P<A>a)(?P<A>b)/IJ
+    ab\CA
+
+/^(?P<A>a)(?P<A>b)|cd/IJ
+    ab\CA
+    cd\CA
+
+/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
+    cdefgh\CA
+
+/^((?P<A>a1)|(?P<A>a2)b)/IJ
+    a1b\GA
+    a2b\GA
+    ** Failers
+    a1b\GZ\GA
+
+/^(?P<A>a)(?P<A>b)/IJ
+    ab\GA
+
+/^(?P<A>a)(?P<A>b)|cd/IJ
+    ab\GA
+    cd\GA
+
+/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
+    cdefgh\GA
+
+/(?J)^((?P<A>a1)|(?P<A>a2)b)/I
+    a1b\CA
+    a2b\CA
+
+/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
+
+/ In this next test, J is not set at the outer level; consequently it isn't
+set in the pattern's options; consequently pcre_get_named_substring() produces
+a random value. /Ix
+
+/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
+    a bc d\CA\CB\CC
+
+/^(?P<A>a)?(?(A)a|b)/I
+    aabc
+    bc
+    ** Failers
+    abc
+
+/(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
+    bXaX
+
+/(?:(?(2y)a|b)(X))+/I
+
+/(?:(?(ZA)a|b)(?P<ZZ>X))+/I
+
+/(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
+    bbXaaX
+
+/(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
+    (b)\\Xa\\X
+
+/(?P<ABC/I
+
+/(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
+    bXXaYYaY
+    bXYaXXaX
+
+/()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
+    bXXaYYaY
+
+/\777/I
+
+/\s*,\s*/IS
+    \x0b,\x0b
+    \x0c,\x0d
+
+/^abc/Im
+    xyz\nabc
+    xyz\nabc\<lf>
+    xyz\r\nabc\<lf>
+    xyz\rabc\<cr>
+    xyz\r\nabc\<crlf>
+    ** Failers
+    xyz\nabc\<cr>
+    xyz\r\nabc\<cr>
+    xyz\nabc\<crlf>
+    xyz\rabc\<crlf>
+    xyz\rabc\<lf>
+
+/abc$/Im<lf>
+    xyzabc
+    xyzabc\n
+    xyzabc\npqr
+    xyzabc\r\<cr>
+    xyzabc\rpqr\<cr>
+    xyzabc\r\n\<crlf>
+    xyzabc\r\npqr\<crlf>
+    ** Failers
+    xyzabc\r
+    xyzabc\rpqr
+    xyzabc\r\n
+    xyzabc\r\npqr
+
+/^abc/Im<cr>
+    xyz\rabcdef
+    xyz\nabcdef\<lf>
+    ** Failers
+    xyz\nabcdef
+
+/^abc/Im<lf>
+    xyz\nabcdef
+    xyz\rabcdef\<cr>
+    ** Failers
+    xyz\rabcdef
+
+/^abc/Im<crlf>
+    xyz\r\nabcdef
+    xyz\rabcdef\<cr>
+    ** Failers
+    xyz\rabcdef
+
+/^abc/Im<bad>
+
+/abc/I
+    xyz\rabc\<bad>
+    abc
+
+/.*/I<lf>
+    abc\ndef
+    abc\rdef
+    abc\r\ndef
+    \<cr>abc\ndef
+    \<cr>abc\rdef
+    \<cr>abc\r\ndef
+    \<crlf>abc\ndef
+    \<crlf>abc\rdef
+    \<crlf>abc\r\ndef
+
+/\w+(.)(.)?def/Is
+    abc\ndef
+    abc\rdef
+    abc\r\ndef
+
++((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
+   /* this is a C style comment */\M
+
+/(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
+
+/()()()()()()()()()()()()()()()()()()()()
+ ()()()()()()()()()()()()()()()()()()()()
+ ()()()()()()()()()()()()()()()()()()()()
+ ()()()()()()()()()()()()()()()()()()()()
+ ()()()()()()()()()()()()()()()()()()()()
+ (.(.))/Ix
+    XY\O400
+
+/(a*b|(?i:c*(?-i)d))/IS
+
+/()[ab]xyz/IS
+
+/(|)[ab]xyz/IS
+
+/(|c)[ab]xyz/IS
+
+/(|c?)[ab]xyz/IS
+
+/(d?|c?)[ab]xyz/IS
+
+/(d?|c)[ab]xyz/IS
+
+/^a*b\d/DZ
+
+/^a*+b\d/DZ
+
+/^a*?b\d/DZ
+
+/^a+A\d/DZ
+    aaaA5
+    ** Failers
+    aaaa5
+
+/^a*A\d/IiDZ
+    aaaA5
+    aaaa5
+
+/(a*|b*)[cd]/IS
+
+/(a+|b*)[cd]/IS
+
+/(a*|b+)[cd]/IS
+
+/(a+|b+)[cd]/IS
+
+/((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
+ ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
+ (((
+ a
+ ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+ ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+ )))
+/Ix
+  large nest
+
+/a*\d/BZ
+
+/a*\D/BZ
+
+/0*\d/BZ
+
+/0*\D/BZ
+
+/a*\s/BZ
+
+/a*\S/BZ
+
+/ *\s/BZ
+
+/ *\S/BZ
+
+/a*\w/BZ
+
+/a*\W/BZ
+
+/=*\w/BZ
+
+/=*\W/BZ
+
+/\d*a/BZ
+
+/\d*2/BZ
+
+/\d*\d/BZ
+
+/\d*\D/BZ
+
+/\d*\s/BZ
+
+/\d*\S/BZ
+
+/\d*\w/BZ
+
+/\d*\W/BZ
+
+/\D*a/BZ
+
+/\D*2/BZ
+
+/\D*\d/BZ
+
+/\D*\D/BZ
+
+/\D*\s/BZ
+
+/\D*\S/BZ
+
+/\D*\w/BZ
+
+/\D*\W/BZ
+
+/\s*a/BZ
+
+/\s*2/BZ
+
+/\s*\d/BZ
+
+/\s*\D/BZ
+
+/\s*\s/BZ
+
+/\s*\S/BZ
+
+/\s*\w/BZ
+
+/\s*\W/BZ
+
+/\S*a/BZ
+
+/\S*2/BZ
+
+/\S*\d/BZ
+
+/\S*\D/BZ
+
+/\S*\s/BZ
+
+/\S*\S/BZ
+
+/\S*\w/BZ
+
+/\S*\W/BZ
+
+/\w*a/BZ
+
+/\w*2/BZ
+
+/\w*\d/BZ
+
+/\w*\D/BZ
+
+/\w*\s/BZ
+
+/\w*\S/BZ
+
+/\w*\w/BZ
+
+/\w*\W/BZ
+
+/\W*a/BZ
+
+/\W*2/BZ
+
+/\W*\d/BZ
+
+/\W*\D/BZ
+
+/\W*\s/BZ
+
+/\W*\S/BZ
+
+/\W*\w/BZ
+
+/\W*\W/BZ
+
+/[^a]+a/BZ
+
+/[^a]+a/BZi
+
+/[^a]+A/BZi
+
+/[^a]+b/BZ
+
+/[^a]+\d/BZ
+
+/a*[^a]/BZ
+
+/(?P<abc>x)(?P<xyz>y)/I
+    xy\Cabc\Cxyz
+
+/(?<abc>x)(?'xyz'y)/I
+    xy\Cabc\Cxyz
+
+/(?<abc'x)(?'xyz'y)/I
+
+/(?<abc>x)(?'xyz>y)/I
+
+/(?P'abc'x)(?P<xyz>y)/I
+
+/^(?:(?(ZZ)a|b)(?<ZZ>X))+/
+    bXaX
+    bXbX
+    ** Failers
+    aXaX
+    aXbX
+
+/^(?P>abc)(?<abcd>xxx)/
+
+/^(?P>abc)(?<abc>x|y)/
+    xx
+    xy
+    yy
+    yx
+
+/^(?P>abc)(?P<abc>x|y)/
+    xx
+    xy
+    yy
+    yx
+
+/^((?(abc)a|b)(?<abc>x|y))+/
+    bxay
+    bxby
+    ** Failers
+    axby
+
+/^(((?P=abc)|X)(?<abc>x|y))+/
+    XxXxxx
+    XxXyyx
+    XxXyxx
+    ** Failers
+    x
+
+/^(?1)(abc)/
+    abcabc
+
+/^(?:(?:\1|X)(a|b))+/
+    Xaaa
+    Xaba
+
+/^[\E\Qa\E-\Qz\E]+/BZ
+
+/^[a\Q]bc\E]/BZ
+
+/^[a-\Q\E]/BZ
+
+/^(?P>abc)[()](?<abc>)/BZ
+
+/^((?(abc)y)[()](?P<abc>x))+/BZ
+    (xy)x
+
+/^(?P>abc)\Q()\E(?<abc>)/BZ
+
+/^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
+
+/^(?P>abc) # this is (a comment)
+  (?<abc>)/BZx
+
+/^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
+    1221
+    Satan, oscillate my metallic sonatas!
+    A man, a plan, a canal: Panama!
+    Able was I ere I saw Elba.
+    *** Failers
+    The quick brown fox
+
+/(?=(\w+))\1:/I
+    abcd:
+
+/(?=(?'abc'\w+))\k<abc>:/I
+    abcd:
+
+/(?'abc'\w+):\k<abc>{2}/
+    a:aaxyz
+    ab:ababxyz
+    ** Failers
+    a:axyz
+    ab:abxyz
+
+/(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
+    adaa
+    ** Failers
+    addd
+    adbb
+
+/(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
+    bdaa
+    bdab
+    ** Failers
+    bddd
+
+/^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x
+    abd
+    ce
+
+/(?(<bc))/
+
+/(?(''))/
+
+/(?('R')stuff)/
+
+/((abc (?(R) (?(R1)1) (?(R2)2) X  |  (?1)  (?2)   (?R) ))) /x
+    abcabc1Xabc2XabcXabcabc
+
+/(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
+    abcabc1Xabc2XabcXabcabc
+
+/(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
+
+/(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
+    abcabc1Xabc2XabcXabcabc
+
+/^(?(DEFINE) (?<A> a) (?<B> b) )  (?&A) (?&B) /x
+    abcd
+
+/(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT))
+  (?(DEFINE)
+  (?<NAME_PAT>[a-z]+)
+  (?<ADDRESS_PAT>\d+)
+  )/x
+    metcalfe 33
+
+/^(?(DEFINE) abc | xyz ) /x
+
+/(?(DEFINE) abc) xyz/xI
+
+/(?(DEFINE) abc){3} xyz/x
+
+/(a|)*\d/
+  \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+  \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
+
+/^a.b/<lf>
+    a\rb
+    a\nb\<cr>
+    a\x85b\<anycrlf> 
+    ** Failers
+    a\nb
+    a\nb\<any>
+    a\rb\<cr>
+    a\rb\<any>
+    a\x85b\<any> 
+    a\rb\<anycrlf>
+
+/^abc./mgx<any>
+    abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
+
+/abc.$/mgx<any>
+    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
+
+/a/<cr><any>
+
+/a/<any><crlf>
+
+/^a\Rb/<bsr_unicode>
+    a\nb
+    a\rb
+    a\r\nb
+    a\x0bb
+    a\x0cb
+    a\x85b
+    ** Failers
+    a\n\rb
+
+/^a\R*b/<bsr_unicode>
+    ab
+    a\nb
+    a\rb
+    a\r\nb
+    a\x0bb
+    a\x0cb
+    a\x85b
+    a\n\rb
+    a\n\r\x85\x0cb
+
+/^a\R+b/<bsr_unicode>
+    a\nb
+    a\rb
+    a\r\nb
+    a\x0bb
+    a\x0cb
+    a\x85b
+    a\n\rb
+    a\n\r\x85\x0cb
+    ** Failers
+    ab
+
+/^a\R{1,3}b/<bsr_unicode>
+    a\nb
+    a\n\rb
+    a\n\r\x85b
+    a\r\n\r\nb
+    a\r\n\r\n\r\nb
+    a\n\r\n\rb
+    a\n\n\r\nb
+    ** Failers
+    a\n\n\n\rb
+    a\r
+
+/^a[\R]b/<bsr_unicode>
+    aRb
+    ** Failers
+    a\nb
+
+/(?&abc)X(?<abc>P)/I
+    abcPXP123
+
+/(?1)X(?<abc>P)/I
+    abcPXP123
+
+/(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/
+    1.2.3.4
+    131.111.10.206
+    10.0.0.0
+    ** Failers
+    10.6
+    455.3.4.5
+
+/\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/
+    1.2.3.4
+    131.111.10.206
+    10.0.0.0
+    ** Failers
+    10.6
+    455.3.4.5
+
+/(?:a(?&abc)b)*(?<abc>x)/
+    123axbaxbaxbx456
+    123axbaxbaxb456
+
+/(?:a(?&abc)b){1,5}(?<abc>x)/
+    123axbaxbaxbx456
+
+/(?:a(?&abc)b){2,5}(?<abc>x)/
+    123axbaxbaxbx456
+
+/(?:a(?&abc)b){2,}(?<abc>x)/
+    123axbaxbaxbx456
+
+/(abc)(?i:(?1))/
+   defabcabcxyz
+   DEFabcABCXYZ
+
+/(abc)(?:(?i)(?1))/
+   defabcabcxyz
+   DEFabcABCXYZ
+
+/^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/
+    ababababbbabZXXXX
+
+/^(a)\g-2/
+
+/^(a)\g/
+
+/^(a)\g{0}/
+
+/^(a)\g{3/
+
+/^(a)\g{4a}/
+
+/^a.b/<lf>
+    a\rb
+    *** Failers
+    a\nb
+
+/.+foo/
+    afoo
+    ** Failers
+    \r\nfoo
+    \nfoo
+
+/.+foo/<crlf>
+    afoo
+    \nfoo
+    ** Failers
+    \r\nfoo
+
+/.+foo/<any>
+    afoo
+    ** Failers
+    \nfoo
+    \r\nfoo
+
+/.+foo/s
+    afoo
+    \r\nfoo
+    \nfoo
+    
+/^$/mg<any>
+    abc\r\rxyz
+    abc\n\rxyz  
+    ** Failers 
+    abc\r\nxyz
+
+/(?m)^$/<any>g+
+    abc\r\n\r\n
+
+/(?m)^$|^\r\n/<any>g+ 
+    abc\r\n\r\n
+    
+/(?m)$/<any>g+ 
+    abc\r\n\r\n
+
+/abc.$/mgx<anycrlf>
+    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
+
+/^X/m
+    XABC
+    ** Failers 
+    XABC\B
+
+/(ab|c)(?-1)/BZ
+    abc
+
+/xy(?+1)(abc)/BZ
+    xyabcabc
+    ** Failers
+    xyabc  
+    
+/x(?-0)y/
+
+/x(?-1)y/
+
+/x(?+0)y/ 
+
+/x(?+1)y/
+
+/^(abc)?(?(-1)X|Y)/BZ
+    abcX
+    Y
+    ** Failers
+    abcY   
+    
+/^((?(+1)X|Y)(abc))+/BZ 
+    YabcXabc
+    YabcXabcXabc
+    ** Failers
+    XabcXabc  
+
+/(?(-1)a)/BZ
+
+/((?(-1)a))/BZ
+
+/((?(-2)a))/BZ
+
+/^(?(+1)X|Y)(.)/BZ
+    Y!
+
+/(foo)\Kbar/
+    foobar
+   
+/(foo)(\Kbar|baz)/
+    foobar
+    foobaz 
+
+/(foo\Kbar)baz/
+    foobarbaz
+
+/(?<A>tom|bon)-\k{A}/
+    tom-tom
+    bon-bon 
+    ** Failers
+    tom-bon  
+
+/(?<A>tom|bon)-\g{A}/
+    tom-tom
+    bon-bon 
+    
+/\g{A/ 
+
+/(?|(abc)|(xyz))/BZ
+   >abc<
+   >xyz< 
+
+/(x)(?|(abc)|(xyz))(x)/BZ
+    xabcx
+    xxyzx 
+
+/(x)(?|(abc)(pqr)|(xyz))(x)/BZ
+    xabcpqrx
+    xxyzx 
+
+/(?|(abc)|(xyz))\1/
+    abcabc
+    xyzxyz 
+    ** Failers
+    abcxyz
+    xyzabc   
+    
+/(?|(abc)|(xyz))(?1)/
+    abcabc
+    xyzabc 
+    ** Failers 
+    xyzxyz 
+ 
+/\H\h\V\v/
+    X X\x0a
+    X\x09X\x0b
+    ** Failers
+    \xa0 X\x0a   
+    
+/\H*\h+\V?\v{3,4}/ 
+    \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a
+    \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a
+    \x09\x20\xa0\x0a\x0b\x0c
+    ** Failers 
+    \x09\x20\xa0\x0a\x0b
+     
+/\H{3,4}/
+    XY  ABCDE
+    XY  PQR ST 
+    
+/.\h{3,4}./
+    XY  AB    PQRS
+
+/\h*X\h?\H+Y\H?Z/
+    >XNNNYZ
+    >  X NYQZ
+    ** Failers
+    >XYZ   
+    >  X NY Z
+
+/\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/
+    >XY\x0aZ\x0aA\x0bNN\x0c
+    >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
+
+/[\h]/BZ
+    >\x09<
+
+/[\h]+/BZ
+    >\x09\x20\xa0<
+
+/[\v]/BZ
+
+/[\H]/BZ
+
+/[^\h]/BZ
+
+/[\V]/BZ
+
+/[\x0a\V]/BZ
+
+/\H++X/BZ
+    ** Failers
+    XXXX
+    
+/\H+\hY/BZ
+    XXXX Y 
+
+/\H+ Y/BZ
+
+/\h+A/BZ
+
+/\v*B/BZ
+
+/\V+\x0a/BZ
+
+/A+\h/BZ
+
+/ *\H/BZ
+
+/A*\v/BZ
+
+/\x0b*\V/BZ
+
+/\d+\h/BZ
+
+/\d*\v/BZ
+
+/S+\h\S+\v/BZ
+
+/\w{3,}\h\w+\v/BZ
+
+/\h+\d\h+\w\h+\S\h+\H/BZ
+
+/\v+\d\v+\w\v+\S\v+\V/BZ
+
+/\H+\h\H+\d/BZ
+
+/\V+\v\V+\w/BZ
+
+/\( (?: [^()]* | (?R) )* \)/x
+(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
+
+/[\E]AAA/
+
+/[\Q\E]AAA/
+
+/[^\E]AAA/
+
+/[^\Q\E]AAA/
+
+/[\E^]AAA/
+
+/[\Q\E^]AAA/
+
+/A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
+
+/^a+(*FAIL)/
+    aaaaaa
+    
+/a+b?c+(*FAIL)/
+    aaabccc
+
+/a+b?(*PRUNE)c+(*FAIL)/
+    aaabccc
+
+/a+b?(*COMMIT)c+(*FAIL)/
+    aaabccc
+    
+/a+b?(*SKIP)c+(*FAIL)/
+    aaabcccaaabccc
+
+/^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/
+    aaaxxxxxx
+    aaa++++++ 
+    bbbxxxxx
+    bbb+++++ 
+    cccxxxx
+    ccc++++ 
+    dddddddd   
+
+/^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/
+    aaaxxxxxx
+    aaa++++++ 
+    bbbxxxxx
+    bbb+++++ 
+    cccxxxx
+    ccc++++ 
+    dddddddd   
+
+/a+b?(*THEN)c+(*FAIL)/
+    aaabccc
+
+/(A (A|B(*ACCEPT)|C) D)(E)/x
+    ABX
+    AADE
+    ACDE
+    ** Failers
+    AD 
+        
+/^a+(*FAIL)/C
+    aaaaaa
+    
+/a+b?c+(*FAIL)/C
+    aaabccc
+
+/a+b?(*PRUNE)c+(*FAIL)/C
+    aaabccc
+
+/a+b?(*COMMIT)c+(*FAIL)/C
+    aaabccc
+    
+/a+b?(*SKIP)c+(*FAIL)/C
+    aaabcccaaabccc
+
+/a+b?(*THEN)c+(*FAIL)/C
+    aaabccc
+    
+/a(*PRUNE:XXX)b/
+
+/a(*MARK)b/ 
+
+/(?i:A{1,}\6666666666)/
+
+/\g6666666666/
+
+/[\g6666666666]/
+
+/(?1)\c[/
+
+/.+A/<crlf>
+    \r\nA
+    
+/\nA/<crlf>
+    \r\nA 
+
+/[\r\n]A/<crlf>
+    \r\nA 
+
+/(\r|\n)A/<crlf>
+    \r\nA 
+
+/a(*CR)b/
+
+/(*CR)a.b/
+    a\nb
+    ** Failers
+    a\rb  
+
+/(*CR)a.b/<lf>
+    a\nb
+    ** Failers
+    a\rb  
+
+/(*LF)a.b/<CRLF>
+    a\rb
+    ** Failers
+    a\nb  
+
+/(*CRLF)a.b/
+    a\rb
+    a\nb  
+    ** Failers
+    a\r\nb  
+
+/(*ANYCRLF)a.b/<CR>
+    ** Failers
+    a\rb
+    a\nb  
+    a\r\nb  
+
+/(*ANY)a.b/<cr>
+    ** Failers
+    a\rb
+    a\nb  
+    a\r\nb  
+    a\x85b 
+
+/a\Rb/I<bsr_anycrlf>
+    a\rb
+    a\nb
+    a\r\nb
+    ** Failers
+    a\x85b
+    a\x0bb     
+
+/a\Rb/I<bsr_unicode>
+    a\rb
+    a\nb
+    a\r\nb
+    a\x85b
+    a\x0bb     
+    ** Failers 
+    a\x85b\<bsr_anycrlf>
+    a\x0bb\<bsr_anycrlf>
+    
+/a\R?b/I<bsr_anycrlf>
+    a\rb
+    a\nb
+    a\r\nb
+    ** Failers
+    a\x85b
+    a\x0bb     
+
+/a\R?b/I<bsr_unicode>
+    a\rb
+    a\nb
+    a\r\nb
+    a\x85b
+    a\x0bb     
+    ** Failers 
+    a\x85b\<bsr_anycrlf>
+    a\x0bb\<bsr_anycrlf>
+    
+/a\R{2,4}b/I<bsr_anycrlf>
+    a\r\n\nb
+    a\n\r\rb
+    a\r\n\r\n\r\n\r\nb
+    ** Failers
+    a\x85\85b
+    a\x0b\0bb     
+
+/a\R{2,4}b/I<bsr_unicode>
+    a\r\rb
+    a\n\n\nb
+    a\r\n\n\r\rb
+    a\x85\85b
+    a\x0b\0bb     
+    ** Failers 
+    a\r\r\r\r\rb 
+    a\x85\85b\<bsr_anycrlf>
+    a\x0b\0bb\<bsr_anycrlf>
+ 
+/(*BSR_ANYCRLF)a\Rb/I
+    a\nb
+    a\rb 
+
+/(*BSR_UNICODE)a\Rb/I
+    a\x85b
+
+/(*BSR_ANYCRLF)(*CRLF)a\Rb/I
+    a\nb
+    a\rb 
+
+/(*CRLF)(*BSR_UNICODE)a\Rb/I
+    a\x85b
+
+/(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
+
+/(?<a>)(?&)/
+
+/(?<abc>)(?&a)/
+
+/(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
+
+/(?+-a)/
+
+/(?-+a)/
+
+/(?(-1))/
+
+/(?(+10))/
+
+/(?(10))/
+
+/(?(+2))()()/
+
+/(?(2))()()/
+
+/\k''/
+
+/\k<>/
+
+/\k{}/
+
+/(?P=)/
+
+/(?P>)/
+
+/(?!\w)(?R)/
+
+/(?=\w)(?R)/
+
+/(?<!\w)(?R)/
+
+/(?<=\w)(?R)/
+
+/[[:foo:]]/
+
+/[[:1234:]]/
+
+/[[:f\oo:]]/
+
+/[[: :]]/
+
+/[[:...:]]/
+
+/[[:l\ower:]]/
+
+/[[:abc\:]]/
+
+/[abc[:x\]pqr:]]/
+
+/[[:a\dz:]]/
+
+/^(?<name>a|b\g<name>c)/
+    aaaa
+    bacxxx
+    bbaccxxx 
+    bbbacccxx
+
+/^(?<name>a|b\g'name'c)/
+    aaaa
+    bacxxx
+    bbaccxxx 
+    bbbacccxx
+
+/^(a|b\g<1>c)/
+    aaaa
+    bacxxx
+    bbaccxxx 
+    bbbacccxx
+
+/^(a|b\g'1'c)/
+    aaaa
+    bacxxx
+    bbaccxxx 
+    bbbacccxx
+
+/^(a|b\g'-1'c)/
+    aaaa
+    bacxxx
+    bbaccxxx 
+    bbbacccxx
+
+/(^(a|b\g<-1>c))/
+    aaaa
+    bacxxx
+    bbaccxxx 
+    bbbacccxx
+
+/(^(a|b\g<-1'c))/
+
+/(^(a|b\g{-1}))/
+    bacxxx
+
+/(?-i:\g<name>)(?i:(?<name>a))/
+    XaaX
+    XAAX 
+
+/(?i:\g<name>)(?-i:(?<name>a))/
+    XaaX
+    ** Failers 
+    XAAX 
+
+/(?-i:\g<+1>)(?i:(a))/
+    XaaX
+    XAAX 
+
+/(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/
+
+/(?<n>a|b|c)\g<n>*/
+   abc
+   accccbbb 
+
+/^(?+1)(?<a>x|y){0}z/
+    xzxx
+    yzyy 
+    ** Failers
+    xxz  
+
+/(\3)(\1)(a)/
+    cat
+
+/(\3)(\1)(a)/<JS>
+    cat
+    
+/TA]/
+    The ACTA] comes 
+
+/TA]/<JS>
+    The ACTA] comes 
+
+/(?2)[]a()b](abc)/
+    abcbabc
+
+/(?2)[^]a()b](abc)/
+    abcbabc
+
+/(?1)[]a()b](abc)/
+    abcbabc
+    ** Failers 
+    abcXabc
+
+/(?1)[^]a()b](abc)/
+    abcXabc
+    ** Failers 
+    abcbabc
+
+/(?2)[]a()b](abc)(xyz)/
+    xyzbabcxyz
+
+/(?&N)[]a(?<N>)](?<M>abc)/
+   abc<abc
+
+/(?&N)[]a(?<N>)](abc)/
+   abc<abc
+
+/a[]b/
+
+/a[^]b/
+
+/a[]b/<JS>
+    ** Failers
+    ab
+
+/a[]+b/<JS>
+    ** Failers
+    ab 
+
+/a[]*+b/<JS>
+    ** Failers
+    ab 
+
+/a[^]b/<JS>
+    aXb
+    a\nb 
+    ** Failers
+    ab  
+    
+/a[^]+b/<JS> 
+    aXb
+    a\nX\nXb 
+    ** Failers
+    ab  
+
+/a(?!)+b/
+
+/a(*FAIL)+b/
+
+/(abc|pqr|123){0}[xyz]/SI
+
+/ End of testinput2 /