--- /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 /