1 # This set of tests is not Perl-compatible. It checks on special features
2 # of PCRE2's API, error diagnostics, and the compiled code of some patterns.
3 # It also checks the non-Perl syntax that PCRE2 supports (Python, .NET,
4 # Oniguruma). There are also some tests where PCRE2 and Perl differ,
5 # either because PCRE2 can't be compatible, or there is a possible Perl
8 # NOTE: This is a non-UTF set of tests. When UTF support is needed, use
12 #newline_default lf any anycrlf
14 # Test binary zeroes in the pattern
16 # /a\0B/ where 0 is a binary zero
20 # /a0b/ where 0 is a binary zero
24 # /(?#B0C)DE/ where 0 is a binary zero
25 /28 3f 23 42 00 43 29 44 45/B,hex
89 this sentence eventually mentions a cat
90 this sentences rambles on and on for a while and then reaches elephant
93 this sentence eventually mentions a cat
94 this sentences rambles on and on for a while and then reaches elephant
97 this sentence eventually mentions a CAT cat
98 this sentences rambles on and on for a while to elephant ElePhant
130 /abc$/I,dollar_endonly
138 /the quick brown fox/I
140 this is a line with the quick brown fox
142 /the quick brown fox/I,anchored
145 this is a line with the quick brown fox
162 co-processors, and for
185 /(?<!bar|cattle)foo/I
194 /12345(?<=aaa|b{0,3})b/
238 /(a*b|(?i:c*(?-i)d))/I
258 /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
263 /(?<!foo)(alpha|omega)/I
293 /The next three are in testinput2 because they have variable length branches/
295 /(?<=bullock|donkey)-cart/I
304 /(?>.*)(?<=(abcd)|(xyz))/I
308 /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
327 # This one is here because Perl behaves differently; see also the following.
334 # Perl does not fail these two for the final subjects. Neither did PCRE until
335 # release 8.01. The problem is in backtracking into a subpattern that contains
336 # a recursive reference to itself. PCRE has now made these into atomic patterns.
348 # These are syntax tests from Perl 5.005
424 abcdefghijklmnopqrstuvwxyz
425 abcdefghijklmnopqrstuvwxyz\=copy=1
426 abcdefghijklmnopqrstuvwxyz\=get=1
429 abcdefghijklmnopqrstuvwxyz
430 abcdefghijklmnopqrstuvwxyz\=copy=1,get=1
433 abcdefghijklmnopqrstuvwxyz
434 abcdefghijklmnopqrstuvwxyz\=copy=1,get=1,getall
437 adef\=get=1,get=2,get=3,get=4,getall
438 bcdef\=get=1,get=2,get=3,get=4,getall
442 abc\00def\=copy=0,getall
444 /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
445 )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
446 )?)?)?)?)?)?)?)?)?otherword/I
463 /iss/I,aftertext,altglobal
466 /\Biss\B/I,aftertext,altglobal
469 /\Biss\B/Ig,aftertext
472 Mississippi\=anchored
474 /(?<=[Ms])iss/Ig,aftertext
477 /(?<=[Ms])iss/I,aftertext,altglobal
488 Mississippi\=anchored
490 Missouri river\=anchored
502 a\rb\nc\r\nxyz\=aftertext
578 /a(?(1)bag|big)*(.)/I
580 /a(?(1)bag|big)+(.)/I
604 (?: # Non-capturing bracket
605 (?>[^()]+) # Either a sequence of non-brackets (no backtracking)
607 (?R) # Recurse - i.e. nested bracketed string
608 )* # Zero or more contents
617 12(abcde(fsh)xyz(foo(bar))lmno)89
623 /\( ( (?>[^()]+) | (?R) )* \) /Igx
627 /\( (?: (?>[^()]+) | (?R) ) \) /Ix
635 /\( (?: (?>[^()]+) | (?R) )? \) /Ix
637 12(abcde(fsh)xyz(foo(bar))lmno)89
639 /\( ( (?>[^()]+) | (?R) )* \) /Ix
642 /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
645 /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
649 /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
653 /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
656 /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
659 /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
681 /[\n\x0b\x0c\x0d[:blank:]]/I
725 /((?-i)[[:lower:]])[[:lower:]]/Ii
736 # This one's here because of the large output vector needed
738 /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
739 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\=ovector=300
741 # This one's here because Perl does this differently and PCRE2 can't at present
747 # These are all cases where Perl does it differently (nested captures)
770 /^(?:aa(b(?:b))?)+$/I
773 /^(?:aa(bb(?:b))?)+$/I
776 /^(?:aa(b(?:bb))?)+$/I
779 /^(?:aa(?:b(b))?)+$/I
782 /^(?:aa(?:b(bb))?)+$/I
818 /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/IB
820 /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/IB
847 /x{1,3}+/B,no_auto_possess
849 /x{1,3}+/Bi,no_auto_possess
851 /[^x]{1,3}+/B,no_auto_possess
853 /[^x]{1,3}+/Bi,no_auto_possess
858 now is the time for all good men to come to the aid of the party
860 this is not a line with only words and spaces!
876 /([^()]++|\([^()]*\))+/I
879 /\(([^()]++|\([^()]+\))+\)/I
883 ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
893 /a{2,3}?+b/I,ungreedy
901 /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/IB
940 /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix
950 /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/IB
952 /\$\<\.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/IB
1037 /(?C1)\dabc(?C2)def/I
1042 /(?C1)\dabc(?C2)def/I
1058 /(abc)(?C)de(?C1)f/I
1060 123abcdef\=callout_capture
1061 123abcdefC-\=callout_none
1063 123abcdef\=callout_fail=1
1067 abcabc\=callout_fail=1:4
1068 abcabcabc\=callout_fail=1:4
1071 123\=callout_capture
1072 123456\=callout_capture
1073 123456789\=callout_capture
1075 /((xyz)(?C)p|(?C1)xyzabc)/I
1076 xyzabc\=callout_capture
1078 /(X)((xyz)(?C)p|(?C1)xyzabc)/I
1079 Xxyzabc\=callout_capture
1081 /(?=(abc))(?C)abcdef/I
1082 abcdef\=callout_capture
1084 /(?!(abc)(?C1)d)(?C2)abcxyz/I
1085 abcxyz\=callout_capture
1087 /(?<=(abc)(?C))xyz/I
1088 abcxyz\=callout_capture
1092 abbbbbccc\=callout_data=1
1096 abbbbbccc\=callout_data=1
1107 /x(ab|(bc|(de|(?R))))/I
1116 /^([^()]|\((?1)*\))*$/I
1123 /^>abc>([^()]|\((?1)*\))*<xyz<$/I
1132 /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
1146 /((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix
1173 /a(?P<name1>b|c)d(?P<longername2>e)/IB
1177 /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/IB
1179 /(?P<a>a)...(?P=a)bbb(?P>a)d/IB
1181 /^\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
1183 Satan, oscillate my metallic sonatas!
1184 A man, a plan, a canal: Panama!
1185 Able was I ere I saw Elba.
1189 /((?(R)a|b))\1(?1)?/I
1201 /((.*)a|(.*)b)z\1/Is
1203 /((.*)a|(.*)b)z\2/Is
1205 /((.*)a|(.*)b)z\3/Is
1207 /((.*)a|^(.*)b)z\3/Is
1209 /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
1211 /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
1213 /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
1215 /(a)(bc)/IB,no_auto_capture
1218 /(?P<one>a)(bc)/IB,no_auto_capture
1221 /(a)(?P<named>bc)/IB,no_auto_capture
1225 aaabbb\=callout_data=0
1226 aaabbb\=callout_data=1
1228 aaabbb\=callout_data=-1
1230 /ab(?P<one>cd)ef(?P<two>gh)/I
1232 abcdefgh\=copy=1,get=two
1233 abcdefgh\=copy=one,copy=two
1234 abcdefgh\=copy=three
1236 /(?P<Tes>)(?P<Test>)/IB
1238 /(?P<Test>)(?P<Tes>)/IB
1240 /(?P<Z>zz)(?P<A>aa)/I
1244 /(?P<x>eks)(?P<x>eccs)/I
1246 /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
1248 "\[((?P<elem>\d+)(,(?P>elem))*)\]"I
1249 [10,20,30,5,5,4,4,2,43,23,4234]
1253 "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
1254 [10,20,30,5,5,4,4,2,43,23,4234]
1261 /(a(b(?2)c)){0,2}/IB
1269 /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
1270 Baby Bjorn Active Carrier - With free SHIPPING!!
1272 /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
1273 Baby Bjorn Active Carrier - With free SHIPPING!!
1279 /abc(?C255)de(?C)f/IB
1281 /abcde/IB,auto_callout
1286 /a*b/IB,auto_callout
1291 /a*b/IB,auto_callout
1296 /a+b/IB,auto_callout
1302 /(abc|def)x/IB,auto_callout
1308 /(abc|def)x/IB,auto_callout
1314 /(ab|cd){3,4}/I,auto_callout
1319 /([ab]{,4}c|xy)/IB,auto_callout
1321 Note: that { does NOT introduce a quantifier
1323 /([ab]{,4}c|xy)/IB,auto_callout
1325 Note: that { does NOT introduce a quantifier
1327 /([ab]{1,4}c|xy){4,5}?123/IB,auto_callout
1334 ab cd\=startoffset=1
1344 the quick brown abc\=ps
1345 \= Expect no match\=ps
1346 the quick brown abxyz fox\=ps
1348 "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
1360 \= Expect no match\=ps
1398 "<(\w+)/?>(.)*</(\1)>"Igms
1399 <!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>\=jitstack=1024
1402 this is a line\nbreak
1403 line one\nthis is a line\nbreak in the second line
1405 /line\nbreak/I,firstline
1406 this is a line\nbreak
1408 line one\nthis is a line\nbreak in the second line
1410 /line\nbreak/Im,firstline
1411 this is a line\nbreak
1413 line one\nthis is a line\nbreak in the second line
1420 /a{11111111111111111111}/I
1426 "(?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
1429 "(?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
1432 "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
1435 "(?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
1436 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1438 "(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
1439 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1441 /[^()]*(?:\((?R)\)[^()]*)*/I
1444 (this(and)that)stuff
1446 /[^()]*(?:\((?>(?R))\)[^()]*)*/I
1450 /[^()]*(?:\((?R)\))*[^()]*/I
1454 /(?:\((?R)\))*[^()]*/I
1459 /(?:\((?R)\))|[^()]*/I
1467 /^((?P<A>a1)|(?P<A>a2)b)/I
1469 /^((?P<A>a1)|(?P<A>a2)b)/I,dupnames
1474 /(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/I,dupnames
1476 /^(?P<A>a)(?P<A>b)/I,dupnames
1479 /^(?P<A>a)(?P<A>b)|cd/I,dupnames
1483 /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/I,dupnames
1486 /^((?P<A>a1)|(?P<A>a2)b)/I,dupnames
1491 /^(?P<A>a)(?P<A>b)/I,dupnames
1494 /^(?P<A>a)(?P<A>b)|cd/I,dupnames
1498 /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/I,dupnames
1501 /(?J)^((?P<A>a1)|(?P<A>a2)b)/I
1505 /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
1507 # In this next test, J is not set at the outer level; consequently it isn't set
1508 # in the pattern's options; consequently pcre2_substring_get_byname() produces
1511 /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
1512 a bc d\=copy=A,copy=B,copy=C
1514 /^(?P<A>a)?(?(A)a|b)/I
1520 /(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
1523 /(?:(?(2y)a|b)(X))+/I
1525 /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
1527 /(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
1530 /(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
1535 /(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
1539 /()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
1556 /^abc/Im,newline=crlf
1568 /^abc/Im,newline=bad
1590 /(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
1592 /()()()()()()()()()()()()()()()()()()()()
1593 ()()()()()()()()()()()()()()()()()()()()
1594 ()()()()()()()()()()()()()()()()()()()()
1595 ()()()()()()()()()()()()()()()()()()()()
1596 ()()()()()()()()()()()()()()()()()()()()
1600 /(a*b|(?i:c*(?-i)d))/I
1637 /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
1638 ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
1641 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
1642 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
1779 /(?P<abc>x)(?P<xyz>y)/I
1780 xy\=copy=abc,copy=xyz
1782 /(?<abc>x)(?'xyz'y)/I
1783 xy\=copy=abc,copy=xyz
1785 /(?<abc'x)(?'xyz'y)/I
1787 /(?<abc>x)(?'xyz>y)/I
1789 /(?P'abc'x)(?P<xyz>y)/I
1791 /^(?:(?(ZZ)a|b)(?<ZZ>X))+/
1798 /^(?P>abc)(?<abcd>xxx)/
1800 /^(?P>abc)(?<abc>x|y)/
1806 /^(?P>abc)(?P<abc>x|y)/
1812 /^((?(abc)a|b)(?<abc>x|y))+/
1818 /^(((?P=abc)|X)(?<abc>x|y))+/
1828 /^(?:(?:\1|X)(a|b))+/
1832 /^[\E\Qa\E-\Qz\E]+/B
1838 /^(?P>abc)[()](?<abc>)/B
1840 /^((?(abc)y)[()](?P<abc>x))+/B
1843 /^(?P>abc)\Q()\E(?<abc>)/B
1845 /^(?P>abc)[a\Q(]\E(](?<abc>)/B
1847 /^(?P>abc) # this is (a comment)
1850 /^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
1852 Satan, oscillate my metallic sonatas!
1853 A man, a plan, a canal: Panama!
1854 Able was I ere I saw Elba.
1861 /(?=(?'abc'\w+))\k<abc>:/I
1864 /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/dupnames
1870 /(?'abc'a|b)(?<abc>d|e)(?&abc){2}/dupnames
1882 /((abc (?(R) (?(R1)1) (?(R2)2) X | (?1) (?2) (?R) ))) /x
1883 abcabc1Xabc2XabcXabcabc
1885 /(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
1886 abcabc1Xabc2XabcXabcabc
1888 /(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
1890 /^(?(DEFINE) abc | xyz ) /x
1892 /(?(DEFINE) abc) xyz/Ix
1895 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4\=ovector=0
1897 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\=ovector=0
1909 /^a.b/newline=anycrlf
1920 /^abc./gmx,newline=any
1921 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
1923 /abc.$/gmx,newline=any
1924 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
1959 /^a\R{1,3}b/bsr=unicode
1971 /(?&abc)X(?<abc>P)/I
1977 /(?:a(?&abc)b)*(?<abc>x)/
1981 /(?:a(?&abc)b){1,5}(?<abc>x)/
1984 /(?:a(?&abc)b){2,5}(?<abc>x)/
1987 /(?:a(?&abc)b){2,}(?<abc>x)/
2044 /(?m)^$/g,newline=any,aftertext
2047 /(?m)^$|^\r\n/g,newline=any,aftertext
2050 /(?m)$/g,newline=any,aftertext
2053 /abc.$/gmx,newline=anycrlf
2054 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
2077 /^(abc)?(?(-1)X|Y)/B
2083 /^((?(+1)X|Y)(abc))+/B
2098 /(?<A>tom|bon)-\k{A}/
2110 /(x)(?|(abc)|(xyz))(x)/B
2114 /(x)(?|(abc)(pqr)|(xyz))(x)/B
2149 /\h+\d\h+\w\h+\S\h+\H/B
2151 /\v+\d\v+\w\v+\S\v+\V/B
2157 /\( (?: [^()]* | (?R) )* \)/x
2158 (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)\=jitstack=1024
2172 /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/B
2174 /^a+(*FAIL)/auto_callout
2178 /a+b?c+(*FAIL)/auto_callout
2182 /a+b?(*PRUNE)c+(*FAIL)/auto_callout
2186 /a+b?(*COMMIT)c+(*FAIL)/auto_callout
2190 /a+b?(*SKIP)c+(*FAIL)/auto_callout
2194 /a+b?(*THEN)c+(*FAIL)/auto_callout
2200 /(?i:A{1,}\6666666666)/
2215 /[\r\n]A/newline=crlf
2218 /(\r|\n)A/newline=crlf
2228 /(*CR)a.b/newline=lf
2233 /(*LF)a.b/newline=CRLF
2244 /(*ANYCRLF)a.b/newline=CR
2250 /(*ANY)a.b/newline=cr
2275 /'#comment' 0d 0a 00 '^x\' 0a 'y'/x,newline=nul,hex
2299 /a\R?b/I,bsr=anycrlf
2307 /a\R?b/I,bsr=unicode
2314 /a\R{2,4}b/I,bsr=anycrlf
2322 /a\R{2,4}b/I,bsr=unicode
2331 /(*BSR_ANYCRLF)a\Rb/I
2335 /(*BSR_UNICODE)a\Rb/I
2338 /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
2342 /(*CRLF)(*BSR_UNICODE)a\Rb/I
2345 /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
2351 /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
2401 /^(?+1)(?<a>x|y){0}z/
2411 /(\3)(\1)(a)/alt_bsux,allow_empty_class,match_unset_backref,dupnames
2417 /TA]/alt_bsux,allow_empty_class,match_unset_backref,dupnames
2436 /(?2)[]a()b](abc)(xyz)/
2439 /(?&N)[]a(?<N>)](?<M>abc)/
2442 /(?&N)[]a(?<N>)](abc)/
2449 /a[]b/alt_bsux,allow_empty_class,match_unset_backref,dupnames
2453 /a[]+b/alt_bsux,allow_empty_class,match_unset_backref,dupnames
2457 /a[]*+b/alt_bsux,allow_empty_class,match_unset_backref,dupnames
2461 /a[^]b/alt_bsux,allow_empty_class,match_unset_backref,dupnames
2467 /a[^]+b/alt_bsux,allow_empty_class,match_unset_backref,dupnames
2480 /(abc|pqr|123){0}[xyz]/I
2482 /(?(?=.*b)b|^)/I,auto_callout
2497 /xyz/auto_callout,no_start_optimize
2503 /(*NO_START_OPT)xyz/auto_callout
2506 /(*NO_AUTO_POSSESS)a+b/B
2508 /xyz/auto_callout,no_start_optimize
2511 /^"((?(?=[a])[^"])|b)*"$/auto_callout
2514 /^"((?(?=[a])[^"])|b)*"$/
2517 /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
2520 /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
2649 /\++\KZ|\d+X|9+Y/startchar
2703 /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/B
2705 /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/B
2707 /(ab)(x(y)z(cd(*ACCEPT)))pq/B
2709 /abc\K/aftertext,startchar
2711 abcdef\=notempty_atstart
2712 xyzabcdef\=notempty_atstart
2717 /^(?:(?=abc)|abc\K)/aftertext,startchar
2719 abcdef\=notempty_atstart
2727 xyzabc\=notempty_atstart
2728 xyz\=notempty_atstart
2737 xyzabc\=notempty_atstart
2738 xyz\=notempty_atstart
2741 /^(?<name>a|b\g<name>c)/
2747 /^(?<name>a|b\g'name'c)/
2777 /(?-i:\g<name>)(?i:(?<name>a))/
2781 /(?i:\g<name>)(?-i:(?<name>a))/
2786 /(?-i:\g<+1>)(?i:(a))/
2790 /(?=(?<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>\})\}))\{/
2796 /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
2813 /(?<=b(?1))xyz(b+)pqrstuvew/
2825 /(a|bbbb\1)(a|bbbb\1)/I
2829 /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/I
2831 /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/Iis
2835 /(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /Ix
2837 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/Ii
2839 /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/I
2841 /<a[\s]+href[\s]*=[\s]* # find <a href=
2842 ([\"\'])? # find single or double quote
2843 (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching
2844 # quote, otherwise match up to next space
2847 /^(?!:) # colon disallowed at start
2849 (?: [0-9a-f]{1,4} | # 1-4 hex digits or
2850 (?(1)0 | () ) ) # if null previously matched, fail; else null
2851 : # followed by colon
2852 ){1,7} # end item; 1-7 of them required
2853 [0-9a-f]{1,4} $ # final hex number at end of string
2854 (?(1)|.) # check that there was an empty component
2857 /(?|(?<a>A)|(?<a>B))/I
2861 /(?|(?<a>A)|(?<b>B))/
2863 /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
2864 b(?<quote> (?<apostrophe>')|(?<realquote>")) )
2865 (?('quote')[a-z]+|[0-9]+)/Ix,dupnames
2872 /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/IBx,dupnames
2879 /(?<A>a) (b)(c) (?<A>d (?(R&A)$ | (?4)) )/IBx,dupnames
2906 /(\3)(\1)(a)/alt_bsux,allow_empty_class,match_unset_backref,dupnames
2909 /(\3)(\1)(a)/I,alt_bsux,allow_empty_class,match_unset_backref,dupnames
2916 /i(?(DEFINE)(?<s>a))/I
2933 /^(ab(c\1)d|x){2}$/B
2936 /^(?&t)*+(?(DEFINE)(?<t>.))$/B
2938 /^(?&t)*(?(DEFINE)(?<t>.))$/B
2940 # This one is here because Perl gives the match as "b" rather than "ab". I
2941 # believe this to be a Perl bug.
2946 /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
2956 # This should, and does, fail. In Perl, it does not, which I think is a
2957 # bug because replacing the B in the pattern by (B|D) does make it fail.
2958 # Turning off Perl's optimization by inserting (??{""}) also makes it fail.
2960 /A(*COMMIT)B/aftertext,mark
2964 # These should be different, but in Perl they are not, which I think
2967 /A(*THEN)B|A(*THEN)C/mark
2970 /A(*PRUNE)B|A(*PRUNE)C/mark
2974 # Mark names can be duplicated. Perl doesn't give a mark for this one,
2975 # though PCRE2 does.
2977 /^A(*:A)B|^X(*:A)Y/mark
2981 # COMMIT at the start of a pattern should be the same as an anchor. Perl
2982 # optimizations defeat this. So does the PCRE2 optimization unless we disable
2988 /(*COMMIT)ABC/no_start_optimize
2992 /^(ab (c+(*THEN)cd) | xyz)/x
2996 /^(ab (c+(*PRUNE)cd) | xyz)/x
3000 /^(ab (c+(*FAIL)cd) | xyz)/x
3004 # Perl gets some of these wrong
3115 /(?P<abn>(?P=abn)xxx)/B
3119 /(?P<abn>(?P=abn)(?<badstufxxx)/B
3121 /(?P<abn>(?P=axn)xxx)/B
3123 /(?P<abn>(?P=axn)xxx)(?<axn>yy)/B
3125 # These tests are here because Perl gets the first one wrong.
3137 /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
3214 # Perl doesn't get these right IMO (the 3rd is PCRE2-specific)
3216 /(?1)(?:(b(*ACCEPT))){0}/
3219 /(?1)(?:(b(*ACCEPT))){0}c/
3224 /(?1)(?:((*ACCEPT))){0}c/
3228 /^.*?(?(?=a)a|b(*THEN)c)/
3235 /^.*?(?(?=a)a(*THEN)b|c)/
3239 /^.*?(?(?=a)a(*THEN)b)c/
3247 /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
3250 /^.*?(a(*THEN)b|z)c/
3253 /^.*?(z|a(*THEN)b)c/
3256 # These are here because they are not Perl-compatible; the studying means the
3259 /(*MARK:A)(*SKIP:B)(C|X)/mark
3264 /(*:A)A+(*SKIP:A)(B|Z)/mark
3268 # ----------------------------
3274 /(?1)c(?(DEFINE)((*ACCEPT)b))/
3283 /(?:(?>(a)))+a%/allaftertext
3286 /(a)b|ac/allaftertext
3289 /(a)(b)x|abc/allaftertext
3300 /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/I
3302 /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/I
3304 /(a(?2)|b)(b(?1)|a)(?1)(?2)/I
3308 /(?:(foo)|(bar)|(baz))X/allcaptures
3333 /(?(DEFINE)(a))?b(?1)/B
3335 /^(?=(?1))?[az]([abc])d/B
3343 /^(a(*:A)(d|e(*:B))z|aeq)/auto_callout
3352 /\btype\b\W*?\btext\b\W*?\bjavascript\b/I
3354 /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/I
3356 /a(*SKIP)c|b(*ACCEPT)|/I,aftertext
3359 /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/I
3362 'a*(*ACCEPT)b'aftertext
3363 abc\=notempty_atstart
3364 bbb\=notempty_atstart
3368 /(*ACCEPT)a/I,aftertext
3371 /z(*ACCEPT)a/I,aftertext
3374 /^(?>a+)(?>(z+))\w/B
3385 /(.)((?(1)c|a)|a(?2))/
3389 /(?P<abn>(?P=abn)xxx)/B
3393 /^a\x41z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
3398 /^a[m\x41]z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
3401 /^a\x1z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
3404 /^a\u0041z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
3409 /^a[m\u0041]z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
3412 /^a\u041z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
3417 /^a\U0041z/alt_bsux,allow_empty_class,match_unset_backref,dupnames
3433 /(a)(?2){0,1999}?(b)/
3435 /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
3437 # This test, with something more complicated than individual letters, causes
3438 # different behaviour in Perl. Perhaps it disables some optimization; no tag is
3439 # passed back for the failures, whereas in PCRE2 there is a tag.
3441 /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/x,mark
3450 # Perl doesn't give marks for these, though it does if the alternatives are
3451 # replaced by single letters.
3453 /(b|q)(*:m)f|a(*:n)w/mark
3458 /(q|b)(*:m)f|a(*:n)w/mark
3463 # After a partial match, the behaviour is as for a failure.
3468 # These are here because Perl doesn't return a mark, except for the first.
3470 /(?=(*:x))(q|)/aftertext,mark
3473 /(?=(*:x))((*:y)q|)/aftertext,mark
3476 /(?=(*:x))(?:(*:y)q|)/aftertext,mark
3479 /(?=(*:x))(?>(*:y)q|)/aftertext,mark
3482 /(?=a(*:x))(?!a(*:y)c)/aftertext,mark
3485 /(?=a(*:x))(?=a(*:y)c|)/aftertext,mark
3592 /^(a$|a\r)/newline=crlf
3596 /^(a$|a\r)/m,newline=crlf
3604 /.{2,3}/newline=crlf
3612 /.{2,3}?/newline=crlf
3620 "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
3623 # These are all run as real matches in test 1; here we are just checking the
3624 # settings of the anchored and startline bits.
3644 /(?>.*?)(?<=(abcd)|(wxyz))/I
3646 /(?>.*)(?<=(abcd)|(wxyz))/I
3658 /(?:(a)+(?C1)bb|aa(?C2)b)/
3659 aab\=callout_capture
3661 /(?:(a)++(?C1)bb|aa(?C2)b)/
3662 aab\=callout_capture
3664 /(?:(?>(a))(?C1)bb|aa(?C2)b)/
3665 aab\=callout_capture
3667 /(?:(?1)(?C1)x|ab(?C2))((a)){0}/
3668 aab\=callout_capture
3670 /(?1)(?C1)((a)(?C2)){0}/
3671 aab\=callout_capture
3673 /(?:(a)+(?C1)bb|aa(?C2)b)++/
3674 aab\=callout_capture
3675 aab\=callout_capture,ovector=1
3681 /(?<=123)(*MARK:xx)abc/mark
3689 /^(?(?=a)aa|bb)/auto_callout
3692 /(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
3695 # Perl seems to have a bug with this one.
3697 /aaaaa(*COMMIT)(*PRUNE)b|a+c/
3700 # Here are some that Perl treats differently because of the way it handles
3701 # backtracking verbs.
3703 /(?!a(*COMMIT)b)ac|ad/
3707 /^(?!a(*THEN)b|ac)../
3715 /\A.*?(?:a|b(*THEN)c)/
3718 /\A.*?(?:a|b(*THEN)c)++/
3721 /\A.*?(?:a|b(*THEN)c|d)/
3724 /(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
3727 /\A.*?(a|b(*THEN)c)/
3730 /^(A(*THEN)B|A(*THEN)D)/
3733 /(?!b(*THEN)a)bn|bnn/
3736 /(?(?=b(*SKIP)a)bn|bnn)/
3739 /(?=b(*THEN)a|)bn|bnn/
3742 # This test causes a segfault with Perl 5.18.0
3747 /(?|(?<n>f)|(?<n>b))/I,dupnames
3749 /(?<a>abc)(?<a>z)\k<a>()/IB,dupnames
3755 # A complete set of tests for auto-possessification of character types, but
3756 # omitting \C because it might be disabled (it has its own tests).
3758 /\D+\D \D+\d \D+\S \D+\s \D+\W \D+\w \D+. \D+\R \D+\H \D+\h \D+\V \D+\v \D+\Z \D+\z \D+$/Bx
3760 /\d+\D \d+\d \d+\S \d+\s \d+\W \d+\w \d+. \d+\R \d+\H \d+\h \d+\V \d+\v \d+\Z \d+\z \d+$/Bx
3762 /\S+\D \S+\d \S+\S \S+\s \S+\W \S+\w \S+. \S+\R \S+\H \S+\h \S+\V \S+\v \S+\Z \S+\z \S+$/Bx
3764 /\s+\D \s+\d \s+\S \s+\s \s+\W \s+\w \s+. \s+\R \s+\H \s+\h \s+\V \s+\v \s+\Z \s+\z \s+$/Bx
3766 /\W+\D \W+\d \W+\S \W+\s \W+\W \W+\w \W+. \W+\R \W+\H \W+\h \W+\V \W+\v \W+\Z \W+\z \W+$/Bx
3768 /\w+\D \w+\d \w+\S \w+\s \w+\W \w+\w \w+. \w+\R \w+\H \w+\h \w+\V \w+\v \w+\Z \w+\z \w+$/Bx
3770 /\R+\D \R+\d \R+\S \R+\s \R+\W \R+\w \R+. \R+\R \R+\H \R+\h \R+\V \R+\v \R+\Z \R+\z \R+$/Bx
3772 /\H+\D \H+\d \H+\S \H+\s \H+\W \H+\w \H+. \H+\R \H+\H \H+\h \H+\V \H+\v \H+\Z \H+\z \H+$/Bx
3774 /\h+\D \h+\d \h+\S \h+\s \h+\W \h+\w \h+. \h+\R \h+\H \h+\h \h+\V \h+\v \h+\Z \h+\z \h+$/Bx
3776 /\V+\D \V+\d \V+\S \V+\s \V+\W \V+\w \V+. \V+\R \V+\H \V+\h \V+\V \V+\v \V+\Z \V+\z \V+$/Bx
3778 /\v+\D \v+\d \v+\S \v+\s \v+\W \v+\w \v+. \v+\R \v+\H \v+\h \v+\V \v+\v \v+\Z \v+\z \v+$/Bx
3780 / a+\D a+\d a+\S a+\s a+\W a+\w a+. a+\R a+\H a+\h a+\V a+\v a+\Z a+\z a+$/Bx
3782 /\n+\D \n+\d \n+\S \n+\s \n+\W \n+\w \n+. \n+\R \n+\H \n+\h \n+\V \n+\v \n+\Z \n+\z \n+$/Bx
3784 / .+\D .+\d .+\S .+\s .+\W .+\w .+. .+\R .+\H .+\h .+\V .+\v .+\Z .+\z .+$/Bx
3786 / .+\D .+\d .+\S .+\s .+\W .+\w .+. .+\R .+\H .+\h .+\V .+\v .+\Z .+\z .+$/Bsx
3788 / \D+$ \d+$ \S+$ \s+$ \W+$ \w+$ \R+$ \H+$ \h+$ \V+$ \v+$ a+$ \n+$ .+$ .+$/Bmx
3792 /a+(bb|cc)a+(?:bb|cc)a+(?>bb|cc)a+(?:bb|cc)+a+(aa)a+(?:bb|aa)/B
3794 /a+(bb|cc)?#a+(?:bb|cc)??#a+(?:bb|cc)?+#a+(?:bb|cc)*#a+(bb|cc)?a#a+(?:aa)?/B
3796 /a+(?:bb)?a#a+(?:|||)#a+(?:|b)a#a+(?:|||)?a/B
3828 /\d+\s{0,5}=\s*\S?=\w{0,4}\W*/B
3830 /[a-d]{5,12}[e-z0-9]*#[^a-z]+[b-y]*a[2-7]?[^0-9a-z]+/B
3832 /[a-z]*\s#[ \t]?\S#[a-c]*\S#[C-G]+?\d#[4-8]*\D#[4-9,]*\D#[!$]{0,5}\w#[M-Xf-l]+\W#[a-c,]?\W/B
3834 /a+(aa|bb)*c#a*(bb|cc)*a#a?(bb|cc)*d#[a-f]*(g|hh)*f/B
3836 /[a-f]*(g|hh|i)*i#[a-x]{4,}(y{0,6})*y#[a-k]+(ll|mm)+n/B
3838 /[a-f]*(?>gg|hh)+#[a-f]*(?>gg|hh)?#[a-f]*(?>gg|hh)*a#[a-f]*(?>gg|hh)*h/B
3850 # End of special auto-possessive tests
3863 /[ab]++/B,no_auto_possess
3865 /[^ab]*+/B,no_auto_possess
3867 /a{4}+/B,no_auto_possess
3869 /a{4}+/Bi,no_auto_possess
3888 /(?&1abc)xx(?<1abc>y)/
3906 /(?&1abc)xx(?<1abc>y)/
3908 /(?P>1abc)xx(?<1abc>y)/
3922 /(((a\2)|(a*)\g<-1>))*a?/B
3924 # Test the ugly "start or end of word" compatibility syntax.
3926 /[[:<:]]red[[:>:]]/B
3927 little red riding hood
3935 /[a[:<:]] should give error/
3940 /abcd/newline=lf,firstline
3944 # Test stack guard external calls.
3946 /(((a)))/stackguard=1
3948 /(((a)))/stackguard=2
3950 /(((a)))/stackguard=3
3954 # End stack guard tests
3956 /^\w+(?>\s*)(?<=\w)/B
3974 # This one is here because Perl fails to match "12" for this pattern when the $
3977 /^(?(?=abc)\w{3}:|\d\d)$/
3984 # Perl gets this one wrong, giving "a" as the after text for ca and failing to
3987 /(?(?=ab)ab)/aftertext
3992 # This should test both paths for processing OP_RECURSE.
3996 aaaabcde\=ovector=100
4006 /(*NOTEMPTY_ATSTART)a*?b*?/aftertext
4010 /(?(VERSION>=10.0)yes|no)/I
4013 /(?(VERSION>=10.04)yes|no)/
4016 /(?(VERSION=8)yes){3}/BI,aftertext
4019 /(?(VERSION=8)yes|no){3}/I
4024 /(?:(?<VERSION>abc)|xyz)(?(VERSION)yes|no)/I
4031 /(?(VERSION<10)yes|no)/
4033 /(?(VERSION>10)yes|no)/
4035 /(?(VERSION>=10.0.0)yes|no)/
4037 /(?(VERSION=10.101)yes|no)/
4041 /abcd/I,no_start_optimize
4047 /(|ab)*?d/I,no_start_optimize
4051 /\k<A>*(?<A>aa)(?<A>bb)/match_unset_backref,dupnames
4054 /(((((a)))))/parens_nest_limit=2
4060 123123\=zero_terminate
4061 123abc123\=zero_terminate
4062 123abc123abc123\=zero_terminate
4074 /a(b)c(d)e/replace=X$1Y${2}Z
4077 /a(b)c(d)e/replace=X$1Y${2}Z,global
4080 /a(?<ONE>b)c(?<TWO>d)e/replace=X$ONE+${TWO}Z
4083 /a(?<ONE>b)c(?<TWO>d)e/g,replace=X$ONE+${TWO}Z
4092 /abc/replace=a${A234567890123456789_123456789012}z
4095 /abc/replace=a${A23456789012345678901234567890123}z
4101 /abc/replace=a${b+d}z
4104 /abc/replace=[10]XYZ
4115 123abc456\=replace=pqr
4119 /(?<=abc)(|def)/g,replace=<$0>
4120 123abcxyzabcdef789abcpqr
4125 /(.)(.)/replace=$2+$1
4128 /(?<A>.)(?<B>.)/replace=$B+$A
4131 /(.)(.)/g,replace=$2$1
4134 /(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=${*MARK}
4135 apple lemon blackberry
4139 /(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/replace=${*MARK} sauce,
4140 apple lemon blackberry
4142 /(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=<$*MARK>
4143 apple lemon blackberry
4147 /(*:pear)apple/g,replace=${*MARKING}
4148 apple lemon blackberry
4150 /(*:pear)apple/g,replace=${*MARK-time
4151 apple lemon blackberry
4153 /(*:pear)apple/g,replace=${*mark}
4154 apple lemon blackberry
4156 /(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=<$*MARKET>
4157 apple lemon blackberry
4159 /(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=[22]${*MARK}
4160 apple lemon blackberry
4161 apple lemon blackberry\=substitute_overflow_length
4163 /(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=[23]${*MARK}
4164 apple lemon blackberry
4167 123abc123\=replace=[9]XYZ
4168 123abc123\=substitute_overflow_length,replace=[9]XYZ
4169 123abc123\=substitute_overflow_length,replace=[6]XYZ
4170 123abc123\=substitute_overflow_length,replace=[1]XYZ
4171 123abc123\=substitute_overflow_length,replace=[0]XYZ
4174 123abc123\=replace=[9]x$1z
4175 123abc123\=substitute_overflow_length,replace=[9]x$1z
4176 123abc123\=substitute_overflow_length,replace=[6]x$1z
4177 123abc123\=substitute_overflow_length,replace=[1]x$1z
4178 123abc123\=substitute_overflow_length,replace=[0]x$1z
4180 "((?=(?(?=(?(?=(?(?=()))))))))"
4183 "(?(?=)==)(((((((((?=)))))))))"
4188 XcX\=ovector=2,get=1,get=2,get=3,get=4,getall
4195 /(?<A>a)|(?<A>b)/dupnames
4196 a\=ovector=1,copy=A,get=A,get=2
4197 a\=ovector=2,copy=A,get=A,get=2
4198 b\=ovector=2,copy=A,get=A,get=2
4201 abc\=ph,copy=0,copy=1,getall
4205 /^abc/info,no_dotstar_anchor
4207 /.*\d/info,auto_callout
4211 /.*\d/info,no_dotstar_anchor,auto_callout
4217 /.*\d/dotall,no_dotstar_anchor,info
4219 /(*NO_DOTSTAR_ANCHOR)(?s).*\d/info
4221 '^(?:(a)|b)(?(1)A|B)'
4225 '^(?:(?<AA>a)|b)(?(<AA>)A|B)'
4229 '^(?<AA>)(?:(?<AA>a)|b)(?(<AA>)A|B)'dupnames
4234 '^(?:(?<AA>X)|)(?:(?<AA>a)|b)\k{AA}'dupnames
4239 /(?<N111>(?J)(?<N111>1(111111)11|)1|1|)(?(<N111>)1)/
4241 /(?<N>(?J)(?<N>))(?-J)\k<N>/
4243 # Quantifiers are not allowed on condition assertions, but are otherwise
4248 /(?(?=0)(?=00)?00765)/
4251 /(?(?=0)(?=00)?00765|(?!3).56)/
4265 # These two pattern showeds up compile-time bugs
4271 # Callouts with string arguments
4279 /a(?C"a"bcde(?C"b")xyz/
4283 /ab(?C" any text with spaces ")cde/B
4294 abcdef\=callout_capture
4296 /^a(b)c(?C{AB})def/B
4297 abcdef\=callout_capture
4299 /(?C`a``b`)(?C'a''b')(?C"a""b")(?C^a^^b^)(?C%a%%b%)(?C#a##b#)(?C$a$$b$)(?C{a}}b})/B,callout_info
4301 /(?:a(?C`code`)){3}/B
4303 /^(?(?C25)(?=abc)abcd|xyz)/B,callout_info
4307 /^(?(?C$abc$)(?=abc)abcd|xyz)/B
4311 /^ab(?C'first')cd(?C"second")ef/
4314 /(?:a(?C`code`)){3}X/
4317 # Binary zero in callout string
4318 # a ( ? C ' x z ' ) b
4319 / 61 28 3f 43 27 78 00 7a 27 29 62/hex,callout_info
4329 # JIT gives a different error message for the infinite recursion
4331 "(*NO_JIT)((?2)+)((?1)){"
4334 # Perl fails to diagnose the absence of an assertion
4342 /(?<=\bABQ(3(?-7)))/
4344 /(?<=\bABQ(3(?+7)))/
4346 ";(?<=()((?3))((?2)))"
4348 # Perl loops on this (PCRE2 used to!)
4350 /(?<=\Ka)/g,aftertext
4353 /(?<=\Ka)/altglobal,aftertext
4356 /((?2){73}(?2))((?1))/info
4368 /^/gm,alt_circumflex
4371 /((((((((x))))))))\81/
4374 /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((x))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))\80/
4382 /(?x:((?'a')) # comment (with parentheses) and | vertical
4383 (?-x:#not a comment (?'b')) # this is a comment ()
4384 (?'c')) # not a comment (?'d')/info
4386 /(?|(?'a')(2)(?'b')|(?'a')(?'a')(3))/I,dupnames
4390 # These are some patterns that used to cause buffer overflows or other errors
4393 /.((?2)(?R)|\1|$)()/B
4395 /.((?3)(?R)()(?2)|\1|$)()/B
4397 /(\9*+(?2);\3++()2|)++{/
4399 /\V\x85\9*+((?2)\3++()2)*:2/
4401 /(((?(R)){0,2}) (?'x'((?'R')((?'R')))))/dupnames
4403 /(((?(X)){0,2}) (?'x'((?'X')((?'X')))))/dupnames
4405 /(((?(R)){0,2}) (?'x'((?'X')((?'R')))))/
4407 "(?J)(?'d'(?'d'\g{d}))"
4409 "(?=!((?2)(?))({8(?<=(?1){29}8bbbb\x16\xd\xc6^($(\xa9H4){4}h}?1)B))\x15')"
4413 "(?J:(?|(?'R')(\k'R')|((?'R'))))"
4415 /(?<=|(\,\$(?73591620449005828816)\xa8.{7}){6}\x09)/
4417 /^(?:(?(1)x|)+)+$()/B
4432 /((?x)(?#))#(?'abc')/I
4436 /[[:\\](?'abc')[a:]/I
4438 "[[[.\xe8Nq\xffq\xff\xe0\x2|||::Nq\xffq\xff\xe0\x6\x2|||::[[[:[::::::[[[[[::::::::[:[[[:[:::[[[[[[[[[[[[:::::::::::::::::[[.\xe8Nq\xffq\xff\xe0\x2|||::Nq\xffq\xff\xe0\x6\x2|||::[[[:[::::::[[[[[::::::::[:[[[:[:::[[[[[[[[[[[[[[:::E[[[:[:[[:[:::[[:::E[[[:[:[[:'[:::::E[[[:[::::::[[[:[[[[[[[::E[[[:[::::::[[[:[[[[[[[[:[[::[::::[[:::::::[[:[[[[[[[:[[::[:[[:[~"
4448 /(?(?C{\Q})(?!(?'abc')))/I
4450 /(?1){3918}(((((0(\k'R'))))(?J)(?'R'(?'R'\3){99})))/I
4452 /(?|(aaa)|(b))\g{1}/I
4454 /(?|(aaa)|(b))(?1)/I
4458 /(?|(?'a'aaa)|(?'a'b))\k'a'/I
4460 /(?|(?'a'aaa)|(?'a'b))(?'a'cccc)\k'a'/I,dupnames
4477 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/
4495 /((?(R8000000000)))/
4497 /0(?0)|(1)(*THEN)(*SKIP:0)(*FAIL)/
4503 /(*LIMIT_MATCH=)abc/
4505 /(*CRLF)(*LIMIT_MATCH=)abc/
4507 /(?:ab)?(?:ab)(?:ab)/
4513 /((*MARK:A))++a(*SKIP:B)b/
4517 /(*MARK:a\zb)z/alt_verbnames
4521 /(*:ab\t(d\)c)xxx/alt_verbnames,mark
4524 /(*:A\Qxx)x\EB)x/alt_verbnames,mark
4527 /(*:A\ExxxB)x/alt_verbnames,mark
4530 /(*: A \ and #comment
4531 \ B)x/x,alt_verbnames,mark
4534 /(*: A \ and #comment
4535 \ B)x/alt_verbnames,mark
4538 /(*: A \ and #comment
4542 /(*: A \ and #comment
4547 B)x/alt_verbnames,mark
4550 /(*:abc\Qpqr)/alt_verbnames
4552 /abc/use_offset_limit
4553 1234abcde\=offset_limit=100
4554 1234abcde\=offset_limit=9
4555 1234abcde\=offset_limit=4
4556 1234abcde\=offset_limit=4,offset=4
4558 1234abcde\=offset_limit=4,offset=5
4559 1234abcde\=offset_limit=3
4561 /(?<=abc)/use_offset_limit
4562 1234abc\=offset_limit=7
4564 1234abc\=offset_limit=6
4566 /A/g,replace=-,use_offset_limit
4567 XAXAXAXAXA\=offset_limit=4
4571 1234abcde\=offset_limit=4
4573 /^\w/m,use_offset_limit
4574 \n..\naa\=offset_limit=3
4575 \n..\naa\=offset_limit=4
4580 abcd\=null_context,find_limits
4581 abcd\=allusedtext,startchar
4583 /abcd/replace=w\rx\x82y\o{333}z(\Q12\$34$$\x34\E5$$),substitute_extended
4586 /a(bc)(DE)/replace=a\u$1\U$1\E$1\l$2\L$2\Eab\Uab\LYZ\EDone,substitute_extended
4589 /abcd/replace=xy\kz,substitute_extended
4592 /a(?:(b)|(c))/substitute_extended,replace=X${1:+1:-1}X${2:+2:-2}
4595 ab\=replace=${1:+$1\:$1:$2}
4596 ac\=replace=${1:+$1\:$1:$2}
4598 /a(?:(b)|(c))/substitute_extended,replace=X${1:-1:-1}X${2:-2:-2}
4602 /(a)/substitute_extended,replace=>${1:+\Q$1:{}$$\E+\U$1}<
4605 /X(b)Y/substitute_extended
4606 XbY\=replace=x${1:+$1\U$1}y
4607 XbY\=replace=\Ux${1:+$1$1}y
4609 /a/substitute_extended,replace=${*MARK:+a:b}
4612 /(abcd)/replace=${1:+xy\kz},substitute_extended
4616 abcd\=replace=${1:+xy\kz},substitute_extended
4618 /abcd/substitute_extended,replace=>$1<
4621 /abcd/substitute_extended,replace=>xxx${xyz}<<<
4624 /(?J)(?:(?<A>a)|(?<A>b))/replace=<$A>
4630 /(a)|(b)/replace=<$1>
4634 /(aa)(BB)/substitute_extended,replace=\U$1\L$2\E$1..\U$1\l$2$1
4637 /^(o(\1{72}{\"{\\{00000059079}\d*){74}}){19}/I
4641 /((p(?'K/no_auto_capture
4643 /abc/replace=A$3123456789Z
4646 /(?<!a{65535}a{5})x/I
4653 /(?<=\K.)/g,replace=-
4656 /(?'abcdefghijklmnopqrstuvwxyzABCDEFG'toolong)/
4658 /(?'abcdefghijklmnopqrstuvwxyzABCDEF'justright)/
4660 # These two use zero-termination
4661 /abcd/max_pattern_length=3
4663 /abc/max_pattern_length=3
4665 # These two, being hex, pass the length
4666 /abcdefab/hex,max_pattern_length=3
4668 /abcdef/hex,max_pattern_length=3
4670 # These patterns used to take a long time to compile
4673 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
4674 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
4675 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))"xI
4678 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
4679 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
4680 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
4684 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
4685 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
4686 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))"xI
4689 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
4690 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
4691 ((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))
4694 # Test the use of malloc for caching group information when there are more
4695 # groups than fit into the on-stack workspace.
4697 /\[()]{1024}/I,expand
4699 # Test minlength capped at 65535
4701 /(A{65000})\1{65000}/I
4703 # Test group scans when numbers are not unique
4713 # Test CRLF handling in empty string substitutions
4715 /^$/gm,newline=anycrlf,replace=-
4718 /^$/gm,newline=crlf,replace=-
4721 /^$/gm,newline=any,replace=-
4724 "(*ANYCRLF)(?m)^(.*[^0-9\r\n].*|)$"g,replace=NaN
4725 15\r\nfoo\r\n20\r\nbar\r\nbaz\r\n\r\n20
4727 /a[[:punct:]b]/bincode
4729 /a[b[:punct:]]/bincode
4733 /L(?#(|++<!(2)?/B,no_auto_possess
4735 /L(?#(|++<!(2)?/B,auto_callout
4737 /L(?#(|++<!(2)?/B,no_auto_possess,auto_callout
4739 /(A*)\E+/B,auto_callout
4741 /()\Q\E*]/B,auto_callout
4744 /\x8a+f|;T?(*:;.'?`(\xeap ){![^()!y*''C*(?';]{1;(\x08)/B,alt_verbnames,dupnames,extended
4746 # Tests for NULL characters in comments and verb "names" and callouts
4749 /41 23 42 00 43 0a 5a/Bx,hex
4752 /41 2b 23 42 00 43 0a 2b/Bx,hex
4754 # /A(*:B\x00W#X\00Y\x0aC)Z/
4755 /41 28 2a 3a 42 00 57 23 58 00 59 0a 43 29 5a/Bx,hex,alt_verbnames
4757 # /A(*:B\x00W#X\00Y\x0aC)Z/
4758 /41 28 2a 3a 42 00 57 23 58 00 59 0a 43 29 5a/Bx,hex
4761 /41 28 3f 43 7b 58 00 59 7d 29 42/B,hex
4764 /41 28 3f 23 7b 00 7d 29 42/B,hex
4766 # Tests for leading comment in extended patterns
4772 /0b 28 3f 2d 78 29 3a/hex,extended
4777 /(8(*:6^\x09x\xa6l\)6!|\xd0:[^:|)\x09d\Z\d{85*m(?'(?<1!)*\W[*\xff]!!h\w]*\xbe;/alt_bsux,alt_verbnames,allow_empty_class,dollar_endonly,extended,multiline,never_utf,no_dotstar_anchor,no_start_optimize
4779 /a|(b)c/replace=>$1<,substitute_unset_empty
4785 cat\=replace=>$1<,substitute_unset_empty
4786 xbcom\=replace=>$1<,substitute_unset_empty
4788 /a|(b)c/substitute_extended
4789 cat\=replace=>${2:-xx}<
4790 cat\=replace=>${2:-xx}<,substitute_unknown_unset
4791 cat\=replace=>${X:-xx}<,substitute_unknown_unset
4793 /a|(?'X'b)c/replace=>$X<,substitute_unset_empty
4797 /a|(?'X'b)c/replace=>$Y<,substitute_unset_empty
4799 cat\=substitute_unknown_unset
4800 cat\=substitute_unknown_unset,-substitute_unset_empty
4802 /a|(b)c/replace=>$2<,substitute_unset_empty
4804 cat\=substitute_unknown_unset
4805 cat\=substitute_unknown_unset,-substitute_unset_empty
4807 /()()()/use_offset_limit
4808 \=ovector=11000000000
4809 \=callout_fail=11000000000
4810 \=callout_fail=1:11000000000
4811 \=callout_data=11000000000
4812 \=callout_data=-11000000000
4813 \=offset_limit=1100000000000000000000
4816 /(*MARK:A\x00b)/mark
4819 /(*MARK:A\x00b)/mark,alt_verbnames
4822 /"(*MARK:A" 00 "b)"/mark,hex
4825 /"(*MARK:A" 00 "b)"/mark,hex,alt_verbnames
4842 \[abc]{10000000000000000000000000000}
4845 /\[AB]{6000000000000000000000}/expand
4847 # Hex uses pattern length, not zero-terminated. This tests for overrunning
4848 # the given length of a pattern.
4858 # These tests are here because Perl never allows a back reference in a
4859 # lookbehind. PCRE2 supports some limited cases.
4867 /(?|([ab]))...(?<=\1)z/
4869 /([ab])(\1)...(?<=\2)z/
4874 /(?<A>[ab])...(?<=\k'A')z/
4880 /(?<A>[ab])...(?<=\k'A')(?<A>)z/dupnames
4882 # Perl does not support \g+n
4887 /ab(?C1)c/auto_callout
4890 /'ab(?C1)c'/hex,auto_callout
4893 # Perl accepts these, but gives a warning. We can't warn, so give an error.
4904 /(?<RA>abc)(?(R)xyz)/B
4906 /(?<R>abc)(?(R)xyz)/B
4914 /(?<!|!|!||||||(?<!)||(?<!)!|!||(?<!)!|!(?<!)!|!|!|!||||!!|<!)!|!||||!|/
4916 /{2,2{2,2/use_length
4918 /.>*?\g'0/use_length
4922 /{
\84Í
\84ÍÍ
\84Í{'{22{2{{2{'{22{
\12{22{2{'{22{2{{2{{222{{2{'{22{2{22{2{'{22{2{{2{'{22{2{22{2{'{'{22{2{22{2{'{22{2{{2{'{22{2{22{2{'{222{2Ä
\84Í
\84ÍÍ
\84Í{'{22{2{{2{'{22{
\12{11{2{'{22{2{{2{{'{22{2{{2{'{22{
\12{22{1{'{22{2{{2{{222{{2{'{22{2{22{2{'{/auto_callout
4925 \=get=i00000000000000000000000000000000
4926 \=get=i2345678901234567890123456789012,get=i1245678901234567890123456789012
4930 /(?(?(?(?(?(?))))))/
4932 /(?<=(?1))((?s))/anchored
4936 %(*:
\1e(:
\11(
\1fsvvvvvvvvvv:]*[ Z!*;[]*[^[]*!^[
\19+.+{{2,7}' _\\\\\\\\\\\\\)?.:.. *w////\\\Q\\\\\\\\\\\\\\\T\\\\\+/?/////'+\\\EEE?/////'+/*+/[^K]?]//(w)%never_backslash_c,alt_verbnames,auto_callout
4941 /(\x0e00\000000\xc)/replace=\P,substitute_extended
4947 /(?<=\G.)/g,replace=+
4950 ".+\QX\E+"B,no_auto_possess
4952 ".+\QX\E+"B,auto_callout,no_auto_possess
4954 # This one is here because Perl gives an 'unmatched )' error which goes away
4955 # if one of the \) sequences is removed - which is weird. PCRE finds it too
4956 # complicated to find a minimum matching length.
4958 "()X|((((((((()))))))((((())))))\2())((((((\2\2)))\2)(\22((((\2\2)2))\2)))(2\ZZZ)+:)Z^|91ZiZZnter(ZZ |91Z(ZZ ZZ(\r2Z( or#(\Z2(Z\Z(\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)2))\2Z+:)Z|91Z(ZZ ZZ(\r2Z( or#(\Z2(Z\Z((Z*(\2(Z\':))\0)i|||||||||||||||loZ\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)2))\2Z)))int \)\0nte!rnal errpr\2\\21r(2\ZZZ)+:)Z!|91Z(ZZ ZZ(\r2Z( or#(\Z2(Z\Z(\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)2))\2Z)))int \)\0(2\ZZZ)+:)Z^|91ZiZZnter(ZZ |91Z(ZZ ZZ(\r2Z( or#(\Z2(Z\Z(\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)2))\2Z)))int \)\0(2\ZZZ)+:)Z^)))int \)\0(2\ZZZ)+:)Z^|91ZiZZnter(ZZernZal ZZ(\r2Z( or#(\Z2(Z\Z(\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)2))\2Z)))int \))\ZZ(\r2Z( or#(\Z2(Z\Z(\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)))\2))))((((((\2\2))))))"I
4960 # This checks that new code for handling groups that may match an empty string
4961 # works on a very large number of alternatives. This pattern used to provoke a
4962 # complaint that it was too complicated.
4964 /(?:\[A|B|C|D|E|F|G|H|I|J|]{200}Z)/expand
4966 # This one used to compile rubbish instead of a compile error, and then
4967 # behave unpredictably at match time.
4969 /.+(?(?C'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'))?!XXXX.=X/
4970 .+(?(?C'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'))?!XXXX.=X
4972 /[:[:alnum:]-[[a:lnum:]+/
4974 /((?(?C'')\QX\E(?!((?(?C'')(?!X=X));=)r*X=X));=)/
4976 /((?(?C'')\Q\E(?!((?(?C'')(?!X=X));=)r*X=X));=)/
4979 abcd\=callout_error=255:2
4985 /Á\x00\x00\x00
\17\9a(\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\x00k\d+\x00â
\80\8e\x00\x00\x00\x00\x00\2*\x00\x00\1*.){36}int^\x00\x00
\bÿÿ\x00
\9a(\1{50779}?)J\w2/I
4989 /(?<a>a)(?<b>b)\g{b}\g{a}\g{a}\g{a}\g{a}(?<a>xx)(?<b>zz)/I,dupnames
4992 \=ovector=7777777777
4994 # This is here because Perl matches, even though a COMMIT is encountered
4995 # outside of the recursion.
4997 /(?1)(A(*COMMIT)|B)D/
5004 # This test differs from Perl for the first subject. Perl ends up with
5005 # $1 set to 'B'; PCRE2 has it unset (which I think is right).
5008 (?:A| (?:B|B(*ACCEPT)) (?<=(.)) D)
5014 # The first of these, when run by Perl, gives the mark 'aa', which is wrong.
5016 '(?>a(*:aa))b|ac' mark
5019 '(?:a(*:aa))b|ac' mark
5028 /(?<!\1((?U)1((?U))))(*F)/never_backslash_c,alt_bsux,anchored,extended
5033 abcdabcd\=callout_capture
5035 # Perl matches this one, but PCRE does not because (*ACCEPT) clears out any
5036 # pending backtracks in the recursion.
5038 /^ (?(DEFINE) (..(*ACCEPT)|...) ) (?1)$/x
5042 # Perl gives no match for this one
5044 /(a(*MARK:m)(*ACCEPT)){0}(?1)/mark
5057 xyzabcdef\=endanchored
5059 xyzabc\=ps,endanchored
5061 /abc(*ACCEPT)d/endanchored
5066 /abc|bcd/endanchored
5071 /a(*ACCEPT)x|aa/endanchored
5074 # Check auto-anchoring when there is a group that is never obeyed at
5075 # the start of a branch.
5077 /(?(DEFINE)(a))^bc/I
5081 # This should be anchored, as the condition is always false and there is
5082 # no alternative branch.
5084 /(?(VERSION>=999)yes)^bc/I
5086 # This should not be anchored.
5088 /(?(VERSION>=999)yes|no)^bc/I
5090 /(*LIMIT_HEAP=0)xxx/I
5092 /\d{0,3}(*:abc)(?C1)xxx/callout_info
5094 # ----------------------------------------------------------------------
5096 # These are a whole pile of tests that touch lines of code that are not
5097 # used by any other tests (at least when these were created).
5099 /^a+?x/i,no_start_optimize,no_auto_possess
5103 /^[^a]{3,}?x/i,no_start_optimize,no_auto_possess
5108 /^X\S/no_start_optimize,no_auto_possess
5112 /^X\W/no_start_optimize,no_auto_possess
5116 /^X\H/no_start_optimize,no_auto_possess
5120 /^X\h/no_start_optimize,no_auto_possess
5124 /^X\V/no_start_optimize,no_auto_possess
5128 /^X\v/no_start_optimize,no_auto_possess
5132 /^X\h/no_start_optimize,no_auto_possess
5136 /^X\V/no_start_optimize,no_auto_possess
5140 /^X\v/no_start_optimize,no_auto_possess
5144 /^X.+?/s,no_start_optimize,no_auto_possess
5148 /^X\R+?/no_start_optimize,no_auto_possess
5152 /^X\H+?/no_start_optimize,no_auto_possess
5156 /^X\h+?/no_start_optimize,no_auto_possess
5160 /^X\V+?/no_start_optimize,no_auto_possess
5165 /^X\D+?/no_start_optimize,no_auto_possess
5170 /^X\S+?/no_start_optimize,no_auto_possess
5175 /^X\W+?/no_start_optimize,no_auto_possess
5180 /^X.+?Z/no_start_optimize,no_auto_possess
5184 /(*CRLF)^X.+?Z/no_start_optimize,no_auto_possess
5188 /^X\R+?Z/no_start_optimize,no_auto_possess
5196 /(*BSR_ANYCRLF)^X\R+?Z/no_start_optimize,no_auto_possess
5204 /^X\H+?Z/no_start_optimize,no_auto_possess
5209 /^X\h+?Z/no_start_optimize,no_auto_possess
5214 /^X\V+?Z/no_start_optimize,no_auto_possess
5219 /^X\v+?Z/no_start_optimize,no_auto_possess
5224 /^X\D+?Z/no_start_optimize,no_auto_possess
5229 /^X\d+?Z/no_start_optimize,no_auto_possess
5234 /^X\S+?Z/no_start_optimize,no_auto_possess
5239 /^X\s+?Z/no_start_optimize,no_auto_possess
5244 /^X\W+?Z/no_start_optimize,no_auto_possess
5249 /^X\w+?Z/no_start_optimize,no_auto_possess
5254 /^X.{1,3}Z/s,no_start_optimize,no_auto_possess
5258 /^X\h+Z/no_start_optimize,no_auto_possess
5263 /^X\V+Z/no_start_optimize,no_auto_possess
5268 /^(X(*THEN)Y|AB){0}(?1)/
5274 ABC\=callout_error=1,no_jit
5276 /^(?!A(?C1)B)C/no_start_optimize
5277 ABC\=callout_error=1
5280 ABC\=callout_error=1
5282 # ----------------------------------------------------------------------
5288 /[a b c]/B,extended_more
5290 /[ a b c ]/B,extended_more
5292 /[a b](?xx: [ 12 ] (?-xx:[ 34 ]) )y z/B
5294 # Unsetting /x also unsets /xx
5296 /[a b](?xx: [ 12 ] (?-x:[ 34 ]) )y z/B
5300 # ----------------------------------------------------------------------
5301 # These test the dangerous PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL option.
5303 /\j\x{z}\o{82}\L\uabcd\u\U\g{\g/B,\bad_escape_is_literal
5305 /\N{\c/IB,bad_escape_is_literal
5307 /[\j\x{z}\o\gA-\Nb-\g]/B,bad_escape_is_literal
5309 /[Q-\N]/B,bad_escape_is_literal
5311 # ----------------------------------------------------------------------
5316 /a\b(c/literal,caseless
5320 /a\b(c/literal,firstline
5325 /a\b?c/literal,use_offset_limit
5326 XXXXa\\b?c\=offset_limit=4
5328 XXXXa\\b?c\=offset_limit=3
5330 /a\b(c/literal,anchored,endanchored
5339 /a\b(c/literal,auto_callout,no_start_optimize
5342 /a\b(c/literal,auto_callout
5348 /cat|dog/I,match_word
5355 /(cat)|dog/I,match_line,literal
5363 /a whole line/match_line,multiline
5364 Rhubarb \na whole line\n custard
5368 # Perl gets this wrong, failing to capture 'b' in group 1.
5373 # And again here, for the "babc" subject string.
5385 /[[:digit:]-[:print:]]/
5393 # Perl gets the second of these wrong, giving no match.
5403 # JIT does not support callout_extra
5405 /(*NO_JIT)(a+)b/auto_callout,no_start_optimize,no_auto_possess
5409 /(*NO_JIT)a+(?C'XXX')b/no_start_optimize,no_auto_possess
5419 /\x{0a}abc/firstline,newline=crlf
5427 # These tests are matched in test 1 as they are Perl compatible. Here we are
5428 # looking at what does and does not get auto-possessified.
5430 /(?(DEFINE)(?<optional_a>a?))^(?&optional_a)a$/B
5432 /(?(DEFINE)(?<optional_a>a?)X)^(?&optional_a)a$/B
5446 # Perl behaves differently with these when optimization is turned off
5448 /a(*PRUNE:X)bc|qq/mark,no_start_optimize
5452 /a(*THEN:X)bc|qq/mark,no_start_optimize
5477 /(?(1)^())+b/I,aftertext
5480 /(?(1)^()|^)+b/I,aftertext
5485 /(?(1)^()|^)*b/I,aftertext
5490 /(?(1)^())+b/I,aftertext
5493 /(?(1)^a()|^a)+b/I,aftertext
5498 /(?(1)^|^(a))+b/I,aftertext
5503 /(?(1)^a()|^a)*b/I,aftertext