1*22dc650dSSadaf Ebrahimi# This set of tests is not Perl-compatible. It checks on special features 2*22dc650dSSadaf Ebrahimi# of PCRE2's API, error diagnostics, and the compiled code of some patterns. 3*22dc650dSSadaf Ebrahimi# It also checks the non-Perl syntax that PCRE2 supports (Python, .NET, 4*22dc650dSSadaf Ebrahimi# Oniguruma). There are also some tests where PCRE2 and Perl differ, 5*22dc650dSSadaf Ebrahimi# either because PCRE2 can't be compatible, or there is a possible Perl 6*22dc650dSSadaf Ebrahimi# bug. 7*22dc650dSSadaf Ebrahimi 8*22dc650dSSadaf Ebrahimi# NOTE: This is a non-UTF set of tests. When UTF support is needed, use 9*22dc650dSSadaf Ebrahimi# test 5. 10*22dc650dSSadaf Ebrahimi 11*22dc650dSSadaf Ebrahimi#forbid_utf 12*22dc650dSSadaf Ebrahimi#newline_default lf any anycrlf 13*22dc650dSSadaf Ebrahimi 14*22dc650dSSadaf Ebrahimi# Test binary zeroes in the pattern 15*22dc650dSSadaf Ebrahimi 16*22dc650dSSadaf Ebrahimi# /a\0B/ where 0 is a binary zero 17*22dc650dSSadaf Ebrahimi/61 5c 00 62/B,hex 18*22dc650dSSadaf Ebrahimi a\x{0}b 19*22dc650dSSadaf Ebrahimi 20*22dc650dSSadaf Ebrahimi# /a0b/ where 0 is a binary zero 21*22dc650dSSadaf Ebrahimi/61 00 62/B,hex 22*22dc650dSSadaf Ebrahimi a\x{0}b 23*22dc650dSSadaf Ebrahimi 24*22dc650dSSadaf Ebrahimi# /(?#B0C)DE/ where 0 is a binary zero 25*22dc650dSSadaf Ebrahimi/28 3f 23 42 00 43 29 44 45/B,hex 26*22dc650dSSadaf Ebrahimi DE 27*22dc650dSSadaf Ebrahimi 28*22dc650dSSadaf Ebrahimi/(a)b|/I 29*22dc650dSSadaf Ebrahimi 30*22dc650dSSadaf Ebrahimi/abc/I 31*22dc650dSSadaf Ebrahimi abc 32*22dc650dSSadaf Ebrahimi defabc 33*22dc650dSSadaf Ebrahimi abc\=anchored 34*22dc650dSSadaf Ebrahimi\= Expect no match 35*22dc650dSSadaf Ebrahimi defabc\=anchored 36*22dc650dSSadaf Ebrahimi ABC 37*22dc650dSSadaf Ebrahimi 38*22dc650dSSadaf Ebrahimi/^abc/I 39*22dc650dSSadaf Ebrahimi abc 40*22dc650dSSadaf Ebrahimi abc\=anchored 41*22dc650dSSadaf Ebrahimi\= Expect no match 42*22dc650dSSadaf Ebrahimi defabc 43*22dc650dSSadaf Ebrahimi defabc\=anchored 44*22dc650dSSadaf Ebrahimi 45*22dc650dSSadaf Ebrahimi/a+bc/I 46*22dc650dSSadaf Ebrahimi 47*22dc650dSSadaf Ebrahimi/a*bc/I 48*22dc650dSSadaf Ebrahimi 49*22dc650dSSadaf Ebrahimi/a{3}bc/I 50*22dc650dSSadaf Ebrahimi 51*22dc650dSSadaf Ebrahimi/(abc|a+z)/I 52*22dc650dSSadaf Ebrahimi 53*22dc650dSSadaf Ebrahimi/^abc$/I 54*22dc650dSSadaf Ebrahimi abc 55*22dc650dSSadaf Ebrahimi\= Expect no match 56*22dc650dSSadaf Ebrahimi def\nabc 57*22dc650dSSadaf Ebrahimi 58*22dc650dSSadaf Ebrahimi/ab\idef/ 59*22dc650dSSadaf Ebrahimi 60*22dc650dSSadaf Ebrahimi/(?X)ab\idef/ 61*22dc650dSSadaf Ebrahimi 62*22dc650dSSadaf Ebrahimi/x{5,4}/ 63*22dc650dSSadaf Ebrahimi 64*22dc650dSSadaf Ebrahimi/z{65536}/ 65*22dc650dSSadaf Ebrahimi 66*22dc650dSSadaf Ebrahimi/[abcd/ 67*22dc650dSSadaf Ebrahimi 68*22dc650dSSadaf Ebrahimi/[\B]/B 69*22dc650dSSadaf Ebrahimi 70*22dc650dSSadaf Ebrahimi/[\R]/B 71*22dc650dSSadaf Ebrahimi 72*22dc650dSSadaf Ebrahimi/[\X]/B 73*22dc650dSSadaf Ebrahimi 74*22dc650dSSadaf Ebrahimi/[z-a]/ 75*22dc650dSSadaf Ebrahimi 76*22dc650dSSadaf Ebrahimi/^*/ 77*22dc650dSSadaf Ebrahimi 78*22dc650dSSadaf Ebrahimi/(abc/ 79*22dc650dSSadaf Ebrahimi 80*22dc650dSSadaf Ebrahimi/(?# abc/ 81*22dc650dSSadaf Ebrahimi 82*22dc650dSSadaf Ebrahimi/(?z)abc/ 83*22dc650dSSadaf Ebrahimi 84*22dc650dSSadaf Ebrahimi/.*b/I 85*22dc650dSSadaf Ebrahimi 86*22dc650dSSadaf Ebrahimi/.*?b/I 87*22dc650dSSadaf Ebrahimi 88*22dc650dSSadaf Ebrahimi/cat|dog|elephant/I 89*22dc650dSSadaf Ebrahimi this sentence eventually mentions a cat 90*22dc650dSSadaf Ebrahimi this sentences rambles on and on for a while and then reaches elephant 91*22dc650dSSadaf Ebrahimi 92*22dc650dSSadaf Ebrahimi/cat|dog|elephant/I 93*22dc650dSSadaf Ebrahimi this sentence eventually mentions a cat 94*22dc650dSSadaf Ebrahimi this sentences rambles on and on for a while and then reaches elephant 95*22dc650dSSadaf Ebrahimi 96*22dc650dSSadaf Ebrahimi/cat|dog|elephant/Ii 97*22dc650dSSadaf Ebrahimi this sentence eventually mentions a CAT cat 98*22dc650dSSadaf Ebrahimi this sentences rambles on and on for a while to elephant ElePhant 99*22dc650dSSadaf Ebrahimi 100*22dc650dSSadaf Ebrahimi/a|[bcd]/I 101*22dc650dSSadaf Ebrahimi 102*22dc650dSSadaf Ebrahimi/(a|[^\dZ])/I 103*22dc650dSSadaf Ebrahimi 104*22dc650dSSadaf Ebrahimi/(a|b)*[\s]/I 105*22dc650dSSadaf Ebrahimi 106*22dc650dSSadaf Ebrahimi/(ab\2)/ 107*22dc650dSSadaf Ebrahimi 108*22dc650dSSadaf Ebrahimi/{4,5}abc/ 109*22dc650dSSadaf Ebrahimi 110*22dc650dSSadaf Ebrahimi/(a)(b)(c)\2/I 111*22dc650dSSadaf Ebrahimi abcb 112*22dc650dSSadaf Ebrahimi abcb\=ovector=0 113*22dc650dSSadaf Ebrahimi abcb\=ovector=1 114*22dc650dSSadaf Ebrahimi abcb\=ovector=2 115*22dc650dSSadaf Ebrahimi abcb\=ovector=3 116*22dc650dSSadaf Ebrahimi abcb\=ovector=4 117*22dc650dSSadaf Ebrahimi 118*22dc650dSSadaf Ebrahimi/(a)bc|(a)(b)\2/I 119*22dc650dSSadaf Ebrahimi abc 120*22dc650dSSadaf Ebrahimi abc\=ovector=0 121*22dc650dSSadaf Ebrahimi abc\=ovector=1 122*22dc650dSSadaf Ebrahimi abc\=ovector=2 123*22dc650dSSadaf Ebrahimi aba 124*22dc650dSSadaf Ebrahimi aba\=ovector=0 125*22dc650dSSadaf Ebrahimi aba\=ovector=1 126*22dc650dSSadaf Ebrahimi aba\=ovector=2 127*22dc650dSSadaf Ebrahimi aba\=ovector=3 128*22dc650dSSadaf Ebrahimi aba\=ovector=4 129*22dc650dSSadaf Ebrahimi 130*22dc650dSSadaf Ebrahimi/abc$/I,dollar_endonly 131*22dc650dSSadaf Ebrahimi abc 132*22dc650dSSadaf Ebrahimi\= Expect no match 133*22dc650dSSadaf Ebrahimi abc\n 134*22dc650dSSadaf Ebrahimi abc\ndef 135*22dc650dSSadaf Ebrahimi 136*22dc650dSSadaf Ebrahimi/(a)(b)(c)(d)(e)\6/ 137*22dc650dSSadaf Ebrahimi 138*22dc650dSSadaf Ebrahimi/the quick brown fox/I 139*22dc650dSSadaf Ebrahimi the quick brown fox 140*22dc650dSSadaf Ebrahimi this is a line with the quick brown fox 141*22dc650dSSadaf Ebrahimi 142*22dc650dSSadaf Ebrahimi/the quick brown fox/I,anchored 143*22dc650dSSadaf Ebrahimi the quick brown fox 144*22dc650dSSadaf Ebrahimi\= Expect no match 145*22dc650dSSadaf Ebrahimi this is a line with the quick brown fox 146*22dc650dSSadaf Ebrahimi 147*22dc650dSSadaf Ebrahimi/ab(?z)cd/ 148*22dc650dSSadaf Ebrahimi 149*22dc650dSSadaf Ebrahimi/^abc|def/I 150*22dc650dSSadaf Ebrahimi abcdef 151*22dc650dSSadaf Ebrahimi abcdef\=notbol 152*22dc650dSSadaf Ebrahimi 153*22dc650dSSadaf Ebrahimi/.*((abc)$|(def))/I 154*22dc650dSSadaf Ebrahimi defabc 155*22dc650dSSadaf Ebrahimi defabc\=noteol 156*22dc650dSSadaf Ebrahimi 157*22dc650dSSadaf Ebrahimi/)/ 158*22dc650dSSadaf Ebrahimi 159*22dc650dSSadaf Ebrahimi/a[]b/ 160*22dc650dSSadaf Ebrahimi 161*22dc650dSSadaf Ebrahimi/[^aeiou ]{3,}/I 162*22dc650dSSadaf Ebrahimi co-processors, and for 163*22dc650dSSadaf Ebrahimi 164*22dc650dSSadaf Ebrahimi/<.*>/I 165*22dc650dSSadaf Ebrahimi abc<def>ghi<klm>nop 166*22dc650dSSadaf Ebrahimi 167*22dc650dSSadaf Ebrahimi/<.*?>/I 168*22dc650dSSadaf Ebrahimi abc<def>ghi<klm>nop 169*22dc650dSSadaf Ebrahimi 170*22dc650dSSadaf Ebrahimi/<.*>/I,ungreedy 171*22dc650dSSadaf Ebrahimi abc<def>ghi<klm>nop 172*22dc650dSSadaf Ebrahimi 173*22dc650dSSadaf Ebrahimi/(?U)<.*>/I 174*22dc650dSSadaf Ebrahimi abc<def>ghi<klm>nop 175*22dc650dSSadaf Ebrahimi 176*22dc650dSSadaf Ebrahimi/<.*?>/I,ungreedy 177*22dc650dSSadaf Ebrahimi abc<def>ghi<klm>nop 178*22dc650dSSadaf Ebrahimi 179*22dc650dSSadaf Ebrahimi/={3,}/I,ungreedy 180*22dc650dSSadaf Ebrahimi abc========def 181*22dc650dSSadaf Ebrahimi 182*22dc650dSSadaf Ebrahimi/(?U)={3,}?/I 183*22dc650dSSadaf Ebrahimi abc========def 184*22dc650dSSadaf Ebrahimi 185*22dc650dSSadaf Ebrahimi/(?<!bar|cattle)foo/I 186*22dc650dSSadaf Ebrahimi foo 187*22dc650dSSadaf Ebrahimi catfoo 188*22dc650dSSadaf Ebrahimi\= Expect no match 189*22dc650dSSadaf Ebrahimi the barfoo 190*22dc650dSSadaf Ebrahimi and cattlefoo 191*22dc650dSSadaf Ebrahimi 192*22dc650dSSadaf Ebrahimi/abc(?<=a+)b/ 193*22dc650dSSadaf Ebrahimi 194*22dc650dSSadaf Ebrahimi/(?<!(foo)a\1)bar/ 195*22dc650dSSadaf Ebrahimi 196*22dc650dSSadaf Ebrahimi/(?i)abc/I 197*22dc650dSSadaf Ebrahimi 198*22dc650dSSadaf Ebrahimi/(a|(?m)a)/I 199*22dc650dSSadaf Ebrahimi 200*22dc650dSSadaf Ebrahimi/(?i)^1234/I 201*22dc650dSSadaf Ebrahimi 202*22dc650dSSadaf Ebrahimi/(^b|(?i)^d)/I 203*22dc650dSSadaf Ebrahimi 204*22dc650dSSadaf Ebrahimi/(?s).*/I 205*22dc650dSSadaf Ebrahimi 206*22dc650dSSadaf Ebrahimi/[abcd]/I 207*22dc650dSSadaf Ebrahimi 208*22dc650dSSadaf Ebrahimi/(?i)[abcd]/I 209*22dc650dSSadaf Ebrahimi 210*22dc650dSSadaf Ebrahimi/(?m)[xy]|(b|c)/I 211*22dc650dSSadaf Ebrahimi 212*22dc650dSSadaf Ebrahimi/(^a|^b)/Im 213*22dc650dSSadaf Ebrahimi 214*22dc650dSSadaf Ebrahimi/(?i)(^a|^b)/Im 215*22dc650dSSadaf Ebrahimi 216*22dc650dSSadaf Ebrahimi/(a)(?(1)a|b|c)/ 217*22dc650dSSadaf Ebrahimi 218*22dc650dSSadaf Ebrahimi/(?(?=a)a|b|c)/ 219*22dc650dSSadaf Ebrahimi 220*22dc650dSSadaf Ebrahimi/(?(1a)/ 221*22dc650dSSadaf Ebrahimi 222*22dc650dSSadaf Ebrahimi/(?(1a))/ 223*22dc650dSSadaf Ebrahimi 224*22dc650dSSadaf Ebrahimi/(?(?i))/ 225*22dc650dSSadaf Ebrahimi 226*22dc650dSSadaf Ebrahimi/(?(abc))/ 227*22dc650dSSadaf Ebrahimi 228*22dc650dSSadaf Ebrahimi/(?(?<ab))/ 229*22dc650dSSadaf Ebrahimi 230*22dc650dSSadaf Ebrahimi/((?s)blah)\s+\1/I 231*22dc650dSSadaf Ebrahimi 232*22dc650dSSadaf Ebrahimi/((?i)blah)\s+\1/I 233*22dc650dSSadaf Ebrahimi 234*22dc650dSSadaf Ebrahimi/((?i)b)/IB 235*22dc650dSSadaf Ebrahimi 236*22dc650dSSadaf Ebrahimi/(a*b|(?i:c*(?-i)d))/I 237*22dc650dSSadaf Ebrahimi 238*22dc650dSSadaf Ebrahimi/a$/I 239*22dc650dSSadaf Ebrahimi a 240*22dc650dSSadaf Ebrahimi a\n 241*22dc650dSSadaf Ebrahimi\= Expect no match 242*22dc650dSSadaf Ebrahimi a\=noteol 243*22dc650dSSadaf Ebrahimi a\n\=noteol 244*22dc650dSSadaf Ebrahimi 245*22dc650dSSadaf Ebrahimi/a$/Im 246*22dc650dSSadaf Ebrahimi a 247*22dc650dSSadaf Ebrahimi a\n 248*22dc650dSSadaf Ebrahimi a\n\=noteol 249*22dc650dSSadaf Ebrahimi\= Expect no match 250*22dc650dSSadaf Ebrahimi a\=noteol 251*22dc650dSSadaf Ebrahimi 252*22dc650dSSadaf Ebrahimi/\Aabc/Im 253*22dc650dSSadaf Ebrahimi 254*22dc650dSSadaf Ebrahimi/^abc/Im 255*22dc650dSSadaf Ebrahimi 256*22dc650dSSadaf Ebrahimi/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I 257*22dc650dSSadaf Ebrahimi aaaaabbbbbcccccdef 258*22dc650dSSadaf Ebrahimi 259*22dc650dSSadaf Ebrahimi/(?<=foo)[ab]/I 260*22dc650dSSadaf Ebrahimi 261*22dc650dSSadaf Ebrahimi/(?<!foo)(alpha|omega)/I 262*22dc650dSSadaf Ebrahimi 263*22dc650dSSadaf Ebrahimi/(?!alphabet)[ab]/I 264*22dc650dSSadaf Ebrahimi 265*22dc650dSSadaf Ebrahimi/(?<=foo\n)^bar/Im 266*22dc650dSSadaf Ebrahimi foo\nbarbar 267*22dc650dSSadaf Ebrahimi\= Expect no match 268*22dc650dSSadaf Ebrahimi rhubarb 269*22dc650dSSadaf Ebrahimi barbell 270*22dc650dSSadaf Ebrahimi abc\nbarton 271*22dc650dSSadaf Ebrahimi 272*22dc650dSSadaf Ebrahimi/^(?<=foo\n)bar/Im 273*22dc650dSSadaf Ebrahimi foo\nbarbar 274*22dc650dSSadaf Ebrahimi\= Expect no match 275*22dc650dSSadaf Ebrahimi rhubarb 276*22dc650dSSadaf Ebrahimi barbell 277*22dc650dSSadaf Ebrahimi abc\nbarton 278*22dc650dSSadaf Ebrahimi 279*22dc650dSSadaf Ebrahimi/(?>^abc)/Im 280*22dc650dSSadaf Ebrahimi abc 281*22dc650dSSadaf Ebrahimi def\nabc 282*22dc650dSSadaf Ebrahimi\= Expect no match 283*22dc650dSSadaf Ebrahimi defabc 284*22dc650dSSadaf Ebrahimi 285*22dc650dSSadaf Ebrahimi/(?<=ab(c+)d)ef/ 286*22dc650dSSadaf Ebrahimi 287*22dc650dSSadaf Ebrahimi/(?<=ab(?<=c+)d)ef/ 288*22dc650dSSadaf Ebrahimi 289*22dc650dSSadaf Ebrahimi/The next three are in testinput2 because they have variable length branches/ 290*22dc650dSSadaf Ebrahimi 291*22dc650dSSadaf Ebrahimi/(?<=bullock|donkey)-cart/I 292*22dc650dSSadaf Ebrahimi the bullock-cart 293*22dc650dSSadaf Ebrahimi a donkey-cart race 294*22dc650dSSadaf Ebrahimi\= Expect no match 295*22dc650dSSadaf Ebrahimi cart 296*22dc650dSSadaf Ebrahimi horse-and-cart 297*22dc650dSSadaf Ebrahimi 298*22dc650dSSadaf Ebrahimi/(?<=ab(?i)x|y|z)/I 299*22dc650dSSadaf Ebrahimi 300*22dc650dSSadaf Ebrahimi/(?>.*)(?<=(abcd)|(xyz))/I 301*22dc650dSSadaf Ebrahimi alphabetabcd 302*22dc650dSSadaf Ebrahimi endingxyz 303*22dc650dSSadaf Ebrahimi 304*22dc650dSSadaf Ebrahimi/(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I 305*22dc650dSSadaf Ebrahimi abxyZZ 306*22dc650dSSadaf Ebrahimi abXyZZ 307*22dc650dSSadaf Ebrahimi ZZZ 308*22dc650dSSadaf Ebrahimi zZZ 309*22dc650dSSadaf Ebrahimi bZZ 310*22dc650dSSadaf Ebrahimi BZZ 311*22dc650dSSadaf Ebrahimi\= Expect no match 312*22dc650dSSadaf Ebrahimi ZZ 313*22dc650dSSadaf Ebrahimi abXYZZ 314*22dc650dSSadaf Ebrahimi zzz 315*22dc650dSSadaf Ebrahimi bzz 316*22dc650dSSadaf Ebrahimi 317*22dc650dSSadaf Ebrahimi/(?<!(foo)a)bar/I 318*22dc650dSSadaf Ebrahimi bar 319*22dc650dSSadaf Ebrahimi foobbar 320*22dc650dSSadaf Ebrahimi\= Expect no match 321*22dc650dSSadaf Ebrahimi fooabar 322*22dc650dSSadaf Ebrahimi 323*22dc650dSSadaf Ebrahimi# Perl does not fail these two for the final subjects. 324*22dc650dSSadaf Ebrahimi 325*22dc650dSSadaf Ebrahimi/^(xa|=?\1a){2}$/ 326*22dc650dSSadaf Ebrahimi xa=xaa 327*22dc650dSSadaf Ebrahimi\= Expect no match 328*22dc650dSSadaf Ebrahimi xa=xaaa 329*22dc650dSSadaf Ebrahimi 330*22dc650dSSadaf Ebrahimi/^(xa|=?\1a)+$/ 331*22dc650dSSadaf Ebrahimi xa=xaa 332*22dc650dSSadaf Ebrahimi\= Expect no match 333*22dc650dSSadaf Ebrahimi xa=xaaa 334*22dc650dSSadaf Ebrahimi 335*22dc650dSSadaf Ebrahimi# These are syntax tests from Perl 5.005 336*22dc650dSSadaf Ebrahimi 337*22dc650dSSadaf Ebrahimi/a[b-a]/ 338*22dc650dSSadaf Ebrahimi 339*22dc650dSSadaf Ebrahimi/a[]b/ 340*22dc650dSSadaf Ebrahimi 341*22dc650dSSadaf Ebrahimi/a[/ 342*22dc650dSSadaf Ebrahimi 343*22dc650dSSadaf Ebrahimi/*a/ 344*22dc650dSSadaf Ebrahimi 345*22dc650dSSadaf Ebrahimi/(*)b/ 346*22dc650dSSadaf Ebrahimi 347*22dc650dSSadaf Ebrahimi/abc)/ 348*22dc650dSSadaf Ebrahimi 349*22dc650dSSadaf Ebrahimi/(abc/ 350*22dc650dSSadaf Ebrahimi 351*22dc650dSSadaf Ebrahimi/a**/ 352*22dc650dSSadaf Ebrahimi 353*22dc650dSSadaf Ebrahimi/)(/ 354*22dc650dSSadaf Ebrahimi 355*22dc650dSSadaf Ebrahimi/\1/ 356*22dc650dSSadaf Ebrahimi 357*22dc650dSSadaf Ebrahimi/\2/ 358*22dc650dSSadaf Ebrahimi 359*22dc650dSSadaf Ebrahimi/(a)|\2/ 360*22dc650dSSadaf Ebrahimi 361*22dc650dSSadaf Ebrahimi/a[b-a]/Ii 362*22dc650dSSadaf Ebrahimi 363*22dc650dSSadaf Ebrahimi/a[]b/Ii 364*22dc650dSSadaf Ebrahimi 365*22dc650dSSadaf Ebrahimi/a[/Ii 366*22dc650dSSadaf Ebrahimi 367*22dc650dSSadaf Ebrahimi/*a/Ii 368*22dc650dSSadaf Ebrahimi 369*22dc650dSSadaf Ebrahimi/(*)b/Ii 370*22dc650dSSadaf Ebrahimi 371*22dc650dSSadaf Ebrahimi/abc)/Ii 372*22dc650dSSadaf Ebrahimi 373*22dc650dSSadaf Ebrahimi/(abc/Ii 374*22dc650dSSadaf Ebrahimi 375*22dc650dSSadaf Ebrahimi/a**/Ii 376*22dc650dSSadaf Ebrahimi 377*22dc650dSSadaf Ebrahimi/)(/Ii 378*22dc650dSSadaf Ebrahimi 379*22dc650dSSadaf Ebrahimi/:(?:/ 380*22dc650dSSadaf Ebrahimi 381*22dc650dSSadaf Ebrahimi/(?<%)b/ 382*22dc650dSSadaf Ebrahimi 383*22dc650dSSadaf Ebrahimi/a(?{)b/ 384*22dc650dSSadaf Ebrahimi 385*22dc650dSSadaf Ebrahimi/a(?{{})b/ 386*22dc650dSSadaf Ebrahimi 387*22dc650dSSadaf Ebrahimi/a(?{}})b/ 388*22dc650dSSadaf Ebrahimi 389*22dc650dSSadaf Ebrahimi/a(?{"{"})b/ 390*22dc650dSSadaf Ebrahimi 391*22dc650dSSadaf Ebrahimi/a(?{"{"}})b/ 392*22dc650dSSadaf Ebrahimi 393*22dc650dSSadaf Ebrahimi/(?(1?)a|b)/ 394*22dc650dSSadaf Ebrahimi 395*22dc650dSSadaf Ebrahimi/[a[:xyz:/ 396*22dc650dSSadaf Ebrahimi 397*22dc650dSSadaf Ebrahimi/(?<=x+)y/ 398*22dc650dSSadaf Ebrahimi 399*22dc650dSSadaf Ebrahimi/a{37,17}/ 400*22dc650dSSadaf Ebrahimi 401*22dc650dSSadaf Ebrahimi/abc/\ 402*22dc650dSSadaf Ebrahimi 403*22dc650dSSadaf Ebrahimi/abc/\i 404*22dc650dSSadaf Ebrahimi 405*22dc650dSSadaf Ebrahimi/(a)bc(d)/I 406*22dc650dSSadaf Ebrahimi abcd 407*22dc650dSSadaf Ebrahimi abcd\=copy=2 408*22dc650dSSadaf Ebrahimi abcd\=copy=5 409*22dc650dSSadaf Ebrahimi 410*22dc650dSSadaf Ebrahimi/(.{20})/I 411*22dc650dSSadaf Ebrahimi abcdefghijklmnopqrstuvwxyz 412*22dc650dSSadaf Ebrahimi abcdefghijklmnopqrstuvwxyz\=copy=1 413*22dc650dSSadaf Ebrahimi abcdefghijklmnopqrstuvwxyz\=get=1 414*22dc650dSSadaf Ebrahimi 415*22dc650dSSadaf Ebrahimi/(.{15})/I 416*22dc650dSSadaf Ebrahimi abcdefghijklmnopqrstuvwxyz 417*22dc650dSSadaf Ebrahimi abcdefghijklmnopqrstuvwxyz\=copy=1,get=1 418*22dc650dSSadaf Ebrahimi 419*22dc650dSSadaf Ebrahimi/(.{16})/I 420*22dc650dSSadaf Ebrahimi abcdefghijklmnopqrstuvwxyz 421*22dc650dSSadaf Ebrahimi abcdefghijklmnopqrstuvwxyz\=copy=1,get=1,getall 422*22dc650dSSadaf Ebrahimi 423*22dc650dSSadaf Ebrahimi/^(a|(bc))de(f)/I 424*22dc650dSSadaf Ebrahimi adef\=get=1,get=2,get=3,get=4,getall 425*22dc650dSSadaf Ebrahimi bcdef\=get=1,get=2,get=3,get=4,getall 426*22dc650dSSadaf Ebrahimi adefghijk\=copy=0 427*22dc650dSSadaf Ebrahimi 428*22dc650dSSadaf Ebrahimi/^abc\00def/I 429*22dc650dSSadaf Ebrahimi abc\00def\=copy=0,getall 430*22dc650dSSadaf Ebrahimi 431*22dc650dSSadaf Ebrahimi/word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ 432*22dc650dSSadaf Ebrahimi)((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ 433*22dc650dSSadaf Ebrahimi)?)?)?)?)?)?)?)?)?otherword/I 434*22dc650dSSadaf Ebrahimi 435*22dc650dSSadaf Ebrahimi/.*X/IB 436*22dc650dSSadaf Ebrahimi 437*22dc650dSSadaf Ebrahimi/.*X/IBs 438*22dc650dSSadaf Ebrahimi 439*22dc650dSSadaf Ebrahimi/(.*X|^B)/IB 440*22dc650dSSadaf Ebrahimi 441*22dc650dSSadaf Ebrahimi/(.*X|^B)/IBs 442*22dc650dSSadaf Ebrahimi 443*22dc650dSSadaf Ebrahimi/(?s)(.*X|^B)/IB 444*22dc650dSSadaf Ebrahimi 445*22dc650dSSadaf Ebrahimi/(?s:.*X|^B)/IB 446*22dc650dSSadaf Ebrahimi 447*22dc650dSSadaf Ebrahimi/\Biss\B/I,aftertext 448*22dc650dSSadaf Ebrahimi Mississippi 449*22dc650dSSadaf Ebrahimi 450*22dc650dSSadaf Ebrahimi/iss/I,aftertext,altglobal 451*22dc650dSSadaf Ebrahimi Mississippi 452*22dc650dSSadaf Ebrahimi 453*22dc650dSSadaf Ebrahimi/\Biss\B/I,aftertext,altglobal 454*22dc650dSSadaf Ebrahimi Mississippi 455*22dc650dSSadaf Ebrahimi 456*22dc650dSSadaf Ebrahimi/\Biss\B/Ig,aftertext 457*22dc650dSSadaf Ebrahimi Mississippi 458*22dc650dSSadaf Ebrahimi\= Expect no match 459*22dc650dSSadaf Ebrahimi Mississippi\=anchored 460*22dc650dSSadaf Ebrahimi 461*22dc650dSSadaf Ebrahimi/(?<=[Ms])iss/Ig,aftertext 462*22dc650dSSadaf Ebrahimi Mississippi 463*22dc650dSSadaf Ebrahimi 464*22dc650dSSadaf Ebrahimi/(?<=[Ms])iss/I,aftertext,altglobal 465*22dc650dSSadaf Ebrahimi Mississippi 466*22dc650dSSadaf Ebrahimi 467*22dc650dSSadaf Ebrahimi/^iss/Ig,aftertext 468*22dc650dSSadaf Ebrahimi ississippi 469*22dc650dSSadaf Ebrahimi 470*22dc650dSSadaf Ebrahimi/.*iss/Ig,aftertext 471*22dc650dSSadaf Ebrahimi abciss\nxyzisspqr 472*22dc650dSSadaf Ebrahimi 473*22dc650dSSadaf Ebrahimi/.i./Ig,aftertext 474*22dc650dSSadaf Ebrahimi Mississippi 475*22dc650dSSadaf Ebrahimi Mississippi\=anchored 476*22dc650dSSadaf Ebrahimi Missouri river 477*22dc650dSSadaf Ebrahimi Missouri river\=anchored 478*22dc650dSSadaf Ebrahimi 479*22dc650dSSadaf Ebrahimi/^.is/Ig,aftertext 480*22dc650dSSadaf Ebrahimi Mississippi 481*22dc650dSSadaf Ebrahimi 482*22dc650dSSadaf Ebrahimi/^ab\n/Ig,aftertext 483*22dc650dSSadaf Ebrahimi ab\nab\ncd 484*22dc650dSSadaf Ebrahimi 485*22dc650dSSadaf Ebrahimi/^ab\n/Igm,aftertext 486*22dc650dSSadaf Ebrahimi ab\nab\ncd 487*22dc650dSSadaf Ebrahimi 488*22dc650dSSadaf Ebrahimi/^/gm,newline=any 489*22dc650dSSadaf Ebrahimi a\rb\nc\r\nxyz\=aftertext 490*22dc650dSSadaf Ebrahimi 491*22dc650dSSadaf Ebrahimi/abc/I 492*22dc650dSSadaf Ebrahimi 493*22dc650dSSadaf Ebrahimi/abc|bac/I 494*22dc650dSSadaf Ebrahimi 495*22dc650dSSadaf Ebrahimi/(abc|bac)/I 496*22dc650dSSadaf Ebrahimi 497*22dc650dSSadaf Ebrahimi/(abc|(c|dc))/I 498*22dc650dSSadaf Ebrahimi 499*22dc650dSSadaf Ebrahimi/(abc|(d|de)c)/I 500*22dc650dSSadaf Ebrahimi 501*22dc650dSSadaf Ebrahimi/a*/I 502*22dc650dSSadaf Ebrahimi 503*22dc650dSSadaf Ebrahimi/a+/I 504*22dc650dSSadaf Ebrahimi 505*22dc650dSSadaf Ebrahimi/(baa|a+)/I 506*22dc650dSSadaf Ebrahimi 507*22dc650dSSadaf Ebrahimi/a{0,3}/I 508*22dc650dSSadaf Ebrahimi 509*22dc650dSSadaf Ebrahimi/baa{3,}/I 510*22dc650dSSadaf Ebrahimi 511*22dc650dSSadaf Ebrahimi/"([^\\"]+|\\.)*"/I 512*22dc650dSSadaf Ebrahimi 513*22dc650dSSadaf Ebrahimi/(abc|ab[cd])/I 514*22dc650dSSadaf Ebrahimi 515*22dc650dSSadaf Ebrahimi/(a|.)/I 516*22dc650dSSadaf Ebrahimi 517*22dc650dSSadaf Ebrahimi/a|ba|\w/I 518*22dc650dSSadaf Ebrahimi 519*22dc650dSSadaf Ebrahimi/abc(?=pqr)/I 520*22dc650dSSadaf Ebrahimi 521*22dc650dSSadaf Ebrahimi/...(?<=abc)/I 522*22dc650dSSadaf Ebrahimi 523*22dc650dSSadaf Ebrahimi/abc(?!pqr)/I 524*22dc650dSSadaf Ebrahimi 525*22dc650dSSadaf Ebrahimi/ab./I 526*22dc650dSSadaf Ebrahimi 527*22dc650dSSadaf Ebrahimi/ab[xyz]/I 528*22dc650dSSadaf Ebrahimi 529*22dc650dSSadaf Ebrahimi/abc*/I 530*22dc650dSSadaf Ebrahimi 531*22dc650dSSadaf Ebrahimi/ab.c*/I 532*22dc650dSSadaf Ebrahimi 533*22dc650dSSadaf Ebrahimi/a.c*/I 534*22dc650dSSadaf Ebrahimi 535*22dc650dSSadaf Ebrahimi/.c*/I 536*22dc650dSSadaf Ebrahimi 537*22dc650dSSadaf Ebrahimi/ac*/I 538*22dc650dSSadaf Ebrahimi 539*22dc650dSSadaf Ebrahimi/(a.c*|b.c*)/I 540*22dc650dSSadaf Ebrahimi 541*22dc650dSSadaf Ebrahimi/a.c*|aba/I 542*22dc650dSSadaf Ebrahimi 543*22dc650dSSadaf Ebrahimi/.+a/I 544*22dc650dSSadaf Ebrahimi 545*22dc650dSSadaf Ebrahimi/(?=abcda)a.*/I 546*22dc650dSSadaf Ebrahimi 547*22dc650dSSadaf Ebrahimi/(?=a)a.*/I 548*22dc650dSSadaf Ebrahimi 549*22dc650dSSadaf Ebrahimi/a(b)*/I 550*22dc650dSSadaf Ebrahimi 551*22dc650dSSadaf Ebrahimi/a\d*/I 552*22dc650dSSadaf Ebrahimi 553*22dc650dSSadaf Ebrahimi/ab\d*/I 554*22dc650dSSadaf Ebrahimi 555*22dc650dSSadaf Ebrahimi/a(\d)*/I 556*22dc650dSSadaf Ebrahimi 557*22dc650dSSadaf Ebrahimi/abcde{0,0}/I 558*22dc650dSSadaf Ebrahimi 559*22dc650dSSadaf Ebrahimi/ab\d+/I 560*22dc650dSSadaf Ebrahimi 561*22dc650dSSadaf Ebrahimi/a(?(1)b)(.)/I 562*22dc650dSSadaf Ebrahimi 563*22dc650dSSadaf Ebrahimi/a(?(1)bag|big)(.)/I 564*22dc650dSSadaf Ebrahimi 565*22dc650dSSadaf Ebrahimi/a(?(1)bag|big)*(.)/I 566*22dc650dSSadaf Ebrahimi 567*22dc650dSSadaf Ebrahimi/a(?(1)bag|big)+(.)/I 568*22dc650dSSadaf Ebrahimi 569*22dc650dSSadaf Ebrahimi/a(?(1)b..|b..)(.)/I 570*22dc650dSSadaf Ebrahimi 571*22dc650dSSadaf Ebrahimi/ab\d{0}e/I 572*22dc650dSSadaf Ebrahimi 573*22dc650dSSadaf Ebrahimi/a?b?/I 574*22dc650dSSadaf Ebrahimi a 575*22dc650dSSadaf Ebrahimi b 576*22dc650dSSadaf Ebrahimi ab 577*22dc650dSSadaf Ebrahimi \ 578*22dc650dSSadaf Ebrahimi\= Expect no match 579*22dc650dSSadaf Ebrahimi \=notempty 580*22dc650dSSadaf Ebrahimi 581*22dc650dSSadaf Ebrahimi/|-/I 582*22dc650dSSadaf Ebrahimi abcd 583*22dc650dSSadaf Ebrahimi -abc 584*22dc650dSSadaf Ebrahimi ab-c\=notempty 585*22dc650dSSadaf Ebrahimi\= Expect no match 586*22dc650dSSadaf Ebrahimi abc\=notempty 587*22dc650dSSadaf Ebrahimi 588*22dc650dSSadaf Ebrahimi/^.?abcd/I 589*22dc650dSSadaf Ebrahimi 590*22dc650dSSadaf Ebrahimi/\( # ( at start 591*22dc650dSSadaf Ebrahimi (?: # Non-capturing bracket 592*22dc650dSSadaf Ebrahimi (?>[^()]+) # Either a sequence of non-brackets (no backtracking) 593*22dc650dSSadaf Ebrahimi | # Or 594*22dc650dSSadaf Ebrahimi (?R) # Recurse - i.e. nested bracketed string 595*22dc650dSSadaf Ebrahimi )* # Zero or more contents 596*22dc650dSSadaf Ebrahimi \) # Closing ) 597*22dc650dSSadaf Ebrahimi /Ix 598*22dc650dSSadaf Ebrahimi (abcd) 599*22dc650dSSadaf Ebrahimi (abcd)xyz 600*22dc650dSSadaf Ebrahimi xyz(abcd) 601*22dc650dSSadaf Ebrahimi (ab(xy)cd)pqr 602*22dc650dSSadaf Ebrahimi (ab(xycd)pqr 603*22dc650dSSadaf Ebrahimi () abc () 604*22dc650dSSadaf Ebrahimi 12(abcde(fsh)xyz(foo(bar))lmno)89 605*22dc650dSSadaf Ebrahimi\= Expect no match 606*22dc650dSSadaf Ebrahimi abcd 607*22dc650dSSadaf Ebrahimi abcd) 608*22dc650dSSadaf Ebrahimi (abcd 609*22dc650dSSadaf Ebrahimi 610*22dc650dSSadaf Ebrahimi/\( ( (?>[^()]+) | (?R) )* \) /Igx 611*22dc650dSSadaf Ebrahimi (ab(xy)cd)pqr 612*22dc650dSSadaf Ebrahimi 1(abcd)(x(y)z)pqr 613*22dc650dSSadaf Ebrahimi 614*22dc650dSSadaf Ebrahimi/\( (?: (?>[^()]+) | (?R) ) \) /Ix 615*22dc650dSSadaf Ebrahimi (abcd) 616*22dc650dSSadaf Ebrahimi (ab(xy)cd) 617*22dc650dSSadaf Ebrahimi (a(b(c)d)e) 618*22dc650dSSadaf Ebrahimi ((ab)) 619*22dc650dSSadaf Ebrahimi\= Expect no match 620*22dc650dSSadaf Ebrahimi () 621*22dc650dSSadaf Ebrahimi 622*22dc650dSSadaf Ebrahimi/\( (?: (?>[^()]+) | (?R) )? \) /Ix 623*22dc650dSSadaf Ebrahimi () 624*22dc650dSSadaf Ebrahimi 12(abcde(fsh)xyz(foo(bar))lmno)89 625*22dc650dSSadaf Ebrahimi 626*22dc650dSSadaf Ebrahimi/\( ( (?>[^()]+) | (?R) )* \) /Ix 627*22dc650dSSadaf Ebrahimi (ab(xy)cd) 628*22dc650dSSadaf Ebrahimi 629*22dc650dSSadaf Ebrahimi/\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix 630*22dc650dSSadaf Ebrahimi (ab(xy)cd) 631*22dc650dSSadaf Ebrahimi 632*22dc650dSSadaf Ebrahimi/\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix 633*22dc650dSSadaf Ebrahimi (ab(xy)cd) 634*22dc650dSSadaf Ebrahimi (123ab(xy)cd) 635*22dc650dSSadaf Ebrahimi 636*22dc650dSSadaf Ebrahimi/\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix 637*22dc650dSSadaf Ebrahimi (ab(xy)cd) 638*22dc650dSSadaf Ebrahimi (123ab(xy)cd) 639*22dc650dSSadaf Ebrahimi 640*22dc650dSSadaf Ebrahimi/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix 641*22dc650dSSadaf Ebrahimi (ab(xy)cd) 642*22dc650dSSadaf Ebrahimi 643*22dc650dSSadaf Ebrahimi/\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix 644*22dc650dSSadaf Ebrahimi (abcd(xyz<p>qrs)123) 645*22dc650dSSadaf Ebrahimi 646*22dc650dSSadaf Ebrahimi/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix 647*22dc650dSSadaf Ebrahimi (ab(cd)ef) 648*22dc650dSSadaf Ebrahimi (ab(cd(ef)gh)ij) 649*22dc650dSSadaf Ebrahimi 650*22dc650dSSadaf Ebrahimi/^[[:alnum:]]/IB 651*22dc650dSSadaf Ebrahimi 652*22dc650dSSadaf Ebrahimi/^[[:^alnum:]]/IB 653*22dc650dSSadaf Ebrahimi 654*22dc650dSSadaf Ebrahimi/^[[:alpha:]]/IB 655*22dc650dSSadaf Ebrahimi 656*22dc650dSSadaf Ebrahimi/^[[:^alpha:]]/IB 657*22dc650dSSadaf Ebrahimi 658*22dc650dSSadaf Ebrahimi/[_[:alpha:]]/I 659*22dc650dSSadaf Ebrahimi 660*22dc650dSSadaf Ebrahimi/^[[:ascii:]]/IB 661*22dc650dSSadaf Ebrahimi 662*22dc650dSSadaf Ebrahimi/^[[:^ascii:]]/IB 663*22dc650dSSadaf Ebrahimi 664*22dc650dSSadaf Ebrahimi/^[[:blank:]]/IB 665*22dc650dSSadaf Ebrahimi 666*22dc650dSSadaf Ebrahimi/^[[:^blank:]]/IB 667*22dc650dSSadaf Ebrahimi 668*22dc650dSSadaf Ebrahimi/[\n\x0b\x0c\x0d[:blank:]]/I 669*22dc650dSSadaf Ebrahimi 670*22dc650dSSadaf Ebrahimi/^[[:cntrl:]]/IB 671*22dc650dSSadaf Ebrahimi 672*22dc650dSSadaf Ebrahimi/^[[:digit:]]/IB 673*22dc650dSSadaf Ebrahimi 674*22dc650dSSadaf Ebrahimi/^[[:graph:]]/IB 675*22dc650dSSadaf Ebrahimi 676*22dc650dSSadaf Ebrahimi/^[[:lower:]]/IB 677*22dc650dSSadaf Ebrahimi 678*22dc650dSSadaf Ebrahimi/^[[:print:]]/IB 679*22dc650dSSadaf Ebrahimi 680*22dc650dSSadaf Ebrahimi/^[[:punct:]]/IB 681*22dc650dSSadaf Ebrahimi 682*22dc650dSSadaf Ebrahimi/^[[:space:]]/IB 683*22dc650dSSadaf Ebrahimi 684*22dc650dSSadaf Ebrahimi/^[[:upper:]]/IB 685*22dc650dSSadaf Ebrahimi 686*22dc650dSSadaf Ebrahimi/^[[:xdigit:]]/IB 687*22dc650dSSadaf Ebrahimi 688*22dc650dSSadaf Ebrahimi/^[[:word:]]/IB 689*22dc650dSSadaf Ebrahimi 690*22dc650dSSadaf Ebrahimi/^[[:^cntrl:]]/IB 691*22dc650dSSadaf Ebrahimi 692*22dc650dSSadaf Ebrahimi/^[12[:^digit:]]/IB 693*22dc650dSSadaf Ebrahimi 694*22dc650dSSadaf Ebrahimi/^[[:^blank:]]/IB 695*22dc650dSSadaf Ebrahimi 696*22dc650dSSadaf Ebrahimi/[01[:alpha:]%]/IB 697*22dc650dSSadaf Ebrahimi 698*22dc650dSSadaf Ebrahimi/[[.ch.]]/I 699*22dc650dSSadaf Ebrahimi 700*22dc650dSSadaf Ebrahimi/[[=ch=]]/I 701*22dc650dSSadaf Ebrahimi 702*22dc650dSSadaf Ebrahimi/[[:rhubarb:]]/I 703*22dc650dSSadaf Ebrahimi 704*22dc650dSSadaf Ebrahimi/[[:upper:]]/Ii 705*22dc650dSSadaf Ebrahimi A 706*22dc650dSSadaf Ebrahimi a 707*22dc650dSSadaf Ebrahimi 708*22dc650dSSadaf Ebrahimi/[[:lower:]]/Ii 709*22dc650dSSadaf Ebrahimi A 710*22dc650dSSadaf Ebrahimi a 711*22dc650dSSadaf Ebrahimi 712*22dc650dSSadaf Ebrahimi/((?-i)[[:lower:]])[[:lower:]]/Ii 713*22dc650dSSadaf Ebrahimi ab 714*22dc650dSSadaf Ebrahimi aB 715*22dc650dSSadaf Ebrahimi\= Expect no match 716*22dc650dSSadaf Ebrahimi Ab 717*22dc650dSSadaf Ebrahimi AB 718*22dc650dSSadaf Ebrahimi 719*22dc650dSSadaf Ebrahimi/[\200-\110]/I 720*22dc650dSSadaf Ebrahimi 721*22dc650dSSadaf Ebrahimi/^(?(0)f|b)oo/I 722*22dc650dSSadaf Ebrahimi 723*22dc650dSSadaf Ebrahimi# This one's here because of the large output vector needed 724*22dc650dSSadaf Ebrahimi 725*22dc650dSSadaf Ebrahimi/(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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 726*22dc650dSSadaf Ebrahimi 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 727*22dc650dSSadaf Ebrahimi 728*22dc650dSSadaf Ebrahimi# This one's here because Perl does this differently and PCRE2 can't at present 729*22dc650dSSadaf Ebrahimi 730*22dc650dSSadaf Ebrahimi/(main(O)?)+/I 731*22dc650dSSadaf Ebrahimi mainmain 732*22dc650dSSadaf Ebrahimi mainOmain 733*22dc650dSSadaf Ebrahimi 734*22dc650dSSadaf Ebrahimi# These are all cases where Perl does it differently (nested captures) 735*22dc650dSSadaf Ebrahimi 736*22dc650dSSadaf Ebrahimi/^(a(b)?)+$/I 737*22dc650dSSadaf Ebrahimi aba 738*22dc650dSSadaf Ebrahimi 739*22dc650dSSadaf Ebrahimi/^(aa(bb)?)+$/I 740*22dc650dSSadaf Ebrahimi aabbaa 741*22dc650dSSadaf Ebrahimi 742*22dc650dSSadaf Ebrahimi/^(aa|aa(bb))+$/I 743*22dc650dSSadaf Ebrahimi aabbaa 744*22dc650dSSadaf Ebrahimi 745*22dc650dSSadaf Ebrahimi/^(aa(bb)??)+$/I 746*22dc650dSSadaf Ebrahimi aabbaa 747*22dc650dSSadaf Ebrahimi 748*22dc650dSSadaf Ebrahimi/^(?:aa(bb)?)+$/I 749*22dc650dSSadaf Ebrahimi aabbaa 750*22dc650dSSadaf Ebrahimi 751*22dc650dSSadaf Ebrahimi/^(aa(b(b))?)+$/I 752*22dc650dSSadaf Ebrahimi aabbaa 753*22dc650dSSadaf Ebrahimi 754*22dc650dSSadaf Ebrahimi/^(?:aa(b(b))?)+$/I 755*22dc650dSSadaf Ebrahimi aabbaa 756*22dc650dSSadaf Ebrahimi 757*22dc650dSSadaf Ebrahimi/^(?:aa(b(?:b))?)+$/I 758*22dc650dSSadaf Ebrahimi aabbaa 759*22dc650dSSadaf Ebrahimi 760*22dc650dSSadaf Ebrahimi/^(?:aa(bb(?:b))?)+$/I 761*22dc650dSSadaf Ebrahimi aabbbaa 762*22dc650dSSadaf Ebrahimi 763*22dc650dSSadaf Ebrahimi/^(?:aa(b(?:bb))?)+$/I 764*22dc650dSSadaf Ebrahimi aabbbaa 765*22dc650dSSadaf Ebrahimi 766*22dc650dSSadaf Ebrahimi/^(?:aa(?:b(b))?)+$/I 767*22dc650dSSadaf Ebrahimi aabbaa 768*22dc650dSSadaf Ebrahimi 769*22dc650dSSadaf Ebrahimi/^(?:aa(?:b(bb))?)+$/I 770*22dc650dSSadaf Ebrahimi aabbbaa 771*22dc650dSSadaf Ebrahimi 772*22dc650dSSadaf Ebrahimi/^(aa(b(bb))?)+$/I 773*22dc650dSSadaf Ebrahimi aabbbaa 774*22dc650dSSadaf Ebrahimi 775*22dc650dSSadaf Ebrahimi/^(aa(bb(bb))?)+$/I 776*22dc650dSSadaf Ebrahimi aabbbbaa 777*22dc650dSSadaf Ebrahimi 778*22dc650dSSadaf Ebrahimi# ---------------- 779*22dc650dSSadaf Ebrahimi 780*22dc650dSSadaf Ebrahimi/#/IBx 781*22dc650dSSadaf Ebrahimi 782*22dc650dSSadaf Ebrahimi/a#/IBx 783*22dc650dSSadaf Ebrahimi 784*22dc650dSSadaf Ebrahimi/[\s]/IB 785*22dc650dSSadaf Ebrahimi 786*22dc650dSSadaf Ebrahimi/[\S]/IB 787*22dc650dSSadaf Ebrahimi 788*22dc650dSSadaf Ebrahimi/a(?i)b/IB 789*22dc650dSSadaf Ebrahimi ab 790*22dc650dSSadaf Ebrahimi aB 791*22dc650dSSadaf Ebrahimi\= Expect no match 792*22dc650dSSadaf Ebrahimi AB 793*22dc650dSSadaf Ebrahimi 794*22dc650dSSadaf Ebrahimi/(a(?i)b)/IB 795*22dc650dSSadaf Ebrahimi ab 796*22dc650dSSadaf Ebrahimi aB 797*22dc650dSSadaf Ebrahimi\= Expect no match 798*22dc650dSSadaf Ebrahimi AB 799*22dc650dSSadaf Ebrahimi 800*22dc650dSSadaf Ebrahimi/ (?i)abc/IBx 801*22dc650dSSadaf Ebrahimi 802*22dc650dSSadaf Ebrahimi/#this is a comment 803*22dc650dSSadaf Ebrahimi (?i)abc/IBx 804*22dc650dSSadaf Ebrahimi 805*22dc650dSSadaf Ebrahimi/123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/IB 806*22dc650dSSadaf Ebrahimi 807*22dc650dSSadaf Ebrahimi/\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/IB 808*22dc650dSSadaf Ebrahimi 809*22dc650dSSadaf Ebrahimi/\Q\E/IB 810*22dc650dSSadaf Ebrahimi \ 811*22dc650dSSadaf Ebrahimi 812*22dc650dSSadaf Ebrahimi/\Q\Ex/IB 813*22dc650dSSadaf Ebrahimi 814*22dc650dSSadaf Ebrahimi/ \Q\E/IB 815*22dc650dSSadaf Ebrahimi 816*22dc650dSSadaf Ebrahimi/a\Q\E/IB 817*22dc650dSSadaf Ebrahimi abc 818*22dc650dSSadaf Ebrahimi bca 819*22dc650dSSadaf Ebrahimi bac 820*22dc650dSSadaf Ebrahimi 821*22dc650dSSadaf Ebrahimi/a\Q\Eb/IB 822*22dc650dSSadaf Ebrahimi abc 823*22dc650dSSadaf Ebrahimi 824*22dc650dSSadaf Ebrahimi/\Q\Eabc/IB 825*22dc650dSSadaf Ebrahimi 826*22dc650dSSadaf Ebrahimi/x*+\w/IB 827*22dc650dSSadaf Ebrahimi\= Expect no match 828*22dc650dSSadaf Ebrahimi xxxxx 829*22dc650dSSadaf Ebrahimi 830*22dc650dSSadaf Ebrahimi/x?+/IB 831*22dc650dSSadaf Ebrahimi 832*22dc650dSSadaf Ebrahimi/x++/IB 833*22dc650dSSadaf Ebrahimi 834*22dc650dSSadaf Ebrahimi/x{1,3}+/B,no_auto_possess 835*22dc650dSSadaf Ebrahimi 836*22dc650dSSadaf Ebrahimi/x{1,3}+/Bi,no_auto_possess 837*22dc650dSSadaf Ebrahimi 838*22dc650dSSadaf Ebrahimi/[^x]{1,3}+/B,no_auto_possess 839*22dc650dSSadaf Ebrahimi 840*22dc650dSSadaf Ebrahimi/[^x]{1,3}+/Bi,no_auto_possess 841*22dc650dSSadaf Ebrahimi 842*22dc650dSSadaf Ebrahimi/(x)*+/IB 843*22dc650dSSadaf Ebrahimi 844*22dc650dSSadaf Ebrahimi/^(\w++|\s++)*$/I 845*22dc650dSSadaf Ebrahimi now is the time for all good men to come to the aid of the party 846*22dc650dSSadaf Ebrahimi\= Expect no match 847*22dc650dSSadaf Ebrahimi this is not a line with only words and spaces! 848*22dc650dSSadaf Ebrahimi 849*22dc650dSSadaf Ebrahimi/(\d++)(\w)/I 850*22dc650dSSadaf Ebrahimi 12345a 851*22dc650dSSadaf Ebrahimi\= Expect no match 852*22dc650dSSadaf Ebrahimi 12345+ 853*22dc650dSSadaf Ebrahimi 854*22dc650dSSadaf Ebrahimi/a++b/I 855*22dc650dSSadaf Ebrahimi aaab 856*22dc650dSSadaf Ebrahimi 857*22dc650dSSadaf Ebrahimi/(a++b)/I 858*22dc650dSSadaf Ebrahimi aaab 859*22dc650dSSadaf Ebrahimi 860*22dc650dSSadaf Ebrahimi/(a++)b/I 861*22dc650dSSadaf Ebrahimi aaab 862*22dc650dSSadaf Ebrahimi 863*22dc650dSSadaf Ebrahimi/([^()]++|\([^()]*\))+/I 864*22dc650dSSadaf Ebrahimi ((abc(ade)ufh()()x 865*22dc650dSSadaf Ebrahimi 866*22dc650dSSadaf Ebrahimi/\(([^()]++|\([^()]+\))+\)/I 867*22dc650dSSadaf Ebrahimi (abc) 868*22dc650dSSadaf Ebrahimi (abc(def)xyz) 869*22dc650dSSadaf Ebrahimi\= Expect no match 870*22dc650dSSadaf Ebrahimi ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 871*22dc650dSSadaf Ebrahimi 872*22dc650dSSadaf Ebrahimi/(abc){1,3}+/IB 873*22dc650dSSadaf Ebrahimi 874*22dc650dSSadaf Ebrahimi/a+?+/I 875*22dc650dSSadaf Ebrahimi 876*22dc650dSSadaf Ebrahimi/a{2,3}?+b/I 877*22dc650dSSadaf Ebrahimi 878*22dc650dSSadaf Ebrahimi/(?U)a+?+/I 879*22dc650dSSadaf Ebrahimi 880*22dc650dSSadaf Ebrahimi/a{2,3}?+b/I,ungreedy 881*22dc650dSSadaf Ebrahimi 882*22dc650dSSadaf Ebrahimi/x(?U)a++b/IB 883*22dc650dSSadaf Ebrahimi xaaaab 884*22dc650dSSadaf Ebrahimi 885*22dc650dSSadaf Ebrahimi/(?U)xa++b/IB 886*22dc650dSSadaf Ebrahimi xaaaab 887*22dc650dSSadaf Ebrahimi 888*22dc650dSSadaf Ebrahimi/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/IB 889*22dc650dSSadaf Ebrahimi 890*22dc650dSSadaf Ebrahimi/^x(?U)a+b/IB 891*22dc650dSSadaf Ebrahimi 892*22dc650dSSadaf Ebrahimi/^x(?U)(a+)b/IB 893*22dc650dSSadaf Ebrahimi 894*22dc650dSSadaf Ebrahimi/[.x.]/I 895*22dc650dSSadaf Ebrahimi 896*22dc650dSSadaf Ebrahimi/[=x=]/I 897*22dc650dSSadaf Ebrahimi 898*22dc650dSSadaf Ebrahimi/[:x:]/I 899*22dc650dSSadaf Ebrahimi 900*22dc650dSSadaf Ebrahimi/\F/I 901*22dc650dSSadaf Ebrahimi 902*22dc650dSSadaf Ebrahimi/\l/I 903*22dc650dSSadaf Ebrahimi 904*22dc650dSSadaf Ebrahimi/\L/I 905*22dc650dSSadaf Ebrahimi 906*22dc650dSSadaf Ebrahimi/\N{name}/I 907*22dc650dSSadaf Ebrahimi 908*22dc650dSSadaf Ebrahimi/\u/I 909*22dc650dSSadaf Ebrahimi 910*22dc650dSSadaf Ebrahimi/\U/I 911*22dc650dSSadaf Ebrahimi 912*22dc650dSSadaf Ebrahimi/\N{4}/ 913*22dc650dSSadaf Ebrahimi abcdefg 914*22dc650dSSadaf Ebrahimi 915*22dc650dSSadaf Ebrahimi/\N{,}/ 916*22dc650dSSadaf Ebrahimi 917*22dc650dSSadaf Ebrahimi/\N{25,ab}/ 918*22dc650dSSadaf Ebrahimi 919*22dc650dSSadaf Ebrahimi/a{1,3}b/ungreedy 920*22dc650dSSadaf Ebrahimi ab 921*22dc650dSSadaf Ebrahimi 922*22dc650dSSadaf Ebrahimi/[/I 923*22dc650dSSadaf Ebrahimi 924*22dc650dSSadaf Ebrahimi/[a-/I 925*22dc650dSSadaf Ebrahimi 926*22dc650dSSadaf Ebrahimi/[[:space:]/I 927*22dc650dSSadaf Ebrahimi 928*22dc650dSSadaf Ebrahimi/[\s]/IB 929*22dc650dSSadaf Ebrahimi 930*22dc650dSSadaf Ebrahimi/[[:space:]]/IB 931*22dc650dSSadaf Ebrahimi 932*22dc650dSSadaf Ebrahimi/[[:space:]abcde]/IB 933*22dc650dSSadaf Ebrahimi 934*22dc650dSSadaf Ebrahimi/< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix 935*22dc650dSSadaf Ebrahimi <> 936*22dc650dSSadaf Ebrahimi <abcd> 937*22dc650dSSadaf Ebrahimi <abc <123> hij> 938*22dc650dSSadaf Ebrahimi <abc <def> hij> 939*22dc650dSSadaf Ebrahimi <abc<>def> 940*22dc650dSSadaf Ebrahimi <abc<> 941*22dc650dSSadaf Ebrahimi\= Expect no match 942*22dc650dSSadaf Ebrahimi <abc 943*22dc650dSSadaf Ebrahimi 944*22dc650dSSadaf Ebrahimi/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 945*22dc650dSSadaf Ebrahimi 946*22dc650dSSadaf Ebrahimi/\$\<\.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 947*22dc650dSSadaf Ebrahimi 948*22dc650dSSadaf Ebrahimi/(.*)\d+\1/I 949*22dc650dSSadaf Ebrahimi 950*22dc650dSSadaf Ebrahimi/(.*)\d+/I 951*22dc650dSSadaf Ebrahimi 952*22dc650dSSadaf Ebrahimi/(.*)\d+\1/Is 953*22dc650dSSadaf Ebrahimi 954*22dc650dSSadaf Ebrahimi/(.*)\d+/Is 955*22dc650dSSadaf Ebrahimi 956*22dc650dSSadaf Ebrahimi/(.*(xyz))\d+\2/I 957*22dc650dSSadaf Ebrahimi 958*22dc650dSSadaf Ebrahimi/((.*))\d+\1/I 959*22dc650dSSadaf Ebrahimi abc123bc 960*22dc650dSSadaf Ebrahimi 961*22dc650dSSadaf Ebrahimi/a[b]/I 962*22dc650dSSadaf Ebrahimi 963*22dc650dSSadaf Ebrahimi/(?=a).*/I 964*22dc650dSSadaf Ebrahimi 965*22dc650dSSadaf Ebrahimi/(?=abc).xyz/Ii 966*22dc650dSSadaf Ebrahimi 967*22dc650dSSadaf Ebrahimi/(?=abc)(?i).xyz/I 968*22dc650dSSadaf Ebrahimi 969*22dc650dSSadaf Ebrahimi/(?=a)(?=b)/I 970*22dc650dSSadaf Ebrahimi 971*22dc650dSSadaf Ebrahimi/(?=.)a/I 972*22dc650dSSadaf Ebrahimi 973*22dc650dSSadaf Ebrahimi/((?=abcda)a)/I 974*22dc650dSSadaf Ebrahimi 975*22dc650dSSadaf Ebrahimi/((?=abcda)ab)/I 976*22dc650dSSadaf Ebrahimi 977*22dc650dSSadaf Ebrahimi/()a/I 978*22dc650dSSadaf Ebrahimi 979*22dc650dSSadaf Ebrahimi/(?:(?=.)|(?<!x))a/I 980*22dc650dSSadaf Ebrahimi 981*22dc650dSSadaf Ebrahimi/(?(1)ab|ac)(.)/I 982*22dc650dSSadaf Ebrahimi 983*22dc650dSSadaf Ebrahimi/(?(1)abz|acz)(.)/I 984*22dc650dSSadaf Ebrahimi 985*22dc650dSSadaf Ebrahimi/(?(1)abz)(.)/I 986*22dc650dSSadaf Ebrahimi 987*22dc650dSSadaf Ebrahimi/(?(1)abz)(1)23/I 988*22dc650dSSadaf Ebrahimi 989*22dc650dSSadaf Ebrahimi/(a)+/I 990*22dc650dSSadaf Ebrahimi 991*22dc650dSSadaf Ebrahimi/(a){2,3}/I 992*22dc650dSSadaf Ebrahimi 993*22dc650dSSadaf Ebrahimi/(a)*/I 994*22dc650dSSadaf Ebrahimi 995*22dc650dSSadaf Ebrahimi/[a]/I 996*22dc650dSSadaf Ebrahimi 997*22dc650dSSadaf Ebrahimi/[ab]/I 998*22dc650dSSadaf Ebrahimi 999*22dc650dSSadaf Ebrahimi/[ab]/I 1000*22dc650dSSadaf Ebrahimi 1001*22dc650dSSadaf Ebrahimi/[^a]/I 1002*22dc650dSSadaf Ebrahimi 1003*22dc650dSSadaf Ebrahimi/\d456/I 1004*22dc650dSSadaf Ebrahimi 1005*22dc650dSSadaf Ebrahimi/\d456/I 1006*22dc650dSSadaf Ebrahimi 1007*22dc650dSSadaf Ebrahimi/a^b/I 1008*22dc650dSSadaf Ebrahimi 1009*22dc650dSSadaf Ebrahimi/^a/Im 1010*22dc650dSSadaf Ebrahimi abcde 1011*22dc650dSSadaf Ebrahimi xy\nabc 1012*22dc650dSSadaf Ebrahimi\= Expect no match 1013*22dc650dSSadaf Ebrahimi xyabc 1014*22dc650dSSadaf Ebrahimi 1015*22dc650dSSadaf Ebrahimi/c|abc/I 1016*22dc650dSSadaf Ebrahimi 1017*22dc650dSSadaf Ebrahimi/(?i)[ab]/I 1018*22dc650dSSadaf Ebrahimi 1019*22dc650dSSadaf Ebrahimi/[ab](?i)cd/I 1020*22dc650dSSadaf Ebrahimi 1021*22dc650dSSadaf Ebrahimi/abc(?C)def/I 1022*22dc650dSSadaf Ebrahimi abcdef 1023*22dc650dSSadaf Ebrahimi 1234abcdef 1024*22dc650dSSadaf Ebrahimi\= Expect no match 1025*22dc650dSSadaf Ebrahimi abcxyz 1026*22dc650dSSadaf Ebrahimi abcxyzf 1027*22dc650dSSadaf Ebrahimi 1028*22dc650dSSadaf Ebrahimi/abc(?C)de(?C1)f/I 1029*22dc650dSSadaf Ebrahimi 123abcdef 1030*22dc650dSSadaf Ebrahimi 1031*22dc650dSSadaf Ebrahimi/(?C1)\dabc(?C2)def/I 1032*22dc650dSSadaf Ebrahimi 1234abcdef 1033*22dc650dSSadaf Ebrahimi\= Expect no match 1034*22dc650dSSadaf Ebrahimi abcdef 1035*22dc650dSSadaf Ebrahimi 1036*22dc650dSSadaf Ebrahimi/(?C1)\dabc(?C2)def/I 1037*22dc650dSSadaf Ebrahimi 1234abcdef 1038*22dc650dSSadaf Ebrahimi\= Expect no match 1039*22dc650dSSadaf Ebrahimi abcdef 1040*22dc650dSSadaf Ebrahimi 1041*22dc650dSSadaf Ebrahimi/(?C255)ab/I 1042*22dc650dSSadaf Ebrahimi 1043*22dc650dSSadaf Ebrahimi/(?C256)ab/I 1044*22dc650dSSadaf Ebrahimi 1045*22dc650dSSadaf Ebrahimi/(?Cab)xx/I 1046*22dc650dSSadaf Ebrahimi 1047*22dc650dSSadaf Ebrahimi/(?C12vr)x/I 1048*22dc650dSSadaf Ebrahimi 1049*22dc650dSSadaf Ebrahimi/abc(?C)def/I 1050*22dc650dSSadaf Ebrahimi \x83\x0\x61bcdef 1051*22dc650dSSadaf Ebrahimi 1052*22dc650dSSadaf Ebrahimi/(abc)(?C)de(?C1)f/I 1053*22dc650dSSadaf Ebrahimi 123abcdef 1054*22dc650dSSadaf Ebrahimi 123abcdef\=callout_capture 1055*22dc650dSSadaf Ebrahimi 123abcdefC-\=callout_none 1056*22dc650dSSadaf Ebrahimi\= Expect no match 1057*22dc650dSSadaf Ebrahimi 123abcdef\=callout_fail=1 1058*22dc650dSSadaf Ebrahimi 1059*22dc650dSSadaf Ebrahimi/(?C0)(abc(?C1))*/I 1060*22dc650dSSadaf Ebrahimi abcabcabc 1061*22dc650dSSadaf Ebrahimi abcabc\=callout_fail=1:4 1062*22dc650dSSadaf Ebrahimi abcabcabc\=callout_fail=1:4 1063*22dc650dSSadaf Ebrahimi 1064*22dc650dSSadaf Ebrahimi/(\d{3}(?C))*/I 1065*22dc650dSSadaf Ebrahimi 123\=callout_capture 1066*22dc650dSSadaf Ebrahimi 123456\=callout_capture 1067*22dc650dSSadaf Ebrahimi 123456789\=callout_capture 1068*22dc650dSSadaf Ebrahimi 1069*22dc650dSSadaf Ebrahimi/((xyz)(?C)p|(?C1)xyzabc)/I 1070*22dc650dSSadaf Ebrahimi xyzabc\=callout_capture 1071*22dc650dSSadaf Ebrahimi 1072*22dc650dSSadaf Ebrahimi/(X)((xyz)(?C)p|(?C1)xyzabc)/I 1073*22dc650dSSadaf Ebrahimi Xxyzabc\=callout_capture 1074*22dc650dSSadaf Ebrahimi 1075*22dc650dSSadaf Ebrahimi/(?=(abc))(?C)abcdef/I 1076*22dc650dSSadaf Ebrahimi abcdef\=callout_capture 1077*22dc650dSSadaf Ebrahimi 1078*22dc650dSSadaf Ebrahimi/(?!(abc)(?C1)d)(?C2)abcxyz/I 1079*22dc650dSSadaf Ebrahimi abcxyz\=callout_capture 1080*22dc650dSSadaf Ebrahimi 1081*22dc650dSSadaf Ebrahimi/(?<=(abc)(?C))xyz/I 1082*22dc650dSSadaf Ebrahimi abcxyz\=callout_capture 1083*22dc650dSSadaf Ebrahimi 1084*22dc650dSSadaf Ebrahimi/a(b+)(c*)(?C1)/I 1085*22dc650dSSadaf Ebrahimi\= Expect no match 1086*22dc650dSSadaf Ebrahimi abbbbbccc\=callout_data=1 1087*22dc650dSSadaf Ebrahimi 1088*22dc650dSSadaf Ebrahimi/a(b+?)(c*?)(?C1)/I 1089*22dc650dSSadaf Ebrahimi\= Expect no match 1090*22dc650dSSadaf Ebrahimi abbbbbccc\=callout_data=1 1091*22dc650dSSadaf Ebrahimi 1092*22dc650dSSadaf Ebrahimi/(?C)abc/I 1093*22dc650dSSadaf Ebrahimi 1094*22dc650dSSadaf Ebrahimi/(?C)^abc/I 1095*22dc650dSSadaf Ebrahimi 1096*22dc650dSSadaf Ebrahimi/(?C)a|b/I 1097*22dc650dSSadaf Ebrahimi 1098*22dc650dSSadaf Ebrahimi/a|(b)(?C)/I 1099*22dc650dSSadaf Ebrahimi b 1100*22dc650dSSadaf Ebrahimi 1101*22dc650dSSadaf Ebrahimi/x(ab|(bc|(de|(?R))))/I 1102*22dc650dSSadaf Ebrahimi xab 1103*22dc650dSSadaf Ebrahimi xbc 1104*22dc650dSSadaf Ebrahimi xde 1105*22dc650dSSadaf Ebrahimi xxab 1106*22dc650dSSadaf Ebrahimi xxxab 1107*22dc650dSSadaf Ebrahimi\= Expect no match 1108*22dc650dSSadaf Ebrahimi xyab 1109*22dc650dSSadaf Ebrahimi 1110*22dc650dSSadaf Ebrahimi/^([^()]|\((?1)*\))*$/I 1111*22dc650dSSadaf Ebrahimi abc 1112*22dc650dSSadaf Ebrahimi a(b)c 1113*22dc650dSSadaf Ebrahimi a(b(c))d 1114*22dc650dSSadaf Ebrahimi\= Expect no match) 1115*22dc650dSSadaf Ebrahimi a(b(c)d 1116*22dc650dSSadaf Ebrahimi 1117*22dc650dSSadaf Ebrahimi/^>abc>([^()]|\((?1)*\))*<xyz<$/I 1118*22dc650dSSadaf Ebrahimi >abc>123<xyz< 1119*22dc650dSSadaf Ebrahimi >abc>1(2)3<xyz< 1120*22dc650dSSadaf Ebrahimi >abc>(1(2)3)<xyz< 1121*22dc650dSSadaf Ebrahimi 1122*22dc650dSSadaf Ebrahimi/(a(?1)b)/IB 1123*22dc650dSSadaf Ebrahimi 1124*22dc650dSSadaf Ebrahimi/(a(?1)+b)/IB 1125*22dc650dSSadaf Ebrahimi 1126*22dc650dSSadaf Ebrahimi/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I 1127*22dc650dSSadaf Ebrahimi 12 1128*22dc650dSSadaf Ebrahimi (((2+2)*-3)-7) 1129*22dc650dSSadaf Ebrahimi -12 1130*22dc650dSSadaf Ebrahimi\= Expect no match 1131*22dc650dSSadaf Ebrahimi ((2+2)*-3)-7) 1132*22dc650dSSadaf Ebrahimi 1133*22dc650dSSadaf Ebrahimi/^(x(y|(?1){2})z)/I 1134*22dc650dSSadaf Ebrahimi xyz 1135*22dc650dSSadaf Ebrahimi xxyzxyzz 1136*22dc650dSSadaf Ebrahimi\= Expect no match 1137*22dc650dSSadaf Ebrahimi xxyzz 1138*22dc650dSSadaf Ebrahimi xxyzxyzxyzz 1139*22dc650dSSadaf Ebrahimi 1140*22dc650dSSadaf Ebrahimi/((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix 1141*22dc650dSSadaf Ebrahimi <> 1142*22dc650dSSadaf Ebrahimi <abcd> 1143*22dc650dSSadaf Ebrahimi <abc <123> hij> 1144*22dc650dSSadaf Ebrahimi <abc <def> hij> 1145*22dc650dSSadaf Ebrahimi <abc<>def> 1146*22dc650dSSadaf Ebrahimi <abc<> 1147*22dc650dSSadaf Ebrahimi\= Expect no match 1148*22dc650dSSadaf Ebrahimi <abc 1149*22dc650dSSadaf Ebrahimi 1150*22dc650dSSadaf Ebrahimi/(?1)/I 1151*22dc650dSSadaf Ebrahimi 1152*22dc650dSSadaf Ebrahimi/((?2)(abc)/I 1153*22dc650dSSadaf Ebrahimi 1154*22dc650dSSadaf Ebrahimi/^(abc)def(?1)/I 1155*22dc650dSSadaf Ebrahimi abcdefabc 1156*22dc650dSSadaf Ebrahimi 1157*22dc650dSSadaf Ebrahimi/^(a|b|c)=(?1)+/I 1158*22dc650dSSadaf Ebrahimi a=a 1159*22dc650dSSadaf Ebrahimi a=b 1160*22dc650dSSadaf Ebrahimi a=bc 1161*22dc650dSSadaf Ebrahimi 1162*22dc650dSSadaf Ebrahimi/^(a|b|c)=((?1))+/I 1163*22dc650dSSadaf Ebrahimi a=a 1164*22dc650dSSadaf Ebrahimi a=b 1165*22dc650dSSadaf Ebrahimi a=bc 1166*22dc650dSSadaf Ebrahimi 1167*22dc650dSSadaf Ebrahimi/a(?P<name1>b|c)d(?P<longername2>e)/IB 1168*22dc650dSSadaf Ebrahimi abde 1169*22dc650dSSadaf Ebrahimi acde 1170*22dc650dSSadaf Ebrahimi 1171*22dc650dSSadaf Ebrahimi/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/IB 1172*22dc650dSSadaf Ebrahimi 1173*22dc650dSSadaf Ebrahimi/(?P<a>a)...(?P=a)bbb(?P>a)d/IB 1174*22dc650dSSadaf Ebrahimi 1175*22dc650dSSadaf Ebrahimi/^\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 1176*22dc650dSSadaf Ebrahimi 1221 1177*22dc650dSSadaf Ebrahimi Satan, oscillate my metallic sonatas! 1178*22dc650dSSadaf Ebrahimi A man, a plan, a canal: Panama! 1179*22dc650dSSadaf Ebrahimi Able was I ere I saw Elba. 1180*22dc650dSSadaf Ebrahimi\= Expect no match 1181*22dc650dSSadaf Ebrahimi The quick brown fox 1182*22dc650dSSadaf Ebrahimi 1183*22dc650dSSadaf Ebrahimi/((?(R)a|b))\1(?1)?/I 1184*22dc650dSSadaf Ebrahimi bb 1185*22dc650dSSadaf Ebrahimi bbaa 1186*22dc650dSSadaf Ebrahimi 1187*22dc650dSSadaf Ebrahimi/(.*)a/Is 1188*22dc650dSSadaf Ebrahimi 1189*22dc650dSSadaf Ebrahimi/(.*)a\1/Is 1190*22dc650dSSadaf Ebrahimi 1191*22dc650dSSadaf Ebrahimi/(.*)a(b)\2/Is 1192*22dc650dSSadaf Ebrahimi 1193*22dc650dSSadaf Ebrahimi/((.*)a|(.*)b)z/Is 1194*22dc650dSSadaf Ebrahimi 1195*22dc650dSSadaf Ebrahimi/((.*)a|(.*)b)z\1/Is 1196*22dc650dSSadaf Ebrahimi 1197*22dc650dSSadaf Ebrahimi/((.*)a|(.*)b)z\2/Is 1198*22dc650dSSadaf Ebrahimi 1199*22dc650dSSadaf Ebrahimi/((.*)a|(.*)b)z\3/Is 1200*22dc650dSSadaf Ebrahimi 1201*22dc650dSSadaf Ebrahimi/((.*)a|^(.*)b)z\3/Is 1202*22dc650dSSadaf Ebrahimi 1203*22dc650dSSadaf Ebrahimi/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is 1204*22dc650dSSadaf Ebrahimi 1205*22dc650dSSadaf Ebrahimi/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is 1206*22dc650dSSadaf Ebrahimi 1207*22dc650dSSadaf Ebrahimi/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is 1208*22dc650dSSadaf Ebrahimi 1209*22dc650dSSadaf Ebrahimi/(a)(bc)/IB,no_auto_capture 1210*22dc650dSSadaf Ebrahimi abc 1211*22dc650dSSadaf Ebrahimi 1212*22dc650dSSadaf Ebrahimi/(?P<one>a)(bc)/IB,no_auto_capture 1213*22dc650dSSadaf Ebrahimi abc 1214*22dc650dSSadaf Ebrahimi 1215*22dc650dSSadaf Ebrahimi/(a)(?P<named>bc)/IB,no_auto_capture 1216*22dc650dSSadaf Ebrahimi 1217*22dc650dSSadaf Ebrahimi/(aaa(?C1)bbb|ab)/I 1218*22dc650dSSadaf Ebrahimi aaabbb 1219*22dc650dSSadaf Ebrahimi aaabbb\=callout_data=0 1220*22dc650dSSadaf Ebrahimi aaabbb\=callout_data=1 1221*22dc650dSSadaf Ebrahimi\= Expect no match 1222*22dc650dSSadaf Ebrahimi aaabbb\=callout_data=-1 1223*22dc650dSSadaf Ebrahimi 1224*22dc650dSSadaf Ebrahimi/ab(?P<one>cd)ef(?P<two>gh)/I 1225*22dc650dSSadaf Ebrahimi abcdefgh 1226*22dc650dSSadaf Ebrahimi abcdefgh\=copy=1,get=two 1227*22dc650dSSadaf Ebrahimi abcdefgh\=copy=one,copy=two 1228*22dc650dSSadaf Ebrahimi abcdefgh\=copy=three 1229*22dc650dSSadaf Ebrahimi 1230*22dc650dSSadaf Ebrahimi/(?P<Tes>)(?P<Test>)/IB 1231*22dc650dSSadaf Ebrahimi 1232*22dc650dSSadaf Ebrahimi/(?P<Test>)(?P<Tes>)/IB 1233*22dc650dSSadaf Ebrahimi 1234*22dc650dSSadaf Ebrahimi/(?P<Z>zz)(?P<A>aa)/I 1235*22dc650dSSadaf Ebrahimi zzaa\=copy=Z 1236*22dc650dSSadaf Ebrahimi zzaa\=copy=A 1237*22dc650dSSadaf Ebrahimi 1238*22dc650dSSadaf Ebrahimi/(?P<x>eks)(?P<x>eccs)/I 1239*22dc650dSSadaf Ebrahimi 1240*22dc650dSSadaf Ebrahimi/(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I 1241*22dc650dSSadaf Ebrahimi 1242*22dc650dSSadaf Ebrahimi"\[((?P<elem>\d+)(,(?P>elem))*)\]"I 1243*22dc650dSSadaf Ebrahimi [10,20,30,5,5,4,4,2,43,23,4234] 1244*22dc650dSSadaf Ebrahimi\= Expect no match 1245*22dc650dSSadaf Ebrahimi [] 1246*22dc650dSSadaf Ebrahimi 1247*22dc650dSSadaf Ebrahimi"\[((?P<elem>\d+)(,(?P>elem))*)?\]"I 1248*22dc650dSSadaf Ebrahimi [10,20,30,5,5,4,4,2,43,23,4234] 1249*22dc650dSSadaf Ebrahimi [] 1250*22dc650dSSadaf Ebrahimi 1251*22dc650dSSadaf Ebrahimi/(a(b(?2)c))?/IB 1252*22dc650dSSadaf Ebrahimi 1253*22dc650dSSadaf Ebrahimi/(a(b(?2)c))*/IB 1254*22dc650dSSadaf Ebrahimi 1255*22dc650dSSadaf Ebrahimi/(a(b(?2)c)){0,2}/IB 1256*22dc650dSSadaf Ebrahimi 1257*22dc650dSSadaf Ebrahimi/[ab]{1}+/B 1258*22dc650dSSadaf Ebrahimi 1259*22dc650dSSadaf Ebrahimi/()(?1){1}/B 1260*22dc650dSSadaf Ebrahimi 1261*22dc650dSSadaf Ebrahimi/()(?1)/B 1262*22dc650dSSadaf Ebrahimi 1263*22dc650dSSadaf Ebrahimi/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii 1264*22dc650dSSadaf Ebrahimi Baby Bjorn Active Carrier - With free SHIPPING!! 1265*22dc650dSSadaf Ebrahimi 1266*22dc650dSSadaf Ebrahimi/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii 1267*22dc650dSSadaf Ebrahimi Baby Bjorn Active Carrier - With free SHIPPING!! 1268*22dc650dSSadaf Ebrahimi 1269*22dc650dSSadaf Ebrahimi/a*.*b/IB 1270*22dc650dSSadaf Ebrahimi 1271*22dc650dSSadaf Ebrahimi/(a|b)*.?c/IB 1272*22dc650dSSadaf Ebrahimi 1273*22dc650dSSadaf Ebrahimi/abc(?C255)de(?C)f/IB 1274*22dc650dSSadaf Ebrahimi 1275*22dc650dSSadaf Ebrahimi/abcde/IB,auto_callout 1276*22dc650dSSadaf Ebrahimi abcde 1277*22dc650dSSadaf Ebrahimi\= Expect no match 1278*22dc650dSSadaf Ebrahimi abcdfe 1279*22dc650dSSadaf Ebrahimi 1280*22dc650dSSadaf Ebrahimi/a*b/IB,auto_callout 1281*22dc650dSSadaf Ebrahimi ab 1282*22dc650dSSadaf Ebrahimi aaaab 1283*22dc650dSSadaf Ebrahimi aaaacb 1284*22dc650dSSadaf Ebrahimi 1285*22dc650dSSadaf Ebrahimi/a*b/IB,auto_callout 1286*22dc650dSSadaf Ebrahimi ab 1287*22dc650dSSadaf Ebrahimi aaaab 1288*22dc650dSSadaf Ebrahimi aaaacb 1289*22dc650dSSadaf Ebrahimi 1290*22dc650dSSadaf Ebrahimi/a+b/IB,auto_callout 1291*22dc650dSSadaf Ebrahimi ab 1292*22dc650dSSadaf Ebrahimi aaaab 1293*22dc650dSSadaf Ebrahimi\= Expect no match 1294*22dc650dSSadaf Ebrahimi aaaacb 1295*22dc650dSSadaf Ebrahimi 1296*22dc650dSSadaf Ebrahimi/(abc|def)x/IB,auto_callout 1297*22dc650dSSadaf Ebrahimi abcx 1298*22dc650dSSadaf Ebrahimi defx 1299*22dc650dSSadaf Ebrahimi\= Expect no match 1300*22dc650dSSadaf Ebrahimi abcdefzx 1301*22dc650dSSadaf Ebrahimi 1302*22dc650dSSadaf Ebrahimi/(abc|def)x/IB,auto_callout 1303*22dc650dSSadaf Ebrahimi abcx 1304*22dc650dSSadaf Ebrahimi defx 1305*22dc650dSSadaf Ebrahimi\= Expect no match 1306*22dc650dSSadaf Ebrahimi abcdefzx 1307*22dc650dSSadaf Ebrahimi 1308*22dc650dSSadaf Ebrahimi/(ab|cd){3,4}/I,auto_callout 1309*22dc650dSSadaf Ebrahimi ababab 1310*22dc650dSSadaf Ebrahimi abcdabcd 1311*22dc650dSSadaf Ebrahimi abcdcdcdcdcd 1312*22dc650dSSadaf Ebrahimi 1313*22dc650dSSadaf Ebrahimi/([ab]{,}c|xy)/IB,auto_callout 1314*22dc650dSSadaf Ebrahimi\= Expect no match 1315*22dc650dSSadaf Ebrahimi Note: that {,} does NOT introduce a quantifier 1316*22dc650dSSadaf Ebrahimi 1317*22dc650dSSadaf Ebrahimi/([ab]{,}c|xy)/IB,auto_callout 1318*22dc650dSSadaf Ebrahimi\= Expect no match 1319*22dc650dSSadaf Ebrahimi Note: that {,} does NOT introduce a quantifier 1320*22dc650dSSadaf Ebrahimi 1321*22dc650dSSadaf Ebrahimi/([ab]{1,4}c|xy){4,5}?123/IB,auto_callout 1322*22dc650dSSadaf Ebrahimi aacaacaacaacaac123 1323*22dc650dSSadaf Ebrahimi 1324*22dc650dSSadaf Ebrahimi/\b.*/I 1325*22dc650dSSadaf Ebrahimi ab cd\=offset=1 1326*22dc650dSSadaf Ebrahimi 1327*22dc650dSSadaf Ebrahimi/\b.*/Is 1328*22dc650dSSadaf Ebrahimi ab cd\=startoffset=1 1329*22dc650dSSadaf Ebrahimi 1330*22dc650dSSadaf Ebrahimi/(?!.bcd).*/I 1331*22dc650dSSadaf Ebrahimi Xbcd12345 1332*22dc650dSSadaf Ebrahimi 1333*22dc650dSSadaf Ebrahimi/abcde/I 1334*22dc650dSSadaf Ebrahimi ab\=ps 1335*22dc650dSSadaf Ebrahimi abc\=ps 1336*22dc650dSSadaf Ebrahimi abcd\=ps 1337*22dc650dSSadaf Ebrahimi abcde\=ps 1338*22dc650dSSadaf Ebrahimi the quick brown abc\=ps 1339*22dc650dSSadaf Ebrahimi\= Expect no match\=ps 1340*22dc650dSSadaf Ebrahimi the quick brown abxyz fox\=ps 1341*22dc650dSSadaf Ebrahimi 1342*22dc650dSSadaf Ebrahimi"^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I 1343*22dc650dSSadaf Ebrahimi 13/05/04\=ps 1344*22dc650dSSadaf Ebrahimi 13/5/2004\=ps 1345*22dc650dSSadaf Ebrahimi 02/05/09\=ps 1346*22dc650dSSadaf Ebrahimi 1\=ps 1347*22dc650dSSadaf Ebrahimi 1/2\=ps 1348*22dc650dSSadaf Ebrahimi 1/2/0\=ps 1349*22dc650dSSadaf Ebrahimi 1/2/04\=ps 1350*22dc650dSSadaf Ebrahimi 0\=ps 1351*22dc650dSSadaf Ebrahimi 02/\=ps 1352*22dc650dSSadaf Ebrahimi 02/0\=ps 1353*22dc650dSSadaf Ebrahimi 02/1\=ps 1354*22dc650dSSadaf Ebrahimi\= Expect no match\=ps 1355*22dc650dSSadaf Ebrahimi \=ps 1356*22dc650dSSadaf Ebrahimi 123\=ps 1357*22dc650dSSadaf Ebrahimi 33/4/04\=ps 1358*22dc650dSSadaf Ebrahimi 3/13/04\=ps 1359*22dc650dSSadaf Ebrahimi 0/1/2003\=ps 1360*22dc650dSSadaf Ebrahimi 0/\=ps 1361*22dc650dSSadaf Ebrahimi 02/0/\=ps 1362*22dc650dSSadaf Ebrahimi 02/13\=ps 1363*22dc650dSSadaf Ebrahimi 1364*22dc650dSSadaf Ebrahimi/0{0,2}ABC/I 1365*22dc650dSSadaf Ebrahimi 1366*22dc650dSSadaf Ebrahimi/\d{3,}ABC/I 1367*22dc650dSSadaf Ebrahimi 1368*22dc650dSSadaf Ebrahimi/\d*ABC/I 1369*22dc650dSSadaf Ebrahimi 1370*22dc650dSSadaf Ebrahimi/[abc]+DE/I 1371*22dc650dSSadaf Ebrahimi 1372*22dc650dSSadaf Ebrahimi/[abc]?123/I 1373*22dc650dSSadaf Ebrahimi 123\=ps 1374*22dc650dSSadaf Ebrahimi a\=ps 1375*22dc650dSSadaf Ebrahimi b\=ps 1376*22dc650dSSadaf Ebrahimi c\=ps 1377*22dc650dSSadaf Ebrahimi c12\=ps 1378*22dc650dSSadaf Ebrahimi c123\=ps 1379*22dc650dSSadaf Ebrahimi 1380*22dc650dSSadaf Ebrahimi/^(?:\d){3,5}X/I 1381*22dc650dSSadaf Ebrahimi 1\=ps 1382*22dc650dSSadaf Ebrahimi 123\=ps 1383*22dc650dSSadaf Ebrahimi 123X 1384*22dc650dSSadaf Ebrahimi 1234\=ps 1385*22dc650dSSadaf Ebrahimi 1234X 1386*22dc650dSSadaf Ebrahimi 12345\=ps 1387*22dc650dSSadaf Ebrahimi 12345X 1388*22dc650dSSadaf Ebrahimi\= Expect no match 1389*22dc650dSSadaf Ebrahimi 1X 1390*22dc650dSSadaf Ebrahimi 123456\=ps 1391*22dc650dSSadaf Ebrahimi 1392*22dc650dSSadaf Ebrahimi"<(\w+)/?>(.)*</(\1)>"Igms 1393*22dc650dSSadaf Ebrahimi <!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 1394*22dc650dSSadaf Ebrahimi 1395*22dc650dSSadaf Ebrahimi/line\nbreak/I 1396*22dc650dSSadaf Ebrahimi this is a line\nbreak 1397*22dc650dSSadaf Ebrahimi line one\nthis is a line\nbreak in the second line 1398*22dc650dSSadaf Ebrahimi 1399*22dc650dSSadaf Ebrahimi/line\nbreak/I,firstline 1400*22dc650dSSadaf Ebrahimi this is a line\nbreak 1401*22dc650dSSadaf Ebrahimi\= Expect no match 1402*22dc650dSSadaf Ebrahimi line one\nthis is a line\nbreak in the second line 1403*22dc650dSSadaf Ebrahimi 1404*22dc650dSSadaf Ebrahimi/line\nbreak/Im,firstline 1405*22dc650dSSadaf Ebrahimi this is a line\nbreak 1406*22dc650dSSadaf Ebrahimi\= Expect no match 1407*22dc650dSSadaf Ebrahimi line one\nthis is a line\nbreak in the second line 1408*22dc650dSSadaf Ebrahimi 1409*22dc650dSSadaf Ebrahimi/(?i)(?-i)AbCd/I 1410*22dc650dSSadaf Ebrahimi AbCd 1411*22dc650dSSadaf Ebrahimi\= Expect no match 1412*22dc650dSSadaf Ebrahimi abcd 1413*22dc650dSSadaf Ebrahimi 1414*22dc650dSSadaf Ebrahimi/a{11111111111111111111}/I 1415*22dc650dSSadaf Ebrahimi 1416*22dc650dSSadaf Ebrahimi/(){64294967295}/I 1417*22dc650dSSadaf Ebrahimi 1418*22dc650dSSadaf Ebrahimi/(){2,4294967295}/I 1419*22dc650dSSadaf Ebrahimi 1420*22dc650dSSadaf Ebrahimi"(?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 1421*22dc650dSSadaf Ebrahimi abcdefghijklAkB 1422*22dc650dSSadaf Ebrahimi 1423*22dc650dSSadaf Ebrahimi"(?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 1424*22dc650dSSadaf Ebrahimi abcdefghijklAkB 1425*22dc650dSSadaf Ebrahimi 1426*22dc650dSSadaf Ebrahimi"(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I 1427*22dc650dSSadaf Ebrahimi abcdefghijklAkB 1428*22dc650dSSadaf Ebrahimi 1429*22dc650dSSadaf Ebrahimi"(?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 1430*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1431*22dc650dSSadaf Ebrahimi 1432*22dc650dSSadaf Ebrahimi"(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 1433*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1434*22dc650dSSadaf Ebrahimi 1435*22dc650dSSadaf Ebrahimi/[^()]*(?:\((?R)\)[^()]*)*/I 1436*22dc650dSSadaf Ebrahimi (this(and)that 1437*22dc650dSSadaf Ebrahimi (this(and)that) 1438*22dc650dSSadaf Ebrahimi (this(and)that)stuff 1439*22dc650dSSadaf Ebrahimi 1440*22dc650dSSadaf Ebrahimi/[^()]*(?:\((?>(?R))\)[^()]*)*/I 1441*22dc650dSSadaf Ebrahimi (this(and)that 1442*22dc650dSSadaf Ebrahimi (this(and)that) 1443*22dc650dSSadaf Ebrahimi 1444*22dc650dSSadaf Ebrahimi/[^()]*(?:\((?R)\))*[^()]*/I 1445*22dc650dSSadaf Ebrahimi (this(and)that 1446*22dc650dSSadaf Ebrahimi (this(and)that) 1447*22dc650dSSadaf Ebrahimi 1448*22dc650dSSadaf Ebrahimi/(?:\((?R)\))*[^()]*/I 1449*22dc650dSSadaf Ebrahimi (this(and)that 1450*22dc650dSSadaf Ebrahimi (this(and)that) 1451*22dc650dSSadaf Ebrahimi ((this)) 1452*22dc650dSSadaf Ebrahimi 1453*22dc650dSSadaf Ebrahimi/(?:\((?R)\))|[^()]*/I 1454*22dc650dSSadaf Ebrahimi (this(and)that 1455*22dc650dSSadaf Ebrahimi (this(and)that) 1456*22dc650dSSadaf Ebrahimi (this) 1457*22dc650dSSadaf Ebrahimi ((this)) 1458*22dc650dSSadaf Ebrahimi 1459*22dc650dSSadaf Ebrahimi/\x{0000ff}/I 1460*22dc650dSSadaf Ebrahimi 1461*22dc650dSSadaf Ebrahimi/^((?P<A>a1)|(?P<A>a2)b)/I 1462*22dc650dSSadaf Ebrahimi 1463*22dc650dSSadaf Ebrahimi/^((?P<A>a1)|(?P<A>a2)b)/I,dupnames 1464*22dc650dSSadaf Ebrahimi a1b\=copy=A 1465*22dc650dSSadaf Ebrahimi a2b\=copy=A 1466*22dc650dSSadaf Ebrahimi a1b\=copy=Z,copy=A 1467*22dc650dSSadaf Ebrahimi 1468*22dc650dSSadaf Ebrahimi/(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/I,dupnames 1469*22dc650dSSadaf Ebrahimi 1470*22dc650dSSadaf Ebrahimi/^(?P<A>a)(?P<A>b)/I,dupnames 1471*22dc650dSSadaf Ebrahimi ab\=copy=A 1472*22dc650dSSadaf Ebrahimi 1473*22dc650dSSadaf Ebrahimi/^(?P<A>a)(?P<A>b)|cd/I,dupnames 1474*22dc650dSSadaf Ebrahimi ab\=copy=A 1475*22dc650dSSadaf Ebrahimi cd\=copy=A 1476*22dc650dSSadaf Ebrahimi 1477*22dc650dSSadaf Ebrahimi/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/I,dupnames 1478*22dc650dSSadaf Ebrahimi cdefgh\=copy=A 1479*22dc650dSSadaf Ebrahimi 1480*22dc650dSSadaf Ebrahimi/^((?P<A>a1)|(?P<A>a2)b)/I,dupnames 1481*22dc650dSSadaf Ebrahimi a1b\=get=A 1482*22dc650dSSadaf Ebrahimi a2b\=get=A 1483*22dc650dSSadaf Ebrahimi a1b\=get=Z,get=A 1484*22dc650dSSadaf Ebrahimi 1485*22dc650dSSadaf Ebrahimi/^(?P<A>a)(?P<A>b)/I,dupnames 1486*22dc650dSSadaf Ebrahimi ab\=get=A 1487*22dc650dSSadaf Ebrahimi 1488*22dc650dSSadaf Ebrahimi/^(?P<A>a)(?P<A>b)|cd/I,dupnames 1489*22dc650dSSadaf Ebrahimi ab\=get=A 1490*22dc650dSSadaf Ebrahimi cd\=get=A 1491*22dc650dSSadaf Ebrahimi 1492*22dc650dSSadaf Ebrahimi/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/I,dupnames 1493*22dc650dSSadaf Ebrahimi cdefgh\=get=A 1494*22dc650dSSadaf Ebrahimi 1495*22dc650dSSadaf Ebrahimi/(?J)^((?P<A>a1)|(?P<A>a2)b)/I 1496*22dc650dSSadaf Ebrahimi a1b\=copy=A 1497*22dc650dSSadaf Ebrahimi a2b\=copy=A 1498*22dc650dSSadaf Ebrahimi 1499*22dc650dSSadaf Ebrahimi/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I 1500*22dc650dSSadaf Ebrahimi 1501*22dc650dSSadaf Ebrahimi# In this next test, J is not set at the outer level; consequently it isn't set 1502*22dc650dSSadaf Ebrahimi# in the pattern's options; consequently pcre2_substring_get_byname() produces 1503*22dc650dSSadaf Ebrahimi# a random value. 1504*22dc650dSSadaf Ebrahimi 1505*22dc650dSSadaf Ebrahimi/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I 1506*22dc650dSSadaf Ebrahimi a bc d\=copy=A,copy=B,copy=C 1507*22dc650dSSadaf Ebrahimi 1508*22dc650dSSadaf Ebrahimi/^(?P<A>a)?(?(A)a|b)/I 1509*22dc650dSSadaf Ebrahimi aabc 1510*22dc650dSSadaf Ebrahimi bc 1511*22dc650dSSadaf Ebrahimi\= Expect no match 1512*22dc650dSSadaf Ebrahimi abc 1513*22dc650dSSadaf Ebrahimi 1514*22dc650dSSadaf Ebrahimi/(?:(?(ZZ)a|b)(?P<ZZ>X))+/I 1515*22dc650dSSadaf Ebrahimi bXaX 1516*22dc650dSSadaf Ebrahimi 1517*22dc650dSSadaf Ebrahimi/(?:(?(2y)a|b)(X))+/I 1518*22dc650dSSadaf Ebrahimi 1519*22dc650dSSadaf Ebrahimi/(?:(?(ZA)a|b)(?P<ZZ>X))+/I 1520*22dc650dSSadaf Ebrahimi 1521*22dc650dSSadaf Ebrahimi/(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I 1522*22dc650dSSadaf Ebrahimi bbXaaX 1523*22dc650dSSadaf Ebrahimi 1524*22dc650dSSadaf Ebrahimi/(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I 1525*22dc650dSSadaf Ebrahimi (b)\\Xa\\X 1526*22dc650dSSadaf Ebrahimi 1527*22dc650dSSadaf Ebrahimi/(?P<ABC/I 1528*22dc650dSSadaf Ebrahimi 1529*22dc650dSSadaf Ebrahimi/(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I 1530*22dc650dSSadaf Ebrahimi bXXaYYaY 1531*22dc650dSSadaf Ebrahimi bXYaXXaX 1532*22dc650dSSadaf Ebrahimi 1533*22dc650dSSadaf Ebrahimi/()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I 1534*22dc650dSSadaf Ebrahimi bXXaYYaY 1535*22dc650dSSadaf Ebrahimi 1536*22dc650dSSadaf Ebrahimi/\s*,\s*/I 1537*22dc650dSSadaf Ebrahimi \x0b,\x0b 1538*22dc650dSSadaf Ebrahimi \x0c,\x0d 1539*22dc650dSSadaf Ebrahimi 1540*22dc650dSSadaf Ebrahimi/^abc/Im,newline=lf 1541*22dc650dSSadaf Ebrahimi xyz\nabc 1542*22dc650dSSadaf Ebrahimi xyz\r\nabc 1543*22dc650dSSadaf Ebrahimi\= Expect no match 1544*22dc650dSSadaf Ebrahimi xyz\rabc 1545*22dc650dSSadaf Ebrahimi xyzabc\r 1546*22dc650dSSadaf Ebrahimi xyzabc\rpqr 1547*22dc650dSSadaf Ebrahimi xyzabc\r\n 1548*22dc650dSSadaf Ebrahimi xyzabc\r\npqr 1549*22dc650dSSadaf Ebrahimi 1550*22dc650dSSadaf Ebrahimi/^abc/Im,newline=crlf 1551*22dc650dSSadaf Ebrahimi xyz\r\nabclf> 1552*22dc650dSSadaf Ebrahimi\= Expect no match 1553*22dc650dSSadaf Ebrahimi xyz\nabclf 1554*22dc650dSSadaf Ebrahimi xyz\rabclf 1555*22dc650dSSadaf Ebrahimi 1556*22dc650dSSadaf Ebrahimi/^abc/Im,newline=cr 1557*22dc650dSSadaf Ebrahimi xyz\rabc 1558*22dc650dSSadaf Ebrahimi\= Expect no match 1559*22dc650dSSadaf Ebrahimi xyz\nabc 1560*22dc650dSSadaf Ebrahimi xyz\r\nabc 1561*22dc650dSSadaf Ebrahimi 1562*22dc650dSSadaf Ebrahimi/^abc/Im,newline=bad 1563*22dc650dSSadaf Ebrahimi 1564*22dc650dSSadaf Ebrahimi/.*/I,newline=lf 1565*22dc650dSSadaf Ebrahimi abc\ndef 1566*22dc650dSSadaf Ebrahimi abc\rdef 1567*22dc650dSSadaf Ebrahimi abc\r\ndef 1568*22dc650dSSadaf Ebrahimi 1569*22dc650dSSadaf Ebrahimi/.*/I,newline=cr 1570*22dc650dSSadaf Ebrahimi abc\ndef 1571*22dc650dSSadaf Ebrahimi abc\rdef 1572*22dc650dSSadaf Ebrahimi abc\r\ndef 1573*22dc650dSSadaf Ebrahimi 1574*22dc650dSSadaf Ebrahimi/.*/I,newline=crlf 1575*22dc650dSSadaf Ebrahimi abc\ndef 1576*22dc650dSSadaf Ebrahimi abc\rdef 1577*22dc650dSSadaf Ebrahimi abc\r\ndef 1578*22dc650dSSadaf Ebrahimi 1579*22dc650dSSadaf Ebrahimi/\w+(.)(.)?def/Is 1580*22dc650dSSadaf Ebrahimi abc\ndef 1581*22dc650dSSadaf Ebrahimi abc\rdef 1582*22dc650dSSadaf Ebrahimi abc\r\ndef 1583*22dc650dSSadaf Ebrahimi 1584*22dc650dSSadaf Ebrahimi/(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I 1585*22dc650dSSadaf Ebrahimi 1586*22dc650dSSadaf Ebrahimi/()()()()()()()()()()()()()()()()()()()() 1587*22dc650dSSadaf Ebrahimi ()()()()()()()()()()()()()()()()()()()() 1588*22dc650dSSadaf Ebrahimi ()()()()()()()()()()()()()()()()()()()() 1589*22dc650dSSadaf Ebrahimi ()()()()()()()()()()()()()()()()()()()() 1590*22dc650dSSadaf Ebrahimi ()()()()()()()()()()()()()()()()()()()() 1591*22dc650dSSadaf Ebrahimi (.(.))/Ix 1592*22dc650dSSadaf Ebrahimi XY\=ovector=133 1593*22dc650dSSadaf Ebrahimi 1594*22dc650dSSadaf Ebrahimi/(a*b|(?i:c*(?-i)d))/I 1595*22dc650dSSadaf Ebrahimi 1596*22dc650dSSadaf Ebrahimi/()[ab]xyz/I 1597*22dc650dSSadaf Ebrahimi 1598*22dc650dSSadaf Ebrahimi/(|)[ab]xyz/I 1599*22dc650dSSadaf Ebrahimi 1600*22dc650dSSadaf Ebrahimi/(|c)[ab]xyz/I 1601*22dc650dSSadaf Ebrahimi 1602*22dc650dSSadaf Ebrahimi/(|c?)[ab]xyz/I 1603*22dc650dSSadaf Ebrahimi 1604*22dc650dSSadaf Ebrahimi/(d?|c?)[ab]xyz/I 1605*22dc650dSSadaf Ebrahimi 1606*22dc650dSSadaf Ebrahimi/(d?|c)[ab]xyz/I 1607*22dc650dSSadaf Ebrahimi 1608*22dc650dSSadaf Ebrahimi/^a*b\d/IB 1609*22dc650dSSadaf Ebrahimi 1610*22dc650dSSadaf Ebrahimi/^a*+b\d/IB 1611*22dc650dSSadaf Ebrahimi 1612*22dc650dSSadaf Ebrahimi/^a*?b\d/IB 1613*22dc650dSSadaf Ebrahimi 1614*22dc650dSSadaf Ebrahimi/^a+A\d/IB 1615*22dc650dSSadaf Ebrahimi aaaA5 1616*22dc650dSSadaf Ebrahimi\= Expect no match 1617*22dc650dSSadaf Ebrahimi aaaa5 1618*22dc650dSSadaf Ebrahimi 1619*22dc650dSSadaf Ebrahimi/^a*A\d/IBi 1620*22dc650dSSadaf Ebrahimi aaaA5 1621*22dc650dSSadaf Ebrahimi aaaa5 1622*22dc650dSSadaf Ebrahimi a5 1623*22dc650dSSadaf Ebrahimi 1624*22dc650dSSadaf Ebrahimi/(a*|b*)[cd]/I 1625*22dc650dSSadaf Ebrahimi 1626*22dc650dSSadaf Ebrahimi/(a+|b*)[cd]/I 1627*22dc650dSSadaf Ebrahimi 1628*22dc650dSSadaf Ebrahimi/(a*|b+)[cd]/I 1629*22dc650dSSadaf Ebrahimi 1630*22dc650dSSadaf Ebrahimi/(a+|b+)[cd]/I 1631*22dc650dSSadaf Ebrahimi 1632*22dc650dSSadaf Ebrahimi/(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( 1633*22dc650dSSadaf Ebrahimi (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( 1634*22dc650dSSadaf Ebrahimi ((( 1635*22dc650dSSadaf Ebrahimi a 1636*22dc650dSSadaf Ebrahimi )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 1637*22dc650dSSadaf Ebrahimi )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 1638*22dc650dSSadaf Ebrahimi ))) 1639*22dc650dSSadaf Ebrahimi/Ix 1640*22dc650dSSadaf Ebrahimi large nest 1641*22dc650dSSadaf Ebrahimi 1642*22dc650dSSadaf Ebrahimi/a*\d/B 1643*22dc650dSSadaf Ebrahimi 1644*22dc650dSSadaf Ebrahimi/a*\D/B 1645*22dc650dSSadaf Ebrahimi 1646*22dc650dSSadaf Ebrahimi/0*\d/B 1647*22dc650dSSadaf Ebrahimi 1648*22dc650dSSadaf Ebrahimi/0*\D/B 1649*22dc650dSSadaf Ebrahimi 1650*22dc650dSSadaf Ebrahimi/a*\s/B 1651*22dc650dSSadaf Ebrahimi 1652*22dc650dSSadaf Ebrahimi/a*\S/B 1653*22dc650dSSadaf Ebrahimi 1654*22dc650dSSadaf Ebrahimi/ *\s/B 1655*22dc650dSSadaf Ebrahimi 1656*22dc650dSSadaf Ebrahimi/ *\S/B 1657*22dc650dSSadaf Ebrahimi 1658*22dc650dSSadaf Ebrahimi/a*\w/B 1659*22dc650dSSadaf Ebrahimi 1660*22dc650dSSadaf Ebrahimi/a*\W/B 1661*22dc650dSSadaf Ebrahimi 1662*22dc650dSSadaf Ebrahimi/=*\w/B 1663*22dc650dSSadaf Ebrahimi 1664*22dc650dSSadaf Ebrahimi/=*\W/B 1665*22dc650dSSadaf Ebrahimi 1666*22dc650dSSadaf Ebrahimi/\d*a/B 1667*22dc650dSSadaf Ebrahimi 1668*22dc650dSSadaf Ebrahimi/\d*2/B 1669*22dc650dSSadaf Ebrahimi 1670*22dc650dSSadaf Ebrahimi/\d*\d/B 1671*22dc650dSSadaf Ebrahimi 1672*22dc650dSSadaf Ebrahimi/\d*\D/B 1673*22dc650dSSadaf Ebrahimi 1674*22dc650dSSadaf Ebrahimi/\d*\s/B 1675*22dc650dSSadaf Ebrahimi 1676*22dc650dSSadaf Ebrahimi/\d*\S/B 1677*22dc650dSSadaf Ebrahimi 1678*22dc650dSSadaf Ebrahimi/\d*\w/B 1679*22dc650dSSadaf Ebrahimi 1680*22dc650dSSadaf Ebrahimi/\d*\W/B 1681*22dc650dSSadaf Ebrahimi 1682*22dc650dSSadaf Ebrahimi/\D*a/B 1683*22dc650dSSadaf Ebrahimi 1684*22dc650dSSadaf Ebrahimi/\D*2/B 1685*22dc650dSSadaf Ebrahimi 1686*22dc650dSSadaf Ebrahimi/\D*\d/B 1687*22dc650dSSadaf Ebrahimi 1688*22dc650dSSadaf Ebrahimi/\D*\D/B 1689*22dc650dSSadaf Ebrahimi 1690*22dc650dSSadaf Ebrahimi/\D*\s/B 1691*22dc650dSSadaf Ebrahimi 1692*22dc650dSSadaf Ebrahimi/\D*\S/B 1693*22dc650dSSadaf Ebrahimi 1694*22dc650dSSadaf Ebrahimi/\D*\w/B 1695*22dc650dSSadaf Ebrahimi 1696*22dc650dSSadaf Ebrahimi/\D*\W/B 1697*22dc650dSSadaf Ebrahimi 1698*22dc650dSSadaf Ebrahimi/\s*a/B 1699*22dc650dSSadaf Ebrahimi 1700*22dc650dSSadaf Ebrahimi/\s*2/B 1701*22dc650dSSadaf Ebrahimi 1702*22dc650dSSadaf Ebrahimi/\s*\d/B 1703*22dc650dSSadaf Ebrahimi 1704*22dc650dSSadaf Ebrahimi/\s*\D/B 1705*22dc650dSSadaf Ebrahimi 1706*22dc650dSSadaf Ebrahimi/\s*\s/B 1707*22dc650dSSadaf Ebrahimi 1708*22dc650dSSadaf Ebrahimi/\s*\S/B 1709*22dc650dSSadaf Ebrahimi 1710*22dc650dSSadaf Ebrahimi/\s*\w/B 1711*22dc650dSSadaf Ebrahimi 1712*22dc650dSSadaf Ebrahimi/\s*\W/B 1713*22dc650dSSadaf Ebrahimi 1714*22dc650dSSadaf Ebrahimi/\S*a/B 1715*22dc650dSSadaf Ebrahimi 1716*22dc650dSSadaf Ebrahimi/\S*2/B 1717*22dc650dSSadaf Ebrahimi 1718*22dc650dSSadaf Ebrahimi/\S*\d/B 1719*22dc650dSSadaf Ebrahimi 1720*22dc650dSSadaf Ebrahimi/\S*\D/B 1721*22dc650dSSadaf Ebrahimi 1722*22dc650dSSadaf Ebrahimi/\S*\s/B 1723*22dc650dSSadaf Ebrahimi 1724*22dc650dSSadaf Ebrahimi/\S*\S/B 1725*22dc650dSSadaf Ebrahimi 1726*22dc650dSSadaf Ebrahimi/\S*\w/B 1727*22dc650dSSadaf Ebrahimi 1728*22dc650dSSadaf Ebrahimi/\S*\W/B 1729*22dc650dSSadaf Ebrahimi 1730*22dc650dSSadaf Ebrahimi/\w*a/B 1731*22dc650dSSadaf Ebrahimi 1732*22dc650dSSadaf Ebrahimi/\w*2/B 1733*22dc650dSSadaf Ebrahimi 1734*22dc650dSSadaf Ebrahimi/\w*\d/B 1735*22dc650dSSadaf Ebrahimi 1736*22dc650dSSadaf Ebrahimi/\w*\D/B 1737*22dc650dSSadaf Ebrahimi 1738*22dc650dSSadaf Ebrahimi/\w*\s/B 1739*22dc650dSSadaf Ebrahimi 1740*22dc650dSSadaf Ebrahimi/\w*\S/B 1741*22dc650dSSadaf Ebrahimi 1742*22dc650dSSadaf Ebrahimi/\w*\w/B 1743*22dc650dSSadaf Ebrahimi 1744*22dc650dSSadaf Ebrahimi/\w*\W/B 1745*22dc650dSSadaf Ebrahimi 1746*22dc650dSSadaf Ebrahimi/\W*a/B 1747*22dc650dSSadaf Ebrahimi 1748*22dc650dSSadaf Ebrahimi/\W*2/B 1749*22dc650dSSadaf Ebrahimi 1750*22dc650dSSadaf Ebrahimi/\W*\d/B 1751*22dc650dSSadaf Ebrahimi 1752*22dc650dSSadaf Ebrahimi/\W*\D/B 1753*22dc650dSSadaf Ebrahimi 1754*22dc650dSSadaf Ebrahimi/\W*\s/B 1755*22dc650dSSadaf Ebrahimi 1756*22dc650dSSadaf Ebrahimi/\W*\S/B 1757*22dc650dSSadaf Ebrahimi 1758*22dc650dSSadaf Ebrahimi/\W*\w/B 1759*22dc650dSSadaf Ebrahimi 1760*22dc650dSSadaf Ebrahimi/\W*\W/B 1761*22dc650dSSadaf Ebrahimi 1762*22dc650dSSadaf Ebrahimi/[^a]+a/B 1763*22dc650dSSadaf Ebrahimi 1764*22dc650dSSadaf Ebrahimi/[^a]+a/Bi 1765*22dc650dSSadaf Ebrahimi 1766*22dc650dSSadaf Ebrahimi/[^a]+A/Bi 1767*22dc650dSSadaf Ebrahimi 1768*22dc650dSSadaf Ebrahimi/[^a]+b/B 1769*22dc650dSSadaf Ebrahimi 1770*22dc650dSSadaf Ebrahimi/[^a]+\d/B 1771*22dc650dSSadaf Ebrahimi 1772*22dc650dSSadaf Ebrahimi/a*[^a]/B 1773*22dc650dSSadaf Ebrahimi 1774*22dc650dSSadaf Ebrahimi/(?P<abc>x)(?P<xyz>y)/I 1775*22dc650dSSadaf Ebrahimi xy\=copy=abc,copy=xyz 1776*22dc650dSSadaf Ebrahimi 1777*22dc650dSSadaf Ebrahimi/(?<abc>x)(?'xyz'y)/I 1778*22dc650dSSadaf Ebrahimi xy\=copy=abc,copy=xyz 1779*22dc650dSSadaf Ebrahimi 1780*22dc650dSSadaf Ebrahimi/(?<abc'x)(?'xyz'y)/I 1781*22dc650dSSadaf Ebrahimi 1782*22dc650dSSadaf Ebrahimi/(?<abc>x)(?'xyz>y)/I 1783*22dc650dSSadaf Ebrahimi 1784*22dc650dSSadaf Ebrahimi/(?P'abc'x)(?P<xyz>y)/I 1785*22dc650dSSadaf Ebrahimi 1786*22dc650dSSadaf Ebrahimi/^(?:(?(ZZ)a|b)(?<ZZ>X))+/ 1787*22dc650dSSadaf Ebrahimi bXaX 1788*22dc650dSSadaf Ebrahimi bXbX 1789*22dc650dSSadaf Ebrahimi\= Expect no match 1790*22dc650dSSadaf Ebrahimi aXaX 1791*22dc650dSSadaf Ebrahimi aXbX 1792*22dc650dSSadaf Ebrahimi 1793*22dc650dSSadaf Ebrahimi/^(?P>abc)(?<abcd>xxx)/ 1794*22dc650dSSadaf Ebrahimi 1795*22dc650dSSadaf Ebrahimi/^(?P>abc)(?<abc>x|y)/ 1796*22dc650dSSadaf Ebrahimi xx 1797*22dc650dSSadaf Ebrahimi xy 1798*22dc650dSSadaf Ebrahimi yy 1799*22dc650dSSadaf Ebrahimi yx 1800*22dc650dSSadaf Ebrahimi 1801*22dc650dSSadaf Ebrahimi/^(?P>abc)(?P<abc>x|y)/ 1802*22dc650dSSadaf Ebrahimi xx 1803*22dc650dSSadaf Ebrahimi xy 1804*22dc650dSSadaf Ebrahimi yy 1805*22dc650dSSadaf Ebrahimi yx 1806*22dc650dSSadaf Ebrahimi 1807*22dc650dSSadaf Ebrahimi/^((?(abc)a|b)(?<abc>x|y))+/ 1808*22dc650dSSadaf Ebrahimi bxay 1809*22dc650dSSadaf Ebrahimi bxby 1810*22dc650dSSadaf Ebrahimi\= Expect no match 1811*22dc650dSSadaf Ebrahimi axby 1812*22dc650dSSadaf Ebrahimi 1813*22dc650dSSadaf Ebrahimi/^(((?P=abc)|X)(?<abc>x|y))+/ 1814*22dc650dSSadaf Ebrahimi XxXxxx 1815*22dc650dSSadaf Ebrahimi XxXyyx 1816*22dc650dSSadaf Ebrahimi XxXyxx 1817*22dc650dSSadaf Ebrahimi\= Expect no match 1818*22dc650dSSadaf Ebrahimi x 1819*22dc650dSSadaf Ebrahimi 1820*22dc650dSSadaf Ebrahimi/^(?1)(abc)/ 1821*22dc650dSSadaf Ebrahimi abcabc 1822*22dc650dSSadaf Ebrahimi 1823*22dc650dSSadaf Ebrahimi/^(?:(?:\1|X)(a|b))+/ 1824*22dc650dSSadaf Ebrahimi Xaaa 1825*22dc650dSSadaf Ebrahimi Xaba 1826*22dc650dSSadaf Ebrahimi 1827*22dc650dSSadaf Ebrahimi/^[\E\Qa\E-\Qz\E]+/B 1828*22dc650dSSadaf Ebrahimi 1829*22dc650dSSadaf Ebrahimi/^[a\Q]bc\E]/B 1830*22dc650dSSadaf Ebrahimi 1831*22dc650dSSadaf Ebrahimi/^[a-\Q\E]/B 1832*22dc650dSSadaf Ebrahimi 1833*22dc650dSSadaf Ebrahimi/^(?P>abc)[()](?<abc>)/B 1834*22dc650dSSadaf Ebrahimi 1835*22dc650dSSadaf Ebrahimi/^((?(abc)y)[()](?P<abc>x))+/B 1836*22dc650dSSadaf Ebrahimi (xy)x 1837*22dc650dSSadaf Ebrahimi 1838*22dc650dSSadaf Ebrahimi/^(?P>abc)\Q()\E(?<abc>)/B 1839*22dc650dSSadaf Ebrahimi 1840*22dc650dSSadaf Ebrahimi/^(?P>abc)[a\Q(]\E(](?<abc>)/B 1841*22dc650dSSadaf Ebrahimi 1842*22dc650dSSadaf Ebrahimi/^(?P>abc) # this is (a comment) 1843*22dc650dSSadaf Ebrahimi (?<abc>)/Bx 1844*22dc650dSSadaf Ebrahimi 1845*22dc650dSSadaf Ebrahimi/^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii 1846*22dc650dSSadaf Ebrahimi 1221 1847*22dc650dSSadaf Ebrahimi Satan, oscillate my metallic sonatas! 1848*22dc650dSSadaf Ebrahimi A man, a plan, a canal: Panama! 1849*22dc650dSSadaf Ebrahimi Able was I ere I saw Elba. 1850*22dc650dSSadaf Ebrahimi\= Expect no match 1851*22dc650dSSadaf Ebrahimi The quick brown fox 1852*22dc650dSSadaf Ebrahimi 1853*22dc650dSSadaf Ebrahimi/(?=(\w+))\1:/I 1854*22dc650dSSadaf Ebrahimi abcd: 1855*22dc650dSSadaf Ebrahimi 1856*22dc650dSSadaf Ebrahimi/(?=(?'abc'\w+))\k<abc>:/I 1857*22dc650dSSadaf Ebrahimi abcd: 1858*22dc650dSSadaf Ebrahimi 1859*22dc650dSSadaf Ebrahimi/(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/dupnames 1860*22dc650dSSadaf Ebrahimi adaa 1861*22dc650dSSadaf Ebrahimi\= Expect no match 1862*22dc650dSSadaf Ebrahimi addd 1863*22dc650dSSadaf Ebrahimi adbb 1864*22dc650dSSadaf Ebrahimi 1865*22dc650dSSadaf Ebrahimi/(?'abc'a|b)(?<abc>d|e)(?&abc){2}/dupnames 1866*22dc650dSSadaf Ebrahimi bdaa 1867*22dc650dSSadaf Ebrahimi bdab 1868*22dc650dSSadaf Ebrahimi\= Expect no match 1869*22dc650dSSadaf Ebrahimi bddd 1870*22dc650dSSadaf Ebrahimi 1871*22dc650dSSadaf Ebrahimi/(?(<bc))/ 1872*22dc650dSSadaf Ebrahimi 1873*22dc650dSSadaf Ebrahimi/(?(''))/ 1874*22dc650dSSadaf Ebrahimi 1875*22dc650dSSadaf Ebrahimi/(?('R')stuff)/ 1876*22dc650dSSadaf Ebrahimi 1877*22dc650dSSadaf Ebrahimi/((abc (?(R) (?(R1)1) (?(R2)2) X | (?1) (?2) (?R) ))) /x 1878*22dc650dSSadaf Ebrahimi abcabc1Xabc2XabcXabcabc 1879*22dc650dSSadaf Ebrahimi 1880*22dc650dSSadaf Ebrahimi/(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x 1881*22dc650dSSadaf Ebrahimi abcabc1Xabc2XabcXabcabc 1882*22dc650dSSadaf Ebrahimi 1883*22dc650dSSadaf Ebrahimi/(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x 1884*22dc650dSSadaf Ebrahimi 1885*22dc650dSSadaf Ebrahimi/^(?(DEFINE) abc | xyz ) /x 1886*22dc650dSSadaf Ebrahimi 1887*22dc650dSSadaf Ebrahimi/(?(DEFINE) abc) xyz/Ix 1888*22dc650dSSadaf Ebrahimi 1889*22dc650dSSadaf Ebrahimi/(a|)*\d/ 1890*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4\=ovector=0 1891*22dc650dSSadaf Ebrahimi\= Expect no match 1892*22dc650dSSadaf Ebrahimi aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\=ovector=0 1893*22dc650dSSadaf Ebrahimi 1894*22dc650dSSadaf Ebrahimi/^a.b/newline=lf 1895*22dc650dSSadaf Ebrahimi a\rb 1896*22dc650dSSadaf Ebrahimi\= Expect no match 1897*22dc650dSSadaf Ebrahimi a\nb 1898*22dc650dSSadaf Ebrahimi 1899*22dc650dSSadaf Ebrahimi/^a.b/newline=cr 1900*22dc650dSSadaf Ebrahimi a\nb 1901*22dc650dSSadaf Ebrahimi\= Expect no match 1902*22dc650dSSadaf Ebrahimi a\rb 1903*22dc650dSSadaf Ebrahimi 1904*22dc650dSSadaf Ebrahimi/^a.b/newline=anycrlf 1905*22dc650dSSadaf Ebrahimi a\x85b 1906*22dc650dSSadaf Ebrahimi\= Expect no match 1907*22dc650dSSadaf Ebrahimi a\rb 1908*22dc650dSSadaf Ebrahimi 1909*22dc650dSSadaf Ebrahimi/^a.b/newline=any 1910*22dc650dSSadaf Ebrahimi\= Expect no match 1911*22dc650dSSadaf Ebrahimi a\nb 1912*22dc650dSSadaf Ebrahimi a\rb 1913*22dc650dSSadaf Ebrahimi a\x85b 1914*22dc650dSSadaf Ebrahimi 1915*22dc650dSSadaf Ebrahimi/^abc./gmx,newline=any 1916*22dc650dSSadaf Ebrahimi abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK 1917*22dc650dSSadaf Ebrahimi 1918*22dc650dSSadaf Ebrahimi/abc.$/gmx,newline=any 1919*22dc650dSSadaf Ebrahimi abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9 1920*22dc650dSSadaf Ebrahimi 1921*22dc650dSSadaf Ebrahimi/^a\Rb/bsr=unicode 1922*22dc650dSSadaf Ebrahimi a\nb 1923*22dc650dSSadaf Ebrahimi a\rb 1924*22dc650dSSadaf Ebrahimi a\r\nb 1925*22dc650dSSadaf Ebrahimi a\x0bb 1926*22dc650dSSadaf Ebrahimi a\x0cb 1927*22dc650dSSadaf Ebrahimi a\x85b 1928*22dc650dSSadaf Ebrahimi\= Expect no match 1929*22dc650dSSadaf Ebrahimi a\n\rb 1930*22dc650dSSadaf Ebrahimi 1931*22dc650dSSadaf Ebrahimi/^a\R*b/bsr=unicode 1932*22dc650dSSadaf Ebrahimi ab 1933*22dc650dSSadaf Ebrahimi a\nb 1934*22dc650dSSadaf Ebrahimi a\rb 1935*22dc650dSSadaf Ebrahimi a\r\nb 1936*22dc650dSSadaf Ebrahimi a\x0bb 1937*22dc650dSSadaf Ebrahimi a\x0cb 1938*22dc650dSSadaf Ebrahimi a\x85b 1939*22dc650dSSadaf Ebrahimi a\n\rb 1940*22dc650dSSadaf Ebrahimi a\n\r\x85\x0cb 1941*22dc650dSSadaf Ebrahimi 1942*22dc650dSSadaf Ebrahimi/^a\R+b/bsr=unicode 1943*22dc650dSSadaf Ebrahimi a\nb 1944*22dc650dSSadaf Ebrahimi a\rb 1945*22dc650dSSadaf Ebrahimi a\r\nb 1946*22dc650dSSadaf Ebrahimi a\x0bb 1947*22dc650dSSadaf Ebrahimi a\x0cb 1948*22dc650dSSadaf Ebrahimi a\x85b 1949*22dc650dSSadaf Ebrahimi a\n\rb 1950*22dc650dSSadaf Ebrahimi a\n\r\x85\x0cb 1951*22dc650dSSadaf Ebrahimi\= Expect no match 1952*22dc650dSSadaf Ebrahimi ab 1953*22dc650dSSadaf Ebrahimi 1954*22dc650dSSadaf Ebrahimi/^a\R{1,3}b/bsr=unicode 1955*22dc650dSSadaf Ebrahimi a\nb 1956*22dc650dSSadaf Ebrahimi a\n\rb 1957*22dc650dSSadaf Ebrahimi a\n\r\x85b 1958*22dc650dSSadaf Ebrahimi a\r\n\r\nb 1959*22dc650dSSadaf Ebrahimi a\r\n\r\n\r\nb 1960*22dc650dSSadaf Ebrahimi a\n\r\n\rb 1961*22dc650dSSadaf Ebrahimi a\n\n\r\nb 1962*22dc650dSSadaf Ebrahimi\= Expect no match 1963*22dc650dSSadaf Ebrahimi a\n\n\n\rb 1964*22dc650dSSadaf Ebrahimi a\r 1965*22dc650dSSadaf Ebrahimi 1966*22dc650dSSadaf Ebrahimi/(?&abc)X(?<abc>P)/I 1967*22dc650dSSadaf Ebrahimi abcPXP123 1968*22dc650dSSadaf Ebrahimi 1969*22dc650dSSadaf Ebrahimi/(?1)X(?<abc>P)/I 1970*22dc650dSSadaf Ebrahimi abcPXP123 1971*22dc650dSSadaf Ebrahimi 1972*22dc650dSSadaf Ebrahimi/(?:a(?&abc)b)*(?<abc>x)/ 1973*22dc650dSSadaf Ebrahimi 123axbaxbaxbx456 1974*22dc650dSSadaf Ebrahimi 123axbaxbaxb456 1975*22dc650dSSadaf Ebrahimi 1976*22dc650dSSadaf Ebrahimi/(?:a(?&abc)b){1,5}(?<abc>x)/ 1977*22dc650dSSadaf Ebrahimi 123axbaxbaxbx456 1978*22dc650dSSadaf Ebrahimi 1979*22dc650dSSadaf Ebrahimi/(?:a(?&abc)b){2,5}(?<abc>x)/ 1980*22dc650dSSadaf Ebrahimi 123axbaxbaxbx456 1981*22dc650dSSadaf Ebrahimi 1982*22dc650dSSadaf Ebrahimi/(?:a(?&abc)b){2,}(?<abc>x)/ 1983*22dc650dSSadaf Ebrahimi 123axbaxbaxbx456 1984*22dc650dSSadaf Ebrahimi 1985*22dc650dSSadaf Ebrahimi/(abc)(?i:(?1))/ 1986*22dc650dSSadaf Ebrahimi defabcabcxyz 1987*22dc650dSSadaf Ebrahimi\= Expect no match 1988*22dc650dSSadaf Ebrahimi DEFabcABCXYZ 1989*22dc650dSSadaf Ebrahimi 1990*22dc650dSSadaf Ebrahimi/(abc)(?:(?i)(?1))/ 1991*22dc650dSSadaf Ebrahimi defabcabcxyz 1992*22dc650dSSadaf Ebrahimi\= Expect no match 1993*22dc650dSSadaf Ebrahimi DEFabcABCXYZ 1994*22dc650dSSadaf Ebrahimi 1995*22dc650dSSadaf Ebrahimi/^(a)\g-2/ 1996*22dc650dSSadaf Ebrahimi 1997*22dc650dSSadaf Ebrahimi/^(a)\g/ 1998*22dc650dSSadaf Ebrahimi 1999*22dc650dSSadaf Ebrahimi/^(a)\g{0}/ 2000*22dc650dSSadaf Ebrahimi 2001*22dc650dSSadaf Ebrahimi/^(a)\g{3/ 2002*22dc650dSSadaf Ebrahimi 2003*22dc650dSSadaf Ebrahimi/^(a)\g{aa}/ 2004*22dc650dSSadaf Ebrahimi 2005*22dc650dSSadaf Ebrahimi/^a.b/newline=lf 2006*22dc650dSSadaf Ebrahimi a\rb 2007*22dc650dSSadaf Ebrahimi\= Expect no match 2008*22dc650dSSadaf Ebrahimi a\nb 2009*22dc650dSSadaf Ebrahimi 2010*22dc650dSSadaf Ebrahimi/.+foo/ 2011*22dc650dSSadaf Ebrahimi afoo 2012*22dc650dSSadaf Ebrahimi\= Expect no match 2013*22dc650dSSadaf Ebrahimi \r\nfoo 2014*22dc650dSSadaf Ebrahimi \nfoo 2015*22dc650dSSadaf Ebrahimi 2016*22dc650dSSadaf Ebrahimi/.+foo/newline=crlf 2017*22dc650dSSadaf Ebrahimi afoo 2018*22dc650dSSadaf Ebrahimi \nfoo 2019*22dc650dSSadaf Ebrahimi\= Expect no match 2020*22dc650dSSadaf Ebrahimi \r\nfoo 2021*22dc650dSSadaf Ebrahimi 2022*22dc650dSSadaf Ebrahimi/.+foo/newline=any 2023*22dc650dSSadaf Ebrahimi afoo 2024*22dc650dSSadaf Ebrahimi\= Expect no match 2025*22dc650dSSadaf Ebrahimi \nfoo 2026*22dc650dSSadaf Ebrahimi \r\nfoo 2027*22dc650dSSadaf Ebrahimi 2028*22dc650dSSadaf Ebrahimi/.+foo/s 2029*22dc650dSSadaf Ebrahimi afoo 2030*22dc650dSSadaf Ebrahimi \r\nfoo 2031*22dc650dSSadaf Ebrahimi \nfoo 2032*22dc650dSSadaf Ebrahimi 2033*22dc650dSSadaf Ebrahimi/^$/gm,newline=any 2034*22dc650dSSadaf Ebrahimi abc\r\rxyz 2035*22dc650dSSadaf Ebrahimi abc\n\rxyz 2036*22dc650dSSadaf Ebrahimi\= Expect no match 2037*22dc650dSSadaf Ebrahimi abc\r\nxyz 2038*22dc650dSSadaf Ebrahimi 2039*22dc650dSSadaf Ebrahimi/(?m)^$/g,newline=any,aftertext 2040*22dc650dSSadaf Ebrahimi abc\r\n\r\n 2041*22dc650dSSadaf Ebrahimi 2042*22dc650dSSadaf Ebrahimi/(?m)^$|^\r\n/g,newline=any,aftertext 2043*22dc650dSSadaf Ebrahimi abc\r\n\r\n 2044*22dc650dSSadaf Ebrahimi 2045*22dc650dSSadaf Ebrahimi/(?m)$/g,newline=any,aftertext 2046*22dc650dSSadaf Ebrahimi abc\r\n\r\n 2047*22dc650dSSadaf Ebrahimi 2048*22dc650dSSadaf Ebrahimi/abc.$/gmx,newline=anycrlf 2049*22dc650dSSadaf Ebrahimi abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9 2050*22dc650dSSadaf Ebrahimi 2051*22dc650dSSadaf Ebrahimi/^X/m 2052*22dc650dSSadaf Ebrahimi XABC 2053*22dc650dSSadaf Ebrahimi\= Expect no match 2054*22dc650dSSadaf Ebrahimi XABC\=notbol 2055*22dc650dSSadaf Ebrahimi 2056*22dc650dSSadaf Ebrahimi/(ab|c)(?-1)/B 2057*22dc650dSSadaf Ebrahimi abc 2058*22dc650dSSadaf Ebrahimi 2059*22dc650dSSadaf Ebrahimi/xy(?+1)(abc)/B 2060*22dc650dSSadaf Ebrahimi xyabcabc 2061*22dc650dSSadaf Ebrahimi\= Expect no match 2062*22dc650dSSadaf Ebrahimi xyabc 2063*22dc650dSSadaf Ebrahimi 2064*22dc650dSSadaf Ebrahimi/x(?-0)y/ 2065*22dc650dSSadaf Ebrahimi 2066*22dc650dSSadaf Ebrahimi/x(?-1)y/ 2067*22dc650dSSadaf Ebrahimi 2068*22dc650dSSadaf Ebrahimi/x(?+0)y/ 2069*22dc650dSSadaf Ebrahimi 2070*22dc650dSSadaf Ebrahimi/x(?+1)y/ 2071*22dc650dSSadaf Ebrahimi 2072*22dc650dSSadaf Ebrahimi/^(abc)?(?(-1)X|Y)/B 2073*22dc650dSSadaf Ebrahimi abcX 2074*22dc650dSSadaf Ebrahimi Y 2075*22dc650dSSadaf Ebrahimi\= Expect no match 2076*22dc650dSSadaf Ebrahimi abcY 2077*22dc650dSSadaf Ebrahimi 2078*22dc650dSSadaf Ebrahimi/^((?(+1)X|Y)(abc))+/B 2079*22dc650dSSadaf Ebrahimi YabcXabc 2080*22dc650dSSadaf Ebrahimi YabcXabcXabc 2081*22dc650dSSadaf Ebrahimi\= Expect no match 2082*22dc650dSSadaf Ebrahimi XabcXabc 2083*22dc650dSSadaf Ebrahimi 2084*22dc650dSSadaf Ebrahimi/(?(-1)a)/B 2085*22dc650dSSadaf Ebrahimi 2086*22dc650dSSadaf Ebrahimi/((?(-1)a))/B 2087*22dc650dSSadaf Ebrahimi 2088*22dc650dSSadaf Ebrahimi/((?(-2)a))/B 2089*22dc650dSSadaf Ebrahimi 2090*22dc650dSSadaf Ebrahimi/^(?(+1)X|Y)(.)/B 2091*22dc650dSSadaf Ebrahimi Y! 2092*22dc650dSSadaf Ebrahimi 2093*22dc650dSSadaf Ebrahimi/(?<A>tom|bon)-\k{A}/ 2094*22dc650dSSadaf Ebrahimi tom-tom 2095*22dc650dSSadaf Ebrahimi bon-bon 2096*22dc650dSSadaf Ebrahimi\= Expect no match 2097*22dc650dSSadaf Ebrahimi tom-bon 2098*22dc650dSSadaf Ebrahimi 2099*22dc650dSSadaf Ebrahimi/\g{A/ 2100*22dc650dSSadaf Ebrahimi 2101*22dc650dSSadaf Ebrahimi/(?|(abc)|(xyz))/B 2102*22dc650dSSadaf Ebrahimi >abc< 2103*22dc650dSSadaf Ebrahimi >xyz< 2104*22dc650dSSadaf Ebrahimi 2105*22dc650dSSadaf Ebrahimi/(x)(?|(abc)|(xyz))(x)/B 2106*22dc650dSSadaf Ebrahimi xabcx 2107*22dc650dSSadaf Ebrahimi xxyzx 2108*22dc650dSSadaf Ebrahimi 2109*22dc650dSSadaf Ebrahimi/(x)(?|(abc)(pqr)|(xyz))(x)/B 2110*22dc650dSSadaf Ebrahimi xabcpqrx 2111*22dc650dSSadaf Ebrahimi xxyzx 2112*22dc650dSSadaf Ebrahimi 2113*22dc650dSSadaf Ebrahimi/\H++X/B 2114*22dc650dSSadaf Ebrahimi\= Expect no match 2115*22dc650dSSadaf Ebrahimi XXXX 2116*22dc650dSSadaf Ebrahimi 2117*22dc650dSSadaf Ebrahimi/\H+\hY/B 2118*22dc650dSSadaf Ebrahimi XXXX Y 2119*22dc650dSSadaf Ebrahimi 2120*22dc650dSSadaf Ebrahimi/\H+ Y/B 2121*22dc650dSSadaf Ebrahimi 2122*22dc650dSSadaf Ebrahimi/\h+A/B 2123*22dc650dSSadaf Ebrahimi 2124*22dc650dSSadaf Ebrahimi/\v*B/B 2125*22dc650dSSadaf Ebrahimi 2126*22dc650dSSadaf Ebrahimi/\V+\x0a/B 2127*22dc650dSSadaf Ebrahimi 2128*22dc650dSSadaf Ebrahimi/A+\h/B 2129*22dc650dSSadaf Ebrahimi 2130*22dc650dSSadaf Ebrahimi/ *\H/B 2131*22dc650dSSadaf Ebrahimi 2132*22dc650dSSadaf Ebrahimi/A*\v/B 2133*22dc650dSSadaf Ebrahimi 2134*22dc650dSSadaf Ebrahimi/\x0b*\V/B 2135*22dc650dSSadaf Ebrahimi 2136*22dc650dSSadaf Ebrahimi/\d+\h/B 2137*22dc650dSSadaf Ebrahimi 2138*22dc650dSSadaf Ebrahimi/\d*\v/B 2139*22dc650dSSadaf Ebrahimi 2140*22dc650dSSadaf Ebrahimi/S+\h\S+\v/B 2141*22dc650dSSadaf Ebrahimi 2142*22dc650dSSadaf Ebrahimi/\w{3,}\h\w+\v/B 2143*22dc650dSSadaf Ebrahimi 2144*22dc650dSSadaf Ebrahimi/\h+\d\h+\w\h+\S\h+\H/B 2145*22dc650dSSadaf Ebrahimi 2146*22dc650dSSadaf Ebrahimi/\v+\d\v+\w\v+\S\v+\V/B 2147*22dc650dSSadaf Ebrahimi 2148*22dc650dSSadaf Ebrahimi/\H+\h\H+\d/B 2149*22dc650dSSadaf Ebrahimi 2150*22dc650dSSadaf Ebrahimi/\V+\v\V+\w/B 2151*22dc650dSSadaf Ebrahimi 2152*22dc650dSSadaf Ebrahimi/\( (?: [^()]* | (?R) )* \)/x 2153*22dc650dSSadaf Ebrahimi(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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 2154*22dc650dSSadaf Ebrahimi 2155*22dc650dSSadaf Ebrahimi/[\E]AAA/ 2156*22dc650dSSadaf Ebrahimi 2157*22dc650dSSadaf Ebrahimi/[\Q\E]AAA/ 2158*22dc650dSSadaf Ebrahimi 2159*22dc650dSSadaf Ebrahimi/[^\E]AAA/ 2160*22dc650dSSadaf Ebrahimi 2161*22dc650dSSadaf Ebrahimi/[^\Q\E]AAA/ 2162*22dc650dSSadaf Ebrahimi 2163*22dc650dSSadaf Ebrahimi/[\E^]AAA/ 2164*22dc650dSSadaf Ebrahimi 2165*22dc650dSSadaf Ebrahimi/[\Q\E^]AAA/ 2166*22dc650dSSadaf Ebrahimi 2167*22dc650dSSadaf Ebrahimi/A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/B 2168*22dc650dSSadaf Ebrahimi 2169*22dc650dSSadaf Ebrahimi/^a+(*FAIL)/auto_callout 2170*22dc650dSSadaf Ebrahimi\= Expect no match 2171*22dc650dSSadaf Ebrahimi aaaaaa 2172*22dc650dSSadaf Ebrahimi 2173*22dc650dSSadaf Ebrahimi/a+b?c+(*FAIL)/auto_callout 2174*22dc650dSSadaf Ebrahimi\= Expect no match 2175*22dc650dSSadaf Ebrahimi aaabccc 2176*22dc650dSSadaf Ebrahimi 2177*22dc650dSSadaf Ebrahimi/a+b?(*PRUNE)c+(*FAIL)/auto_callout 2178*22dc650dSSadaf Ebrahimi\= Expect no match 2179*22dc650dSSadaf Ebrahimi aaabccc 2180*22dc650dSSadaf Ebrahimi 2181*22dc650dSSadaf Ebrahimi/a+b?(*COMMIT)c+(*FAIL)/auto_callout 2182*22dc650dSSadaf Ebrahimi\= Expect no match 2183*22dc650dSSadaf Ebrahimi aaabccc 2184*22dc650dSSadaf Ebrahimi 2185*22dc650dSSadaf Ebrahimi/a+b?(*SKIP)c+(*FAIL)/auto_callout 2186*22dc650dSSadaf Ebrahimi\= Expect no match 2187*22dc650dSSadaf Ebrahimi aaabcccaaabccc 2188*22dc650dSSadaf Ebrahimi 2189*22dc650dSSadaf Ebrahimi/a+b?(*THEN)c+(*FAIL)/auto_callout 2190*22dc650dSSadaf Ebrahimi\= Expect no match 2191*22dc650dSSadaf Ebrahimi aaabccc 2192*22dc650dSSadaf Ebrahimi 2193*22dc650dSSadaf Ebrahimi/a(*MARK)b/ 2194*22dc650dSSadaf Ebrahimi 2195*22dc650dSSadaf Ebrahimi/\g6666666666/ 2196*22dc650dSSadaf Ebrahimi 2197*22dc650dSSadaf Ebrahimi/[\g6666666666]/B 2198*22dc650dSSadaf Ebrahimi 2199*22dc650dSSadaf Ebrahimi/(?1)\c[/ 2200*22dc650dSSadaf Ebrahimi 2201*22dc650dSSadaf Ebrahimi/.+A/newline=crlf 2202*22dc650dSSadaf Ebrahimi\= Expect no match 2203*22dc650dSSadaf Ebrahimi \r\nA 2204*22dc650dSSadaf Ebrahimi 2205*22dc650dSSadaf Ebrahimi/\nA/newline=crlf 2206*22dc650dSSadaf Ebrahimi \r\nA 2207*22dc650dSSadaf Ebrahimi 2208*22dc650dSSadaf Ebrahimi/[\r\n]A/newline=crlf 2209*22dc650dSSadaf Ebrahimi \r\nA 2210*22dc650dSSadaf Ebrahimi 2211*22dc650dSSadaf Ebrahimi/(\r|\n)A/newline=crlf 2212*22dc650dSSadaf Ebrahimi \r\nA 2213*22dc650dSSadaf Ebrahimi 2214*22dc650dSSadaf Ebrahimi/a(*CR)b/ 2215*22dc650dSSadaf Ebrahimi 2216*22dc650dSSadaf Ebrahimi/(*CR)a.b/ 2217*22dc650dSSadaf Ebrahimi a\nb 2218*22dc650dSSadaf Ebrahimi\= Expect no match 2219*22dc650dSSadaf Ebrahimi a\rb 2220*22dc650dSSadaf Ebrahimi 2221*22dc650dSSadaf Ebrahimi/(*CR)a.b/newline=lf 2222*22dc650dSSadaf Ebrahimi a\nb 2223*22dc650dSSadaf Ebrahimi\= Expect no match 2224*22dc650dSSadaf Ebrahimi a\rb 2225*22dc650dSSadaf Ebrahimi 2226*22dc650dSSadaf Ebrahimi/(*LF)a.b/newline=CRLF 2227*22dc650dSSadaf Ebrahimi a\rb 2228*22dc650dSSadaf Ebrahimi\= Expect no match 2229*22dc650dSSadaf Ebrahimi a\nb 2230*22dc650dSSadaf Ebrahimi 2231*22dc650dSSadaf Ebrahimi/(*CRLF)a.b/ 2232*22dc650dSSadaf Ebrahimi a\rb 2233*22dc650dSSadaf Ebrahimi a\nb 2234*22dc650dSSadaf Ebrahimi\= Expect no match 2235*22dc650dSSadaf Ebrahimi a\r\nb 2236*22dc650dSSadaf Ebrahimi 2237*22dc650dSSadaf Ebrahimi/(*ANYCRLF)a.b/newline=CR 2238*22dc650dSSadaf Ebrahimi\= Expect no match 2239*22dc650dSSadaf Ebrahimi a\rb 2240*22dc650dSSadaf Ebrahimi a\nb 2241*22dc650dSSadaf Ebrahimi a\r\nb 2242*22dc650dSSadaf Ebrahimi 2243*22dc650dSSadaf Ebrahimi/(*ANY)a.b/newline=cr 2244*22dc650dSSadaf Ebrahimi\= Expect no match 2245*22dc650dSSadaf Ebrahimi a\rb 2246*22dc650dSSadaf Ebrahimi a\nb 2247*22dc650dSSadaf Ebrahimi a\r\nb 2248*22dc650dSSadaf Ebrahimi a\x85b 2249*22dc650dSSadaf Ebrahimi 2250*22dc650dSSadaf Ebrahimi/(*ANY).*/g 2251*22dc650dSSadaf Ebrahimi abc\r\ndef 2252*22dc650dSSadaf Ebrahimi 2253*22dc650dSSadaf Ebrahimi/(*ANYCRLF).*/g 2254*22dc650dSSadaf Ebrahimi abc\r\ndef 2255*22dc650dSSadaf Ebrahimi 2256*22dc650dSSadaf Ebrahimi/(*CRLF).*/g 2257*22dc650dSSadaf Ebrahimi abc\r\ndef 2258*22dc650dSSadaf Ebrahimi 2259*22dc650dSSadaf Ebrahimi/(*NUL)^.*/ 2260*22dc650dSSadaf Ebrahimi a\nb\x00ccc 2261*22dc650dSSadaf Ebrahimi 2262*22dc650dSSadaf Ebrahimi/(*NUL)^.*/s 2263*22dc650dSSadaf Ebrahimi a\nb\x00ccc 2264*22dc650dSSadaf Ebrahimi 2265*22dc650dSSadaf Ebrahimi/^x/m,newline=NUL 2266*22dc650dSSadaf Ebrahimi ab\x00xy 2267*22dc650dSSadaf Ebrahimi 2268*22dc650dSSadaf Ebrahimi/'#comment' 0d 0a 00 '^x\' 0a 'y'/x,newline=nul,hex 2269*22dc650dSSadaf Ebrahimi x\nyz 2270*22dc650dSSadaf Ebrahimi 2271*22dc650dSSadaf Ebrahimi/(*NUL)^X\NY/ 2272*22dc650dSSadaf Ebrahimi X\nY 2273*22dc650dSSadaf Ebrahimi X\rY 2274*22dc650dSSadaf Ebrahimi\= Expect no match 2275*22dc650dSSadaf Ebrahimi X\x00Y 2276*22dc650dSSadaf Ebrahimi 2277*22dc650dSSadaf Ebrahimi/a\Rb/I,bsr=anycrlf 2278*22dc650dSSadaf Ebrahimi a\rb 2279*22dc650dSSadaf Ebrahimi a\nb 2280*22dc650dSSadaf Ebrahimi a\r\nb 2281*22dc650dSSadaf Ebrahimi\= Expect no match 2282*22dc650dSSadaf Ebrahimi a\x85b 2283*22dc650dSSadaf Ebrahimi a\x0bb 2284*22dc650dSSadaf Ebrahimi 2285*22dc650dSSadaf Ebrahimi/a\Rb/I,bsr=unicode 2286*22dc650dSSadaf Ebrahimi a\rb 2287*22dc650dSSadaf Ebrahimi a\nb 2288*22dc650dSSadaf Ebrahimi a\r\nb 2289*22dc650dSSadaf Ebrahimi a\x85b 2290*22dc650dSSadaf Ebrahimi a\x0bb 2291*22dc650dSSadaf Ebrahimi 2292*22dc650dSSadaf Ebrahimi/a\R?b/I,bsr=anycrlf 2293*22dc650dSSadaf Ebrahimi a\rb 2294*22dc650dSSadaf Ebrahimi a\nb 2295*22dc650dSSadaf Ebrahimi a\r\nb 2296*22dc650dSSadaf Ebrahimi\= Expect no match 2297*22dc650dSSadaf Ebrahimi a\x85b 2298*22dc650dSSadaf Ebrahimi a\x0bb 2299*22dc650dSSadaf Ebrahimi 2300*22dc650dSSadaf Ebrahimi/a\R?b/I,bsr=unicode 2301*22dc650dSSadaf Ebrahimi a\rb 2302*22dc650dSSadaf Ebrahimi a\nb 2303*22dc650dSSadaf Ebrahimi a\r\nb 2304*22dc650dSSadaf Ebrahimi a\x85b 2305*22dc650dSSadaf Ebrahimi a\x0bb 2306*22dc650dSSadaf Ebrahimi 2307*22dc650dSSadaf Ebrahimi/a\R{2,4}b/I,bsr=anycrlf 2308*22dc650dSSadaf Ebrahimi a\r\n\nb 2309*22dc650dSSadaf Ebrahimi a\n\r\rb 2310*22dc650dSSadaf Ebrahimi a\r\n\r\n\r\n\r\nb 2311*22dc650dSSadaf Ebrahimi\= Expect no match 2312*22dc650dSSadaf Ebrahimi a\x85\x85b 2313*22dc650dSSadaf Ebrahimi a\x0b\x0bb 2314*22dc650dSSadaf Ebrahimi 2315*22dc650dSSadaf Ebrahimi/a\R{2,4}b/I,bsr=unicode 2316*22dc650dSSadaf Ebrahimi a\r\rb 2317*22dc650dSSadaf Ebrahimi a\n\n\nb 2318*22dc650dSSadaf Ebrahimi a\r\n\n\r\rb 2319*22dc650dSSadaf Ebrahimi a\x85\x85b 2320*22dc650dSSadaf Ebrahimi a\x0b\x0bb 2321*22dc650dSSadaf Ebrahimi\= Expect no match 2322*22dc650dSSadaf Ebrahimi a\r\r\r\r\rb 2323*22dc650dSSadaf Ebrahimi 2324*22dc650dSSadaf Ebrahimi/(*BSR_ANYCRLF)a\Rb/I 2325*22dc650dSSadaf Ebrahimi a\nb 2326*22dc650dSSadaf Ebrahimi a\rb 2327*22dc650dSSadaf Ebrahimi 2328*22dc650dSSadaf Ebrahimi/(*BSR_UNICODE)a\Rb/I 2329*22dc650dSSadaf Ebrahimi a\x85b 2330*22dc650dSSadaf Ebrahimi 2331*22dc650dSSadaf Ebrahimi/(*BSR_ANYCRLF)(*CRLF)a\Rb/I 2332*22dc650dSSadaf Ebrahimi a\nb 2333*22dc650dSSadaf Ebrahimi a\rb 2334*22dc650dSSadaf Ebrahimi 2335*22dc650dSSadaf Ebrahimi/(*CRLF)(*BSR_UNICODE)a\Rb/I 2336*22dc650dSSadaf Ebrahimi a\x85b 2337*22dc650dSSadaf Ebrahimi 2338*22dc650dSSadaf Ebrahimi/(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I 2339*22dc650dSSadaf Ebrahimi 2340*22dc650dSSadaf Ebrahimi/(?<a>)(?&)/ 2341*22dc650dSSadaf Ebrahimi 2342*22dc650dSSadaf Ebrahimi/(?<abc>)(?&a)/ 2343*22dc650dSSadaf Ebrahimi 2344*22dc650dSSadaf Ebrahimi/(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/ 2345*22dc650dSSadaf Ebrahimi 2346*22dc650dSSadaf Ebrahimi/(?+-a)/ 2347*22dc650dSSadaf Ebrahimi 2348*22dc650dSSadaf Ebrahimi/(?-+a)/ 2349*22dc650dSSadaf Ebrahimi 2350*22dc650dSSadaf Ebrahimi/(?(-1))/ 2351*22dc650dSSadaf Ebrahimi 2352*22dc650dSSadaf Ebrahimi/(?(+10))/ 2353*22dc650dSSadaf Ebrahimi 2354*22dc650dSSadaf Ebrahimi/(?(10))/ 2355*22dc650dSSadaf Ebrahimi 2356*22dc650dSSadaf Ebrahimi/(?(+2))()()/ 2357*22dc650dSSadaf Ebrahimi 2358*22dc650dSSadaf Ebrahimi/(?(2))()()/ 2359*22dc650dSSadaf Ebrahimi 2360*22dc650dSSadaf Ebrahimi/\k''/ 2361*22dc650dSSadaf Ebrahimi 2362*22dc650dSSadaf Ebrahimi/\k<>/ 2363*22dc650dSSadaf Ebrahimi 2364*22dc650dSSadaf Ebrahimi/\k{}/ 2365*22dc650dSSadaf Ebrahimi 2366*22dc650dSSadaf Ebrahimi/\k/ 2367*22dc650dSSadaf Ebrahimi 2368*22dc650dSSadaf Ebrahimi/\kabc/ 2369*22dc650dSSadaf Ebrahimi 2370*22dc650dSSadaf Ebrahimi/(?P=)/ 2371*22dc650dSSadaf Ebrahimi 2372*22dc650dSSadaf Ebrahimi/(?P>)/ 2373*22dc650dSSadaf Ebrahimi 2374*22dc650dSSadaf Ebrahimi/[[:foo:]]/ 2375*22dc650dSSadaf Ebrahimi 2376*22dc650dSSadaf Ebrahimi/[[:1234:]]/ 2377*22dc650dSSadaf Ebrahimi 2378*22dc650dSSadaf Ebrahimi/[[:f\oo:]]/ 2379*22dc650dSSadaf Ebrahimi 2380*22dc650dSSadaf Ebrahimi/[[: :]]/ 2381*22dc650dSSadaf Ebrahimi 2382*22dc650dSSadaf Ebrahimi/[[:...:]]/ 2383*22dc650dSSadaf Ebrahimi 2384*22dc650dSSadaf Ebrahimi/[[:l\ower:]]/ 2385*22dc650dSSadaf Ebrahimi 2386*22dc650dSSadaf Ebrahimi/[[:abc\:]]/ 2387*22dc650dSSadaf Ebrahimi 2388*22dc650dSSadaf Ebrahimi/[abc[:x\]pqr:]]/ 2389*22dc650dSSadaf Ebrahimi 2390*22dc650dSSadaf Ebrahimi/[[:a\dz:]]/ 2391*22dc650dSSadaf Ebrahimi 2392*22dc650dSSadaf Ebrahimi/(^(a|b\g<-1'c))/ 2393*22dc650dSSadaf Ebrahimi 2394*22dc650dSSadaf Ebrahimi/^(?+1)(?<a>x|y){0}z/ 2395*22dc650dSSadaf Ebrahimi xzxx 2396*22dc650dSSadaf Ebrahimi yzyy 2397*22dc650dSSadaf Ebrahimi\= Expect no match 2398*22dc650dSSadaf Ebrahimi xxz 2399*22dc650dSSadaf Ebrahimi 2400*22dc650dSSadaf Ebrahimi/(\3)(\1)(a)/ 2401*22dc650dSSadaf Ebrahimi\= Expect no match 2402*22dc650dSSadaf Ebrahimi cat 2403*22dc650dSSadaf Ebrahimi 2404*22dc650dSSadaf Ebrahimi/(\3)(\1)(a)/allow_empty_class,match_unset_backref,dupnames 2405*22dc650dSSadaf Ebrahimi cat 2406*22dc650dSSadaf Ebrahimi 2407*22dc650dSSadaf Ebrahimi/TA]/ 2408*22dc650dSSadaf Ebrahimi The ACTA] comes 2409*22dc650dSSadaf Ebrahimi 2410*22dc650dSSadaf Ebrahimi/TA]/allow_empty_class,match_unset_backref,dupnames 2411*22dc650dSSadaf Ebrahimi The ACTA] comes 2412*22dc650dSSadaf Ebrahimi 2413*22dc650dSSadaf Ebrahimi/(?2)[]a()b](abc)/ 2414*22dc650dSSadaf Ebrahimi abcbabc 2415*22dc650dSSadaf Ebrahimi 2416*22dc650dSSadaf Ebrahimi/(?2)[^]a()b](abc)/ 2417*22dc650dSSadaf Ebrahimi abcbabc 2418*22dc650dSSadaf Ebrahimi 2419*22dc650dSSadaf Ebrahimi/(?1)[]a()b](abc)/ 2420*22dc650dSSadaf Ebrahimi abcbabc 2421*22dc650dSSadaf Ebrahimi\= Expect no match 2422*22dc650dSSadaf Ebrahimi abcXabc 2423*22dc650dSSadaf Ebrahimi 2424*22dc650dSSadaf Ebrahimi/(?1)[^]a()b](abc)/ 2425*22dc650dSSadaf Ebrahimi abcXabc 2426*22dc650dSSadaf Ebrahimi\= Expect no match 2427*22dc650dSSadaf Ebrahimi abcbabc 2428*22dc650dSSadaf Ebrahimi 2429*22dc650dSSadaf Ebrahimi/(?2)[]a()b](abc)(xyz)/ 2430*22dc650dSSadaf Ebrahimi xyzbabcxyz 2431*22dc650dSSadaf Ebrahimi 2432*22dc650dSSadaf Ebrahimi/(?&N)[]a(?<N>)](?<M>abc)/ 2433*22dc650dSSadaf Ebrahimi abc<abc 2434*22dc650dSSadaf Ebrahimi 2435*22dc650dSSadaf Ebrahimi/(?&N)[]a(?<N>)](abc)/ 2436*22dc650dSSadaf Ebrahimi abc<abc 2437*22dc650dSSadaf Ebrahimi 2438*22dc650dSSadaf Ebrahimi/a[]b/ 2439*22dc650dSSadaf Ebrahimi 2440*22dc650dSSadaf Ebrahimi/a[^]b/ 2441*22dc650dSSadaf Ebrahimi 2442*22dc650dSSadaf Ebrahimi/a[]b/allow_empty_class,match_unset_backref,dupnames 2443*22dc650dSSadaf Ebrahimi\= Expect no match 2444*22dc650dSSadaf Ebrahimi ab 2445*22dc650dSSadaf Ebrahimi 2446*22dc650dSSadaf Ebrahimi/a[]+b/allow_empty_class,match_unset_backref,dupnames 2447*22dc650dSSadaf Ebrahimi\= Expect no match 2448*22dc650dSSadaf Ebrahimi ab 2449*22dc650dSSadaf Ebrahimi 2450*22dc650dSSadaf Ebrahimi/a[]*+b/allow_empty_class,match_unset_backref,dupnames 2451*22dc650dSSadaf Ebrahimi\= Expect no match 2452*22dc650dSSadaf Ebrahimi ab 2453*22dc650dSSadaf Ebrahimi 2454*22dc650dSSadaf Ebrahimi/a[^]b/allow_empty_class,match_unset_backref,dupnames 2455*22dc650dSSadaf Ebrahimi aXb 2456*22dc650dSSadaf Ebrahimi a\nb 2457*22dc650dSSadaf Ebrahimi\= Expect no match 2458*22dc650dSSadaf Ebrahimi ab 2459*22dc650dSSadaf Ebrahimi 2460*22dc650dSSadaf Ebrahimi/a[^]+b/allow_empty_class,match_unset_backref,dupnames 2461*22dc650dSSadaf Ebrahimi aXb 2462*22dc650dSSadaf Ebrahimi a\nX\nXb 2463*22dc650dSSadaf Ebrahimi\= Expect no match 2464*22dc650dSSadaf Ebrahimi ab 2465*22dc650dSSadaf Ebrahimi 2466*22dc650dSSadaf Ebrahimi/a(?!)b/B 2467*22dc650dSSadaf Ebrahimi 2468*22dc650dSSadaf Ebrahimi/(?!)?a/B 2469*22dc650dSSadaf Ebrahimi ab 2470*22dc650dSSadaf Ebrahimi 2471*22dc650dSSadaf Ebrahimi/a(*FAIL)+b/ 2472*22dc650dSSadaf Ebrahimi 2473*22dc650dSSadaf Ebrahimi/(abc|pqr|123){0}[xyz]/I 2474*22dc650dSSadaf Ebrahimi 2475*22dc650dSSadaf Ebrahimi/(?(?=.*b)b|^)/I,auto_callout 2476*22dc650dSSadaf Ebrahimi adc 2477*22dc650dSSadaf Ebrahimi abc 2478*22dc650dSSadaf Ebrahimi 2479*22dc650dSSadaf Ebrahimi/(?(?=b).*b|^d)/I 2480*22dc650dSSadaf Ebrahimi 2481*22dc650dSSadaf Ebrahimi/(?(?=.*b).*b|^d)/I 2482*22dc650dSSadaf Ebrahimi 2483*22dc650dSSadaf Ebrahimi/xyz/auto_callout 2484*22dc650dSSadaf Ebrahimi xyz 2485*22dc650dSSadaf Ebrahimi abcxyz 2486*22dc650dSSadaf Ebrahimi\= Expect no match 2487*22dc650dSSadaf Ebrahimi abc 2488*22dc650dSSadaf Ebrahimi abcxypqr 2489*22dc650dSSadaf Ebrahimi 2490*22dc650dSSadaf Ebrahimi/xyz/auto_callout,no_start_optimize 2491*22dc650dSSadaf Ebrahimi abcxyz 2492*22dc650dSSadaf Ebrahimi\= Expect no match 2493*22dc650dSSadaf Ebrahimi abc 2494*22dc650dSSadaf Ebrahimi abcxypqr 2495*22dc650dSSadaf Ebrahimi 2496*22dc650dSSadaf Ebrahimi/(*NO_START_OPT)xyz/auto_callout 2497*22dc650dSSadaf Ebrahimi abcxyz 2498*22dc650dSSadaf Ebrahimi 2499*22dc650dSSadaf Ebrahimi/(*NO_AUTO_POSSESS)a+b/B 2500*22dc650dSSadaf Ebrahimi 2501*22dc650dSSadaf Ebrahimi/xyz/auto_callout,no_start_optimize 2502*22dc650dSSadaf Ebrahimi abcxyz 2503*22dc650dSSadaf Ebrahimi 2504*22dc650dSSadaf Ebrahimi/^"((?(?=[a])[^"])|b)*"$/auto_callout 2505*22dc650dSSadaf Ebrahimi "ab" 2506*22dc650dSSadaf Ebrahimi 2507*22dc650dSSadaf Ebrahimi/^"((?(?=[a])[^"])|b)*"$/ 2508*22dc650dSSadaf Ebrahimi "ab" 2509*22dc650dSSadaf Ebrahimi 2510*22dc650dSSadaf Ebrahimi/^X(?5)(a)(?|(b)|(q))(c)(d)Y/ 2511*22dc650dSSadaf Ebrahimi XYabcdY 2512*22dc650dSSadaf Ebrahimi 2513*22dc650dSSadaf Ebrahimi/^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/ 2514*22dc650dSSadaf Ebrahimi XYabcdY 2515*22dc650dSSadaf Ebrahimi 2516*22dc650dSSadaf Ebrahimi/Xa{2,4}b/ 2517*22dc650dSSadaf Ebrahimi X\=ps 2518*22dc650dSSadaf Ebrahimi Xa\=ps 2519*22dc650dSSadaf Ebrahimi Xaa\=ps 2520*22dc650dSSadaf Ebrahimi Xaaa\=ps 2521*22dc650dSSadaf Ebrahimi Xaaaa\=ps 2522*22dc650dSSadaf Ebrahimi 2523*22dc650dSSadaf Ebrahimi/Xa{2,4}?b/ 2524*22dc650dSSadaf Ebrahimi X\=ps 2525*22dc650dSSadaf Ebrahimi Xa\=ps 2526*22dc650dSSadaf Ebrahimi Xaa\=ps 2527*22dc650dSSadaf Ebrahimi Xaaa\=ps 2528*22dc650dSSadaf Ebrahimi Xaaaa\=ps 2529*22dc650dSSadaf Ebrahimi 2530*22dc650dSSadaf Ebrahimi/Xa{2,4}+b/ 2531*22dc650dSSadaf Ebrahimi X\=ps 2532*22dc650dSSadaf Ebrahimi Xa\=ps 2533*22dc650dSSadaf Ebrahimi Xaa\=ps 2534*22dc650dSSadaf Ebrahimi Xaaa\=ps 2535*22dc650dSSadaf Ebrahimi Xaaaa\=ps 2536*22dc650dSSadaf Ebrahimi 2537*22dc650dSSadaf Ebrahimi/X\d{2,4}b/ 2538*22dc650dSSadaf Ebrahimi X\=ps 2539*22dc650dSSadaf Ebrahimi X3\=ps 2540*22dc650dSSadaf Ebrahimi X33\=ps 2541*22dc650dSSadaf Ebrahimi X333\=ps 2542*22dc650dSSadaf Ebrahimi X3333\=ps 2543*22dc650dSSadaf Ebrahimi 2544*22dc650dSSadaf Ebrahimi/X\d{2,4}?b/ 2545*22dc650dSSadaf Ebrahimi X\=ps 2546*22dc650dSSadaf Ebrahimi X3\=ps 2547*22dc650dSSadaf Ebrahimi X33\=ps 2548*22dc650dSSadaf Ebrahimi X333\=ps 2549*22dc650dSSadaf Ebrahimi X3333\=ps 2550*22dc650dSSadaf Ebrahimi 2551*22dc650dSSadaf Ebrahimi/X\d{2,4}+b/ 2552*22dc650dSSadaf Ebrahimi X\=ps 2553*22dc650dSSadaf Ebrahimi X3\=ps 2554*22dc650dSSadaf Ebrahimi X33\=ps 2555*22dc650dSSadaf Ebrahimi X333\=ps 2556*22dc650dSSadaf Ebrahimi X3333\=ps 2557*22dc650dSSadaf Ebrahimi 2558*22dc650dSSadaf Ebrahimi/X\D{2,4}b/ 2559*22dc650dSSadaf Ebrahimi X\=ps 2560*22dc650dSSadaf Ebrahimi Xa\=ps 2561*22dc650dSSadaf Ebrahimi Xaa\=ps 2562*22dc650dSSadaf Ebrahimi Xaaa\=ps 2563*22dc650dSSadaf Ebrahimi Xaaaa\=ps 2564*22dc650dSSadaf Ebrahimi 2565*22dc650dSSadaf Ebrahimi/X\D{2,4}?b/ 2566*22dc650dSSadaf Ebrahimi X\=ps 2567*22dc650dSSadaf Ebrahimi Xa\=ps 2568*22dc650dSSadaf Ebrahimi Xaa\=ps 2569*22dc650dSSadaf Ebrahimi Xaaa\=ps 2570*22dc650dSSadaf Ebrahimi Xaaaa\=ps 2571*22dc650dSSadaf Ebrahimi 2572*22dc650dSSadaf Ebrahimi/X\D{2,4}+b/ 2573*22dc650dSSadaf Ebrahimi X\=ps 2574*22dc650dSSadaf Ebrahimi Xa\=ps 2575*22dc650dSSadaf Ebrahimi Xaa\=ps 2576*22dc650dSSadaf Ebrahimi Xaaa\=ps 2577*22dc650dSSadaf Ebrahimi Xaaaa\=ps 2578*22dc650dSSadaf Ebrahimi 2579*22dc650dSSadaf Ebrahimi/X[abc]{2,4}b/ 2580*22dc650dSSadaf Ebrahimi X\=ps 2581*22dc650dSSadaf Ebrahimi Xa\=ps 2582*22dc650dSSadaf Ebrahimi Xaa\=ps 2583*22dc650dSSadaf Ebrahimi Xaaa\=ps 2584*22dc650dSSadaf Ebrahimi Xaaaa\=ps 2585*22dc650dSSadaf Ebrahimi 2586*22dc650dSSadaf Ebrahimi/X[abc]{2,4}?b/ 2587*22dc650dSSadaf Ebrahimi X\=ps 2588*22dc650dSSadaf Ebrahimi Xa\=ps 2589*22dc650dSSadaf Ebrahimi Xaa\=ps 2590*22dc650dSSadaf Ebrahimi Xaaa\=ps 2591*22dc650dSSadaf Ebrahimi Xaaaa\=ps 2592*22dc650dSSadaf Ebrahimi 2593*22dc650dSSadaf Ebrahimi/X[abc]{2,4}+b/ 2594*22dc650dSSadaf Ebrahimi X\=ps 2595*22dc650dSSadaf Ebrahimi Xa\=ps 2596*22dc650dSSadaf Ebrahimi Xaa\=ps 2597*22dc650dSSadaf Ebrahimi Xaaa\=ps 2598*22dc650dSSadaf Ebrahimi Xaaaa\=ps 2599*22dc650dSSadaf Ebrahimi 2600*22dc650dSSadaf Ebrahimi/X[^a]{2,4}b/ 2601*22dc650dSSadaf Ebrahimi X\=ps 2602*22dc650dSSadaf Ebrahimi Xz\=ps 2603*22dc650dSSadaf Ebrahimi Xzz\=ps 2604*22dc650dSSadaf Ebrahimi Xzzz\=ps 2605*22dc650dSSadaf Ebrahimi Xzzzz\=ps 2606*22dc650dSSadaf Ebrahimi 2607*22dc650dSSadaf Ebrahimi/X[^a]{2,4}?b/ 2608*22dc650dSSadaf Ebrahimi X\=ps 2609*22dc650dSSadaf Ebrahimi Xz\=ps 2610*22dc650dSSadaf Ebrahimi Xzz\=ps 2611*22dc650dSSadaf Ebrahimi Xzzz\=ps 2612*22dc650dSSadaf Ebrahimi Xzzzz\=ps 2613*22dc650dSSadaf Ebrahimi 2614*22dc650dSSadaf Ebrahimi/X[^a]{2,4}+b/ 2615*22dc650dSSadaf Ebrahimi X\=ps 2616*22dc650dSSadaf Ebrahimi Xz\=ps 2617*22dc650dSSadaf Ebrahimi Xzz\=ps 2618*22dc650dSSadaf Ebrahimi Xzzz\=ps 2619*22dc650dSSadaf Ebrahimi Xzzzz\=ps 2620*22dc650dSSadaf Ebrahimi 2621*22dc650dSSadaf Ebrahimi/(Y)X\1{2,4}b/ 2622*22dc650dSSadaf Ebrahimi YX\=ps 2623*22dc650dSSadaf Ebrahimi YXY\=ps 2624*22dc650dSSadaf Ebrahimi YXYY\=ps 2625*22dc650dSSadaf Ebrahimi YXYYY\=ps 2626*22dc650dSSadaf Ebrahimi YXYYYY\=ps 2627*22dc650dSSadaf Ebrahimi 2628*22dc650dSSadaf Ebrahimi/(Y)X\1{2,4}?b/ 2629*22dc650dSSadaf Ebrahimi YX\=ps 2630*22dc650dSSadaf Ebrahimi YXY\=ps 2631*22dc650dSSadaf Ebrahimi YXYY\=ps 2632*22dc650dSSadaf Ebrahimi YXYYY\=ps 2633*22dc650dSSadaf Ebrahimi YXYYYY\=ps 2634*22dc650dSSadaf Ebrahimi 2635*22dc650dSSadaf Ebrahimi/(Y)X\1{2,4}+b/ 2636*22dc650dSSadaf Ebrahimi YX\=ps 2637*22dc650dSSadaf Ebrahimi YXY\=ps 2638*22dc650dSSadaf Ebrahimi YXYY\=ps 2639*22dc650dSSadaf Ebrahimi YXYYY\=ps 2640*22dc650dSSadaf Ebrahimi YXYYYY\=ps 2641*22dc650dSSadaf Ebrahimi 2642*22dc650dSSadaf Ebrahimi/\++\KZ|\d+X|9+Y/startchar 2643*22dc650dSSadaf Ebrahimi ++++123999\=ps 2644*22dc650dSSadaf Ebrahimi ++++123999Y\=ps 2645*22dc650dSSadaf Ebrahimi ++++Z1234\=ps 2646*22dc650dSSadaf Ebrahimi 2647*22dc650dSSadaf Ebrahimi/Z(*F)/ 2648*22dc650dSSadaf Ebrahimi\= Expect no match 2649*22dc650dSSadaf Ebrahimi Z\=ps 2650*22dc650dSSadaf Ebrahimi ZA\=ps 2651*22dc650dSSadaf Ebrahimi 2652*22dc650dSSadaf Ebrahimi/Z(?!)/ 2653*22dc650dSSadaf Ebrahimi\= Expect no match 2654*22dc650dSSadaf Ebrahimi Z\=ps 2655*22dc650dSSadaf Ebrahimi ZA\=ps 2656*22dc650dSSadaf Ebrahimi 2657*22dc650dSSadaf Ebrahimi/dog(sbody)?/ 2658*22dc650dSSadaf Ebrahimi dogs\=ps 2659*22dc650dSSadaf Ebrahimi dogs\=ph 2660*22dc650dSSadaf Ebrahimi 2661*22dc650dSSadaf Ebrahimi/dog(sbody)??/ 2662*22dc650dSSadaf Ebrahimi dogs\=ps 2663*22dc650dSSadaf Ebrahimi dogs\=ph 2664*22dc650dSSadaf Ebrahimi 2665*22dc650dSSadaf Ebrahimi/dog|dogsbody/ 2666*22dc650dSSadaf Ebrahimi dogs\=ps 2667*22dc650dSSadaf Ebrahimi dogs\=ph 2668*22dc650dSSadaf Ebrahimi 2669*22dc650dSSadaf Ebrahimi/dogsbody|dog/ 2670*22dc650dSSadaf Ebrahimi dogs\=ps 2671*22dc650dSSadaf Ebrahimi dogs\=ph 2672*22dc650dSSadaf Ebrahimi 2673*22dc650dSSadaf Ebrahimi/\bthe cat\b/ 2674*22dc650dSSadaf Ebrahimi the cat\=ps 2675*22dc650dSSadaf Ebrahimi the cat\=ph 2676*22dc650dSSadaf Ebrahimi 2677*22dc650dSSadaf Ebrahimi/abc/ 2678*22dc650dSSadaf Ebrahimi abc\=ps 2679*22dc650dSSadaf Ebrahimi abc\=ph 2680*22dc650dSSadaf Ebrahimi 2681*22dc650dSSadaf Ebrahimi/abc\K123/startchar 2682*22dc650dSSadaf Ebrahimi xyzabc123pqr 2683*22dc650dSSadaf Ebrahimi xyzabc12\=ps 2684*22dc650dSSadaf Ebrahimi xyzabc12\=ph 2685*22dc650dSSadaf Ebrahimi 2686*22dc650dSSadaf Ebrahimi/(?<=abc)123/ 2687*22dc650dSSadaf Ebrahimi xyzabc123pqr 2688*22dc650dSSadaf Ebrahimi xyzabc12\=ps 2689*22dc650dSSadaf Ebrahimi xyzabc12\=ph 2690*22dc650dSSadaf Ebrahimi 2691*22dc650dSSadaf Ebrahimi/\babc\b/ 2692*22dc650dSSadaf Ebrahimi +++abc+++ 2693*22dc650dSSadaf Ebrahimi +++ab\=ps 2694*22dc650dSSadaf Ebrahimi +++ab\=ph 2695*22dc650dSSadaf Ebrahimi 2696*22dc650dSSadaf Ebrahimi/(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/B 2697*22dc650dSSadaf Ebrahimi 2698*22dc650dSSadaf Ebrahimi/(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/B 2699*22dc650dSSadaf Ebrahimi 2700*22dc650dSSadaf Ebrahimi/(ab)(x(y)z(cd(*ACCEPT)))pq/B 2701*22dc650dSSadaf Ebrahimi 2702*22dc650dSSadaf Ebrahimi/abc\K/aftertext,startchar 2703*22dc650dSSadaf Ebrahimi abcdef 2704*22dc650dSSadaf Ebrahimi abcdef\=notempty_atstart 2705*22dc650dSSadaf Ebrahimi xyzabcdef\=notempty_atstart 2706*22dc650dSSadaf Ebrahimi\= Expect no match 2707*22dc650dSSadaf Ebrahimi abcdef\=notempty 2708*22dc650dSSadaf Ebrahimi xyzabcdef\=notempty 2709*22dc650dSSadaf Ebrahimi 2710*22dc650dSSadaf Ebrahimi/^(?:(?=abc)|abc\K)/aftertext,startchar 2711*22dc650dSSadaf Ebrahimi abcdef 2712*22dc650dSSadaf Ebrahimi abcdef\=notempty_atstart 2713*22dc650dSSadaf Ebrahimi\= Expect no match 2714*22dc650dSSadaf Ebrahimi abcdef\=notempty 2715*22dc650dSSadaf Ebrahimi 2716*22dc650dSSadaf Ebrahimi/a?b?/aftertext 2717*22dc650dSSadaf Ebrahimi xyz 2718*22dc650dSSadaf Ebrahimi xyzabc 2719*22dc650dSSadaf Ebrahimi xyzabc\=notempty 2720*22dc650dSSadaf Ebrahimi xyzabc\=notempty_atstart 2721*22dc650dSSadaf Ebrahimi xyz\=notempty_atstart 2722*22dc650dSSadaf Ebrahimi\= Expect no match 2723*22dc650dSSadaf Ebrahimi xyz\=notempty 2724*22dc650dSSadaf Ebrahimi 2725*22dc650dSSadaf Ebrahimi/^a?b?/aftertext 2726*22dc650dSSadaf Ebrahimi xyz 2727*22dc650dSSadaf Ebrahimi xyzabc 2728*22dc650dSSadaf Ebrahimi\= Expect no match 2729*22dc650dSSadaf Ebrahimi xyzabc\=notempty 2730*22dc650dSSadaf Ebrahimi xyzabc\=notempty_atstart 2731*22dc650dSSadaf Ebrahimi xyz\=notempty_atstart 2732*22dc650dSSadaf Ebrahimi xyz\=notempty 2733*22dc650dSSadaf Ebrahimi 2734*22dc650dSSadaf Ebrahimi/^(?<name>a|b\g<name>c)/ 2735*22dc650dSSadaf Ebrahimi aaaa 2736*22dc650dSSadaf Ebrahimi bacxxx 2737*22dc650dSSadaf Ebrahimi bbaccxxx 2738*22dc650dSSadaf Ebrahimi bbbacccxx 2739*22dc650dSSadaf Ebrahimi 2740*22dc650dSSadaf Ebrahimi/^(?<name>a|b\g'name'c)/ 2741*22dc650dSSadaf Ebrahimi aaaa 2742*22dc650dSSadaf Ebrahimi bacxxx 2743*22dc650dSSadaf Ebrahimi bbaccxxx 2744*22dc650dSSadaf Ebrahimi bbbacccxx 2745*22dc650dSSadaf Ebrahimi 2746*22dc650dSSadaf Ebrahimi/^(a|b\g<1>c)/ 2747*22dc650dSSadaf Ebrahimi aaaa 2748*22dc650dSSadaf Ebrahimi bacxxx 2749*22dc650dSSadaf Ebrahimi bbaccxxx 2750*22dc650dSSadaf Ebrahimi bbbacccxx 2751*22dc650dSSadaf Ebrahimi 2752*22dc650dSSadaf Ebrahimi/^(a|b\g'1'c)/ 2753*22dc650dSSadaf Ebrahimi aaaa 2754*22dc650dSSadaf Ebrahimi bacxxx 2755*22dc650dSSadaf Ebrahimi bbaccxxx 2756*22dc650dSSadaf Ebrahimi bbbacccxx 2757*22dc650dSSadaf Ebrahimi 2758*22dc650dSSadaf Ebrahimi/^(a|b\g'-1'c)/ 2759*22dc650dSSadaf Ebrahimi aaaa 2760*22dc650dSSadaf Ebrahimi bacxxx 2761*22dc650dSSadaf Ebrahimi bbaccxxx 2762*22dc650dSSadaf Ebrahimi bbbacccxx 2763*22dc650dSSadaf Ebrahimi 2764*22dc650dSSadaf Ebrahimi/(^(a|b\g<-1>c))/ 2765*22dc650dSSadaf Ebrahimi aaaa 2766*22dc650dSSadaf Ebrahimi bacxxx 2767*22dc650dSSadaf Ebrahimi bbaccxxx 2768*22dc650dSSadaf Ebrahimi bbbacccxx 2769*22dc650dSSadaf Ebrahimi 2770*22dc650dSSadaf Ebrahimi/(?-i:\g<name>)(?i:(?<name>a))/ 2771*22dc650dSSadaf Ebrahimi XaaX 2772*22dc650dSSadaf Ebrahimi XAAX 2773*22dc650dSSadaf Ebrahimi 2774*22dc650dSSadaf Ebrahimi/(?i:\g<name>)(?-i:(?<name>a))/ 2775*22dc650dSSadaf Ebrahimi XaaX 2776*22dc650dSSadaf Ebrahimi\= Expect no match 2777*22dc650dSSadaf Ebrahimi XAAX 2778*22dc650dSSadaf Ebrahimi 2779*22dc650dSSadaf Ebrahimi/(?-i:\g<+1>)(?i:(a))/ 2780*22dc650dSSadaf Ebrahimi XaaX 2781*22dc650dSSadaf Ebrahimi XAAX 2782*22dc650dSSadaf Ebrahimi 2783*22dc650dSSadaf Ebrahimi/(?=(?<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>\})\}))\{/ 2784*22dc650dSSadaf Ebrahimi 2785*22dc650dSSadaf Ebrahimi/(?<n>a|b|c)\g<n>*/ 2786*22dc650dSSadaf Ebrahimi abc 2787*22dc650dSSadaf Ebrahimi accccbbb 2788*22dc650dSSadaf Ebrahimi 2789*22dc650dSSadaf Ebrahimi/^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/ 2790*22dc650dSSadaf Ebrahimi XYabcdY 2791*22dc650dSSadaf Ebrahimi 2792*22dc650dSSadaf Ebrahimi/(?<=b(?1)|zzz)(a)/ 2793*22dc650dSSadaf Ebrahimi xbaax 2794*22dc650dSSadaf Ebrahimi xzzzax 2795*22dc650dSSadaf Ebrahimi 2796*22dc650dSSadaf Ebrahimi/(a)(?<=b\1)/ 2797*22dc650dSSadaf Ebrahimi 2798*22dc650dSSadaf Ebrahimi/(a)(?<=b+(?1))/ 2799*22dc650dSSadaf Ebrahimi 2800*22dc650dSSadaf Ebrahimi/(a+)(?<=b(?1))/ 2801*22dc650dSSadaf Ebrahimi 2802*22dc650dSSadaf Ebrahimi/(a(?<=b(?1)))/ 2803*22dc650dSSadaf Ebrahimi 2804*22dc650dSSadaf Ebrahimi/(?<=b(?1))xyz/ 2805*22dc650dSSadaf Ebrahimi 2806*22dc650dSSadaf Ebrahimi/(?<=b(?1))xyz(b+)pqrstuvew/ 2807*22dc650dSSadaf Ebrahimi 2808*22dc650dSSadaf Ebrahimi/(a|bc)\1/I 2809*22dc650dSSadaf Ebrahimi 2810*22dc650dSSadaf Ebrahimi/(a|bc)\1{2,3}/I 2811*22dc650dSSadaf Ebrahimi 2812*22dc650dSSadaf Ebrahimi/(a|bc)(?1)/I 2813*22dc650dSSadaf Ebrahimi 2814*22dc650dSSadaf Ebrahimi/(a|b\1)(a|b\1)/I 2815*22dc650dSSadaf Ebrahimi 2816*22dc650dSSadaf Ebrahimi/(a|b\1){2}/I 2817*22dc650dSSadaf Ebrahimi 2818*22dc650dSSadaf Ebrahimi/(a|bbbb\1)(a|bbbb\1)/I 2819*22dc650dSSadaf Ebrahimi 2820*22dc650dSSadaf Ebrahimi/(a|bbbb\1){2}/I 2821*22dc650dSSadaf Ebrahimi 2822*22dc650dSSadaf Ebrahimi/^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 2823*22dc650dSSadaf Ebrahimi 2824*22dc650dSSadaf Ebrahimi/<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 2825*22dc650dSSadaf Ebrahimi 2826*22dc650dSSadaf Ebrahimi"(?>.*/)foo"I 2827*22dc650dSSadaf Ebrahimi 2828*22dc650dSSadaf Ebrahimi/(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /Ix 2829*22dc650dSSadaf Ebrahimi 2830*22dc650dSSadaf Ebrahimi/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/Ii 2831*22dc650dSSadaf Ebrahimi 2832*22dc650dSSadaf Ebrahimi/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/I 2833*22dc650dSSadaf Ebrahimi 2834*22dc650dSSadaf Ebrahimi/<a[\s]+href[\s]*=[\s]* # find <a href= 2835*22dc650dSSadaf Ebrahimi ([\"\'])? # find single or double quote 2836*22dc650dSSadaf Ebrahimi (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching 2837*22dc650dSSadaf Ebrahimi # quote, otherwise match up to next space 2838*22dc650dSSadaf Ebrahimi/Iisx 2839*22dc650dSSadaf Ebrahimi 2840*22dc650dSSadaf Ebrahimi/^(?!:) # colon disallowed at start 2841*22dc650dSSadaf Ebrahimi (?: # start of item 2842*22dc650dSSadaf Ebrahimi (?: [0-9a-f]{1,4} | # 1-4 hex digits or 2843*22dc650dSSadaf Ebrahimi (?(1)0 | () ) ) # if null previously matched, fail; else null 2844*22dc650dSSadaf Ebrahimi : # followed by colon 2845*22dc650dSSadaf Ebrahimi ){1,7} # end item; 1-7 of them required 2846*22dc650dSSadaf Ebrahimi [0-9a-f]{1,4} $ # final hex number at end of string 2847*22dc650dSSadaf Ebrahimi (?(1)|.) # check that there was an empty component 2848*22dc650dSSadaf Ebrahimi /Iix 2849*22dc650dSSadaf Ebrahimi 2850*22dc650dSSadaf Ebrahimi/(?|(?<a>A)|(?<a>B))/I 2851*22dc650dSSadaf Ebrahimi AB\=copy=a 2852*22dc650dSSadaf Ebrahimi BA\=copy=a 2853*22dc650dSSadaf Ebrahimi 2854*22dc650dSSadaf Ebrahimi/(?|(?<a>A)|(?<b>B))/ 2855*22dc650dSSadaf Ebrahimi 2856*22dc650dSSadaf Ebrahimi/(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) | 2857*22dc650dSSadaf Ebrahimi b(?<quote> (?<apostrophe>')|(?<realquote>")) ) 2858*22dc650dSSadaf Ebrahimi (?('quote')[a-z]+|[0-9]+)/Ix,dupnames 2859*22dc650dSSadaf Ebrahimi a"aaaaa 2860*22dc650dSSadaf Ebrahimi b"aaaaa 2861*22dc650dSSadaf Ebrahimi\= Expect no match 2862*22dc650dSSadaf Ebrahimi b"11111 2863*22dc650dSSadaf Ebrahimi a"11111 2864*22dc650dSSadaf Ebrahimi 2865*22dc650dSSadaf Ebrahimi/^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/IBx,dupnames 2866*22dc650dSSadaf Ebrahimi abcdX 2867*22dc650dSSadaf Ebrahimi eX 2868*22dc650dSSadaf Ebrahimi\= Expect no match 2869*22dc650dSSadaf Ebrahimi abcdY 2870*22dc650dSSadaf Ebrahimi ey 2871*22dc650dSSadaf Ebrahimi 2872*22dc650dSSadaf Ebrahimi/(?<A>a) (b)(c) (?<A>d (?(R&A)$ | (?4)) )/IBx,dupnames 2873*22dc650dSSadaf Ebrahimi abcdd 2874*22dc650dSSadaf Ebrahimi\= Expect no match 2875*22dc650dSSadaf Ebrahimi abcdde 2876*22dc650dSSadaf Ebrahimi 2877*22dc650dSSadaf Ebrahimi/abcd*/ 2878*22dc650dSSadaf Ebrahimi xxxxabcd\=ps 2879*22dc650dSSadaf Ebrahimi xxxxabcd\=ph 2880*22dc650dSSadaf Ebrahimi 2881*22dc650dSSadaf Ebrahimi/abcd*/i 2882*22dc650dSSadaf Ebrahimi xxxxabcd\=ps 2883*22dc650dSSadaf Ebrahimi xxxxabcd\=ph 2884*22dc650dSSadaf Ebrahimi XXXXABCD\=ps 2885*22dc650dSSadaf Ebrahimi XXXXABCD\=ph 2886*22dc650dSSadaf Ebrahimi 2887*22dc650dSSadaf Ebrahimi/abc\d*/ 2888*22dc650dSSadaf Ebrahimi xxxxabc1\=ps 2889*22dc650dSSadaf Ebrahimi xxxxabc1\=ph 2890*22dc650dSSadaf Ebrahimi 2891*22dc650dSSadaf Ebrahimi/(a)bc\1*/ 2892*22dc650dSSadaf Ebrahimi xxxxabca\=ps 2893*22dc650dSSadaf Ebrahimi xxxxabca\=ph 2894*22dc650dSSadaf Ebrahimi 2895*22dc650dSSadaf Ebrahimi/abc[de]*/ 2896*22dc650dSSadaf Ebrahimi xxxxabcde\=ps 2897*22dc650dSSadaf Ebrahimi xxxxabcde\=ph 2898*22dc650dSSadaf Ebrahimi 2899*22dc650dSSadaf Ebrahimi/(\3)(\1)(a)/allow_empty_class,match_unset_backref,dupnames 2900*22dc650dSSadaf Ebrahimi cat 2901*22dc650dSSadaf Ebrahimi 2902*22dc650dSSadaf Ebrahimi/(\3)(\1)(a)/I,allow_empty_class,match_unset_backref,dupnames 2903*22dc650dSSadaf Ebrahimi cat 2904*22dc650dSSadaf Ebrahimi 2905*22dc650dSSadaf Ebrahimi/(\3)(\1)(a)/I 2906*22dc650dSSadaf Ebrahimi\= Expect no match 2907*22dc650dSSadaf Ebrahimi cat 2908*22dc650dSSadaf Ebrahimi 2909*22dc650dSSadaf Ebrahimi/i(?(DEFINE)(?<s>a))/I 2910*22dc650dSSadaf Ebrahimi i 2911*22dc650dSSadaf Ebrahimi 2912*22dc650dSSadaf Ebrahimi/()i(?(1)a)/I 2913*22dc650dSSadaf Ebrahimi ia 2914*22dc650dSSadaf Ebrahimi 2915*22dc650dSSadaf Ebrahimi/(?i)a(?-i)b|c/B 2916*22dc650dSSadaf Ebrahimi XabX 2917*22dc650dSSadaf Ebrahimi XAbX 2918*22dc650dSSadaf Ebrahimi CcC 2919*22dc650dSSadaf Ebrahimi\= Expect no match 2920*22dc650dSSadaf Ebrahimi XABX 2921*22dc650dSSadaf Ebrahimi 2922*22dc650dSSadaf Ebrahimi/(?i)a(?s)b|c/B 2923*22dc650dSSadaf Ebrahimi 2924*22dc650dSSadaf Ebrahimi/(?i)a(?s-i)b|c/B 2925*22dc650dSSadaf Ebrahimi 2926*22dc650dSSadaf Ebrahimi/^(ab(c\1)d|x){2}$/B 2927*22dc650dSSadaf Ebrahimi xabcxd 2928*22dc650dSSadaf Ebrahimi 2929*22dc650dSSadaf Ebrahimi/^(?&t)*+(?(DEFINE)(?<t>.))$/B 2930*22dc650dSSadaf Ebrahimi 2931*22dc650dSSadaf Ebrahimi/^(?&t)*(?(DEFINE)(?<t>.))$/B 2932*22dc650dSSadaf Ebrahimi 2933*22dc650dSSadaf Ebrahimi# This one is here because Perl gives the match as "b" rather than "ab". I 2934*22dc650dSSadaf Ebrahimi# believe this to be a Perl bug. 2935*22dc650dSSadaf Ebrahimi 2936*22dc650dSSadaf Ebrahimi/(?>a\Kb)z|(ab)/ 2937*22dc650dSSadaf Ebrahimi ab\=startchar 2938*22dc650dSSadaf Ebrahimi 2939*22dc650dSSadaf Ebrahimi/(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/ 2940*22dc650dSSadaf Ebrahimi abcd 2941*22dc650dSSadaf Ebrahimi 0abc 2942*22dc650dSSadaf Ebrahimi 2943*22dc650dSSadaf Ebrahimi/abc(*MARK:)pqr/ 2944*22dc650dSSadaf Ebrahimi 2945*22dc650dSSadaf Ebrahimi/abc(*:)pqr/ 2946*22dc650dSSadaf Ebrahimi 2947*22dc650dSSadaf Ebrahimi/(*COMMIT:X)/B 2948*22dc650dSSadaf Ebrahimi 2949*22dc650dSSadaf Ebrahimi# This should, and does, fail. In Perl, it does not, which I think is a 2950*22dc650dSSadaf Ebrahimi# bug because replacing the B in the pattern by (B|D) does make it fail. 2951*22dc650dSSadaf Ebrahimi# Turning off Perl's optimization by inserting (??{""}) also makes it fail. 2952*22dc650dSSadaf Ebrahimi 2953*22dc650dSSadaf Ebrahimi/A(*COMMIT)B/aftertext,mark 2954*22dc650dSSadaf Ebrahimi\= Expect no match 2955*22dc650dSSadaf Ebrahimi ACABX 2956*22dc650dSSadaf Ebrahimi 2957*22dc650dSSadaf Ebrahimi# These should be different, but in Perl they are not, which I think 2958*22dc650dSSadaf Ebrahimi# is a bug in Perl. 2959*22dc650dSSadaf Ebrahimi 2960*22dc650dSSadaf Ebrahimi/A(*THEN)B|A(*THEN)C/mark 2961*22dc650dSSadaf Ebrahimi AC 2962*22dc650dSSadaf Ebrahimi 2963*22dc650dSSadaf Ebrahimi/A(*PRUNE)B|A(*PRUNE)C/mark 2964*22dc650dSSadaf Ebrahimi\= Expect no match 2965*22dc650dSSadaf Ebrahimi AC 2966*22dc650dSSadaf Ebrahimi 2967*22dc650dSSadaf Ebrahimi# Mark names can be duplicated. Perl doesn't give a mark for this one, 2968*22dc650dSSadaf Ebrahimi# though PCRE2 does. 2969*22dc650dSSadaf Ebrahimi 2970*22dc650dSSadaf Ebrahimi/^A(*:A)B|^X(*:A)Y/mark 2971*22dc650dSSadaf Ebrahimi\= Expect no match 2972*22dc650dSSadaf Ebrahimi XAQQ 2973*22dc650dSSadaf Ebrahimi 2974*22dc650dSSadaf Ebrahimi# COMMIT at the start of a pattern should be the same as an anchor. Perl 2975*22dc650dSSadaf Ebrahimi# optimizations defeat this. So does the PCRE2 optimization unless we disable 2976*22dc650dSSadaf Ebrahimi# it. 2977*22dc650dSSadaf Ebrahimi 2978*22dc650dSSadaf Ebrahimi/(*COMMIT)ABC/ 2979*22dc650dSSadaf Ebrahimi ABCDEFG 2980*22dc650dSSadaf Ebrahimi 2981*22dc650dSSadaf Ebrahimi/(*COMMIT)ABC/no_start_optimize 2982*22dc650dSSadaf Ebrahimi\= Expect no match 2983*22dc650dSSadaf Ebrahimi DEFGABC 2984*22dc650dSSadaf Ebrahimi 2985*22dc650dSSadaf Ebrahimi/^(ab (c+(*THEN)cd) | xyz)/x 2986*22dc650dSSadaf Ebrahimi\= Expect no match 2987*22dc650dSSadaf Ebrahimi abcccd 2988*22dc650dSSadaf Ebrahimi 2989*22dc650dSSadaf Ebrahimi/^(ab (c+(*PRUNE)cd) | xyz)/x 2990*22dc650dSSadaf Ebrahimi\= Expect no match 2991*22dc650dSSadaf Ebrahimi abcccd 2992*22dc650dSSadaf Ebrahimi 2993*22dc650dSSadaf Ebrahimi/^(ab (c+(*FAIL)cd) | xyz)/x 2994*22dc650dSSadaf Ebrahimi\= Expect no match 2995*22dc650dSSadaf Ebrahimi abcccd 2996*22dc650dSSadaf Ebrahimi 2997*22dc650dSSadaf Ebrahimi# Perl gets some of these wrong 2998*22dc650dSSadaf Ebrahimi 2999*22dc650dSSadaf Ebrahimi/(?>.(*ACCEPT))*?5/ 3000*22dc650dSSadaf Ebrahimi abcde 3001*22dc650dSSadaf Ebrahimi 3002*22dc650dSSadaf Ebrahimi/(.(*ACCEPT))*?5/ 3003*22dc650dSSadaf Ebrahimi abcde 3004*22dc650dSSadaf Ebrahimi 3005*22dc650dSSadaf Ebrahimi/(.(*ACCEPT))5/ 3006*22dc650dSSadaf Ebrahimi abcde 3007*22dc650dSSadaf Ebrahimi 3008*22dc650dSSadaf Ebrahimi/(.(*ACCEPT))*5/ 3009*22dc650dSSadaf Ebrahimi abcde 3010*22dc650dSSadaf Ebrahimi 3011*22dc650dSSadaf Ebrahimi/A\NB./B 3012*22dc650dSSadaf Ebrahimi ACBD 3013*22dc650dSSadaf Ebrahimi\= Expect no match 3014*22dc650dSSadaf Ebrahimi A\nB 3015*22dc650dSSadaf Ebrahimi ACB\n 3016*22dc650dSSadaf Ebrahimi 3017*22dc650dSSadaf Ebrahimi/A\NB./Bs 3018*22dc650dSSadaf Ebrahimi ACBD 3019*22dc650dSSadaf Ebrahimi ACB\n 3020*22dc650dSSadaf Ebrahimi\= Expect no match 3021*22dc650dSSadaf Ebrahimi A\nB 3022*22dc650dSSadaf Ebrahimi 3023*22dc650dSSadaf Ebrahimi/A\NB/newline=crlf 3024*22dc650dSSadaf Ebrahimi A\nB 3025*22dc650dSSadaf Ebrahimi A\rB 3026*22dc650dSSadaf Ebrahimi\= Expect no match 3027*22dc650dSSadaf Ebrahimi A\r\nB 3028*22dc650dSSadaf Ebrahimi 3029*22dc650dSSadaf Ebrahimi/\R+b/B 3030*22dc650dSSadaf Ebrahimi 3031*22dc650dSSadaf Ebrahimi/\R+\n/B 3032*22dc650dSSadaf Ebrahimi 3033*22dc650dSSadaf Ebrahimi/\R+\d/B 3034*22dc650dSSadaf Ebrahimi 3035*22dc650dSSadaf Ebrahimi/\d*\R/B 3036*22dc650dSSadaf Ebrahimi 3037*22dc650dSSadaf Ebrahimi/\s*\R/B 3038*22dc650dSSadaf Ebrahimi \x20\x0a 3039*22dc650dSSadaf Ebrahimi \x20\x0d 3040*22dc650dSSadaf Ebrahimi \x20\x0d\x0a 3041*22dc650dSSadaf Ebrahimi 3042*22dc650dSSadaf Ebrahimi/\S*\R/B 3043*22dc650dSSadaf Ebrahimi a\x0a 3044*22dc650dSSadaf Ebrahimi 3045*22dc650dSSadaf Ebrahimi/X\h*\R/B 3046*22dc650dSSadaf Ebrahimi X\x20\x0a 3047*22dc650dSSadaf Ebrahimi 3048*22dc650dSSadaf Ebrahimi/X\H*\R/B 3049*22dc650dSSadaf Ebrahimi X\x0d\x0a 3050*22dc650dSSadaf Ebrahimi 3051*22dc650dSSadaf Ebrahimi/X\H+\R/B 3052*22dc650dSSadaf Ebrahimi X\x0d\x0a 3053*22dc650dSSadaf Ebrahimi 3054*22dc650dSSadaf Ebrahimi/X\H++\R/B 3055*22dc650dSSadaf Ebrahimi\= Expect no match 3056*22dc650dSSadaf Ebrahimi X\x0d\x0a 3057*22dc650dSSadaf Ebrahimi 3058*22dc650dSSadaf Ebrahimi/(?<=abc)def/ 3059*22dc650dSSadaf Ebrahimi abc\=ph 3060*22dc650dSSadaf Ebrahimi 3061*22dc650dSSadaf Ebrahimi/abc$/ 3062*22dc650dSSadaf Ebrahimi abc 3063*22dc650dSSadaf Ebrahimi abc\=ps 3064*22dc650dSSadaf Ebrahimi abc\=ph 3065*22dc650dSSadaf Ebrahimi 3066*22dc650dSSadaf Ebrahimi/abc$/m 3067*22dc650dSSadaf Ebrahimi abc 3068*22dc650dSSadaf Ebrahimi abc\n 3069*22dc650dSSadaf Ebrahimi abc\=ph 3070*22dc650dSSadaf Ebrahimi abc\n\=ph 3071*22dc650dSSadaf Ebrahimi abc\=ps 3072*22dc650dSSadaf Ebrahimi abc\n\=ps 3073*22dc650dSSadaf Ebrahimi 3074*22dc650dSSadaf Ebrahimi/abc\z/ 3075*22dc650dSSadaf Ebrahimi abc 3076*22dc650dSSadaf Ebrahimi abc\=ps 3077*22dc650dSSadaf Ebrahimi abc\=ph 3078*22dc650dSSadaf Ebrahimi 3079*22dc650dSSadaf Ebrahimi/abc\Z/ 3080*22dc650dSSadaf Ebrahimi abc 3081*22dc650dSSadaf Ebrahimi abc\=ps 3082*22dc650dSSadaf Ebrahimi abc\=ph 3083*22dc650dSSadaf Ebrahimi 3084*22dc650dSSadaf Ebrahimi/abc\b/ 3085*22dc650dSSadaf Ebrahimi abc 3086*22dc650dSSadaf Ebrahimi abc\=ps 3087*22dc650dSSadaf Ebrahimi abc\=ph 3088*22dc650dSSadaf Ebrahimi 3089*22dc650dSSadaf Ebrahimi/abc\B/ 3090*22dc650dSSadaf Ebrahimi abc\=ps 3091*22dc650dSSadaf Ebrahimi abc\=ph 3092*22dc650dSSadaf Ebrahimi\= Expect no match 3093*22dc650dSSadaf Ebrahimi abc 3094*22dc650dSSadaf Ebrahimi 3095*22dc650dSSadaf Ebrahimi/.+/ 3096*22dc650dSSadaf Ebrahimi\= Bad offsets 3097*22dc650dSSadaf Ebrahimi abc\=offset=4 3098*22dc650dSSadaf Ebrahimi abc\=offset=-4 3099*22dc650dSSadaf Ebrahimi\= Valid data 3100*22dc650dSSadaf Ebrahimi abc\=offset=0 3101*22dc650dSSadaf Ebrahimi abc\=offset=1 3102*22dc650dSSadaf Ebrahimi abc\=offset=2 3103*22dc650dSSadaf Ebrahimi\= Expect no match 3104*22dc650dSSadaf Ebrahimi abc\=offset=3 3105*22dc650dSSadaf Ebrahimi 3106*22dc650dSSadaf Ebrahimi/^\cģ/ 3107*22dc650dSSadaf Ebrahimi 3108*22dc650dSSadaf Ebrahimi/(?P<abn>(?P=abn)xxx)/B 3109*22dc650dSSadaf Ebrahimi 3110*22dc650dSSadaf Ebrahimi/(a\1z)/B 3111*22dc650dSSadaf Ebrahimi 3112*22dc650dSSadaf Ebrahimi/(?P<abn>(?P=abn)(?<badstufxxx)/B 3113*22dc650dSSadaf Ebrahimi 3114*22dc650dSSadaf Ebrahimi/(?P<abn>(?P=axn)xxx)/B 3115*22dc650dSSadaf Ebrahimi 3116*22dc650dSSadaf Ebrahimi/(?P<abn>(?P=axn)xxx)(?<axn>yy)/B 3117*22dc650dSSadaf Ebrahimi 3118*22dc650dSSadaf Ebrahimi# These tests are here because Perl gets the first one wrong. 3119*22dc650dSSadaf Ebrahimi 3120*22dc650dSSadaf Ebrahimi/(\R*)(.)/s 3121*22dc650dSSadaf Ebrahimi \r\n 3122*22dc650dSSadaf Ebrahimi \r\r\n\n\r 3123*22dc650dSSadaf Ebrahimi \r\r\n\n\r\n 3124*22dc650dSSadaf Ebrahimi 3125*22dc650dSSadaf Ebrahimi/(\R)*(.)/s 3126*22dc650dSSadaf Ebrahimi \r\n 3127*22dc650dSSadaf Ebrahimi \r\r\n\n\r 3128*22dc650dSSadaf Ebrahimi \r\r\n\n\r\n 3129*22dc650dSSadaf Ebrahimi 3130*22dc650dSSadaf Ebrahimi/((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s 3131*22dc650dSSadaf Ebrahimi \r\n 3132*22dc650dSSadaf Ebrahimi \r\r\n\n\r 3133*22dc650dSSadaf Ebrahimi \r\r\n\n\r\n 3134*22dc650dSSadaf Ebrahimi 3135*22dc650dSSadaf Ebrahimi# ------------- 3136*22dc650dSSadaf Ebrahimi 3137*22dc650dSSadaf Ebrahimi/^abc$/B 3138*22dc650dSSadaf Ebrahimi 3139*22dc650dSSadaf Ebrahimi/^abc$/Bm 3140*22dc650dSSadaf Ebrahimi 3141*22dc650dSSadaf Ebrahimi/^(a)*+(\w)/ 3142*22dc650dSSadaf Ebrahimi aaaaX 3143*22dc650dSSadaf Ebrahimi\= Expect no match 3144*22dc650dSSadaf Ebrahimi aaaa 3145*22dc650dSSadaf Ebrahimi 3146*22dc650dSSadaf Ebrahimi/^(?:a)*+(\w)/ 3147*22dc650dSSadaf Ebrahimi aaaaX 3148*22dc650dSSadaf Ebrahimi\= Expect no match 3149*22dc650dSSadaf Ebrahimi aaaa 3150*22dc650dSSadaf Ebrahimi 3151*22dc650dSSadaf Ebrahimi/(a)++1234/IB 3152*22dc650dSSadaf Ebrahimi 3153*22dc650dSSadaf Ebrahimi/([abc])++1234/I 3154*22dc650dSSadaf Ebrahimi 3155*22dc650dSSadaf Ebrahimi/(?<=(abc)+)X/ 3156*22dc650dSSadaf Ebrahimi 3157*22dc650dSSadaf Ebrahimi/(^ab)/I 3158*22dc650dSSadaf Ebrahimi 3159*22dc650dSSadaf Ebrahimi/(^ab)++/I 3160*22dc650dSSadaf Ebrahimi 3161*22dc650dSSadaf Ebrahimi/(^ab|^)+/I 3162*22dc650dSSadaf Ebrahimi 3163*22dc650dSSadaf Ebrahimi/(^ab|^)++/I 3164*22dc650dSSadaf Ebrahimi 3165*22dc650dSSadaf Ebrahimi/(?:^ab)/I 3166*22dc650dSSadaf Ebrahimi 3167*22dc650dSSadaf Ebrahimi/(?:^ab)++/I 3168*22dc650dSSadaf Ebrahimi 3169*22dc650dSSadaf Ebrahimi/(?:^ab|^)+/I 3170*22dc650dSSadaf Ebrahimi 3171*22dc650dSSadaf Ebrahimi/(?:^ab|^)++/I 3172*22dc650dSSadaf Ebrahimi 3173*22dc650dSSadaf Ebrahimi/(.*ab)/I 3174*22dc650dSSadaf Ebrahimi 3175*22dc650dSSadaf Ebrahimi/(.*ab)++/I 3176*22dc650dSSadaf Ebrahimi 3177*22dc650dSSadaf Ebrahimi/(.*ab|.*)+/I 3178*22dc650dSSadaf Ebrahimi 3179*22dc650dSSadaf Ebrahimi/(.*ab|.*)++/I 3180*22dc650dSSadaf Ebrahimi 3181*22dc650dSSadaf Ebrahimi/(?:.*ab)/I 3182*22dc650dSSadaf Ebrahimi 3183*22dc650dSSadaf Ebrahimi/(?:.*ab)++/I 3184*22dc650dSSadaf Ebrahimi 3185*22dc650dSSadaf Ebrahimi/(?:.*ab|.*)+/I 3186*22dc650dSSadaf Ebrahimi 3187*22dc650dSSadaf Ebrahimi/(?:.*ab|.*)++/I 3188*22dc650dSSadaf Ebrahimi 3189*22dc650dSSadaf Ebrahimi/(?=a)[bcd]/I 3190*22dc650dSSadaf Ebrahimi 3191*22dc650dSSadaf Ebrahimi/((?=a))[bcd]/I 3192*22dc650dSSadaf Ebrahimi 3193*22dc650dSSadaf Ebrahimi/((?=a))+[bcd]/I 3194*22dc650dSSadaf Ebrahimi 3195*22dc650dSSadaf Ebrahimi/((?=a))++[bcd]/I 3196*22dc650dSSadaf Ebrahimi 3197*22dc650dSSadaf Ebrahimi/(?=a+)[bcd]/Ii 3198*22dc650dSSadaf Ebrahimi 3199*22dc650dSSadaf Ebrahimi/(?=a+?)[bcd]/Ii 3200*22dc650dSSadaf Ebrahimi 3201*22dc650dSSadaf Ebrahimi/(?=a++)[bcd]/Ii 3202*22dc650dSSadaf Ebrahimi 3203*22dc650dSSadaf Ebrahimi/(?=a{3})[bcd]/Ii 3204*22dc650dSSadaf Ebrahimi 3205*22dc650dSSadaf Ebrahimi/(abc)\1+/ 3206*22dc650dSSadaf Ebrahimi 3207*22dc650dSSadaf Ebrahimi# Perl doesn't get these right IMO (the 3rd is PCRE2-specific) 3208*22dc650dSSadaf Ebrahimi 3209*22dc650dSSadaf Ebrahimi/(?1)(?:(b(*ACCEPT))){0}/ 3210*22dc650dSSadaf Ebrahimi b 3211*22dc650dSSadaf Ebrahimi 3212*22dc650dSSadaf Ebrahimi/(?1)(?:(b(*ACCEPT))){0}c/ 3213*22dc650dSSadaf Ebrahimi bc 3214*22dc650dSSadaf Ebrahimi\= Expect no match 3215*22dc650dSSadaf Ebrahimi b 3216*22dc650dSSadaf Ebrahimi 3217*22dc650dSSadaf Ebrahimi/(?1)(?:((*ACCEPT))){0}c/ 3218*22dc650dSSadaf Ebrahimi c 3219*22dc650dSSadaf Ebrahimi c\=notempty 3220*22dc650dSSadaf Ebrahimi 3221*22dc650dSSadaf Ebrahimi/^.*?(?(?=a)a|b(*THEN)c)/ 3222*22dc650dSSadaf Ebrahimi\= Expect no match 3223*22dc650dSSadaf Ebrahimi ba 3224*22dc650dSSadaf Ebrahimi 3225*22dc650dSSadaf Ebrahimi/^.*?(?(?=a)a|bc)/ 3226*22dc650dSSadaf Ebrahimi ba 3227*22dc650dSSadaf Ebrahimi 3228*22dc650dSSadaf Ebrahimi/^.*?(?(?=a)a(*THEN)b|c)/ 3229*22dc650dSSadaf Ebrahimi\= Expect no match 3230*22dc650dSSadaf Ebrahimi ac 3231*22dc650dSSadaf Ebrahimi 3232*22dc650dSSadaf Ebrahimi/^.*?(?(?=a)a(*THEN)b)c/ 3233*22dc650dSSadaf Ebrahimi\= Expect no match 3234*22dc650dSSadaf Ebrahimi ac 3235*22dc650dSSadaf Ebrahimi 3236*22dc650dSSadaf Ebrahimi/^.*?(a(*THEN)b)c/ 3237*22dc650dSSadaf Ebrahimi\= Expect no match 3238*22dc650dSSadaf Ebrahimi aabc 3239*22dc650dSSadaf Ebrahimi 3240*22dc650dSSadaf Ebrahimi/^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x 3241*22dc650dSSadaf Ebrahimi aabc 3242*22dc650dSSadaf Ebrahimi 3243*22dc650dSSadaf Ebrahimi/^.*?(a(*THEN)b|z)c/ 3244*22dc650dSSadaf Ebrahimi aabc 3245*22dc650dSSadaf Ebrahimi 3246*22dc650dSSadaf Ebrahimi/^.*?(z|a(*THEN)b)c/ 3247*22dc650dSSadaf Ebrahimi aabc 3248*22dc650dSSadaf Ebrahimi 3249*22dc650dSSadaf Ebrahimi# These are here because they are not Perl-compatible; the studying means the 3250*22dc650dSSadaf Ebrahimi# mark is not seen. 3251*22dc650dSSadaf Ebrahimi 3252*22dc650dSSadaf Ebrahimi/(*MARK:A)(*SKIP:B)(C|X)/mark 3253*22dc650dSSadaf Ebrahimi C 3254*22dc650dSSadaf Ebrahimi\= Expect no match 3255*22dc650dSSadaf Ebrahimi D 3256*22dc650dSSadaf Ebrahimi 3257*22dc650dSSadaf Ebrahimi/(*:A)A+(*SKIP:A)(B|Z)/mark 3258*22dc650dSSadaf Ebrahimi\= Expect no match 3259*22dc650dSSadaf Ebrahimi AAAC 3260*22dc650dSSadaf Ebrahimi 3261*22dc650dSSadaf Ebrahimi# ---------------------------- 3262*22dc650dSSadaf Ebrahimi 3263*22dc650dSSadaf Ebrahimi"(?=a*(*ACCEPT)b)c" 3264*22dc650dSSadaf Ebrahimi c 3265*22dc650dSSadaf Ebrahimi c\=notempty 3266*22dc650dSSadaf Ebrahimi 3267*22dc650dSSadaf Ebrahimi/(?1)c(?(DEFINE)((*ACCEPT)b))/ 3268*22dc650dSSadaf Ebrahimi c 3269*22dc650dSSadaf Ebrahimi c\=notempty 3270*22dc650dSSadaf Ebrahimi 3271*22dc650dSSadaf Ebrahimi/(?>(*ACCEPT)b)c/ 3272*22dc650dSSadaf Ebrahimi c 3273*22dc650dSSadaf Ebrahimi\= Expect no match 3274*22dc650dSSadaf Ebrahimi c\=notempty 3275*22dc650dSSadaf Ebrahimi 3276*22dc650dSSadaf Ebrahimi/(?:(?>(a)))+a%/allaftertext 3277*22dc650dSSadaf Ebrahimi %aa% 3278*22dc650dSSadaf Ebrahimi 3279*22dc650dSSadaf Ebrahimi/(a)b|ac/allaftertext 3280*22dc650dSSadaf Ebrahimi ac\=ovector=1 3281*22dc650dSSadaf Ebrahimi 3282*22dc650dSSadaf Ebrahimi/(a)(b)x|abc/allaftertext 3283*22dc650dSSadaf Ebrahimi abc\=ovector=2 3284*22dc650dSSadaf Ebrahimi 3285*22dc650dSSadaf Ebrahimi/(a)bc|(a)(b)\2/ 3286*22dc650dSSadaf Ebrahimi abc\=ovector=1 3287*22dc650dSSadaf Ebrahimi abc\=ovector=2 3288*22dc650dSSadaf Ebrahimi aba\=ovector=1 3289*22dc650dSSadaf Ebrahimi aba\=ovector=2 3290*22dc650dSSadaf Ebrahimi aba\=ovector=3 3291*22dc650dSSadaf Ebrahimi aba\=ovector=4 3292*22dc650dSSadaf Ebrahimi 3293*22dc650dSSadaf Ebrahimi/(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/I 3294*22dc650dSSadaf Ebrahimi 3295*22dc650dSSadaf Ebrahimi/(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/I 3296*22dc650dSSadaf Ebrahimi 3297*22dc650dSSadaf Ebrahimi/(a(?2)|b)(b(?1)|a)(?1)(?2)/I 3298*22dc650dSSadaf Ebrahimi 3299*22dc650dSSadaf Ebrahimi/(abc)(?1)/I 3300*22dc650dSSadaf Ebrahimi 3301*22dc650dSSadaf Ebrahimi/(?:(foo)|(bar)|(baz))X/allcaptures 3302*22dc650dSSadaf Ebrahimi bazfooX 3303*22dc650dSSadaf Ebrahimi foobazbarX 3304*22dc650dSSadaf Ebrahimi barfooX 3305*22dc650dSSadaf Ebrahimi bazX 3306*22dc650dSSadaf Ebrahimi foobarbazX 3307*22dc650dSSadaf Ebrahimi bazfooX\=ovector=0 3308*22dc650dSSadaf Ebrahimi bazfooX\=ovector=1 3309*22dc650dSSadaf Ebrahimi bazfooX\=ovector=2 3310*22dc650dSSadaf Ebrahimi bazfooX\=ovector=3 3311*22dc650dSSadaf Ebrahimi 3312*22dc650dSSadaf Ebrahimi/(?=abc){3}abc/B 3313*22dc650dSSadaf Ebrahimi 3314*22dc650dSSadaf Ebrahimi/(?=abc)+abc/B 3315*22dc650dSSadaf Ebrahimi 3316*22dc650dSSadaf Ebrahimi/(?=abc)++abc/B 3317*22dc650dSSadaf Ebrahimi 3318*22dc650dSSadaf Ebrahimi/(?=abc){0}xyz/B 3319*22dc650dSSadaf Ebrahimi 3320*22dc650dSSadaf Ebrahimi/(?=(a))?./B 3321*22dc650dSSadaf Ebrahimi 3322*22dc650dSSadaf Ebrahimi/(?=(a))??./B 3323*22dc650dSSadaf Ebrahimi 3324*22dc650dSSadaf Ebrahimi/^(?=(a)){0}b(?1)/B 3325*22dc650dSSadaf Ebrahimi 3326*22dc650dSSadaf Ebrahimi/(?(DEFINE)(a))?b(?1)/B 3327*22dc650dSSadaf Ebrahimi 3328*22dc650dSSadaf Ebrahimi/^(?=(?1))?[az]([abc])d/B 3329*22dc650dSSadaf Ebrahimi 3330*22dc650dSSadaf Ebrahimi/^(?!a){0}\w+/B 3331*22dc650dSSadaf Ebrahimi 3332*22dc650dSSadaf Ebrahimi/(?<=(abc))?xyz/B 3333*22dc650dSSadaf Ebrahimi 3334*22dc650dSSadaf Ebrahimi/[:a[:abc]b:]/B 3335*22dc650dSSadaf Ebrahimi 3336*22dc650dSSadaf Ebrahimi/^(a(*:A)(d|e(*:B))z|aeq)/auto_callout 3337*22dc650dSSadaf Ebrahimi adz 3338*22dc650dSSadaf Ebrahimi aez 3339*22dc650dSSadaf Ebrahimi aeqwerty 3340*22dc650dSSadaf Ebrahimi 3341*22dc650dSSadaf Ebrahimi/.(*F)/ 3342*22dc650dSSadaf Ebrahimi\= Expect no match 3343*22dc650dSSadaf Ebrahimi abc\=ph 3344*22dc650dSSadaf Ebrahimi 3345*22dc650dSSadaf Ebrahimi/\btype\b\W*?\btext\b\W*?\bjavascript\b/I 3346*22dc650dSSadaf Ebrahimi 3347*22dc650dSSadaf Ebrahimi/\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/I 3348*22dc650dSSadaf Ebrahimi 3349*22dc650dSSadaf Ebrahimi/a(*SKIP)c|b(*ACCEPT)|/I,aftertext 3350*22dc650dSSadaf Ebrahimi a 3351*22dc650dSSadaf Ebrahimi 3352*22dc650dSSadaf Ebrahimi/a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/I 3353*22dc650dSSadaf Ebrahimi ax 3354*22dc650dSSadaf Ebrahimi 3355*22dc650dSSadaf Ebrahimi'a*(*ACCEPT)b'aftertext 3356*22dc650dSSadaf Ebrahimi abc\=notempty_atstart 3357*22dc650dSSadaf Ebrahimi bbb\=notempty_atstart 3358*22dc650dSSadaf Ebrahimi\= Expect no match 3359*22dc650dSSadaf Ebrahimi \=notempty_atstart 3360*22dc650dSSadaf Ebrahimi 3361*22dc650dSSadaf Ebrahimi/(*ACCEPT)a/I,aftertext 3362*22dc650dSSadaf Ebrahimi bax 3363*22dc650dSSadaf Ebrahimi 3364*22dc650dSSadaf Ebrahimi/z(*ACCEPT)a/I,aftertext 3365*22dc650dSSadaf Ebrahimi baxzbx 3366*22dc650dSSadaf Ebrahimi 3367*22dc650dSSadaf Ebrahimi/^(?>a+)(?>(z+))\w/B 3368*22dc650dSSadaf Ebrahimi aaaazzzzb 3369*22dc650dSSadaf Ebrahimi\= Expect no match 3370*22dc650dSSadaf Ebrahimi aazz 3371*22dc650dSSadaf Ebrahimi 3372*22dc650dSSadaf Ebrahimi/(.)(\1|a(?2))/ 3373*22dc650dSSadaf Ebrahimi bab 3374*22dc650dSSadaf Ebrahimi 3375*22dc650dSSadaf Ebrahimi/\1|(.)(?R)\1/ 3376*22dc650dSSadaf Ebrahimi cbbbc 3377*22dc650dSSadaf Ebrahimi 3378*22dc650dSSadaf Ebrahimi/(.)((?(1)c|a)|a(?2))/ 3379*22dc650dSSadaf Ebrahimi\= Expect no match 3380*22dc650dSSadaf Ebrahimi baa 3381*22dc650dSSadaf Ebrahimi 3382*22dc650dSSadaf Ebrahimi/(?P<abn>(?P=abn)xxx)/B 3383*22dc650dSSadaf Ebrahimi 3384*22dc650dSSadaf Ebrahimi/(a\1z)/B 3385*22dc650dSSadaf Ebrahimi 3386*22dc650dSSadaf Ebrahimi/^a\x41z/alt_bsux,allow_empty_class,match_unset_backref,dupnames 3387*22dc650dSSadaf Ebrahimi aAz 3388*22dc650dSSadaf Ebrahimi\= Expect no match 3389*22dc650dSSadaf Ebrahimi ax41z 3390*22dc650dSSadaf Ebrahimi 3391*22dc650dSSadaf Ebrahimi/^a[m\x41]z/alt_bsux,allow_empty_class,match_unset_backref,dupnames 3392*22dc650dSSadaf Ebrahimi aAz 3393*22dc650dSSadaf Ebrahimi 3394*22dc650dSSadaf Ebrahimi/^a\x1z/alt_bsux,allow_empty_class,match_unset_backref,dupnames 3395*22dc650dSSadaf Ebrahimi ax1z 3396*22dc650dSSadaf Ebrahimi 3397*22dc650dSSadaf Ebrahimi/^a\u0041z/alt_bsux,allow_empty_class,match_unset_backref,dupnames 3398*22dc650dSSadaf Ebrahimi aAz 3399*22dc650dSSadaf Ebrahimi\= Expect no match 3400*22dc650dSSadaf Ebrahimi au0041z 3401*22dc650dSSadaf Ebrahimi 3402*22dc650dSSadaf Ebrahimi/^a[m\u0041]z/alt_bsux,allow_empty_class,match_unset_backref,dupnames 3403*22dc650dSSadaf Ebrahimi aAz 3404*22dc650dSSadaf Ebrahimi 3405*22dc650dSSadaf Ebrahimi/^a\u041z/alt_bsux,allow_empty_class,match_unset_backref,dupnames 3406*22dc650dSSadaf Ebrahimi au041z 3407*22dc650dSSadaf Ebrahimi\= Expect no match 3408*22dc650dSSadaf Ebrahimi aAz 3409*22dc650dSSadaf Ebrahimi 3410*22dc650dSSadaf Ebrahimi/^a\U0041z/alt_bsux,allow_empty_class,match_unset_backref,dupnames 3411*22dc650dSSadaf Ebrahimi aU0041z 3412*22dc650dSSadaf Ebrahimi\= Expect no match 3413*22dc650dSSadaf Ebrahimi aAz 3414*22dc650dSSadaf Ebrahimi 3415*22dc650dSSadaf Ebrahimi/^\u{7a}/alt_bsux 3416*22dc650dSSadaf Ebrahimi u{7a} 3417*22dc650dSSadaf Ebrahimi\= Expect no match 3418*22dc650dSSadaf Ebrahimi zoo 3419*22dc650dSSadaf Ebrahimi 3420*22dc650dSSadaf Ebrahimi/^\u{7a}/extra_alt_bsux 3421*22dc650dSSadaf Ebrahimi zoo 3422*22dc650dSSadaf Ebrahimi 3423*22dc650dSSadaf Ebrahimi/\u{}/extra_alt_bsux 3424*22dc650dSSadaf Ebrahimi u{} 3425*22dc650dSSadaf Ebrahimi 3426*22dc650dSSadaf Ebrahimi/\u{Q12}/extra_alt_bsux 3427*22dc650dSSadaf Ebrahimi --u{Q12}-- 3428*22dc650dSSadaf Ebrahimi 3429*22dc650dSSadaf Ebrahimi/\u{ 12}/extra_alt_bsux 3430*22dc650dSSadaf Ebrahimi --u{ 12}-- 3431*22dc650dSSadaf Ebrahimi 3432*22dc650dSSadaf Ebrahimi/\u{{3}}/extra_alt_bsux 3433*22dc650dSSadaf Ebrahimi --u{{{}-- 3434*22dc650dSSadaf Ebrahimi 3435*22dc650dSSadaf Ebrahimi/(?(?=c)c|d)++Y/B 3436*22dc650dSSadaf Ebrahimi 3437*22dc650dSSadaf Ebrahimi/(?(?=c)c|d)*+Y/B 3438*22dc650dSSadaf Ebrahimi 3439*22dc650dSSadaf Ebrahimi/a[\NB]c/ 3440*22dc650dSSadaf Ebrahimi aNc 3441*22dc650dSSadaf Ebrahimi 3442*22dc650dSSadaf Ebrahimi/a[B-\Nc]/ 3443*22dc650dSSadaf Ebrahimi 3444*22dc650dSSadaf Ebrahimi/a[B\Nc]/ 3445*22dc650dSSadaf Ebrahimi 3446*22dc650dSSadaf Ebrahimi/(a)(?2){0,1999}?(b)/ 3447*22dc650dSSadaf Ebrahimi 3448*22dc650dSSadaf Ebrahimi/(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/ 3449*22dc650dSSadaf Ebrahimi 3450*22dc650dSSadaf Ebrahimi# This test, with something more complicated than individual letters, causes 3451*22dc650dSSadaf Ebrahimi# different behaviour in Perl. Perhaps it disables some optimization; no tag is 3452*22dc650dSSadaf Ebrahimi# passed back for the failures, whereas in PCRE2 there is a tag. 3453*22dc650dSSadaf Ebrahimi 3454*22dc650dSSadaf Ebrahimi/(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/x,mark 3455*22dc650dSSadaf Ebrahimi AABC 3456*22dc650dSSadaf Ebrahimi XXYZ 3457*22dc650dSSadaf Ebrahimi\= Expect no match 3458*22dc650dSSadaf Ebrahimi XAQQ 3459*22dc650dSSadaf Ebrahimi XAQQXZZ 3460*22dc650dSSadaf Ebrahimi AXQQQ 3461*22dc650dSSadaf Ebrahimi AXXQQQ 3462*22dc650dSSadaf Ebrahimi 3463*22dc650dSSadaf Ebrahimi# Perl doesn't give marks for these, though it does if the alternatives are 3464*22dc650dSSadaf Ebrahimi# replaced by single letters. 3465*22dc650dSSadaf Ebrahimi 3466*22dc650dSSadaf Ebrahimi/(b|q)(*:m)f|a(*:n)w/mark 3467*22dc650dSSadaf Ebrahimi aw 3468*22dc650dSSadaf Ebrahimi\= Expect no match 3469*22dc650dSSadaf Ebrahimi abc 3470*22dc650dSSadaf Ebrahimi 3471*22dc650dSSadaf Ebrahimi/(q|b)(*:m)f|a(*:n)w/mark 3472*22dc650dSSadaf Ebrahimi aw 3473*22dc650dSSadaf Ebrahimi\= Expect no match 3474*22dc650dSSadaf Ebrahimi abc 3475*22dc650dSSadaf Ebrahimi 3476*22dc650dSSadaf Ebrahimi# After a partial match, the behaviour is as for a failure. 3477*22dc650dSSadaf Ebrahimi 3478*22dc650dSSadaf Ebrahimi/^a(*:X)bcde/mark 3479*22dc650dSSadaf Ebrahimi abc\=ps 3480*22dc650dSSadaf Ebrahimi 3481*22dc650dSSadaf Ebrahimi# These are here because Perl doesn't return a mark, except for the first. 3482*22dc650dSSadaf Ebrahimi 3483*22dc650dSSadaf Ebrahimi/(?=(*:x))(q|)/aftertext,mark 3484*22dc650dSSadaf Ebrahimi abc 3485*22dc650dSSadaf Ebrahimi 3486*22dc650dSSadaf Ebrahimi/(?=(*:x))((*:y)q|)/aftertext,mark 3487*22dc650dSSadaf Ebrahimi abc 3488*22dc650dSSadaf Ebrahimi 3489*22dc650dSSadaf Ebrahimi/(?=(*:x))(?:(*:y)q|)/aftertext,mark 3490*22dc650dSSadaf Ebrahimi abc 3491*22dc650dSSadaf Ebrahimi 3492*22dc650dSSadaf Ebrahimi/(?=(*:x))(?>(*:y)q|)/aftertext,mark 3493*22dc650dSSadaf Ebrahimi abc 3494*22dc650dSSadaf Ebrahimi 3495*22dc650dSSadaf Ebrahimi/(?=a(*:x))(?!a(*:y)c)/aftertext,mark 3496*22dc650dSSadaf Ebrahimi ab 3497*22dc650dSSadaf Ebrahimi 3498*22dc650dSSadaf Ebrahimi/(?=a(*:x))(?=a(*:y)c|)/aftertext,mark 3499*22dc650dSSadaf Ebrahimi ab 3500*22dc650dSSadaf Ebrahimi 3501*22dc650dSSadaf Ebrahimi/(..)\1/ 3502*22dc650dSSadaf Ebrahimi ab\=ps 3503*22dc650dSSadaf Ebrahimi aba\=ps 3504*22dc650dSSadaf Ebrahimi abab\=ps 3505*22dc650dSSadaf Ebrahimi 3506*22dc650dSSadaf Ebrahimi/(..)\1/i 3507*22dc650dSSadaf Ebrahimi ab\=ps 3508*22dc650dSSadaf Ebrahimi abA\=ps 3509*22dc650dSSadaf Ebrahimi aBAb\=ps 3510*22dc650dSSadaf Ebrahimi 3511*22dc650dSSadaf Ebrahimi/(..)\1{2,}/ 3512*22dc650dSSadaf Ebrahimi ab\=ps 3513*22dc650dSSadaf Ebrahimi aba\=ps 3514*22dc650dSSadaf Ebrahimi abab\=ps 3515*22dc650dSSadaf Ebrahimi ababa\=ps 3516*22dc650dSSadaf Ebrahimi ababab\=ps 3517*22dc650dSSadaf Ebrahimi ababab\=ph 3518*22dc650dSSadaf Ebrahimi abababa\=ps 3519*22dc650dSSadaf Ebrahimi abababa\=ph 3520*22dc650dSSadaf Ebrahimi 3521*22dc650dSSadaf Ebrahimi/(..)\1{2,}/i 3522*22dc650dSSadaf Ebrahimi ab\=ps 3523*22dc650dSSadaf Ebrahimi aBa\=ps 3524*22dc650dSSadaf Ebrahimi aBAb\=ps 3525*22dc650dSSadaf Ebrahimi AbaBA\=ps 3526*22dc650dSSadaf Ebrahimi abABAb\=ps 3527*22dc650dSSadaf Ebrahimi aBAbaB\=ph 3528*22dc650dSSadaf Ebrahimi abABabA\=ps 3529*22dc650dSSadaf Ebrahimi abaBABa\=ph 3530*22dc650dSSadaf Ebrahimi 3531*22dc650dSSadaf Ebrahimi/(..)\1{2,}?x/i 3532*22dc650dSSadaf Ebrahimi ab\=ps 3533*22dc650dSSadaf Ebrahimi abA\=ps 3534*22dc650dSSadaf Ebrahimi aBAb\=ps 3535*22dc650dSSadaf Ebrahimi abaBA\=ps 3536*22dc650dSSadaf Ebrahimi abAbaB\=ps 3537*22dc650dSSadaf Ebrahimi abaBabA\=ps 3538*22dc650dSSadaf Ebrahimi abAbABaBx\=ps 3539*22dc650dSSadaf Ebrahimi 3540*22dc650dSSadaf Ebrahimi/^(..)\1/ 3541*22dc650dSSadaf Ebrahimi aba\=ps 3542*22dc650dSSadaf Ebrahimi 3543*22dc650dSSadaf Ebrahimi/^(..)\1{2,3}x/ 3544*22dc650dSSadaf Ebrahimi aba\=ps 3545*22dc650dSSadaf Ebrahimi ababa\=ps 3546*22dc650dSSadaf Ebrahimi ababa\=ph 3547*22dc650dSSadaf Ebrahimi abababx 3548*22dc650dSSadaf Ebrahimi ababababx 3549*22dc650dSSadaf Ebrahimi 3550*22dc650dSSadaf Ebrahimi/^(..)\1{2,3}?x/ 3551*22dc650dSSadaf Ebrahimi aba\=ps 3552*22dc650dSSadaf Ebrahimi ababa\=ps 3553*22dc650dSSadaf Ebrahimi ababa\=ph 3554*22dc650dSSadaf Ebrahimi abababx 3555*22dc650dSSadaf Ebrahimi ababababx 3556*22dc650dSSadaf Ebrahimi 3557*22dc650dSSadaf Ebrahimi/^(..)(\1{2,3})ab/ 3558*22dc650dSSadaf Ebrahimi abababab 3559*22dc650dSSadaf Ebrahimi 3560*22dc650dSSadaf Ebrahimi/^\R/ 3561*22dc650dSSadaf Ebrahimi \r\=ps 3562*22dc650dSSadaf Ebrahimi \r\=ph 3563*22dc650dSSadaf Ebrahimi 3564*22dc650dSSadaf Ebrahimi/^\R{2,3}x/ 3565*22dc650dSSadaf Ebrahimi \r\=ps 3566*22dc650dSSadaf Ebrahimi \r\=ph 3567*22dc650dSSadaf Ebrahimi \r\r\=ps 3568*22dc650dSSadaf Ebrahimi \r\r\=ph 3569*22dc650dSSadaf Ebrahimi \r\r\r\=ps 3570*22dc650dSSadaf Ebrahimi \r\r\r\=ph 3571*22dc650dSSadaf Ebrahimi \r\rx 3572*22dc650dSSadaf Ebrahimi \r\r\rx 3573*22dc650dSSadaf Ebrahimi 3574*22dc650dSSadaf Ebrahimi/^\R{2,3}?x/ 3575*22dc650dSSadaf Ebrahimi \r\=ps 3576*22dc650dSSadaf Ebrahimi \r\=ph 3577*22dc650dSSadaf Ebrahimi \r\r\=ps 3578*22dc650dSSadaf Ebrahimi \r\r\=ph 3579*22dc650dSSadaf Ebrahimi \r\r\r\=ps 3580*22dc650dSSadaf Ebrahimi \r\r\r\=ph 3581*22dc650dSSadaf Ebrahimi \r\rx 3582*22dc650dSSadaf Ebrahimi \r\r\rx 3583*22dc650dSSadaf Ebrahimi 3584*22dc650dSSadaf Ebrahimi/^\R?x/ 3585*22dc650dSSadaf Ebrahimi \r\=ps 3586*22dc650dSSadaf Ebrahimi \r\=ph 3587*22dc650dSSadaf Ebrahimi x 3588*22dc650dSSadaf Ebrahimi \rx 3589*22dc650dSSadaf Ebrahimi 3590*22dc650dSSadaf Ebrahimi/^\R+x/ 3591*22dc650dSSadaf Ebrahimi \r\=ps 3592*22dc650dSSadaf Ebrahimi \r\=ph 3593*22dc650dSSadaf Ebrahimi \r\n\=ps 3594*22dc650dSSadaf Ebrahimi \r\n\=ph 3595*22dc650dSSadaf Ebrahimi \rx 3596*22dc650dSSadaf Ebrahimi 3597*22dc650dSSadaf Ebrahimi/^a$/newline=crlf 3598*22dc650dSSadaf Ebrahimi a\r\=ps 3599*22dc650dSSadaf Ebrahimi a\r\=ph 3600*22dc650dSSadaf Ebrahimi 3601*22dc650dSSadaf Ebrahimi/^a$/m,newline=crlf 3602*22dc650dSSadaf Ebrahimi a\r\=ps 3603*22dc650dSSadaf Ebrahimi a\r\=ph 3604*22dc650dSSadaf Ebrahimi 3605*22dc650dSSadaf Ebrahimi/^(a$|a\r)/newline=crlf 3606*22dc650dSSadaf Ebrahimi a\r\=ps 3607*22dc650dSSadaf Ebrahimi a\r\=ph 3608*22dc650dSSadaf Ebrahimi 3609*22dc650dSSadaf Ebrahimi/^(a$|a\r)/m,newline=crlf 3610*22dc650dSSadaf Ebrahimi a\r\=ps 3611*22dc650dSSadaf Ebrahimi a\r\=ph 3612*22dc650dSSadaf Ebrahimi 3613*22dc650dSSadaf Ebrahimi/./newline=crlf 3614*22dc650dSSadaf Ebrahimi \r\=ps 3615*22dc650dSSadaf Ebrahimi \r\=ph 3616*22dc650dSSadaf Ebrahimi 3617*22dc650dSSadaf Ebrahimi/.{2,3}/newline=crlf 3618*22dc650dSSadaf Ebrahimi \r\=ps 3619*22dc650dSSadaf Ebrahimi \r\=ph 3620*22dc650dSSadaf Ebrahimi \r\r\=ps 3621*22dc650dSSadaf Ebrahimi \r\r\=ph 3622*22dc650dSSadaf Ebrahimi \r\r\r\=ps 3623*22dc650dSSadaf Ebrahimi \r\r\r\=ph 3624*22dc650dSSadaf Ebrahimi 3625*22dc650dSSadaf Ebrahimi/.{2,3}?/newline=crlf 3626*22dc650dSSadaf Ebrahimi \r\=ps 3627*22dc650dSSadaf Ebrahimi \r\=ph 3628*22dc650dSSadaf Ebrahimi \r\r\=ps 3629*22dc650dSSadaf Ebrahimi \r\r\=ph 3630*22dc650dSSadaf Ebrahimi \r\r\r\=ps 3631*22dc650dSSadaf Ebrahimi \r\r\r\=ph 3632*22dc650dSSadaf Ebrahimi 3633*22dc650dSSadaf Ebrahimi"AB(C(D))(E(F))?(?(?=\2)(?=\4))" 3634*22dc650dSSadaf Ebrahimi ABCDGHI\=ovector=01 3635*22dc650dSSadaf Ebrahimi 3636*22dc650dSSadaf Ebrahimi# These are all run as real matches in test 1; here we are just checking the 3637*22dc650dSSadaf Ebrahimi# settings of the anchored and startline bits. 3638*22dc650dSSadaf Ebrahimi 3639*22dc650dSSadaf Ebrahimi/(?>.*?a)(?<=ba)/I 3640*22dc650dSSadaf Ebrahimi 3641*22dc650dSSadaf Ebrahimi/(?:.*?a)(?<=ba)/I 3642*22dc650dSSadaf Ebrahimi 3643*22dc650dSSadaf Ebrahimi/.*?a(*PRUNE)b/I 3644*22dc650dSSadaf Ebrahimi 3645*22dc650dSSadaf Ebrahimi/.*?a(*PRUNE)b/Is 3646*22dc650dSSadaf Ebrahimi 3647*22dc650dSSadaf Ebrahimi/^a(*PRUNE)b/Is 3648*22dc650dSSadaf Ebrahimi 3649*22dc650dSSadaf Ebrahimi/.*?a(*SKIP)b/I 3650*22dc650dSSadaf Ebrahimi 3651*22dc650dSSadaf Ebrahimi/(?>.*?a)b/Is 3652*22dc650dSSadaf Ebrahimi 3653*22dc650dSSadaf Ebrahimi/(?>.*?a)b/I 3654*22dc650dSSadaf Ebrahimi 3655*22dc650dSSadaf Ebrahimi/(?>^a)b/Is 3656*22dc650dSSadaf Ebrahimi 3657*22dc650dSSadaf Ebrahimi/(?>.*?)(?<=(abcd)|(wxyz))/I 3658*22dc650dSSadaf Ebrahimi 3659*22dc650dSSadaf Ebrahimi/(?>.*)(?<=(abcd)|(wxyz))/I 3660*22dc650dSSadaf Ebrahimi 3661*22dc650dSSadaf Ebrahimi"(?>.*)foo"I 3662*22dc650dSSadaf Ebrahimi 3663*22dc650dSSadaf Ebrahimi"(?>.*?)foo"I 3664*22dc650dSSadaf Ebrahimi 3665*22dc650dSSadaf Ebrahimi/(?>^abc)/Im 3666*22dc650dSSadaf Ebrahimi 3667*22dc650dSSadaf Ebrahimi/(?>.*abc)/Im 3668*22dc650dSSadaf Ebrahimi 3669*22dc650dSSadaf Ebrahimi/(?:.*abc)/Im 3670*22dc650dSSadaf Ebrahimi 3671*22dc650dSSadaf Ebrahimi/(?:(a)+(?C1)bb|aa(?C2)b)/ 3672*22dc650dSSadaf Ebrahimi aab\=callout_capture 3673*22dc650dSSadaf Ebrahimi 3674*22dc650dSSadaf Ebrahimi/(?:(a)++(?C1)bb|aa(?C2)b)/ 3675*22dc650dSSadaf Ebrahimi aab\=callout_capture 3676*22dc650dSSadaf Ebrahimi 3677*22dc650dSSadaf Ebrahimi/(?:(?>(a))(?C1)bb|aa(?C2)b)/ 3678*22dc650dSSadaf Ebrahimi aab\=callout_capture 3679*22dc650dSSadaf Ebrahimi 3680*22dc650dSSadaf Ebrahimi/(?:(?1)(?C1)x|ab(?C2))((a)){0}/ 3681*22dc650dSSadaf Ebrahimi aab\=callout_capture 3682*22dc650dSSadaf Ebrahimi 3683*22dc650dSSadaf Ebrahimi/(?1)(?C1)((a)(?C2)){0}/ 3684*22dc650dSSadaf Ebrahimi aab\=callout_capture 3685*22dc650dSSadaf Ebrahimi 3686*22dc650dSSadaf Ebrahimi/(?:(a)+(?C1)bb|aa(?C2)b)++/ 3687*22dc650dSSadaf Ebrahimi aab\=callout_capture 3688*22dc650dSSadaf Ebrahimi aab\=callout_capture,ovector=1 3689*22dc650dSSadaf Ebrahimi 3690*22dc650dSSadaf Ebrahimi/(ab)x|ab/ 3691*22dc650dSSadaf Ebrahimi ab\=ovector=0 3692*22dc650dSSadaf Ebrahimi ab\=ovector=1 3693*22dc650dSSadaf Ebrahimi 3694*22dc650dSSadaf Ebrahimi/(?<=123)(*MARK:xx)abc/mark 3695*22dc650dSSadaf Ebrahimi xxxx123a\=ph 3696*22dc650dSSadaf Ebrahimi xxxx123a\=ps 3697*22dc650dSSadaf Ebrahimi 3698*22dc650dSSadaf Ebrahimi/123\Kabc/startchar 3699*22dc650dSSadaf Ebrahimi xxxx123a\=ph 3700*22dc650dSSadaf Ebrahimi xxxx123a\=ps 3701*22dc650dSSadaf Ebrahimi 3702*22dc650dSSadaf Ebrahimi/^(?(?=a)aa|bb)/auto_callout 3703*22dc650dSSadaf Ebrahimi bb 3704*22dc650dSSadaf Ebrahimi 3705*22dc650dSSadaf Ebrahimi/(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/ 3706*22dc650dSSadaf Ebrahimi bb 3707*22dc650dSSadaf Ebrahimi 3708*22dc650dSSadaf Ebrahimi# Perl seems to have a bug with this one. 3709*22dc650dSSadaf Ebrahimi 3710*22dc650dSSadaf Ebrahimi/aaaaa(*COMMIT)(*PRUNE)b|a+c/ 3711*22dc650dSSadaf Ebrahimi aaaaaac 3712*22dc650dSSadaf Ebrahimi 3713*22dc650dSSadaf Ebrahimi# Here are some that Perl treats differently because of the way it handles 3714*22dc650dSSadaf Ebrahimi# backtracking verbs. 3715*22dc650dSSadaf Ebrahimi 3716*22dc650dSSadaf Ebrahimi/(?!a(*COMMIT)b)ac|ad/ 3717*22dc650dSSadaf Ebrahimi ac 3718*22dc650dSSadaf Ebrahimi ad 3719*22dc650dSSadaf Ebrahimi 3720*22dc650dSSadaf Ebrahimi/^(?!a(*THEN)b|ac)../ 3721*22dc650dSSadaf Ebrahimi ad 3722*22dc650dSSadaf Ebrahimi\= Expect no match 3723*22dc650dSSadaf Ebrahimi ac 3724*22dc650dSSadaf Ebrahimi 3725*22dc650dSSadaf Ebrahimi/^(?=a(*THEN)b|ac)/ 3726*22dc650dSSadaf Ebrahimi ac 3727*22dc650dSSadaf Ebrahimi 3728*22dc650dSSadaf Ebrahimi/\A.*?(?:a|b(*THEN)c)/ 3729*22dc650dSSadaf Ebrahimi ba 3730*22dc650dSSadaf Ebrahimi 3731*22dc650dSSadaf Ebrahimi/\A.*?(?:a|b(*THEN)c)++/ 3732*22dc650dSSadaf Ebrahimi ba 3733*22dc650dSSadaf Ebrahimi 3734*22dc650dSSadaf Ebrahimi/\A.*?(?:a|b(*THEN)c|d)/ 3735*22dc650dSSadaf Ebrahimi ba 3736*22dc650dSSadaf Ebrahimi 3737*22dc650dSSadaf Ebrahimi/(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/ 3738*22dc650dSSadaf Ebrahimi aac 3739*22dc650dSSadaf Ebrahimi 3740*22dc650dSSadaf Ebrahimi/\A.*?(a|b(*THEN)c)/ 3741*22dc650dSSadaf Ebrahimi ba 3742*22dc650dSSadaf Ebrahimi 3743*22dc650dSSadaf Ebrahimi/^(A(*THEN)B|A(*THEN)D)/ 3744*22dc650dSSadaf Ebrahimi AD 3745*22dc650dSSadaf Ebrahimi 3746*22dc650dSSadaf Ebrahimi/(?!b(*THEN)a)bn|bnn/ 3747*22dc650dSSadaf Ebrahimi bnn 3748*22dc650dSSadaf Ebrahimi 3749*22dc650dSSadaf Ebrahimi/(?(?=b(*SKIP)a)bn|bnn)/ 3750*22dc650dSSadaf Ebrahimi bnn 3751*22dc650dSSadaf Ebrahimi 3752*22dc650dSSadaf Ebrahimi/(?=b(*THEN)a|)bn|bnn/ 3753*22dc650dSSadaf Ebrahimi bnn 3754*22dc650dSSadaf Ebrahimi 3755*22dc650dSSadaf Ebrahimi# This test causes a segfault with Perl 5.18.0 3756*22dc650dSSadaf Ebrahimi 3757*22dc650dSSadaf Ebrahimi/^(?=(a)){0}b(?1)/ 3758*22dc650dSSadaf Ebrahimi backgammon 3759*22dc650dSSadaf Ebrahimi 3760*22dc650dSSadaf Ebrahimi/(?|(?<n>f)|(?<n>b))/I,dupnames 3761*22dc650dSSadaf Ebrahimi 3762*22dc650dSSadaf Ebrahimi/(?<a>abc)(?<a>z)\k<a>()/IB,dupnames 3763*22dc650dSSadaf Ebrahimi 3764*22dc650dSSadaf Ebrahimi/a*[bcd]/B 3765*22dc650dSSadaf Ebrahimi 3766*22dc650dSSadaf Ebrahimi/[bcd]*a/B 3767*22dc650dSSadaf Ebrahimi 3768*22dc650dSSadaf Ebrahimi# A complete set of tests for auto-possessification of character types, but 3769*22dc650dSSadaf Ebrahimi# omitting \C because it might be disabled (it has its own tests). 3770*22dc650dSSadaf Ebrahimi 3771*22dc650dSSadaf Ebrahimi/\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 3772*22dc650dSSadaf Ebrahimi 3773*22dc650dSSadaf Ebrahimi/\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 3774*22dc650dSSadaf Ebrahimi 3775*22dc650dSSadaf Ebrahimi/\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 3776*22dc650dSSadaf Ebrahimi 3777*22dc650dSSadaf Ebrahimi/\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 3778*22dc650dSSadaf Ebrahimi 3779*22dc650dSSadaf Ebrahimi/\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 3780*22dc650dSSadaf Ebrahimi 3781*22dc650dSSadaf Ebrahimi/\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 3782*22dc650dSSadaf Ebrahimi 3783*22dc650dSSadaf Ebrahimi/\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 3784*22dc650dSSadaf Ebrahimi 3785*22dc650dSSadaf Ebrahimi/\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 3786*22dc650dSSadaf Ebrahimi 3787*22dc650dSSadaf Ebrahimi/\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 3788*22dc650dSSadaf Ebrahimi 3789*22dc650dSSadaf Ebrahimi/\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 3790*22dc650dSSadaf Ebrahimi 3791*22dc650dSSadaf Ebrahimi/\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 3792*22dc650dSSadaf Ebrahimi 3793*22dc650dSSadaf Ebrahimi/ 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 3794*22dc650dSSadaf Ebrahimi 3795*22dc650dSSadaf Ebrahimi/\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 3796*22dc650dSSadaf Ebrahimi 3797*22dc650dSSadaf Ebrahimi/ .+\D .+\d .+\S .+\s .+\W .+\w .+. .+\R .+\H .+\h .+\V .+\v .+\Z .+\z .+$/Bx 3798*22dc650dSSadaf Ebrahimi 3799*22dc650dSSadaf Ebrahimi/ .+\D .+\d .+\S .+\s .+\W .+\w .+. .+\R .+\H .+\h .+\V .+\v .+\Z .+\z .+$/Bsx 3800*22dc650dSSadaf Ebrahimi 3801*22dc650dSSadaf Ebrahimi/ \D+$ \d+$ \S+$ \s+$ \W+$ \w+$ \R+$ \H+$ \h+$ \V+$ \v+$ a+$ \n+$ .+$ .+$/Bmx 3802*22dc650dSSadaf Ebrahimi 3803*22dc650dSSadaf Ebrahimi/(?=a+)a(a+)++a/B 3804*22dc650dSSadaf Ebrahimi 3805*22dc650dSSadaf Ebrahimi/a+(bb|cc)a+(?:bb|cc)a+(?>bb|cc)a+(?:bb|cc)+a+(aa)a+(?:bb|aa)/B 3806*22dc650dSSadaf Ebrahimi 3807*22dc650dSSadaf Ebrahimi/a+(bb|cc)?#a+(?:bb|cc)??#a+(?:bb|cc)?+#a+(?:bb|cc)*#a+(bb|cc)?a#a+(?:aa)?/B 3808*22dc650dSSadaf Ebrahimi 3809*22dc650dSSadaf Ebrahimi/a+(?:bb)?a#a+(?:|||)#a+(?:|b)a#a+(?:|||)?a/B 3810*22dc650dSSadaf Ebrahimi 3811*22dc650dSSadaf Ebrahimi/[ab]*/B 3812*22dc650dSSadaf Ebrahimi aaaa 3813*22dc650dSSadaf Ebrahimi 3814*22dc650dSSadaf Ebrahimi/[ab]*?/B 3815*22dc650dSSadaf Ebrahimi aaaa 3816*22dc650dSSadaf Ebrahimi 3817*22dc650dSSadaf Ebrahimi/[ab]?/B 3818*22dc650dSSadaf Ebrahimi aaaa 3819*22dc650dSSadaf Ebrahimi 3820*22dc650dSSadaf Ebrahimi/[ab]??/B 3821*22dc650dSSadaf Ebrahimi aaaa 3822*22dc650dSSadaf Ebrahimi 3823*22dc650dSSadaf Ebrahimi/[ab]+/B 3824*22dc650dSSadaf Ebrahimi aaaa 3825*22dc650dSSadaf Ebrahimi 3826*22dc650dSSadaf Ebrahimi/[ab]+?/B 3827*22dc650dSSadaf Ebrahimi aaaa 3828*22dc650dSSadaf Ebrahimi 3829*22dc650dSSadaf Ebrahimi/[ab]{2,3}/B 3830*22dc650dSSadaf Ebrahimi aaaa 3831*22dc650dSSadaf Ebrahimi 3832*22dc650dSSadaf Ebrahimi/[ab]{2,3}?/B 3833*22dc650dSSadaf Ebrahimi aaaa 3834*22dc650dSSadaf Ebrahimi 3835*22dc650dSSadaf Ebrahimi/[ab]{2,}/B 3836*22dc650dSSadaf Ebrahimi aaaa 3837*22dc650dSSadaf Ebrahimi 3838*22dc650dSSadaf Ebrahimi/[ab]{2,}?/B 3839*22dc650dSSadaf Ebrahimi aaaa 3840*22dc650dSSadaf Ebrahimi 3841*22dc650dSSadaf Ebrahimi/\d+\s{0,5}=\s*\S?=\w{0,4}\W*/B 3842*22dc650dSSadaf Ebrahimi 3843*22dc650dSSadaf Ebrahimi/[a-d]{5,12}[e-z0-9]*#[^a-z]+[b-y]*a[2-7]?[^0-9a-z]+/B 3844*22dc650dSSadaf Ebrahimi 3845*22dc650dSSadaf Ebrahimi/[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 3846*22dc650dSSadaf Ebrahimi 3847*22dc650dSSadaf Ebrahimi/a+(aa|bb)*c#a*(bb|cc)*a#a?(bb|cc)*d#[a-f]*(g|hh)*f/B 3848*22dc650dSSadaf Ebrahimi 3849*22dc650dSSadaf Ebrahimi/[a-f]*(g|hh|i)*i#[a-x]{4,}(y{0,6})*y#[a-k]+(ll|mm)+n/B 3850*22dc650dSSadaf Ebrahimi 3851*22dc650dSSadaf Ebrahimi/[a-f]*(?>gg|hh)+#[a-f]*(?>gg|hh)?#[a-f]*(?>gg|hh)*a#[a-f]*(?>gg|hh)*h/B 3852*22dc650dSSadaf Ebrahimi 3853*22dc650dSSadaf Ebrahimi/[a-c]*d/IB 3854*22dc650dSSadaf Ebrahimi 3855*22dc650dSSadaf Ebrahimi/[a-c]+d/IB 3856*22dc650dSSadaf Ebrahimi 3857*22dc650dSSadaf Ebrahimi/[a-c]?d/IB 3858*22dc650dSSadaf Ebrahimi 3859*22dc650dSSadaf Ebrahimi/[a-c]{4,6}d/IB 3860*22dc650dSSadaf Ebrahimi 3861*22dc650dSSadaf Ebrahimi/[a-c]{0,6}d/IB 3862*22dc650dSSadaf Ebrahimi 3863*22dc650dSSadaf Ebrahimi# End of special auto-possessive tests 3864*22dc650dSSadaf Ebrahimi 3865*22dc650dSSadaf Ebrahimi/^A\o{1239}B/ 3866*22dc650dSSadaf Ebrahimi A\123B 3867*22dc650dSSadaf Ebrahimi 3868*22dc650dSSadaf Ebrahimi/^A\oB/ 3869*22dc650dSSadaf Ebrahimi 3870*22dc650dSSadaf Ebrahimi/^A\x{zz}B/ 3871*22dc650dSSadaf Ebrahimi 3872*22dc650dSSadaf Ebrahimi/^A\x{12Z/ 3873*22dc650dSSadaf Ebrahimi 3874*22dc650dSSadaf Ebrahimi/^A\x{/ 3875*22dc650dSSadaf Ebrahimi 3876*22dc650dSSadaf Ebrahimi/[ab]++/B,no_auto_possess 3877*22dc650dSSadaf Ebrahimi 3878*22dc650dSSadaf Ebrahimi/[^ab]*+/B,no_auto_possess 3879*22dc650dSSadaf Ebrahimi 3880*22dc650dSSadaf Ebrahimi/a{4}+/B,no_auto_possess 3881*22dc650dSSadaf Ebrahimi 3882*22dc650dSSadaf Ebrahimi/a{4}+/Bi,no_auto_possess 3883*22dc650dSSadaf Ebrahimi 3884*22dc650dSSadaf Ebrahimi/[a-[:digit:]]+/ 3885*22dc650dSSadaf Ebrahimi 3886*22dc650dSSadaf Ebrahimi/[A-[:digit:]]+/ 3887*22dc650dSSadaf Ebrahimi 3888*22dc650dSSadaf Ebrahimi/[a-[.xxx.]]+/ 3889*22dc650dSSadaf Ebrahimi 3890*22dc650dSSadaf Ebrahimi/[a-[=xxx=]]+/ 3891*22dc650dSSadaf Ebrahimi 3892*22dc650dSSadaf Ebrahimi/[a-[!xxx!]]+/ 3893*22dc650dSSadaf Ebrahimi 3894*22dc650dSSadaf Ebrahimi/[A-[!xxx!]]+/ 3895*22dc650dSSadaf Ebrahimi A]]] 3896*22dc650dSSadaf Ebrahimi 3897*22dc650dSSadaf Ebrahimi/[a-\d]+/ 3898*22dc650dSSadaf Ebrahimi 3899*22dc650dSSadaf Ebrahimi/(?<0abc>xx)/ 3900*22dc650dSSadaf Ebrahimi 3901*22dc650dSSadaf Ebrahimi/(?&1abc)xx(?<1abc>y)/ 3902*22dc650dSSadaf Ebrahimi 3903*22dc650dSSadaf Ebrahimi/(?<ab-cd>xx)/ 3904*22dc650dSSadaf Ebrahimi 3905*22dc650dSSadaf Ebrahimi/(?'0abc'xx)/ 3906*22dc650dSSadaf Ebrahimi 3907*22dc650dSSadaf Ebrahimi/(?P<0abc>xx)/ 3908*22dc650dSSadaf Ebrahimi 3909*22dc650dSSadaf Ebrahimi/\k<5ghj>/ 3910*22dc650dSSadaf Ebrahimi 3911*22dc650dSSadaf Ebrahimi/\k'5ghj'/ 3912*22dc650dSSadaf Ebrahimi 3913*22dc650dSSadaf Ebrahimi/\k{2fgh}/ 3914*22dc650dSSadaf Ebrahimi 3915*22dc650dSSadaf Ebrahimi/(?P=8yuki)/ 3916*22dc650dSSadaf Ebrahimi 3917*22dc650dSSadaf Ebrahimi/\g{4df}/ 3918*22dc650dSSadaf Ebrahimi 3919*22dc650dSSadaf Ebrahimi/(?&1abc)xx(?<1abc>y)/ 3920*22dc650dSSadaf Ebrahimi 3921*22dc650dSSadaf Ebrahimi/(?P>1abc)xx(?<1abc>y)/ 3922*22dc650dSSadaf Ebrahimi 3923*22dc650dSSadaf Ebrahimi/\g'3gh'/ 3924*22dc650dSSadaf Ebrahimi 3925*22dc650dSSadaf Ebrahimi/\g<5fg>/ 3926*22dc650dSSadaf Ebrahimi 3927*22dc650dSSadaf Ebrahimi/(?(<4gh>)abc)/ 3928*22dc650dSSadaf Ebrahimi 3929*22dc650dSSadaf Ebrahimi/(?('4gh')abc)/ 3930*22dc650dSSadaf Ebrahimi 3931*22dc650dSSadaf Ebrahimi/(?(4gh)abc)/ 3932*22dc650dSSadaf Ebrahimi 3933*22dc650dSSadaf Ebrahimi/(?(R&6yh)abc)/ 3934*22dc650dSSadaf Ebrahimi 3935*22dc650dSSadaf Ebrahimi/(((a\2)|(a*)\g<-1>))*a?/B 3936*22dc650dSSadaf Ebrahimi 3937*22dc650dSSadaf Ebrahimi# Test the ugly "start or end of word" compatibility syntax. 3938*22dc650dSSadaf Ebrahimi 3939*22dc650dSSadaf Ebrahimi/[[:<:]]red[[:>:]]/B 3940*22dc650dSSadaf Ebrahimi little red riding hood 3941*22dc650dSSadaf Ebrahimi a /red/ thing 3942*22dc650dSSadaf Ebrahimi red is a colour 3943*22dc650dSSadaf Ebrahimi put it all on red 3944*22dc650dSSadaf Ebrahimi\= Expect no match 3945*22dc650dSSadaf Ebrahimi no reduction 3946*22dc650dSSadaf Ebrahimi Alfred Winifred 3947*22dc650dSSadaf Ebrahimi 3948*22dc650dSSadaf Ebrahimi/[a[:<:]] should give error/ 3949*22dc650dSSadaf Ebrahimi 3950*22dc650dSSadaf Ebrahimi/(?=ab\K)/aftertext,allow_lookaround_bsk 3951*22dc650dSSadaf Ebrahimi abcd\=startchar 3952*22dc650dSSadaf Ebrahimi 3953*22dc650dSSadaf Ebrahimi/abcd/newline=lf,firstline 3954*22dc650dSSadaf Ebrahimi\= Expect no match 3955*22dc650dSSadaf Ebrahimi xx\nxabcd 3956*22dc650dSSadaf Ebrahimi 3957*22dc650dSSadaf Ebrahimi# Test stack guard external calls. 3958*22dc650dSSadaf Ebrahimi 3959*22dc650dSSadaf Ebrahimi/(((a)))/stackguard=1 3960*22dc650dSSadaf Ebrahimi 3961*22dc650dSSadaf Ebrahimi/(((a)))/stackguard=2 3962*22dc650dSSadaf Ebrahimi 3963*22dc650dSSadaf Ebrahimi/(((a)))/stackguard=3 3964*22dc650dSSadaf Ebrahimi 3965*22dc650dSSadaf Ebrahimi/(((((a)))))/ 3966*22dc650dSSadaf Ebrahimi 3967*22dc650dSSadaf Ebrahimi# End stack guard tests 3968*22dc650dSSadaf Ebrahimi 3969*22dc650dSSadaf Ebrahimi/^\w+(?>\s*)(?<=\w)/B 3970*22dc650dSSadaf Ebrahimi 3971*22dc650dSSadaf Ebrahimi/\othing/ 3972*22dc650dSSadaf Ebrahimi 3973*22dc650dSSadaf Ebrahimi/\o{}/ 3974*22dc650dSSadaf Ebrahimi 3975*22dc650dSSadaf Ebrahimi/\o{whatever}/ 3976*22dc650dSSadaf Ebrahimi 3977*22dc650dSSadaf Ebrahimi/\xthing/ 3978*22dc650dSSadaf Ebrahimi 3979*22dc650dSSadaf Ebrahimi/\x{}/ 3980*22dc650dSSadaf Ebrahimi 3981*22dc650dSSadaf Ebrahimi/\x{whatever}/ 3982*22dc650dSSadaf Ebrahimi 3983*22dc650dSSadaf Ebrahimi/A\8B/ 3984*22dc650dSSadaf Ebrahimi 3985*22dc650dSSadaf Ebrahimi/A\9B/ 3986*22dc650dSSadaf Ebrahimi 3987*22dc650dSSadaf Ebrahimi# This one is here because Perl fails to match "12" for this pattern when the $ 3988*22dc650dSSadaf Ebrahimi# is present. 3989*22dc650dSSadaf Ebrahimi 3990*22dc650dSSadaf Ebrahimi/^(?(?=abc)\w{3}:|\d\d)$/ 3991*22dc650dSSadaf Ebrahimi abc: 3992*22dc650dSSadaf Ebrahimi 12 3993*22dc650dSSadaf Ebrahimi\= Expect no match 3994*22dc650dSSadaf Ebrahimi 123 3995*22dc650dSSadaf Ebrahimi xyz 3996*22dc650dSSadaf Ebrahimi 3997*22dc650dSSadaf Ebrahimi# Perl gets this one wrong, giving "a" as the after text for ca and failing to 3998*22dc650dSSadaf Ebrahimi# match for cd. 3999*22dc650dSSadaf Ebrahimi 4000*22dc650dSSadaf Ebrahimi/(?(?=ab)ab)/aftertext 4001*22dc650dSSadaf Ebrahimi abxxx 4002*22dc650dSSadaf Ebrahimi ca 4003*22dc650dSSadaf Ebrahimi cd 4004*22dc650dSSadaf Ebrahimi 4005*22dc650dSSadaf Ebrahimi# This should test both paths for processing OP_RECURSE. 4006*22dc650dSSadaf Ebrahimi 4007*22dc650dSSadaf Ebrahimi/(?(R)a+|(?R)b)/ 4008*22dc650dSSadaf Ebrahimi aaaabcde 4009*22dc650dSSadaf Ebrahimi aaaabcde\=ovector=100 4010*22dc650dSSadaf Ebrahimi 4011*22dc650dSSadaf Ebrahimi/a*?b*?/ 4012*22dc650dSSadaf Ebrahimi ab 4013*22dc650dSSadaf Ebrahimi 4014*22dc650dSSadaf Ebrahimi/(*NOTEMPTY)a*?b*?/ 4015*22dc650dSSadaf Ebrahimi ab 4016*22dc650dSSadaf Ebrahimi ba 4017*22dc650dSSadaf Ebrahimi cb 4018*22dc650dSSadaf Ebrahimi 4019*22dc650dSSadaf Ebrahimi/(*NOTEMPTY_ATSTART)a*?b*?/aftertext 4020*22dc650dSSadaf Ebrahimi ab 4021*22dc650dSSadaf Ebrahimi cdab 4022*22dc650dSSadaf Ebrahimi 4023*22dc650dSSadaf Ebrahimi/(?(VERSION>=10.0)yes|no)/I 4024*22dc650dSSadaf Ebrahimi yesno 4025*22dc650dSSadaf Ebrahimi 4026*22dc650dSSadaf Ebrahimi/(?(VERSION>=10.04)yes|no)/ 4027*22dc650dSSadaf Ebrahimi yesno 4028*22dc650dSSadaf Ebrahimi 4029*22dc650dSSadaf Ebrahimi/(?(VERSION=8)yes){3}/BI,aftertext 4030*22dc650dSSadaf Ebrahimi yesno 4031*22dc650dSSadaf Ebrahimi 4032*22dc650dSSadaf Ebrahimi/(?(VERSION=8)yes|no){3}/I 4033*22dc650dSSadaf Ebrahimi yesnononoyes 4034*22dc650dSSadaf Ebrahimi\= Expect no match 4035*22dc650dSSadaf Ebrahimi yesno 4036*22dc650dSSadaf Ebrahimi 4037*22dc650dSSadaf Ebrahimi/(?:(?<VERSION>abc)|xyz)(?(VERSION)yes|no)/I 4038*22dc650dSSadaf Ebrahimi abcyes 4039*22dc650dSSadaf Ebrahimi xyzno 4040*22dc650dSSadaf Ebrahimi\= Expect no match 4041*22dc650dSSadaf Ebrahimi abcno 4042*22dc650dSSadaf Ebrahimi xyzyes 4043*22dc650dSSadaf Ebrahimi 4044*22dc650dSSadaf Ebrahimi/(?(VERSION<10)yes|no)/ 4045*22dc650dSSadaf Ebrahimi 4046*22dc650dSSadaf Ebrahimi/(?(VERSION>10)yes|no)/ 4047*22dc650dSSadaf Ebrahimi 4048*22dc650dSSadaf Ebrahimi/(?(VERSION>=10.0.0)yes|no)/ 4049*22dc650dSSadaf Ebrahimi 4050*22dc650dSSadaf Ebrahimi/(?(VERSION=10.101)yes|no)/ 4051*22dc650dSSadaf Ebrahimi 4052*22dc650dSSadaf Ebrahimi/abcd/I 4053*22dc650dSSadaf Ebrahimi 4054*22dc650dSSadaf Ebrahimi/abcd/I,no_start_optimize 4055*22dc650dSSadaf Ebrahimi 4056*22dc650dSSadaf Ebrahimi/(|ab)*?d/I 4057*22dc650dSSadaf Ebrahimi abd 4058*22dc650dSSadaf Ebrahimi xyd 4059*22dc650dSSadaf Ebrahimi 4060*22dc650dSSadaf Ebrahimi/(|ab)*?d/I,no_start_optimize 4061*22dc650dSSadaf Ebrahimi abd 4062*22dc650dSSadaf Ebrahimi xyd 4063*22dc650dSSadaf Ebrahimi 4064*22dc650dSSadaf Ebrahimi/\k<A>*(?<A>aa)(?<A>bb)/match_unset_backref,dupnames 4065*22dc650dSSadaf Ebrahimi aabb 4066*22dc650dSSadaf Ebrahimi 4067*22dc650dSSadaf Ebrahimi/(((((a)))))/parens_nest_limit=2 4068*22dc650dSSadaf Ebrahimi 4069*22dc650dSSadaf Ebrahimi/abc/replace=XYZ 4070*22dc650dSSadaf Ebrahimi 123123 4071*22dc650dSSadaf Ebrahimi 123abc123 4072*22dc650dSSadaf Ebrahimi 123abc123abc123 4073*22dc650dSSadaf Ebrahimi 123123\=zero_terminate 4074*22dc650dSSadaf Ebrahimi 123abc123\=zero_terminate 4075*22dc650dSSadaf Ebrahimi 123abc123abc123\=zero_terminate 4076*22dc650dSSadaf Ebrahimi 4077*22dc650dSSadaf Ebrahimi/abc/g,replace=XYZ 4078*22dc650dSSadaf Ebrahimi 123abc123 4079*22dc650dSSadaf Ebrahimi 123abc123abc123 4080*22dc650dSSadaf Ebrahimi 4081*22dc650dSSadaf Ebrahimi/abc/replace=X$$Z 4082*22dc650dSSadaf Ebrahimi 123abc123 4083*22dc650dSSadaf Ebrahimi 4084*22dc650dSSadaf Ebrahimi/abc/g,replace=X$$Z 4085*22dc650dSSadaf Ebrahimi 123abc123abc123 4086*22dc650dSSadaf Ebrahimi 4087*22dc650dSSadaf Ebrahimi/a(b)c(d)e/replace=X$1Y${2}Z 4088*22dc650dSSadaf Ebrahimi "abcde" 4089*22dc650dSSadaf Ebrahimi 4090*22dc650dSSadaf Ebrahimi/a(b)c(d)e/replace=X$1Y${2}Z,global 4091*22dc650dSSadaf Ebrahimi "abcde-abcde" 4092*22dc650dSSadaf Ebrahimi 4093*22dc650dSSadaf Ebrahimi/a(?<ONE>b)c(?<TWO>d)e/replace=X$ONE+${TWO}Z 4094*22dc650dSSadaf Ebrahimi "abcde" 4095*22dc650dSSadaf Ebrahimi 4096*22dc650dSSadaf Ebrahimi/a(?<ONE>b)c(?<TWO>d)e/g,replace=X$ONE+${TWO}Z 4097*22dc650dSSadaf Ebrahimi "abcde-abcde-" 4098*22dc650dSSadaf Ebrahimi 4099*22dc650dSSadaf Ebrahimi/abc/replace=a$++ 4100*22dc650dSSadaf Ebrahimi 123abc 4101*22dc650dSSadaf Ebrahimi 4102*22dc650dSSadaf Ebrahimi/abc/replace=a$bad 4103*22dc650dSSadaf Ebrahimi 123abc 4104*22dc650dSSadaf Ebrahimi 4105*22dc650dSSadaf Ebrahimi/abc/replace=a${A234567890123456789_123456789012}z 4106*22dc650dSSadaf Ebrahimi 123abc 4107*22dc650dSSadaf Ebrahimi 4108*22dc650dSSadaf Ebrahimi/abc/replace=a${A23456789012345678901234567890123}z 4109*22dc650dSSadaf Ebrahimi 123abc 4110*22dc650dSSadaf Ebrahimi 4111*22dc650dSSadaf Ebrahimi/abc/replace=a${bcd 4112*22dc650dSSadaf Ebrahimi 123abc 4113*22dc650dSSadaf Ebrahimi 4114*22dc650dSSadaf Ebrahimi/abc/replace=a${b+d}z 4115*22dc650dSSadaf Ebrahimi 123abc 4116*22dc650dSSadaf Ebrahimi 4117*22dc650dSSadaf Ebrahimi/abc/replace=[10]XYZ 4118*22dc650dSSadaf Ebrahimi 123abc123 4119*22dc650dSSadaf Ebrahimi 4120*22dc650dSSadaf Ebrahimi/abc/replace=[9]XYZ 4121*22dc650dSSadaf Ebrahimi 123abc123 4122*22dc650dSSadaf Ebrahimi 4123*22dc650dSSadaf Ebrahimi/abc/replace=xyz 4124*22dc650dSSadaf Ebrahimi 1abc2\=partial_hard 4125*22dc650dSSadaf Ebrahimi 4126*22dc650dSSadaf Ebrahimi/abc/replace=xyz 4127*22dc650dSSadaf Ebrahimi 123abc456 4128*22dc650dSSadaf Ebrahimi 123abc456\=replace=pqr 4129*22dc650dSSadaf Ebrahimi 123abc456abc789 4130*22dc650dSSadaf Ebrahimi 123abc456abc789\=g 4131*22dc650dSSadaf Ebrahimi 4132*22dc650dSSadaf Ebrahimi/(?<=abc)(|def)/g,replace=<$0> 4133*22dc650dSSadaf Ebrahimi 123abcxyzabcdef789abcpqr 4134*22dc650dSSadaf Ebrahimi 4135*22dc650dSSadaf Ebrahimi/./replace=$0 4136*22dc650dSSadaf Ebrahimi a 4137*22dc650dSSadaf Ebrahimi 4138*22dc650dSSadaf Ebrahimi/(.)(.)/replace=$2+$1 4139*22dc650dSSadaf Ebrahimi abc 4140*22dc650dSSadaf Ebrahimi 4141*22dc650dSSadaf Ebrahimi/(?<A>.)(?<B>.)/replace=$B+$A 4142*22dc650dSSadaf Ebrahimi abc 4143*22dc650dSSadaf Ebrahimi 4144*22dc650dSSadaf Ebrahimi/(.)(.)/g,replace=$2$1 4145*22dc650dSSadaf Ebrahimi abcdefgh 4146*22dc650dSSadaf Ebrahimi 4147*22dc650dSSadaf Ebrahimi/(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=${*MARK} 4148*22dc650dSSadaf Ebrahimi apple lemon blackberry 4149*22dc650dSSadaf Ebrahimi apple strudel 4150*22dc650dSSadaf Ebrahimi fruitless 4151*22dc650dSSadaf Ebrahimi 4152*22dc650dSSadaf Ebrahimi/(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/replace=${*MARK} sauce, 4153*22dc650dSSadaf Ebrahimi apple lemon blackberry 4154*22dc650dSSadaf Ebrahimi 4155*22dc650dSSadaf Ebrahimi/(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=<$*MARK> 4156*22dc650dSSadaf Ebrahimi apple lemon blackberry 4157*22dc650dSSadaf Ebrahimi apple strudel 4158*22dc650dSSadaf Ebrahimi fruitless 4159*22dc650dSSadaf Ebrahimi 4160*22dc650dSSadaf Ebrahimi/(*:pear)apple/g,replace=${*MARKING} 4161*22dc650dSSadaf Ebrahimi apple lemon blackberry 4162*22dc650dSSadaf Ebrahimi 4163*22dc650dSSadaf Ebrahimi/(*:pear)apple/g,replace=${*MARK-time 4164*22dc650dSSadaf Ebrahimi apple lemon blackberry 4165*22dc650dSSadaf Ebrahimi 4166*22dc650dSSadaf Ebrahimi/(*:pear)apple/g,replace=${*mark} 4167*22dc650dSSadaf Ebrahimi apple lemon blackberry 4168*22dc650dSSadaf Ebrahimi 4169*22dc650dSSadaf Ebrahimi/(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=<$*MARKET> 4170*22dc650dSSadaf Ebrahimi apple lemon blackberry 4171*22dc650dSSadaf Ebrahimi 4172*22dc650dSSadaf Ebrahimi/(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=[22]${*MARK} 4173*22dc650dSSadaf Ebrahimi apple lemon blackberry 4174*22dc650dSSadaf Ebrahimi apple lemon blackberry\=substitute_overflow_length 4175*22dc650dSSadaf Ebrahimi 4176*22dc650dSSadaf Ebrahimi/(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=[23]${*MARK} 4177*22dc650dSSadaf Ebrahimi apple lemon blackberry 4178*22dc650dSSadaf Ebrahimi 4179*22dc650dSSadaf Ebrahimi/abc/ 4180*22dc650dSSadaf Ebrahimi 123abc123\=replace=[9]XYZ 4181*22dc650dSSadaf Ebrahimi 123abc123\=substitute_overflow_length,replace=[9]XYZ 4182*22dc650dSSadaf Ebrahimi 123abc123\=substitute_overflow_length,replace=[6]XYZ 4183*22dc650dSSadaf Ebrahimi 123abc123\=substitute_overflow_length,replace=[1]XYZ 4184*22dc650dSSadaf Ebrahimi 123abc123\=substitute_overflow_length,replace=[0]XYZ 4185*22dc650dSSadaf Ebrahimi 4186*22dc650dSSadaf Ebrahimi/a(b)c/ 4187*22dc650dSSadaf Ebrahimi 123abc123\=replace=[9]x$1z 4188*22dc650dSSadaf Ebrahimi 123abc123\=substitute_overflow_length,replace=[9]x$1z 4189*22dc650dSSadaf Ebrahimi 123abc123\=substitute_overflow_length,replace=[6]x$1z 4190*22dc650dSSadaf Ebrahimi 123abc123\=substitute_overflow_length,replace=[1]x$1z 4191*22dc650dSSadaf Ebrahimi 123abc123\=substitute_overflow_length,replace=[0]x$1z 4192*22dc650dSSadaf Ebrahimi 4193*22dc650dSSadaf Ebrahimi"((?=(?(?=(?(?=(?(?=()))))))))" 4194*22dc650dSSadaf Ebrahimi a 4195*22dc650dSSadaf Ebrahimi 4196*22dc650dSSadaf Ebrahimi"(?(?=)==)(((((((((?=)))))))))" 4197*22dc650dSSadaf Ebrahimi\= Expect no match 4198*22dc650dSSadaf Ebrahimi a 4199*22dc650dSSadaf Ebrahimi 4200*22dc650dSSadaf Ebrahimi/(a)(b)|(c)/ 4201*22dc650dSSadaf Ebrahimi XcX\=ovector=2,get=1,get=2,get=3,get=4,getall 4202*22dc650dSSadaf Ebrahimi 4203*22dc650dSSadaf Ebrahimi/x(?=ab\K)/allow_lookaround_bsk 4204*22dc650dSSadaf Ebrahimi xab\=get=0 4205*22dc650dSSadaf Ebrahimi xab\=copy=0 4206*22dc650dSSadaf Ebrahimi xab\=getall 4207*22dc650dSSadaf Ebrahimi 4208*22dc650dSSadaf Ebrahimi/(?<A>a)|(?<A>b)/dupnames 4209*22dc650dSSadaf Ebrahimi a\=ovector=1,copy=A,get=A,get=2 4210*22dc650dSSadaf Ebrahimi a\=ovector=2,copy=A,get=A,get=2 4211*22dc650dSSadaf Ebrahimi b\=ovector=2,copy=A,get=A,get=2 4212*22dc650dSSadaf Ebrahimi 4213*22dc650dSSadaf Ebrahimi/a(b)c(d)/ 4214*22dc650dSSadaf Ebrahimi abc\=ph,copy=0,copy=1,getall 4215*22dc650dSSadaf Ebrahimi 4216*22dc650dSSadaf Ebrahimi/^abc/info 4217*22dc650dSSadaf Ebrahimi 4218*22dc650dSSadaf Ebrahimi/^abc/info,no_dotstar_anchor 4219*22dc650dSSadaf Ebrahimi 4220*22dc650dSSadaf Ebrahimi/.*\d/info,auto_callout 4221*22dc650dSSadaf Ebrahimi\= Expect no match 4222*22dc650dSSadaf Ebrahimi aaa 4223*22dc650dSSadaf Ebrahimi 4224*22dc650dSSadaf Ebrahimi/.*\d/info,no_dotstar_anchor,auto_callout 4225*22dc650dSSadaf Ebrahimi\= Expect no match 4226*22dc650dSSadaf Ebrahimi aaa 4227*22dc650dSSadaf Ebrahimi 4228*22dc650dSSadaf Ebrahimi/.*\d/dotall,info 4229*22dc650dSSadaf Ebrahimi 4230*22dc650dSSadaf Ebrahimi/.*\d/dotall,no_dotstar_anchor,info 4231*22dc650dSSadaf Ebrahimi 4232*22dc650dSSadaf Ebrahimi/(*NO_DOTSTAR_ANCHOR)(?s).*\d/info 4233*22dc650dSSadaf Ebrahimi 4234*22dc650dSSadaf Ebrahimi'^(?:(a)|b)(?(1)A|B)' 4235*22dc650dSSadaf Ebrahimi aA123\=ovector=1 4236*22dc650dSSadaf Ebrahimi aA123\=ovector=2 4237*22dc650dSSadaf Ebrahimi 4238*22dc650dSSadaf Ebrahimi'^(?:(?<AA>a)|b)(?(<AA>)A|B)' 4239*22dc650dSSadaf Ebrahimi aA123\=ovector=1 4240*22dc650dSSadaf Ebrahimi aA123\=ovector=2 4241*22dc650dSSadaf Ebrahimi 4242*22dc650dSSadaf Ebrahimi'^(?<AA>)(?:(?<AA>a)|b)(?(<AA>)A|B)'dupnames 4243*22dc650dSSadaf Ebrahimi aA123\=ovector=1 4244*22dc650dSSadaf Ebrahimi aA123\=ovector=2 4245*22dc650dSSadaf Ebrahimi aA123\=ovector=3 4246*22dc650dSSadaf Ebrahimi 4247*22dc650dSSadaf Ebrahimi'^(?:(?<AA>X)|)(?:(?<AA>a)|b)\k{AA}'dupnames 4248*22dc650dSSadaf Ebrahimi aa123\=ovector=1 4249*22dc650dSSadaf Ebrahimi aa123\=ovector=2 4250*22dc650dSSadaf Ebrahimi aa123\=ovector=3 4251*22dc650dSSadaf Ebrahimi 4252*22dc650dSSadaf Ebrahimi/(?<N111>(?J)(?<N111>1(111111)11|)1|1|)(?(<N111>)1)/ 4253*22dc650dSSadaf Ebrahimi 4254*22dc650dSSadaf Ebrahimi/(?<N>(?J)(?<N>))(?-J)\k<N>/ 4255*22dc650dSSadaf Ebrahimi 4256*22dc650dSSadaf Ebrahimi# Quantifiers are not allowed on condition assertions, but are otherwise 4257*22dc650dSSadaf Ebrahimi# OK in conditions. 4258*22dc650dSSadaf Ebrahimi 4259*22dc650dSSadaf Ebrahimi/(?(?=0)?)+/ 4260*22dc650dSSadaf Ebrahimi 4261*22dc650dSSadaf Ebrahimi/(?(?=0)(?=00)?00765)/ 4262*22dc650dSSadaf Ebrahimi 00765 4263*22dc650dSSadaf Ebrahimi 4264*22dc650dSSadaf Ebrahimi/(?(?=0)(?=00)?00765|(?!3).56)/ 4265*22dc650dSSadaf Ebrahimi 00765 4266*22dc650dSSadaf Ebrahimi 456 4267*22dc650dSSadaf Ebrahimi\= Expect no match 4268*22dc650dSSadaf Ebrahimi 356 4269*22dc650dSSadaf Ebrahimi 4270*22dc650dSSadaf Ebrahimi'^(a)*+(\w)' 4271*22dc650dSSadaf Ebrahimi g 4272*22dc650dSSadaf Ebrahimi g\=ovector=1 4273*22dc650dSSadaf Ebrahimi 4274*22dc650dSSadaf Ebrahimi'^(?:a)*+(\w)' 4275*22dc650dSSadaf Ebrahimi g 4276*22dc650dSSadaf Ebrahimi g\=ovector=1 4277*22dc650dSSadaf Ebrahimi 4278*22dc650dSSadaf Ebrahimi# These two pattern showeds up compile-time bugs 4279*22dc650dSSadaf Ebrahimi 4280*22dc650dSSadaf Ebrahimi"((?2){0,1999}())?" 4281*22dc650dSSadaf Ebrahimi 4282*22dc650dSSadaf Ebrahimi/((?+1)(\1))/B 4283*22dc650dSSadaf Ebrahimi 4284*22dc650dSSadaf Ebrahimi# Callouts with string arguments 4285*22dc650dSSadaf Ebrahimi 4286*22dc650dSSadaf Ebrahimi/a(?C"/ 4287*22dc650dSSadaf Ebrahimi 4288*22dc650dSSadaf Ebrahimi/a(?C"a/ 4289*22dc650dSSadaf Ebrahimi 4290*22dc650dSSadaf Ebrahimi/a(?C"a"/ 4291*22dc650dSSadaf Ebrahimi 4292*22dc650dSSadaf Ebrahimi/a(?C"a"bcde(?C"b")xyz/ 4293*22dc650dSSadaf Ebrahimi 4294*22dc650dSSadaf Ebrahimi/a(?C"a)b""c")/B 4295*22dc650dSSadaf Ebrahimi 4296*22dc650dSSadaf Ebrahimi/ab(?C" any text with spaces ")cde/B 4297*22dc650dSSadaf Ebrahimi abcde 4298*22dc650dSSadaf Ebrahimi 12abcde 4299*22dc650dSSadaf Ebrahimi 4300*22dc650dSSadaf Ebrahimi/^a(b)c(?C1)def/ 4301*22dc650dSSadaf Ebrahimi abcdef 4302*22dc650dSSadaf Ebrahimi 4303*22dc650dSSadaf Ebrahimi/^a(b)c(?C"AB")def/ 4304*22dc650dSSadaf Ebrahimi abcdef 4305*22dc650dSSadaf Ebrahimi 4306*22dc650dSSadaf Ebrahimi/^a(b)c(?C1)def/ 4307*22dc650dSSadaf Ebrahimi abcdef\=callout_capture 4308*22dc650dSSadaf Ebrahimi 4309*22dc650dSSadaf Ebrahimi/^a(b)c(?C{AB})def/B 4310*22dc650dSSadaf Ebrahimi abcdef\=callout_capture 4311*22dc650dSSadaf Ebrahimi 4312*22dc650dSSadaf Ebrahimi/(?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 4313*22dc650dSSadaf Ebrahimi 4314*22dc650dSSadaf Ebrahimi/(?:a(?C`code`)){3}/B 4315*22dc650dSSadaf Ebrahimi 4316*22dc650dSSadaf Ebrahimi/^(?(?C25)(?=abc)abcd|xyz)/B,callout_info 4317*22dc650dSSadaf Ebrahimi abcdefg 4318*22dc650dSSadaf Ebrahimi xyz123 4319*22dc650dSSadaf Ebrahimi 4320*22dc650dSSadaf Ebrahimi/^(?(?C$abc$)(?=abc)abcd|xyz)/B 4321*22dc650dSSadaf Ebrahimi abcdefg 4322*22dc650dSSadaf Ebrahimi xyz123 4323*22dc650dSSadaf Ebrahimi 4324*22dc650dSSadaf Ebrahimi/^ab(?C'first')cd(?C"second")ef/ 4325*22dc650dSSadaf Ebrahimi abcdefg 4326*22dc650dSSadaf Ebrahimi 4327*22dc650dSSadaf Ebrahimi/(?:a(?C`code`)){3}X/ 4328*22dc650dSSadaf Ebrahimi aaaXY 4329*22dc650dSSadaf Ebrahimi 4330*22dc650dSSadaf Ebrahimi# Binary zero in callout string 4331*22dc650dSSadaf Ebrahimi# a ( ? C ' x z ' ) b 4332*22dc650dSSadaf Ebrahimi/ 61 28 3f 43 27 78 00 7a 27 29 62/hex,callout_info 4333*22dc650dSSadaf Ebrahimi abcdefgh 4334*22dc650dSSadaf Ebrahimi 4335*22dc650dSSadaf Ebrahimi/(?(?!)^)/ 4336*22dc650dSSadaf Ebrahimi 4337*22dc650dSSadaf Ebrahimi/(?(?!)a|b)/ 4338*22dc650dSSadaf Ebrahimi bbb 4339*22dc650dSSadaf Ebrahimi\= Expect no match 4340*22dc650dSSadaf Ebrahimi aaa 4341*22dc650dSSadaf Ebrahimi 4342*22dc650dSSadaf Ebrahimi# JIT gives a different error message for the infinite recursion 4343*22dc650dSSadaf Ebrahimi 4344*22dc650dSSadaf Ebrahimi"(*NO_JIT)((?2)+)((?1)){" 4345*22dc650dSSadaf Ebrahimi abcd{ 4346*22dc650dSSadaf Ebrahimi 4347*22dc650dSSadaf Ebrahimi# Perl fails to diagnose the absence of an assertion 4348*22dc650dSSadaf Ebrahimi 4349*22dc650dSSadaf Ebrahimi"(?(?<E>.*!.*)?)" 4350*22dc650dSSadaf Ebrahimi 4351*22dc650dSSadaf Ebrahimi"X((?2)()*+){2}+"B 4352*22dc650dSSadaf Ebrahimi 4353*22dc650dSSadaf Ebrahimi"X((?2)()*+){2}"B 4354*22dc650dSSadaf Ebrahimi 4355*22dc650dSSadaf Ebrahimi/(?<=\bABQ(3(?-7)))/ 4356*22dc650dSSadaf Ebrahimi 4357*22dc650dSSadaf Ebrahimi/(?<=\bABQ(3(?+7)))/ 4358*22dc650dSSadaf Ebrahimi 4359*22dc650dSSadaf Ebrahimi";(?<=()((?3))((?2)))" 4360*22dc650dSSadaf Ebrahimi 4361*22dc650dSSadaf Ebrahimi# Perl loops on this (PCRE2 used to!) 4362*22dc650dSSadaf Ebrahimi 4363*22dc650dSSadaf Ebrahimi/(?<=\Ka)/g,aftertext,allow_lookaround_bsk 4364*22dc650dSSadaf Ebrahimi aaaaa 4365*22dc650dSSadaf Ebrahimi 4366*22dc650dSSadaf Ebrahimi/(?<=\Ka)/altglobal,aftertext,allow_lookaround_bsk 4367*22dc650dSSadaf Ebrahimi aaaaa 4368*22dc650dSSadaf Ebrahimi 4369*22dc650dSSadaf Ebrahimi/((?2){73}(?2))((?1))/info 4370*22dc650dSSadaf Ebrahimi 4371*22dc650dSSadaf Ebrahimi/abc/ 4372*22dc650dSSadaf Ebrahimi\= Expect no match 4373*22dc650dSSadaf Ebrahimi \[9x!xxx(]{9999} 4374*22dc650dSSadaf Ebrahimi 4375*22dc650dSSadaf Ebrahimi/(abc)*/ 4376*22dc650dSSadaf Ebrahimi \[abc]{5} 4377*22dc650dSSadaf Ebrahimi 4378*22dc650dSSadaf Ebrahimi/^/gm 4379*22dc650dSSadaf Ebrahimi \n\n\n 4380*22dc650dSSadaf Ebrahimi 4381*22dc650dSSadaf Ebrahimi/^/gm,alt_circumflex 4382*22dc650dSSadaf Ebrahimi \n\n\n 4383*22dc650dSSadaf Ebrahimi 4384*22dc650dSSadaf Ebrahimi/((((((((x))))))))\81/ 4385*22dc650dSSadaf Ebrahimi xx1 4386*22dc650dSSadaf Ebrahimi 4387*22dc650dSSadaf Ebrahimi/((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((x))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))\80/ 4388*22dc650dSSadaf Ebrahimi xx 4389*22dc650dSSadaf Ebrahimi 4390*22dc650dSSadaf Ebrahimi/\80/ 4391*22dc650dSSadaf Ebrahimi 4392*22dc650dSSadaf Ebrahimi/A\8B\9C/ 4393*22dc650dSSadaf Ebrahimi A8B9C 4394*22dc650dSSadaf Ebrahimi 4395*22dc650dSSadaf Ebrahimi/(?x:((?'a')) # comment (with parentheses) and | vertical 4396*22dc650dSSadaf Ebrahimi(?-x:#not a comment (?'b')) # this is a comment () 4397*22dc650dSSadaf Ebrahimi(?'c')) # not a comment (?'d')/info 4398*22dc650dSSadaf Ebrahimi 4399*22dc650dSSadaf Ebrahimi/(?|(?'a')(2)(?'b')|(?'a')(?'a')(3))/I,dupnames 4400*22dc650dSSadaf Ebrahimi A23B 4401*22dc650dSSadaf Ebrahimi B32A 4402*22dc650dSSadaf Ebrahimi 4403*22dc650dSSadaf Ebrahimi# These are some patterns that used to cause buffer overflows or other errors 4404*22dc650dSSadaf Ebrahimi# while compiling. 4405*22dc650dSSadaf Ebrahimi 4406*22dc650dSSadaf Ebrahimi/.((?2)(?R)|\1|$)()/B 4407*22dc650dSSadaf Ebrahimi 4408*22dc650dSSadaf Ebrahimi/.((?3)(?R)()(?2)|\1|$)()/B 4409*22dc650dSSadaf Ebrahimi 4410*22dc650dSSadaf Ebrahimi/(\9*+(?2);\3++()2|)++{/ 4411*22dc650dSSadaf Ebrahimi 4412*22dc650dSSadaf Ebrahimi/\V\x85\9*+((?2)\3++()2)*:2/ 4413*22dc650dSSadaf Ebrahimi 4414*22dc650dSSadaf Ebrahimi/(((?(R)){0,2}) (?'x'((?'R')((?'R')))))/dupnames 4415*22dc650dSSadaf Ebrahimi 4416*22dc650dSSadaf Ebrahimi/(((?(X)){0,2}) (?'x'((?'X')((?'X')))))/dupnames 4417*22dc650dSSadaf Ebrahimi 4418*22dc650dSSadaf Ebrahimi/(((?(R)){0,2}) (?'x'((?'X')((?'R')))))/ 4419*22dc650dSSadaf Ebrahimi 4420*22dc650dSSadaf Ebrahimi"(?J)(?'d'(?'d'\g{d}))" 4421*22dc650dSSadaf Ebrahimi 4422*22dc650dSSadaf Ebrahimi"(?=!((?2)(?))({8(?<=(?1){29}8bbbb\x16\xd\xc6^($(\xa9H4){4}h}?1)B))\x15')" 4423*22dc650dSSadaf Ebrahimi 4424*22dc650dSSadaf Ebrahimi/A(?'')Z/ 4425*22dc650dSSadaf Ebrahimi 4426*22dc650dSSadaf Ebrahimi"(?J:(?|(?'R')(\k'R')|((?'R'))))" 4427*22dc650dSSadaf Ebrahimi 4428*22dc650dSSadaf Ebrahimi/(?<=|(\,\$(?73591620449005828816)\xa8.{7}){6}\x09)/ 4429*22dc650dSSadaf Ebrahimi 4430*22dc650dSSadaf Ebrahimi/^(?:(?(1)x|)+)+$()/B 4431*22dc650dSSadaf Ebrahimi 4432*22dc650dSSadaf Ebrahimi/[[:>:]](?<)/ 4433*22dc650dSSadaf Ebrahimi 4434*22dc650dSSadaf Ebrahimi/((?x)(*:0))#(?'/ 4435*22dc650dSSadaf Ebrahimi 4436*22dc650dSSadaf Ebrahimi/(?C$[$)(?<]/ 4437*22dc650dSSadaf Ebrahimi 4438*22dc650dSSadaf Ebrahimi/(?C$)$)(?<]/ 4439*22dc650dSSadaf Ebrahimi 4440*22dc650dSSadaf Ebrahimi/(?(R))*+/B 4441*22dc650dSSadaf Ebrahimi abcd 4442*22dc650dSSadaf Ebrahimi 4443*22dc650dSSadaf Ebrahimi/((?x)(?#))#(?'/ 4444*22dc650dSSadaf Ebrahimi 4445*22dc650dSSadaf Ebrahimi/((?x)(?#))#(?'abc')/I 4446*22dc650dSSadaf Ebrahimi 4447*22dc650dSSadaf Ebrahimi/[[:\\](?<[::]/ 4448*22dc650dSSadaf Ebrahimi 4449*22dc650dSSadaf Ebrahimi/[[:\\](?'abc')[a:]/I 4450*22dc650dSSadaf Ebrahimi 4451*22dc650dSSadaf Ebrahimi"[[[.\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[[[:[::::::[[[:[[[[[[[[:[[::[::::[[:::::::[[:[[[[[[[:[[::[:[[:[~" 4452*22dc650dSSadaf Ebrahimi 4453*22dc650dSSadaf Ebrahimi/()(?(R)0)*+/B 4454*22dc650dSSadaf Ebrahimi 4455*22dc650dSSadaf Ebrahimi/(?R-:(?</ 4456*22dc650dSSadaf Ebrahimi 4457*22dc650dSSadaf Ebrahimi/(?R-:(?<)/ 4458*22dc650dSSadaf Ebrahimi 4459*22dc650dSSadaf Ebrahimi/(?(?C{\Q})(?!(?'/ 4460*22dc650dSSadaf Ebrahimi 4461*22dc650dSSadaf Ebrahimi/(?(?C{\Q})(?!(?'abc')))/I 4462*22dc650dSSadaf Ebrahimi 4463*22dc650dSSadaf Ebrahimi/(?1){3918}(((((0(\k'R'))))(?J)(?'R'(?'R'\3){99})))/I 4464*22dc650dSSadaf Ebrahimi 4465*22dc650dSSadaf Ebrahimi/(?|(aaa)|(b))\g{1}/I 4466*22dc650dSSadaf Ebrahimi 4467*22dc650dSSadaf Ebrahimi/(?|(aaa)|(b))(?1)/I 4468*22dc650dSSadaf Ebrahimi 4469*22dc650dSSadaf Ebrahimi/(?|(aaa)|(b))/I 4470*22dc650dSSadaf Ebrahimi 4471*22dc650dSSadaf Ebrahimi/(?|(?'a'aaa)|(?'a'b))\k'a'/I 4472*22dc650dSSadaf Ebrahimi 4473*22dc650dSSadaf Ebrahimi/(?|(?'a'aaa)|(?'a'b))(?'a'cccc)\k'a'/I,dupnames 4474*22dc650dSSadaf Ebrahimi 4475*22dc650dSSadaf Ebrahimi/ab{3cd/ 4476*22dc650dSSadaf Ebrahimi ab{3cd 4477*22dc650dSSadaf Ebrahimi 4478*22dc650dSSadaf Ebrahimi/ab{3,cd/ 4479*22dc650dSSadaf Ebrahimi ab{3,cd 4480*22dc650dSSadaf Ebrahimi 4481*22dc650dSSadaf Ebrahimi/ab{3,4a}cd/ 4482*22dc650dSSadaf Ebrahimi ab{3,4a}cd 4483*22dc650dSSadaf Ebrahimi 4484*22dc650dSSadaf Ebrahimi/{4,5a}bc/ 4485*22dc650dSSadaf Ebrahimi {4,5a}bc 4486*22dc650dSSadaf Ebrahimi 4487*22dc650dSSadaf Ebrahimi/\x0{ab}/ 4488*22dc650dSSadaf Ebrahimi \0{ab} 4489*22dc650dSSadaf Ebrahimi 4490*22dc650dSSadaf Ebrahimi/^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/ 4491*22dc650dSSadaf Ebrahimi ababababbbabZXXXX 4492*22dc650dSSadaf Ebrahimi 4493*22dc650dSSadaf Ebrahimi/.*?a(*PRUNE)b/ 4494*22dc650dSSadaf Ebrahimi aab 4495*22dc650dSSadaf Ebrahimi 4496*22dc650dSSadaf Ebrahimi/.*?a(*PRUNE)b/s 4497*22dc650dSSadaf Ebrahimi aab 4498*22dc650dSSadaf Ebrahimi 4499*22dc650dSSadaf Ebrahimi/^a(*PRUNE)b/s 4500*22dc650dSSadaf Ebrahimi\= Expect no match 4501*22dc650dSSadaf Ebrahimi aab 4502*22dc650dSSadaf Ebrahimi 4503*22dc650dSSadaf Ebrahimi/.*?a(*SKIP)b/ 4504*22dc650dSSadaf Ebrahimi aab 4505*22dc650dSSadaf Ebrahimi 4506*22dc650dSSadaf Ebrahimi/(?(8000000000/ 4507*22dc650dSSadaf Ebrahimi 4508*22dc650dSSadaf Ebrahimi/((?(R8000000000)))/ 4509*22dc650dSSadaf Ebrahimi 4510*22dc650dSSadaf Ebrahimi/0(?0)|(1)(*THEN)(*SKIP:0)(*FAIL)/ 4511*22dc650dSSadaf Ebrahimi\= Expect no match 4512*22dc650dSSadaf Ebrahimi 01 4513*22dc650dSSadaf Ebrahimi 4514*22dc650dSSadaf Ebrahimi/(?(1)()\983040\2)/ 4515*22dc650dSSadaf Ebrahimi 4516*22dc650dSSadaf Ebrahimi/(*LIMIT_MATCH=)abc/ 4517*22dc650dSSadaf Ebrahimi 4518*22dc650dSSadaf Ebrahimi/(*CRLF)(*LIMIT_MATCH=)abc/ 4519*22dc650dSSadaf Ebrahimi 4520*22dc650dSSadaf Ebrahimi/(?:ab)?(?:ab)(?:ab)/ 4521*22dc650dSSadaf Ebrahimi abab 4522*22dc650dSSadaf Ebrahimi ababab 4523*22dc650dSSadaf Ebrahimi\= Expect no match 4524*22dc650dSSadaf Ebrahimi aba 4525*22dc650dSSadaf Ebrahimi 4526*22dc650dSSadaf Ebrahimi/((*MARK:A))++a(*SKIP:B)b/ 4527*22dc650dSSadaf Ebrahimi\= Expect no match 4528*22dc650dSSadaf Ebrahimi aacb 4529*22dc650dSSadaf Ebrahimi 4530*22dc650dSSadaf Ebrahimi/(*MARK:a\zb)z/alt_verbnames 4531*22dc650dSSadaf Ebrahimi 4532*22dc650dSSadaf Ebrahimi/(*:ab\t(d\)c)xxx/ 4533*22dc650dSSadaf Ebrahimi 4534*22dc650dSSadaf Ebrahimi/(*:ab\t(d\)c)xxx/alt_verbnames,mark 4535*22dc650dSSadaf Ebrahimi cxxxz 4536*22dc650dSSadaf Ebrahimi 4537*22dc650dSSadaf Ebrahimi/(*:A\Qxx)x\EB)x/alt_verbnames,mark 4538*22dc650dSSadaf Ebrahimi x 4539*22dc650dSSadaf Ebrahimi 4540*22dc650dSSadaf Ebrahimi/(*:A\ExxxB)x/alt_verbnames,mark 4541*22dc650dSSadaf Ebrahimi x 4542*22dc650dSSadaf Ebrahimi 4543*22dc650dSSadaf Ebrahimi/(*: A \ and #comment 4544*22dc650dSSadaf Ebrahimi \ B)x/x,alt_verbnames,mark 4545*22dc650dSSadaf Ebrahimi x 4546*22dc650dSSadaf Ebrahimi 4547*22dc650dSSadaf Ebrahimi/(*: A \ and #comment 4548*22dc650dSSadaf Ebrahimi \ B)x/alt_verbnames,mark 4549*22dc650dSSadaf Ebrahimi x 4550*22dc650dSSadaf Ebrahimi 4551*22dc650dSSadaf Ebrahimi/(*: A \ and #comment 4552*22dc650dSSadaf Ebrahimi \ B)x/x,mark 4553*22dc650dSSadaf Ebrahimi x 4554*22dc650dSSadaf Ebrahimi 4555*22dc650dSSadaf Ebrahimi/(*: A \ and #comment 4556*22dc650dSSadaf Ebrahimi \ B)x/mark 4557*22dc650dSSadaf Ebrahimi x 4558*22dc650dSSadaf Ebrahimi 4559*22dc650dSSadaf Ebrahimi/(*:A 4560*22dc650dSSadaf EbrahimiB)x/alt_verbnames,mark 4561*22dc650dSSadaf Ebrahimi x 4562*22dc650dSSadaf Ebrahimi 4563*22dc650dSSadaf Ebrahimi/(*:abc\Qpqr)/alt_verbnames 4564*22dc650dSSadaf Ebrahimi 4565*22dc650dSSadaf Ebrahimi/abc/use_offset_limit 4566*22dc650dSSadaf Ebrahimi 1234abcde\=offset_limit=100 4567*22dc650dSSadaf Ebrahimi 1234abcde\=offset_limit=9 4568*22dc650dSSadaf Ebrahimi 1234abcde\=offset_limit=4 4569*22dc650dSSadaf Ebrahimi 1234abcde\=offset_limit=4,offset=4 4570*22dc650dSSadaf Ebrahimi\= Expect no match 4571*22dc650dSSadaf Ebrahimi 1234abcde\=offset_limit=4,offset=5 4572*22dc650dSSadaf Ebrahimi 1234abcde\=offset_limit=3 4573*22dc650dSSadaf Ebrahimi 4574*22dc650dSSadaf Ebrahimi/(?<=abc)/use_offset_limit 4575*22dc650dSSadaf Ebrahimi 1234abc\=offset_limit=7 4576*22dc650dSSadaf Ebrahimi\= Expect no match 4577*22dc650dSSadaf Ebrahimi 1234abc\=offset_limit=6 4578*22dc650dSSadaf Ebrahimi 4579*22dc650dSSadaf Ebrahimi/A/g,replace=-,use_offset_limit 4580*22dc650dSSadaf Ebrahimi XAXAXAXAXA\=offset_limit=4 4581*22dc650dSSadaf Ebrahimi 4582*22dc650dSSadaf Ebrahimi/abc/ 4583*22dc650dSSadaf Ebrahimi\= Expect error 4584*22dc650dSSadaf Ebrahimi 1234abcde\=offset_limit=4 4585*22dc650dSSadaf Ebrahimi 4586*22dc650dSSadaf Ebrahimi/^\w/m,use_offset_limit 4587*22dc650dSSadaf Ebrahimi \n..\naa\=offset_limit=3 4588*22dc650dSSadaf Ebrahimi \n..\naa\=offset_limit=4 4589*22dc650dSSadaf Ebrahimi 4590*22dc650dSSadaf Ebrahimi/abcd/null_context 4591*22dc650dSSadaf Ebrahimi abcd\=null_context 4592*22dc650dSSadaf Ebrahimi\= Expect error - not allowed together 4593*22dc650dSSadaf Ebrahimi abcd\=null_context,find_limits 4594*22dc650dSSadaf Ebrahimi abcd\=allusedtext,startchar 4595*22dc650dSSadaf Ebrahimi 4596*22dc650dSSadaf Ebrahimi/abcd/replace=w\rx\x82y\o{333}z(\Q12\$34$$\x34\E5$$),substitute_extended 4597*22dc650dSSadaf Ebrahimi abcd 4598*22dc650dSSadaf Ebrahimi 4599*22dc650dSSadaf Ebrahimi/abcd/replace=w\rx\x82y\o{333}z(\Q12\$34$$\x34\E5$$),substitute_extended,substitute_literal 4600*22dc650dSSadaf Ebrahimi >>abcd<< 4601*22dc650dSSadaf Ebrahimi 4602*22dc650dSSadaf Ebrahimi/abcd/g,replace=\$1$2\,substitute_literal 4603*22dc650dSSadaf Ebrahimi XabcdYabcdZ 4604*22dc650dSSadaf Ebrahimi 4605*22dc650dSSadaf Ebrahimi/a(bc)(DE)/replace=a\u$1\U$1\E$1\l$2\L$2\Eab\Uab\LYZ\EDone,substitute_extended 4606*22dc650dSSadaf Ebrahimi abcDE 4607*22dc650dSSadaf Ebrahimi 4608*22dc650dSSadaf Ebrahimi/abcd/replace=xy\kz,substitute_extended 4609*22dc650dSSadaf Ebrahimi abcd 4610*22dc650dSSadaf Ebrahimi 4611*22dc650dSSadaf Ebrahimi/a(?:(b)|(c))/substitute_extended,replace=X${1:+1:-1}X${2:+2:-2} 4612*22dc650dSSadaf Ebrahimi ab 4613*22dc650dSSadaf Ebrahimi ac 4614*22dc650dSSadaf Ebrahimi ab\=replace=${1:+$1\:$1:$2} 4615*22dc650dSSadaf Ebrahimi ac\=replace=${1:+$1\:$1:$2} 4616*22dc650dSSadaf Ebrahimi >>ac<<\=replace=${1:+$1\:$1:$2},substitute_literal 4617*22dc650dSSadaf Ebrahimi 4618*22dc650dSSadaf Ebrahimi/a(?:(b)|(c))/substitute_extended,replace=X${1:-1:-1}X${2:-2:-2} 4619*22dc650dSSadaf Ebrahimi ab 4620*22dc650dSSadaf Ebrahimi ac 4621*22dc650dSSadaf Ebrahimi 4622*22dc650dSSadaf Ebrahimi/(a)/substitute_extended,replace=>${1:+\Q$1:{}$$\E+\U$1}< 4623*22dc650dSSadaf Ebrahimi a 4624*22dc650dSSadaf Ebrahimi 4625*22dc650dSSadaf Ebrahimi/X(b)Y/substitute_extended 4626*22dc650dSSadaf Ebrahimi XbY\=replace=x${1:+$1\U$1}y 4627*22dc650dSSadaf Ebrahimi XbY\=replace=\Ux${1:+$1$1}y 4628*22dc650dSSadaf Ebrahimi 4629*22dc650dSSadaf Ebrahimi/a/substitute_extended,replace=${*MARK:+a:b} 4630*22dc650dSSadaf Ebrahimi a 4631*22dc650dSSadaf Ebrahimi 4632*22dc650dSSadaf Ebrahimi/(abcd)/replace=${1:+xy\kz},substitute_extended 4633*22dc650dSSadaf Ebrahimi abcd 4634*22dc650dSSadaf Ebrahimi 4635*22dc650dSSadaf Ebrahimi/(abcd)/ 4636*22dc650dSSadaf Ebrahimi abcd\=replace=${1:+xy\kz},substitute_extended 4637*22dc650dSSadaf Ebrahimi 4638*22dc650dSSadaf Ebrahimi/abcd/substitute_extended,replace=>$1< 4639*22dc650dSSadaf Ebrahimi abcd 4640*22dc650dSSadaf Ebrahimi 4641*22dc650dSSadaf Ebrahimi/abcd/substitute_extended,replace=>xxx${xyz}<<< 4642*22dc650dSSadaf Ebrahimi abcd 4643*22dc650dSSadaf Ebrahimi 4644*22dc650dSSadaf Ebrahimi/(?J)(?:(?<A>a)|(?<A>b))/replace=<$A> 4645*22dc650dSSadaf Ebrahimi [a] 4646*22dc650dSSadaf Ebrahimi [b] 4647*22dc650dSSadaf Ebrahimi\= Expect error 4648*22dc650dSSadaf Ebrahimi (a)\=ovector=1 4649*22dc650dSSadaf Ebrahimi 4650*22dc650dSSadaf Ebrahimi/(a)|(b)/replace=<$1> 4651*22dc650dSSadaf Ebrahimi\= Expect error 4652*22dc650dSSadaf Ebrahimi b 4653*22dc650dSSadaf Ebrahimi 4654*22dc650dSSadaf Ebrahimi/(aa)(BB)/substitute_extended,replace=\U$1\L$2\E$1..\U$1\l$2$1 4655*22dc650dSSadaf Ebrahimi aaBB 4656*22dc650dSSadaf Ebrahimi 4657*22dc650dSSadaf Ebrahimi/abcd/replace=wxyz,substitute_matched 4658*22dc650dSSadaf Ebrahimi abcd 4659*22dc650dSSadaf Ebrahimi pqrs 4660*22dc650dSSadaf Ebrahimi 4661*22dc650dSSadaf Ebrahimi/abcd/g 4662*22dc650dSSadaf Ebrahimi >abcd1234abcd5678<\=replace=wxyz,substitute_matched 4663*22dc650dSSadaf Ebrahimi 4664*22dc650dSSadaf Ebrahimi/^(o(\1{72}{\"{\\{00000059079}\d*){74}}){19}/I 4665*22dc650dSSadaf Ebrahimi 4666*22dc650dSSadaf Ebrahimi/((p(?'K/ 4667*22dc650dSSadaf Ebrahimi 4668*22dc650dSSadaf Ebrahimi/((p(?'K/no_auto_capture 4669*22dc650dSSadaf Ebrahimi 4670*22dc650dSSadaf Ebrahimi/abc/replace=A$3123456789Z 4671*22dc650dSSadaf Ebrahimi abc 4672*22dc650dSSadaf Ebrahimi 4673*22dc650dSSadaf Ebrahimi/(?<!a{65535}a{5})x/I 4674*22dc650dSSadaf Ebrahimi 4675*22dc650dSSadaf Ebrahimi/(?<!a{65535})x/I 4676*22dc650dSSadaf Ebrahimi 4677*22dc650dSSadaf Ebrahimi/(?=a\K)/replace=z,allow_lookaround_bsk 4678*22dc650dSSadaf Ebrahimi BaCaD 4679*22dc650dSSadaf Ebrahimi 4680*22dc650dSSadaf Ebrahimi/(?<=\K.)/g,replace=-,allow_lookaround_bsk 4681*22dc650dSSadaf Ebrahimi ab 4682*22dc650dSSadaf Ebrahimi 4683*22dc650dSSadaf Ebrahimi/(?'abcdefghijklmnopqrstuvwxyzABCDEFGabcdefghijklmnopqrstuvwxyzABCDEabcdefghijklmnopqrstuvwxyzABCDEabcdefghijklmnopqrstuvwxyzABCDEFGH'toolong)/ 4684*22dc650dSSadaf Ebrahimi 4685*22dc650dSSadaf Ebrahimi/(?'abcdefghijklmnopqrstuvwxyzABCDEFGabcdefghijklmnopqrstuvwxyzABCDEabcdefghijklmnopqrstuvwxyzABCDEabcdefghijklmnopqrstuvwxyzABCDEFG'justright)/ 4686*22dc650dSSadaf Ebrahimi 4687*22dc650dSSadaf Ebrahimi# These two use zero-termination 4688*22dc650dSSadaf Ebrahimi/abcd/max_pattern_length=3 4689*22dc650dSSadaf Ebrahimi 4690*22dc650dSSadaf Ebrahimi/abc/max_pattern_length=3 4691*22dc650dSSadaf Ebrahimi 4692*22dc650dSSadaf Ebrahimi# These two, being hex, pass the length 4693*22dc650dSSadaf Ebrahimi/abcdefab/hex,max_pattern_length=3 4694*22dc650dSSadaf Ebrahimi 4695*22dc650dSSadaf Ebrahimi/abcdef/hex,max_pattern_length=3 4696*22dc650dSSadaf Ebrahimi 4697*22dc650dSSadaf Ebrahimi# Test compiled length limit 4698*22dc650dSSadaf Ebrahimi/(abcdefg){10}/max_pattern_compiled_length=100 4699*22dc650dSSadaf Ebrahimi 4700*22dc650dSSadaf Ebrahimi# These patterns used to take a long time to compile 4701*22dc650dSSadaf Ebrahimi 4702*22dc650dSSadaf Ebrahimi"(.*) 4703*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2)) 4704*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2)) 4705*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))"xI 4706*22dc650dSSadaf Ebrahimi 4707*22dc650dSSadaf Ebrahimi"(?<=a() 4708*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2)) 4709*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2)) 4710*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2)) 4711*22dc650dSSadaf Ebrahimia)"xI 4712*22dc650dSSadaf Ebrahimi 4713*22dc650dSSadaf Ebrahimi"(?|()|())(.*) 4714*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2)) 4715*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2)) 4716*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))"xI 4717*22dc650dSSadaf Ebrahimi 4718*22dc650dSSadaf Ebrahimi"(?|()|())(?<=a() 4719*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2)) 4720*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2)) 4721*22dc650dSSadaf Ebrahimi((?-2)(?-2))((?-2)(?-2))((?-2)(?-2)) 4722*22dc650dSSadaf Ebrahimia)"xI 4723*22dc650dSSadaf Ebrahimi 4724*22dc650dSSadaf Ebrahimi# Test the use of malloc for caching group information when there are more 4725*22dc650dSSadaf Ebrahimi# groups than fit into the on-stack workspace. 4726*22dc650dSSadaf Ebrahimi 4727*22dc650dSSadaf Ebrahimi/\[()]{1024}/I,expand 4728*22dc650dSSadaf Ebrahimi 4729*22dc650dSSadaf Ebrahimi# Test minlength capped at 65535 4730*22dc650dSSadaf Ebrahimi 4731*22dc650dSSadaf Ebrahimi/(A{65000})\1{65000}/I 4732*22dc650dSSadaf Ebrahimi 4733*22dc650dSSadaf Ebrahimi# Test group scans when numbers are not unique 4734*22dc650dSSadaf Ebrahimi 4735*22dc650dSSadaf Ebrahimi/(?|()+|(a)+)/BI 4736*22dc650dSSadaf Ebrahimi 4737*22dc650dSSadaf Ebrahimi/(?|(a)+|()+)/BI 4738*22dc650dSSadaf Ebrahimi 4739*22dc650dSSadaf Ebrahimi/(?|()|(a))/BI 4740*22dc650dSSadaf Ebrahimi 4741*22dc650dSSadaf Ebrahimi/(?|(a)|())/BI 4742*22dc650dSSadaf Ebrahimi 4743*22dc650dSSadaf Ebrahimi# Test CRLF handling in empty string substitutions 4744*22dc650dSSadaf Ebrahimi 4745*22dc650dSSadaf Ebrahimi/^$/gm,newline=anycrlf,replace=- 4746*22dc650dSSadaf Ebrahimi X\r\n\r\nY 4747*22dc650dSSadaf Ebrahimi 4748*22dc650dSSadaf Ebrahimi/^$/gm,newline=crlf,replace=- 4749*22dc650dSSadaf Ebrahimi X\r\n\r\nY 4750*22dc650dSSadaf Ebrahimi 4751*22dc650dSSadaf Ebrahimi/^$/gm,newline=any,replace=- 4752*22dc650dSSadaf Ebrahimi X\r\n\r\nY 4753*22dc650dSSadaf Ebrahimi 4754*22dc650dSSadaf Ebrahimi"(*ANYCRLF)(?m)^(.*[^0-9\r\n].*|)$"g,replace=NaN 4755*22dc650dSSadaf Ebrahimi 15\r\nfoo\r\n20\r\nbar\r\nbaz\r\n\r\n20 4756*22dc650dSSadaf Ebrahimi 4757*22dc650dSSadaf Ebrahimi/a[[:punct:]b]/bincode 4758*22dc650dSSadaf Ebrahimi 4759*22dc650dSSadaf Ebrahimi/a[b[:punct:]]/bincode 4760*22dc650dSSadaf Ebrahimi 4761*22dc650dSSadaf Ebrahimi/L(?#(|++<!(2)?/B 4762*22dc650dSSadaf Ebrahimi 4763*22dc650dSSadaf Ebrahimi/L(?#(|++<!(2)?/B,no_auto_possess 4764*22dc650dSSadaf Ebrahimi 4765*22dc650dSSadaf Ebrahimi/L(?#(|++<!(2)?/B,auto_callout 4766*22dc650dSSadaf Ebrahimi 4767*22dc650dSSadaf Ebrahimi/L(?#(|++<!(2)?/B,no_auto_possess,auto_callout 4768*22dc650dSSadaf Ebrahimi 4769*22dc650dSSadaf Ebrahimi/(A*)\E+/B,auto_callout 4770*22dc650dSSadaf Ebrahimi 4771*22dc650dSSadaf Ebrahimi/()\Q\E*]/B,auto_callout 4772*22dc650dSSadaf Ebrahimi a[bc]d 4773*22dc650dSSadaf Ebrahimi 4774*22dc650dSSadaf Ebrahimi/\x8a+f|;T?(*:;.'?`(\xeap ){![^()!y*''C*(?';]{1;(\x08)/B,alt_verbnames,dupnames,extended 4775*22dc650dSSadaf Ebrahimi 4776*22dc650dSSadaf Ebrahimi# Tests for NULL characters in comments and verb "names" and callouts 4777*22dc650dSSadaf Ebrahimi 4778*22dc650dSSadaf Ebrahimi# /A#B\x00C\x0aZ/ 4779*22dc650dSSadaf Ebrahimi/41 23 42 00 43 0a 5a/Bx,hex 4780*22dc650dSSadaf Ebrahimi 4781*22dc650dSSadaf Ebrahimi# /A+#B\x00C\x0a+/ 4782*22dc650dSSadaf Ebrahimi/41 2b 23 42 00 43 0a 2b/Bx,hex 4783*22dc650dSSadaf Ebrahimi 4784*22dc650dSSadaf Ebrahimi# /A(*:B\x00W#X\00Y\x0aC)Z/ 4785*22dc650dSSadaf Ebrahimi/41 28 2a 3a 42 00 57 23 58 00 59 0a 43 29 5a/Bx,hex,alt_verbnames 4786*22dc650dSSadaf Ebrahimi 4787*22dc650dSSadaf Ebrahimi# /A(*:B\x00W#X\00Y\x0aC)Z/ 4788*22dc650dSSadaf Ebrahimi/41 28 2a 3a 42 00 57 23 58 00 59 0a 43 29 5a/Bx,hex 4789*22dc650dSSadaf Ebrahimi 4790*22dc650dSSadaf Ebrahimi# /A(?C{X\x00Y})B/ 4791*22dc650dSSadaf Ebrahimi/41 28 3f 43 7b 58 00 59 7d 29 42/B,hex 4792*22dc650dSSadaf Ebrahimi 4793*22dc650dSSadaf Ebrahimi# /A(?#X\x00Y)B/ 4794*22dc650dSSadaf Ebrahimi/41 28 3f 23 7b 00 7d 29 42/B,hex 4795*22dc650dSSadaf Ebrahimi 4796*22dc650dSSadaf Ebrahimi# Tests for leading comment in extended patterns 4797*22dc650dSSadaf Ebrahimi 4798*22dc650dSSadaf Ebrahimi/ (?-x):?/extended 4799*22dc650dSSadaf Ebrahimi 4800*22dc650dSSadaf Ebrahimi/(?-x):?/extended 4801*22dc650dSSadaf Ebrahimi 4802*22dc650dSSadaf Ebrahimi/0b 28 3f 2d 78 29 3a/hex,extended 4803*22dc650dSSadaf Ebrahimi 4804*22dc650dSSadaf Ebrahimi/#comment 4805*22dc650dSSadaf Ebrahimi(?-x):?/extended 4806*22dc650dSSadaf Ebrahimi 4807*22dc650dSSadaf Ebrahimi/(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 4808*22dc650dSSadaf Ebrahimi 4809*22dc650dSSadaf Ebrahimi/a|(b)c/replace=>$1<,substitute_unset_empty 4810*22dc650dSSadaf Ebrahimi cat 4811*22dc650dSSadaf Ebrahimi xbcom 4812*22dc650dSSadaf Ebrahimi 4813*22dc650dSSadaf Ebrahimi/a|(b)c/ 4814*22dc650dSSadaf Ebrahimi cat\=replace=>$1< 4815*22dc650dSSadaf Ebrahimi cat\=replace=>$1<,substitute_unset_empty 4816*22dc650dSSadaf Ebrahimi xbcom\=replace=>$1<,substitute_unset_empty 4817*22dc650dSSadaf Ebrahimi 4818*22dc650dSSadaf Ebrahimi/a|(b)c/substitute_extended 4819*22dc650dSSadaf Ebrahimi cat\=replace=>${2:-xx}< 4820*22dc650dSSadaf Ebrahimi cat\=replace=>${2:-xx}<,substitute_unknown_unset 4821*22dc650dSSadaf Ebrahimi cat\=replace=>${X:-xx}<,substitute_unknown_unset 4822*22dc650dSSadaf Ebrahimi 4823*22dc650dSSadaf Ebrahimi/a|(?'X'b)c/replace=>$X<,substitute_unset_empty 4824*22dc650dSSadaf Ebrahimi cat 4825*22dc650dSSadaf Ebrahimi xbcom 4826*22dc650dSSadaf Ebrahimi 4827*22dc650dSSadaf Ebrahimi/a|(?'X'b)c/replace=>$Y<,substitute_unset_empty 4828*22dc650dSSadaf Ebrahimi cat 4829*22dc650dSSadaf Ebrahimi cat\=substitute_unknown_unset 4830*22dc650dSSadaf Ebrahimi cat\=substitute_unknown_unset,-substitute_unset_empty 4831*22dc650dSSadaf Ebrahimi 4832*22dc650dSSadaf Ebrahimi/a|(b)c/replace=>$2<,substitute_unset_empty 4833*22dc650dSSadaf Ebrahimi cat 4834*22dc650dSSadaf Ebrahimi cat\=substitute_unknown_unset 4835*22dc650dSSadaf Ebrahimi cat\=substitute_unknown_unset,-substitute_unset_empty 4836*22dc650dSSadaf Ebrahimi 4837*22dc650dSSadaf Ebrahimi/()()()/use_offset_limit 4838*22dc650dSSadaf Ebrahimi \=ovector=11000000000 4839*22dc650dSSadaf Ebrahimi \=callout_fail=11000000000 4840*22dc650dSSadaf Ebrahimi \=callout_fail=1:11000000000 4841*22dc650dSSadaf Ebrahimi \=callout_data=11000000000 4842*22dc650dSSadaf Ebrahimi \=callout_data=-11000000000 4843*22dc650dSSadaf Ebrahimi \=offset_limit=1100000000000000000000 4844*22dc650dSSadaf Ebrahimi \=copy=11000000000 4845*22dc650dSSadaf Ebrahimi 4846*22dc650dSSadaf Ebrahimi/(*MARK:A\x00b)/mark 4847*22dc650dSSadaf Ebrahimi abc 4848*22dc650dSSadaf Ebrahimi 4849*22dc650dSSadaf Ebrahimi/(*MARK:A\x00b)/mark,alt_verbnames 4850*22dc650dSSadaf Ebrahimi abc 4851*22dc650dSSadaf Ebrahimi 4852*22dc650dSSadaf Ebrahimi/"(*MARK:A" 00 "b)"/mark,hex 4853*22dc650dSSadaf Ebrahimi abc 4854*22dc650dSSadaf Ebrahimi 4855*22dc650dSSadaf Ebrahimi/"(*MARK:A" 00 "b)"/mark,hex,alt_verbnames 4856*22dc650dSSadaf Ebrahimi abc 4857*22dc650dSSadaf Ebrahimi 4858*22dc650dSSadaf Ebrahimi/efg/hex 4859*22dc650dSSadaf Ebrahimi 4860*22dc650dSSadaf Ebrahimi/eff/hex 4861*22dc650dSSadaf Ebrahimi 4862*22dc650dSSadaf Ebrahimi/effg/hex 4863*22dc650dSSadaf Ebrahimi 4864*22dc650dSSadaf Ebrahimi/(?J)(?'a'))(?'a')/ 4865*22dc650dSSadaf Ebrahimi 4866*22dc650dSSadaf Ebrahimi/(?<=((?C)0))/ 4867*22dc650dSSadaf Ebrahimi 9010 4868*22dc650dSSadaf Ebrahimi\= Expect no match 4869*22dc650dSSadaf Ebrahimi abc 4870*22dc650dSSadaf Ebrahimi 4871*22dc650dSSadaf Ebrahimi/aaa/ 4872*22dc650dSSadaf Ebrahimi\[abc]{10000000000000000000000000000} 4873*22dc650dSSadaf Ebrahimi\[a]{3} 4874*22dc650dSSadaf Ebrahimi 4875*22dc650dSSadaf Ebrahimi/\[AB]{6000000000000000000000}/expand 4876*22dc650dSSadaf Ebrahimi 4877*22dc650dSSadaf Ebrahimi# Hex uses pattern length, not zero-terminated. This tests for overrunning 4878*22dc650dSSadaf Ebrahimi# the given length of a pattern. 4879*22dc650dSSadaf Ebrahimi 4880*22dc650dSSadaf Ebrahimi/'(*U'/hex 4881*22dc650dSSadaf Ebrahimi 4882*22dc650dSSadaf Ebrahimi/'(*'/hex 4883*22dc650dSSadaf Ebrahimi 4884*22dc650dSSadaf Ebrahimi/'('/hex 4885*22dc650dSSadaf Ebrahimi 4886*22dc650dSSadaf Ebrahimi//hex 4887*22dc650dSSadaf Ebrahimi 4888*22dc650dSSadaf Ebrahimi# These tests are here because Perl never allows a back reference in a 4889*22dc650dSSadaf Ebrahimi# lookbehind. PCRE2 supports some limited cases. 4890*22dc650dSSadaf Ebrahimi 4891*22dc650dSSadaf Ebrahimi/([ab])...(?<=\1)z/ 4892*22dc650dSSadaf Ebrahimi a11az 4893*22dc650dSSadaf Ebrahimi b11bz 4894*22dc650dSSadaf Ebrahimi\= Expect no match 4895*22dc650dSSadaf Ebrahimi b11az 4896*22dc650dSSadaf Ebrahimi 4897*22dc650dSSadaf Ebrahimi/(?|([ab]))...(?<=\1)z/ 4898*22dc650dSSadaf Ebrahimi 4899*22dc650dSSadaf Ebrahimi/([ab])(\1)...(?<=\2)z/ 4900*22dc650dSSadaf Ebrahimi aa11az 4901*22dc650dSSadaf Ebrahimi 4902*22dc650dSSadaf Ebrahimi/(a\2)(b\1)(?<=\2)/ 4903*22dc650dSSadaf Ebrahimi 4904*22dc650dSSadaf Ebrahimi/(?<A>[ab])...(?<=\k'A')z/ 4905*22dc650dSSadaf Ebrahimi a11az 4906*22dc650dSSadaf Ebrahimi b11bz 4907*22dc650dSSadaf Ebrahimi\= Expect no match 4908*22dc650dSSadaf Ebrahimi b11az 4909*22dc650dSSadaf Ebrahimi 4910*22dc650dSSadaf Ebrahimi/(?<A>[ab])...(?<=\k'A')(?<A>)z/dupnames 4911*22dc650dSSadaf Ebrahimi 4912*22dc650dSSadaf Ebrahimi# Perl does not support \g+n 4913*22dc650dSSadaf Ebrahimi 4914*22dc650dSSadaf Ebrahimi/((\g+1X)?([ab]))+/ 4915*22dc650dSSadaf Ebrahimi aaXbbXa 4916*22dc650dSSadaf Ebrahimi 4917*22dc650dSSadaf Ebrahimi/ab(?C1)c/auto_callout 4918*22dc650dSSadaf Ebrahimi abc 4919*22dc650dSSadaf Ebrahimi 4920*22dc650dSSadaf Ebrahimi/'ab(?C1)c'/hex,auto_callout 4921*22dc650dSSadaf Ebrahimi abc 4922*22dc650dSSadaf Ebrahimi 4923*22dc650dSSadaf Ebrahimi# Perl accepts these, but gives a warning. We can't warn, so give an error. 4924*22dc650dSSadaf Ebrahimi 4925*22dc650dSSadaf Ebrahimi/[a-[:digit:]]+/ 4926*22dc650dSSadaf Ebrahimi a-a9-a 4927*22dc650dSSadaf Ebrahimi 4928*22dc650dSSadaf Ebrahimi/[A-[:digit:]]+/ 4929*22dc650dSSadaf Ebrahimi A-A9-A 4930*22dc650dSSadaf Ebrahimi 4931*22dc650dSSadaf Ebrahimi/[a-\d]+/ 4932*22dc650dSSadaf Ebrahimi a-a9-a 4933*22dc650dSSadaf Ebrahimi 4934*22dc650dSSadaf Ebrahimi/(?<RA>abc)(?(R)xyz)/B 4935*22dc650dSSadaf Ebrahimi 4936*22dc650dSSadaf Ebrahimi/(?<R>abc)(?(R)xyz)/B 4937*22dc650dSSadaf Ebrahimi 4938*22dc650dSSadaf Ebrahimi/(?=.*[A-Z])/I 4939*22dc650dSSadaf Ebrahimi 4940*22dc650dSSadaf Ebrahimi/()(?<=(?0))/ 4941*22dc650dSSadaf Ebrahimi 4942*22dc650dSSadaf Ebrahimi/(?<!|!(?<!))/ 4943*22dc650dSSadaf Ebrahimi 4944*22dc650dSSadaf Ebrahimi/(?<!|!|!||||||(?<!)||(?<!)!|!||(?<!)!|!(?<!)!|!|!|!||||!!|<!)!|!||||!|/ 4945*22dc650dSSadaf Ebrahimi 4946*22dc650dSSadaf Ebrahimi/{2,2{2,2/use_length 4947*22dc650dSSadaf Ebrahimi 4948*22dc650dSSadaf Ebrahimi/.>*?\g'0/use_length 4949*22dc650dSSadaf Ebrahimi 4950*22dc650dSSadaf Ebrahimi/.>*?\g'0/ 4951*22dc650dSSadaf Ebrahimi 4952*22dc650dSSadaf Ebrahimi/{�̈́�̈́�{'{22{2{{2{'{22{{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Ą̈́�̈́�{'{22{2{{2{'{22{{11{2{'{22{2{{2{{'{22{2{{2{'{22{{22{1{'{22{2{{2{{222{{2{'{22{2{22{2{'{/auto_callout 4953*22dc650dSSadaf Ebrahimi 4954*22dc650dSSadaf Ebrahimi// 4955*22dc650dSSadaf Ebrahimi\=get=i00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 4956*22dc650dSSadaf Ebrahimi\=get=i2345678901234567890123456789012,get=i1245678901234567890123456789012 4957*22dc650dSSadaf Ebrahimi 4958*22dc650dSSadaf Ebrahimi"(?(?C))" 4959*22dc650dSSadaf Ebrahimi 4960*22dc650dSSadaf Ebrahimi/(?(?(?(?(?(?))))))/ 4961*22dc650dSSadaf Ebrahimi 4962*22dc650dSSadaf Ebrahimi/(?<=(?1))((?s))/anchored 4963*22dc650dSSadaf Ebrahimi 4964*22dc650dSSadaf Ebrahimi/(*:ab)*/ 4965*22dc650dSSadaf Ebrahimi 4966*22dc650dSSadaf Ebrahimi%(*:(:(svvvvvvvvvv:]*[ Z!*;[]*[^[]*!^[+.+{{2,7}' _\\\\\\\\\\\\\)?.:.. *w////\\\Q\\\\\\\\\\\\\\\T\\\\\+/?/////'+\\\EEE?/////'+/*+/[^K]?]//(w)%never_backslash_c,alt_verbnames,auto_callout 4967*22dc650dSSadaf Ebrahimi 4968*22dc650dSSadaf Ebrahimi/./newline=crlf 4969*22dc650dSSadaf Ebrahimi \=ph 4970*22dc650dSSadaf Ebrahimi 4971*22dc650dSSadaf Ebrahimi/(\x0e00\000000\xc)/replace=\P,substitute_extended 4972*22dc650dSSadaf Ebrahimi \x0e00\000000\xc 4973*22dc650dSSadaf Ebrahimi 4974*22dc650dSSadaf Ebrahimi//replace=0 4975*22dc650dSSadaf Ebrahimi \=offset=7 4976*22dc650dSSadaf Ebrahimi 4977*22dc650dSSadaf Ebrahimi/(?<=\G.)/g,replace=+ 4978*22dc650dSSadaf Ebrahimi abc 4979*22dc650dSSadaf Ebrahimi 4980*22dc650dSSadaf Ebrahimi".+\QX\E+"B,no_auto_possess 4981*22dc650dSSadaf Ebrahimi 4982*22dc650dSSadaf Ebrahimi".+\QX\E+"B,auto_callout,no_auto_possess 4983*22dc650dSSadaf Ebrahimi 4984*22dc650dSSadaf Ebrahimi# This one is here because Perl gives an 'unmatched )' error which goes away 4985*22dc650dSSadaf Ebrahimi# if one of the \) sequences is removed - which is weird. PCRE finds it too 4986*22dc650dSSadaf Ebrahimi# complicated to find a minimum matching length. 4987*22dc650dSSadaf Ebrahimi 4988*22dc650dSSadaf Ebrahimi"()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 4989*22dc650dSSadaf Ebrahimi 4990*22dc650dSSadaf Ebrahimi# This checks that new code for handling groups that may match an empty string 4991*22dc650dSSadaf Ebrahimi# works on a very large number of alternatives. This pattern used to provoke a 4992*22dc650dSSadaf Ebrahimi# complaint that it was too complicated. 4993*22dc650dSSadaf Ebrahimi 4994*22dc650dSSadaf Ebrahimi/(?:\[A|B|C|D|E|F|G|H|I|J|]{200}Z)/expand 4995*22dc650dSSadaf Ebrahimi 4996*22dc650dSSadaf Ebrahimi# This one used to compile rubbish instead of a compile error, and then 4997*22dc650dSSadaf Ebrahimi# behave unpredictably at match time. 4998*22dc650dSSadaf Ebrahimi 4999*22dc650dSSadaf Ebrahimi/.+(?(?C'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'))?!XXXX.=X/ 5000*22dc650dSSadaf Ebrahimi .+(?(?C'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'))?!XXXX.=X 5001*22dc650dSSadaf Ebrahimi 5002*22dc650dSSadaf Ebrahimi/[:[:alnum:]-[[a:lnum:]+/ 5003*22dc650dSSadaf Ebrahimi 5004*22dc650dSSadaf Ebrahimi/((?(?C'')\QX\E(?!((?(?C'')(?!X=X));=)r*X=X));=)/ 5005*22dc650dSSadaf Ebrahimi 5006*22dc650dSSadaf Ebrahimi/((?(?C'')\Q\E(?!((?(?C'')(?!X=X));=)r*X=X));=)/ 5007*22dc650dSSadaf Ebrahimi 5008*22dc650dSSadaf Ebrahimi/abcd/auto_callout 5009*22dc650dSSadaf Ebrahimi abcd\=callout_error=255:2 5010*22dc650dSSadaf Ebrahimi 5011*22dc650dSSadaf Ebrahimi/()(\g+65534)/ 5012*22dc650dSSadaf Ebrahimi 5013*22dc650dSSadaf Ebrahimi/()(\g+65533)/ 5014*22dc650dSSadaf Ebrahimi 5015*22dc650dSSadaf Ebrahimi/�\x00\x00\x00�(\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\x00\x00\x00\x00\x00\2*\x00\x00\1*.){36}int^\x00\x00��\x00�(\1{50779}?)J\w2/I 5016*22dc650dSSadaf Ebrahimi 5017*22dc650dSSadaf Ebrahimi/(a)(b)\2\1\1\1\1/I 5018*22dc650dSSadaf Ebrahimi 5019*22dc650dSSadaf Ebrahimi/(?<a>a)(?<b>b)\g{b}\g{a}\g{a}\g{a}\g{a}(?<a>xx)(?<b>zz)/I,dupnames 5020*22dc650dSSadaf Ebrahimi 5021*22dc650dSSadaf Ebrahimi// 5022*22dc650dSSadaf Ebrahimi \=ovector=7777777777 5023*22dc650dSSadaf Ebrahimi 5024*22dc650dSSadaf Ebrahimi# This is here because Perl matches, even though a COMMIT is encountered 5025*22dc650dSSadaf Ebrahimi# outside of the recursion. 5026*22dc650dSSadaf Ebrahimi 5027*22dc650dSSadaf Ebrahimi/(?1)(A(*COMMIT)|B)D/ 5028*22dc650dSSadaf Ebrahimi BAXBAD 5029*22dc650dSSadaf Ebrahimi 5030*22dc650dSSadaf Ebrahimi"(?1){2}(a)"B 5031*22dc650dSSadaf Ebrahimi 5032*22dc650dSSadaf Ebrahimi"(?1){2,4}(a)"B 5033*22dc650dSSadaf Ebrahimi 5034*22dc650dSSadaf Ebrahimi# This test differs from Perl for the first subject. Perl ends up with 5035*22dc650dSSadaf Ebrahimi# $1 set to 'B'; PCRE2 has it unset (which I think is right). 5036*22dc650dSSadaf Ebrahimi 5037*22dc650dSSadaf Ebrahimi/^(?: 5038*22dc650dSSadaf Ebrahimi(?:A| (?:B|B(*ACCEPT)) (?<=(.)) D) 5039*22dc650dSSadaf Ebrahimi(Z) 5040*22dc650dSSadaf Ebrahimi)+$/x 5041*22dc650dSSadaf Ebrahimi AZB 5042*22dc650dSSadaf Ebrahimi AZBDZ 5043*22dc650dSSadaf Ebrahimi 5044*22dc650dSSadaf Ebrahimi# The first of these, when run by Perl, gives the mark 'aa', which is wrong. 5045*22dc650dSSadaf Ebrahimi 5046*22dc650dSSadaf Ebrahimi'(?>a(*:aa))b|ac' mark 5047*22dc650dSSadaf Ebrahimi ac 5048*22dc650dSSadaf Ebrahimi 5049*22dc650dSSadaf Ebrahimi'(?:a(*:aa))b|ac' mark 5050*22dc650dSSadaf Ebrahimi ac 5051*22dc650dSSadaf Ebrahimi 5052*22dc650dSSadaf Ebrahimi/(R?){65}/ 5053*22dc650dSSadaf Ebrahimi (R?){65} 5054*22dc650dSSadaf Ebrahimi 5055*22dc650dSSadaf Ebrahimi/\[(a)]{60}/expand 5056*22dc650dSSadaf Ebrahimi aaaa 5057*22dc650dSSadaf Ebrahimi 5058*22dc650dSSadaf Ebrahimi/(?<!\1((?U)1((?U))))(*F)/never_backslash_c,alt_bsux,anchored,extended 5059*22dc650dSSadaf Ebrahimi 5060*22dc650dSSadaf Ebrahimi/\g{3/ 5061*22dc650dSSadaf Ebrahimi 5062*22dc650dSSadaf Ebrahimi/(a(?C1)(b)(c)d)+/ 5063*22dc650dSSadaf Ebrahimi abcdabcd\=callout_capture 5064*22dc650dSSadaf Ebrahimi 5065*22dc650dSSadaf Ebrahimi# Perl matches this one, but PCRE does not because (*ACCEPT) clears out any 5066*22dc650dSSadaf Ebrahimi# pending backtracks in the recursion. 5067*22dc650dSSadaf Ebrahimi 5068*22dc650dSSadaf Ebrahimi/^ (?(DEFINE) (..(*ACCEPT)|...) ) (?1)$/x 5069*22dc650dSSadaf Ebrahimi\= Expect no match 5070*22dc650dSSadaf Ebrahimi abc 5071*22dc650dSSadaf Ebrahimi 5072*22dc650dSSadaf Ebrahimi# Perl gives no match for this one 5073*22dc650dSSadaf Ebrahimi 5074*22dc650dSSadaf Ebrahimi/(a(*MARK:m)(*ACCEPT)){0}(?1)/mark 5075*22dc650dSSadaf Ebrahimi abc 5076*22dc650dSSadaf Ebrahimi 5077*22dc650dSSadaf Ebrahimi/abc/endanchored 5078*22dc650dSSadaf Ebrahimi xyzabc 5079*22dc650dSSadaf Ebrahimi\= Expect no match 5080*22dc650dSSadaf Ebrahimi xyzabcdef 5081*22dc650dSSadaf Ebrahimi\= Expect error 5082*22dc650dSSadaf Ebrahimi xyzabc\=ph 5083*22dc650dSSadaf Ebrahimi 5084*22dc650dSSadaf Ebrahimi/abc/ 5085*22dc650dSSadaf Ebrahimi xyzabc\=endanchored 5086*22dc650dSSadaf Ebrahimi\= Expect no match 5087*22dc650dSSadaf Ebrahimi xyzabcdef\=endanchored 5088*22dc650dSSadaf Ebrahimi\= Expect error 5089*22dc650dSSadaf Ebrahimi xyzabc\=ps,endanchored 5090*22dc650dSSadaf Ebrahimi 5091*22dc650dSSadaf Ebrahimi/abc(*ACCEPT)d/endanchored 5092*22dc650dSSadaf Ebrahimi xyzabc 5093*22dc650dSSadaf Ebrahimi\= Expect no match 5094*22dc650dSSadaf Ebrahimi xyzabcdef 5095*22dc650dSSadaf Ebrahimi 5096*22dc650dSSadaf Ebrahimi/abc|bcd/endanchored 5097*22dc650dSSadaf Ebrahimi xyzabcd 5098*22dc650dSSadaf Ebrahimi\= Expect no match 5099*22dc650dSSadaf Ebrahimi xyzabcdef 5100*22dc650dSSadaf Ebrahimi 5101*22dc650dSSadaf Ebrahimi/a(*ACCEPT)x|aa/endanchored 5102*22dc650dSSadaf Ebrahimi aaa 5103*22dc650dSSadaf Ebrahimi 5104*22dc650dSSadaf Ebrahimi# Check auto-anchoring when there is a group that is never obeyed at 5105*22dc650dSSadaf Ebrahimi# the start of a branch. 5106*22dc650dSSadaf Ebrahimi 5107*22dc650dSSadaf Ebrahimi/(?(DEFINE)(a))^bc/I 5108*22dc650dSSadaf Ebrahimi 5109*22dc650dSSadaf Ebrahimi/(a){0}.*bc/sI 5110*22dc650dSSadaf Ebrahimi 5111*22dc650dSSadaf Ebrahimi# This should be anchored, as the condition is always false and there is 5112*22dc650dSSadaf Ebrahimi# no alternative branch. 5113*22dc650dSSadaf Ebrahimi 5114*22dc650dSSadaf Ebrahimi/(?(VERSION>=999)yes)^bc/I 5115*22dc650dSSadaf Ebrahimi 5116*22dc650dSSadaf Ebrahimi# This should not be anchored. 5117*22dc650dSSadaf Ebrahimi 5118*22dc650dSSadaf Ebrahimi/(?(VERSION>=999)yes|no)^bc/I 5119*22dc650dSSadaf Ebrahimi 5120*22dc650dSSadaf Ebrahimi/(*LIMIT_HEAP=0)xxx/I 5121*22dc650dSSadaf Ebrahimi 5122*22dc650dSSadaf Ebrahimi/\d{0,3}(*:abc)(?C1)xxx/callout_info 5123*22dc650dSSadaf Ebrahimi 5124*22dc650dSSadaf Ebrahimi# ---------------------------------------------------------------------- 5125*22dc650dSSadaf Ebrahimi 5126*22dc650dSSadaf Ebrahimi# These are a whole pile of tests that touch lines of code that are not 5127*22dc650dSSadaf Ebrahimi# used by any other tests (at least when these were created). 5128*22dc650dSSadaf Ebrahimi 5129*22dc650dSSadaf Ebrahimi/^a+?x/i,no_start_optimize,no_auto_possess 5130*22dc650dSSadaf Ebrahimi\= Expect no match 5131*22dc650dSSadaf Ebrahimi aaa 5132*22dc650dSSadaf Ebrahimi 5133*22dc650dSSadaf Ebrahimi/^[^a]{3,}?x/i,no_start_optimize,no_auto_possess 5134*22dc650dSSadaf Ebrahimi\= Expect no match 5135*22dc650dSSadaf Ebrahimi bbb 5136*22dc650dSSadaf Ebrahimi cc 5137*22dc650dSSadaf Ebrahimi 5138*22dc650dSSadaf Ebrahimi/^X\S/no_start_optimize,no_auto_possess 5139*22dc650dSSadaf Ebrahimi\= Expect no match 5140*22dc650dSSadaf Ebrahimi X 5141*22dc650dSSadaf Ebrahimi 5142*22dc650dSSadaf Ebrahimi/^X\W/no_start_optimize,no_auto_possess 5143*22dc650dSSadaf Ebrahimi\= Expect no match 5144*22dc650dSSadaf Ebrahimi X 5145*22dc650dSSadaf Ebrahimi 5146*22dc650dSSadaf Ebrahimi/^X\H/no_start_optimize,no_auto_possess 5147*22dc650dSSadaf Ebrahimi\= Expect no match 5148*22dc650dSSadaf Ebrahimi X 5149*22dc650dSSadaf Ebrahimi 5150*22dc650dSSadaf Ebrahimi/^X\h/no_start_optimize,no_auto_possess 5151*22dc650dSSadaf Ebrahimi\= Expect no match 5152*22dc650dSSadaf Ebrahimi X 5153*22dc650dSSadaf Ebrahimi 5154*22dc650dSSadaf Ebrahimi/^X\V/no_start_optimize,no_auto_possess 5155*22dc650dSSadaf Ebrahimi\= Expect no match 5156*22dc650dSSadaf Ebrahimi X 5157*22dc650dSSadaf Ebrahimi 5158*22dc650dSSadaf Ebrahimi/^X\v/no_start_optimize,no_auto_possess 5159*22dc650dSSadaf Ebrahimi\= Expect no match 5160*22dc650dSSadaf Ebrahimi X 5161*22dc650dSSadaf Ebrahimi 5162*22dc650dSSadaf Ebrahimi/^X\h/no_start_optimize,no_auto_possess 5163*22dc650dSSadaf Ebrahimi\= Expect no match 5164*22dc650dSSadaf Ebrahimi XY 5165*22dc650dSSadaf Ebrahimi 5166*22dc650dSSadaf Ebrahimi/^X\V/no_start_optimize,no_auto_possess 5167*22dc650dSSadaf Ebrahimi\= Expect no match 5168*22dc650dSSadaf Ebrahimi X\n 5169*22dc650dSSadaf Ebrahimi 5170*22dc650dSSadaf Ebrahimi/^X\v/no_start_optimize,no_auto_possess 5171*22dc650dSSadaf Ebrahimi\= Expect no match 5172*22dc650dSSadaf Ebrahimi XX 5173*22dc650dSSadaf Ebrahimi 5174*22dc650dSSadaf Ebrahimi/^X.+?/s,no_start_optimize,no_auto_possess 5175*22dc650dSSadaf Ebrahimi\= Expect no match 5176*22dc650dSSadaf Ebrahimi X 5177*22dc650dSSadaf Ebrahimi 5178*22dc650dSSadaf Ebrahimi/^X\R+?/no_start_optimize,no_auto_possess 5179*22dc650dSSadaf Ebrahimi\= Expect no match 5180*22dc650dSSadaf Ebrahimi XX 5181*22dc650dSSadaf Ebrahimi 5182*22dc650dSSadaf Ebrahimi/^X\H+?/no_start_optimize,no_auto_possess 5183*22dc650dSSadaf Ebrahimi\= Expect no match 5184*22dc650dSSadaf Ebrahimi X 5185*22dc650dSSadaf Ebrahimi 5186*22dc650dSSadaf Ebrahimi/^X\h+?/no_start_optimize,no_auto_possess 5187*22dc650dSSadaf Ebrahimi\= Expect no match 5188*22dc650dSSadaf Ebrahimi X 5189*22dc650dSSadaf Ebrahimi 5190*22dc650dSSadaf Ebrahimi/^X\V+?/no_start_optimize,no_auto_possess 5191*22dc650dSSadaf Ebrahimi\= Expect no match 5192*22dc650dSSadaf Ebrahimi X 5193*22dc650dSSadaf Ebrahimi X\n 5194*22dc650dSSadaf Ebrahimi 5195*22dc650dSSadaf Ebrahimi/^X\D+?/no_start_optimize,no_auto_possess 5196*22dc650dSSadaf Ebrahimi\= Expect no match 5197*22dc650dSSadaf Ebrahimi X 5198*22dc650dSSadaf Ebrahimi X9 5199*22dc650dSSadaf Ebrahimi 5200*22dc650dSSadaf Ebrahimi/^X\S+?/no_start_optimize,no_auto_possess 5201*22dc650dSSadaf Ebrahimi\= Expect no match 5202*22dc650dSSadaf Ebrahimi X 5203*22dc650dSSadaf Ebrahimi X\n 5204*22dc650dSSadaf Ebrahimi 5205*22dc650dSSadaf Ebrahimi/^X\W+?/no_start_optimize,no_auto_possess 5206*22dc650dSSadaf Ebrahimi\= Expect no match 5207*22dc650dSSadaf Ebrahimi X 5208*22dc650dSSadaf Ebrahimi XX 5209*22dc650dSSadaf Ebrahimi 5210*22dc650dSSadaf Ebrahimi/^X.+?Z/no_start_optimize,no_auto_possess 5211*22dc650dSSadaf Ebrahimi\= Expect no match 5212*22dc650dSSadaf Ebrahimi XY\n 5213*22dc650dSSadaf Ebrahimi 5214*22dc650dSSadaf Ebrahimi/(*CRLF)^X.+?Z/no_start_optimize,no_auto_possess 5215*22dc650dSSadaf Ebrahimi\= Expect no match 5216*22dc650dSSadaf Ebrahimi XY\r\=ps 5217*22dc650dSSadaf Ebrahimi 5218*22dc650dSSadaf Ebrahimi/^X\R+?Z/no_start_optimize,no_auto_possess 5219*22dc650dSSadaf Ebrahimi\= Expect no match 5220*22dc650dSSadaf Ebrahimi X\nX 5221*22dc650dSSadaf Ebrahimi X\n\r\n 5222*22dc650dSSadaf Ebrahimi X\n\rY 5223*22dc650dSSadaf Ebrahimi X\n\nY 5224*22dc650dSSadaf Ebrahimi X\n\x{0c}Y 5225*22dc650dSSadaf Ebrahimi 5226*22dc650dSSadaf Ebrahimi/(*BSR_ANYCRLF)^X\R+?Z/no_start_optimize,no_auto_possess 5227*22dc650dSSadaf Ebrahimi\= Expect no match 5228*22dc650dSSadaf Ebrahimi X\nX 5229*22dc650dSSadaf Ebrahimi X\n\r\n 5230*22dc650dSSadaf Ebrahimi X\n\rY 5231*22dc650dSSadaf Ebrahimi X\n\nY 5232*22dc650dSSadaf Ebrahimi X\n\x{0c}Y 5233*22dc650dSSadaf Ebrahimi 5234*22dc650dSSadaf Ebrahimi/^X\H+?Z/no_start_optimize,no_auto_possess 5235*22dc650dSSadaf Ebrahimi\= Expect no match 5236*22dc650dSSadaf Ebrahimi XY\t 5237*22dc650dSSadaf Ebrahimi XYY 5238*22dc650dSSadaf Ebrahimi 5239*22dc650dSSadaf Ebrahimi/^X\h+?Z/no_start_optimize,no_auto_possess 5240*22dc650dSSadaf Ebrahimi\= Expect no match 5241*22dc650dSSadaf Ebrahimi X\t\t 5242*22dc650dSSadaf Ebrahimi X\tY 5243*22dc650dSSadaf Ebrahimi 5244*22dc650dSSadaf Ebrahimi/^X\V+?Z/no_start_optimize,no_auto_possess 5245*22dc650dSSadaf Ebrahimi\= Expect no match 5246*22dc650dSSadaf Ebrahimi XY\n 5247*22dc650dSSadaf Ebrahimi XYY 5248*22dc650dSSadaf Ebrahimi 5249*22dc650dSSadaf Ebrahimi/^X\v+?Z/no_start_optimize,no_auto_possess 5250*22dc650dSSadaf Ebrahimi\= Expect no match 5251*22dc650dSSadaf Ebrahimi X\n\n 5252*22dc650dSSadaf Ebrahimi X\nY 5253*22dc650dSSadaf Ebrahimi 5254*22dc650dSSadaf Ebrahimi/^X\D+?Z/no_start_optimize,no_auto_possess 5255*22dc650dSSadaf Ebrahimi\= Expect no match 5256*22dc650dSSadaf Ebrahimi XY9 5257*22dc650dSSadaf Ebrahimi XYY 5258*22dc650dSSadaf Ebrahimi 5259*22dc650dSSadaf Ebrahimi/^X\d+?Z/no_start_optimize,no_auto_possess 5260*22dc650dSSadaf Ebrahimi\= Expect no match 5261*22dc650dSSadaf Ebrahimi X99 5262*22dc650dSSadaf Ebrahimi X9Y 5263*22dc650dSSadaf Ebrahimi 5264*22dc650dSSadaf Ebrahimi/^X\S+?Z/no_start_optimize,no_auto_possess 5265*22dc650dSSadaf Ebrahimi\= Expect no match 5266*22dc650dSSadaf Ebrahimi XY\n 5267*22dc650dSSadaf Ebrahimi XYY 5268*22dc650dSSadaf Ebrahimi 5269*22dc650dSSadaf Ebrahimi/^X\s+?Z/no_start_optimize,no_auto_possess 5270*22dc650dSSadaf Ebrahimi\= Expect no match 5271*22dc650dSSadaf Ebrahimi X\n\n 5272*22dc650dSSadaf Ebrahimi X\nY 5273*22dc650dSSadaf Ebrahimi 5274*22dc650dSSadaf Ebrahimi/^X\W+?Z/no_start_optimize,no_auto_possess 5275*22dc650dSSadaf Ebrahimi\= Expect no match 5276*22dc650dSSadaf Ebrahimi X.A 5277*22dc650dSSadaf Ebrahimi X++ 5278*22dc650dSSadaf Ebrahimi 5279*22dc650dSSadaf Ebrahimi/^X\w+?Z/no_start_optimize,no_auto_possess 5280*22dc650dSSadaf Ebrahimi\= Expect no match 5281*22dc650dSSadaf Ebrahimi Xa. 5282*22dc650dSSadaf Ebrahimi Xaa 5283*22dc650dSSadaf Ebrahimi 5284*22dc650dSSadaf Ebrahimi/^X.{1,3}Z/s,no_start_optimize,no_auto_possess 5285*22dc650dSSadaf Ebrahimi\= Expect no match 5286*22dc650dSSadaf Ebrahimi Xa.bd 5287*22dc650dSSadaf Ebrahimi 5288*22dc650dSSadaf Ebrahimi/^X\h+Z/no_start_optimize,no_auto_possess 5289*22dc650dSSadaf Ebrahimi\= Expect no match 5290*22dc650dSSadaf Ebrahimi X\t\t 5291*22dc650dSSadaf Ebrahimi X\tY 5292*22dc650dSSadaf Ebrahimi 5293*22dc650dSSadaf Ebrahimi/^X\V+Z/no_start_optimize,no_auto_possess 5294*22dc650dSSadaf Ebrahimi\= Expect no match 5295*22dc650dSSadaf Ebrahimi XY\n 5296*22dc650dSSadaf Ebrahimi XYY 5297*22dc650dSSadaf Ebrahimi 5298*22dc650dSSadaf Ebrahimi/^(X(*THEN)Y|AB){0}(?1)/ 5299*22dc650dSSadaf Ebrahimi ABX 5300*22dc650dSSadaf Ebrahimi\= Expect no match 5301*22dc650dSSadaf Ebrahimi XAB 5302*22dc650dSSadaf Ebrahimi 5303*22dc650dSSadaf Ebrahimi/^(?!A(?C1)B)C/ 5304*22dc650dSSadaf Ebrahimi ABC\=callout_error=1,no_jit 5305*22dc650dSSadaf Ebrahimi 5306*22dc650dSSadaf Ebrahimi/^(?!A(?C1)B)C/no_start_optimize 5307*22dc650dSSadaf Ebrahimi ABC\=callout_error=1 5308*22dc650dSSadaf Ebrahimi 5309*22dc650dSSadaf Ebrahimi/^(?(?!A(?C1)B)C)/ 5310*22dc650dSSadaf Ebrahimi ABC\=callout_error=1 5311*22dc650dSSadaf Ebrahimi 5312*22dc650dSSadaf Ebrahimi# ---------------------------------------------------------------------- 5313*22dc650dSSadaf Ebrahimi 5314*22dc650dSSadaf Ebrahimi/[a b c]/BxxI 5315*22dc650dSSadaf Ebrahimi 5316*22dc650dSSadaf Ebrahimi/[a b c]/BxxxI 5317*22dc650dSSadaf Ebrahimi 5318*22dc650dSSadaf Ebrahimi/[a b c]/B,extended_more 5319*22dc650dSSadaf Ebrahimi 5320*22dc650dSSadaf Ebrahimi/[ a b c ]/B,extended_more 5321*22dc650dSSadaf Ebrahimi 5322*22dc650dSSadaf Ebrahimi/[a b](?xx: [ 12 ] (?-xx:[ 34 ]) )y z/B 5323*22dc650dSSadaf Ebrahimi 5324*22dc650dSSadaf Ebrahimi# Unsetting /x also unsets /xx 5325*22dc650dSSadaf Ebrahimi 5326*22dc650dSSadaf Ebrahimi/[a b](?xx: [ 12 ] (?-x:[ 34 ]) )y z/B 5327*22dc650dSSadaf Ebrahimi 5328*22dc650dSSadaf Ebrahimi/(a)(?-n:(b))(c)/nB 5329*22dc650dSSadaf Ebrahimi 5330*22dc650dSSadaf Ebrahimi# ---------------------------------------------------------------------- 5331*22dc650dSSadaf Ebrahimi# These test the dangerous PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL option. 5332*22dc650dSSadaf Ebrahimi 5333*22dc650dSSadaf Ebrahimi/\j\x{z}\o{82}\L\uabcd\u\U\g{\g/B,\bad_escape_is_literal 5334*22dc650dSSadaf Ebrahimi 5335*22dc650dSSadaf Ebrahimi/\N{\c/IB,bad_escape_is_literal 5336*22dc650dSSadaf Ebrahimi 5337*22dc650dSSadaf Ebrahimi/[\j\x{z}\o\gAb\g]/B,bad_escape_is_literal 5338*22dc650dSSadaf Ebrahimi 5339*22dc650dSSadaf Ebrahimi/[Q-\N]/B,bad_escape_is_literal 5340*22dc650dSSadaf Ebrahimi 5341*22dc650dSSadaf Ebrahimi/[\s-_]/bad_escape_is_literal 5342*22dc650dSSadaf Ebrahimi 5343*22dc650dSSadaf Ebrahimi/[_-\s]/bad_escape_is_literal 5344*22dc650dSSadaf Ebrahimi 5345*22dc650dSSadaf Ebrahimi/[\B\R\X]/B 5346*22dc650dSSadaf Ebrahimi 5347*22dc650dSSadaf Ebrahimi/[\B\R\X]/B,bad_escape_is_literal 5348*22dc650dSSadaf Ebrahimi 5349*22dc650dSSadaf Ebrahimi/[A-\BP-\RV-\X]/B 5350*22dc650dSSadaf Ebrahimi 5351*22dc650dSSadaf Ebrahimi/[A-\BP-\RV-\X]/B,bad_escape_is_literal 5352*22dc650dSSadaf Ebrahimi 5353*22dc650dSSadaf Ebrahimi# ---------------------------------------------------------------------- 5354*22dc650dSSadaf Ebrahimi 5355*22dc650dSSadaf Ebrahimi/a\b(c/literal 5356*22dc650dSSadaf Ebrahimi a\\b(c 5357*22dc650dSSadaf Ebrahimi 5358*22dc650dSSadaf Ebrahimi/a\b(c/literal,caseless 5359*22dc650dSSadaf Ebrahimi a\\b(c 5360*22dc650dSSadaf Ebrahimi a\\B(c 5361*22dc650dSSadaf Ebrahimi 5362*22dc650dSSadaf Ebrahimi/a\b(c/literal,firstline 5363*22dc650dSSadaf Ebrahimi XYYa\\b(c 5364*22dc650dSSadaf Ebrahimi\= Expect no match 5365*22dc650dSSadaf Ebrahimi X\na\\b(c 5366*22dc650dSSadaf Ebrahimi 5367*22dc650dSSadaf Ebrahimi/a\b?c/literal,use_offset_limit 5368*22dc650dSSadaf Ebrahimi XXXXa\\b?c\=offset_limit=4 5369*22dc650dSSadaf Ebrahimi\= Expect no match 5370*22dc650dSSadaf Ebrahimi XXXXa\\b?c\=offset_limit=3 5371*22dc650dSSadaf Ebrahimi 5372*22dc650dSSadaf Ebrahimi/a\b(c/literal,anchored,endanchored 5373*22dc650dSSadaf Ebrahimi a\\b(c 5374*22dc650dSSadaf Ebrahimi\= Expect no match 5375*22dc650dSSadaf Ebrahimi Xa\\b(c 5376*22dc650dSSadaf Ebrahimi a\\b(cX 5377*22dc650dSSadaf Ebrahimi Xa\\b(cX 5378*22dc650dSSadaf Ebrahimi 5379*22dc650dSSadaf Ebrahimi//literal,extended 5380*22dc650dSSadaf Ebrahimi 5381*22dc650dSSadaf Ebrahimi/a\b(c/literal,auto_callout,no_start_optimize 5382*22dc650dSSadaf Ebrahimi XXXXa\\b(c 5383*22dc650dSSadaf Ebrahimi 5384*22dc650dSSadaf Ebrahimi/a\b(c/literal,auto_callout 5385*22dc650dSSadaf Ebrahimi XXXXa\\b(c 5386*22dc650dSSadaf Ebrahimi 5387*22dc650dSSadaf Ebrahimi/(*CR)abc/literal 5388*22dc650dSSadaf Ebrahimi (*CR)abc 5389*22dc650dSSadaf Ebrahimi 5390*22dc650dSSadaf Ebrahimi/cat|dog/I,match_word 5391*22dc650dSSadaf Ebrahimi the cat sat 5392*22dc650dSSadaf Ebrahimi\= Expect no match 5393*22dc650dSSadaf Ebrahimi caterpillar 5394*22dc650dSSadaf Ebrahimi snowcat 5395*22dc650dSSadaf Ebrahimi syndicate 5396*22dc650dSSadaf Ebrahimi 5397*22dc650dSSadaf Ebrahimi/(cat)|dog/I,match_line,literal 5398*22dc650dSSadaf Ebrahimi (cat)|dog 5399*22dc650dSSadaf Ebrahimi\= Expect no match 5400*22dc650dSSadaf Ebrahimi the cat sat 5401*22dc650dSSadaf Ebrahimi caterpillar 5402*22dc650dSSadaf Ebrahimi snowcat 5403*22dc650dSSadaf Ebrahimi syndicate 5404*22dc650dSSadaf Ebrahimi 5405*22dc650dSSadaf Ebrahimi/a whole line/match_line,multiline 5406*22dc650dSSadaf Ebrahimi Rhubarb \na whole line\n custard 5407*22dc650dSSadaf Ebrahimi\= Expect no match 5408*22dc650dSSadaf Ebrahimi Not a whole line 5409*22dc650dSSadaf Ebrahimi 5410*22dc650dSSadaf Ebrahimi# Perl gets this wrong, failing to capture 'b' in group 1. 5411*22dc650dSSadaf Ebrahimi 5412*22dc650dSSadaf Ebrahimi/^(b+|a){1,2}?bc/ 5413*22dc650dSSadaf Ebrahimi bbc 5414*22dc650dSSadaf Ebrahimi 5415*22dc650dSSadaf Ebrahimi# And again here, for the "babc" subject string. 5416*22dc650dSSadaf Ebrahimi 5417*22dc650dSSadaf Ebrahimi/^(b*|ba){1,2}?bc/ 5418*22dc650dSSadaf Ebrahimi babc 5419*22dc650dSSadaf Ebrahimi bbabc 5420*22dc650dSSadaf Ebrahimi bababc 5421*22dc650dSSadaf Ebrahimi\= Expect no match 5422*22dc650dSSadaf Ebrahimi bababbc 5423*22dc650dSSadaf Ebrahimi babababc 5424*22dc650dSSadaf Ebrahimi 5425*22dc650dSSadaf Ebrahimi/[[:digit:]-a]/ 5426*22dc650dSSadaf Ebrahimi 5427*22dc650dSSadaf Ebrahimi/[[:digit:]-[:print:]]/ 5428*22dc650dSSadaf Ebrahimi 5429*22dc650dSSadaf Ebrahimi/[\d-a]/ 5430*22dc650dSSadaf Ebrahimi 5431*22dc650dSSadaf Ebrahimi/[\H-z]/ 5432*22dc650dSSadaf Ebrahimi 5433*22dc650dSSadaf Ebrahimi/[\d-[:print:]]/ 5434*22dc650dSSadaf Ebrahimi 5435*22dc650dSSadaf Ebrahimi# Perl gets the second of these wrong, giving no match. 5436*22dc650dSSadaf Ebrahimi 5437*22dc650dSSadaf Ebrahimi"(?<=(a))\1?b"I 5438*22dc650dSSadaf Ebrahimi ab 5439*22dc650dSSadaf Ebrahimi aaab 5440*22dc650dSSadaf Ebrahimi 5441*22dc650dSSadaf Ebrahimi"(?=(a))\1?b"I 5442*22dc650dSSadaf Ebrahimi ab 5443*22dc650dSSadaf Ebrahimi aaab 5444*22dc650dSSadaf Ebrahimi 5445*22dc650dSSadaf Ebrahimi# JIT does not support callout_extra 5446*22dc650dSSadaf Ebrahimi 5447*22dc650dSSadaf Ebrahimi/(*NO_JIT)(a+)b/auto_callout,no_start_optimize,no_auto_possess 5448*22dc650dSSadaf Ebrahimi\= Expect no match 5449*22dc650dSSadaf Ebrahimi aac\=callout_extra 5450*22dc650dSSadaf Ebrahimi 5451*22dc650dSSadaf Ebrahimi/(*NO_JIT)a+(?C'XXX')b/no_start_optimize,no_auto_possess 5452*22dc650dSSadaf Ebrahimi\= Expect no match 5453*22dc650dSSadaf Ebrahimi aac\=callout_extra 5454*22dc650dSSadaf Ebrahimi 5455*22dc650dSSadaf Ebrahimi/\n/firstline 5456*22dc650dSSadaf Ebrahimi xyz\nabc 5457*22dc650dSSadaf Ebrahimi 5458*22dc650dSSadaf Ebrahimi/\nabc/firstline 5459*22dc650dSSadaf Ebrahimi xyz\nabc 5460*22dc650dSSadaf Ebrahimi 5461*22dc650dSSadaf Ebrahimi/\x{0a}abc/firstline,newline=crlf 5462*22dc650dSSadaf Ebrahimi\= Expect no match 5463*22dc650dSSadaf Ebrahimi xyz\r\nabc 5464*22dc650dSSadaf Ebrahimi 5465*22dc650dSSadaf Ebrahimi/[abc]/firstline 5466*22dc650dSSadaf Ebrahimi\= Expect no match 5467*22dc650dSSadaf Ebrahimi \na 5468*22dc650dSSadaf Ebrahimi 5469*22dc650dSSadaf Ebrahimi# These tests are matched in test 1 as they are Perl compatible. Here we are 5470*22dc650dSSadaf Ebrahimi# looking at what does and does not get auto-possessified. 5471*22dc650dSSadaf Ebrahimi 5472*22dc650dSSadaf Ebrahimi/(?(DEFINE)(?<optional_a>a?))^(?&optional_a)a$/B 5473*22dc650dSSadaf Ebrahimi 5474*22dc650dSSadaf Ebrahimi/(?(DEFINE)(?<optional_a>a?)X)^(?&optional_a)a$/B 5475*22dc650dSSadaf Ebrahimi 5476*22dc650dSSadaf Ebrahimi/^(a?)b(?1)a/B 5477*22dc650dSSadaf Ebrahimi 5478*22dc650dSSadaf Ebrahimi/^(a?)+b(?1)a/B 5479*22dc650dSSadaf Ebrahimi 5480*22dc650dSSadaf Ebrahimi/^(a?)++b(?1)a/B 5481*22dc650dSSadaf Ebrahimi 5482*22dc650dSSadaf Ebrahimi/^(a?)+b/B 5483*22dc650dSSadaf Ebrahimi 5484*22dc650dSSadaf Ebrahimi/(?=a+)a(a+)++b/B 5485*22dc650dSSadaf Ebrahimi 5486*22dc650dSSadaf Ebrahimi/(?<=(?=.){4,5}x)/B 5487*22dc650dSSadaf Ebrahimi 5488*22dc650dSSadaf Ebrahimi# Perl behaves differently with these when optimization is turned off 5489*22dc650dSSadaf Ebrahimi 5490*22dc650dSSadaf Ebrahimi/a(*PRUNE:X)bc|qq/mark,no_start_optimize 5491*22dc650dSSadaf Ebrahimi\= Expect no match 5492*22dc650dSSadaf Ebrahimi axy 5493*22dc650dSSadaf Ebrahimi 5494*22dc650dSSadaf Ebrahimi/a(*THEN:X)bc|qq/mark,no_start_optimize 5495*22dc650dSSadaf Ebrahimi\= Expect no match 5496*22dc650dSSadaf Ebrahimi axy 5497*22dc650dSSadaf Ebrahimi 5498*22dc650dSSadaf Ebrahimi/(?^x-i)AB/ 5499*22dc650dSSadaf Ebrahimi 5500*22dc650dSSadaf Ebrahimi/(?^-i)AB/ 5501*22dc650dSSadaf Ebrahimi 5502*22dc650dSSadaf Ebrahimi/(?x-i-i)/ 5503*22dc650dSSadaf Ebrahimi 5504*22dc650dSSadaf Ebrahimi/(?(?=^))b/I 5505*22dc650dSSadaf Ebrahimi abc 5506*22dc650dSSadaf Ebrahimi 5507*22dc650dSSadaf Ebrahimi/(?(?=^)|)b/I 5508*22dc650dSSadaf Ebrahimi abc 5509*22dc650dSSadaf Ebrahimi 5510*22dc650dSSadaf Ebrahimi/(?(?=^)|^)b/I 5511*22dc650dSSadaf Ebrahimi bbc 5512*22dc650dSSadaf Ebrahimi\= Expect no match 5513*22dc650dSSadaf Ebrahimi abc 5514*22dc650dSSadaf Ebrahimi 5515*22dc650dSSadaf Ebrahimi/(?(1)^|^())/I 5516*22dc650dSSadaf Ebrahimi 5517*22dc650dSSadaf Ebrahimi/(?(1)^())b/I 5518*22dc650dSSadaf Ebrahimi 5519*22dc650dSSadaf Ebrahimi/(?(1)^())+b/I,aftertext 5520*22dc650dSSadaf Ebrahimi abc 5521*22dc650dSSadaf Ebrahimi 5522*22dc650dSSadaf Ebrahimi/(?(1)^()|^)+b/I,aftertext 5523*22dc650dSSadaf Ebrahimi bbc 5524*22dc650dSSadaf Ebrahimi\= Expect no match 5525*22dc650dSSadaf Ebrahimi abc 5526*22dc650dSSadaf Ebrahimi 5527*22dc650dSSadaf Ebrahimi/(?(1)^()|^)*b/I,aftertext 5528*22dc650dSSadaf Ebrahimi bbc 5529*22dc650dSSadaf Ebrahimi abc 5530*22dc650dSSadaf Ebrahimi xbc 5531*22dc650dSSadaf Ebrahimi 5532*22dc650dSSadaf Ebrahimi/(?(1)^())+b/I,aftertext 5533*22dc650dSSadaf Ebrahimi abc 5534*22dc650dSSadaf Ebrahimi 5535*22dc650dSSadaf Ebrahimi/(?(1)^a()|^a)+b/I,aftertext 5536*22dc650dSSadaf Ebrahimi abc 5537*22dc650dSSadaf Ebrahimi\= Expect no match 5538*22dc650dSSadaf Ebrahimi bbc 5539*22dc650dSSadaf Ebrahimi 5540*22dc650dSSadaf Ebrahimi/(?(1)^|^(a))+b/I,aftertext 5541*22dc650dSSadaf Ebrahimi abc 5542*22dc650dSSadaf Ebrahimi\= Expect no match 5543*22dc650dSSadaf Ebrahimi bbc 5544*22dc650dSSadaf Ebrahimi 5545*22dc650dSSadaf Ebrahimi/(?(1)^a()|^a)*b/I,aftertext 5546*22dc650dSSadaf Ebrahimi abc 5547*22dc650dSSadaf Ebrahimi bbc 5548*22dc650dSSadaf Ebrahimi xbc 5549*22dc650dSSadaf Ebrahimi 5550*22dc650dSSadaf Ebrahimi/a(b)c|xyz/g,allvector,replace=<$0> 5551*22dc650dSSadaf Ebrahimi abcdefabcpqr\=ovector=4 5552*22dc650dSSadaf Ebrahimi abxyz\=ovector=4 5553*22dc650dSSadaf Ebrahimi abcdefxyz\=ovector=4 5554*22dc650dSSadaf Ebrahimi 5555*22dc650dSSadaf Ebrahimi/a(b)c|xyz/allvector 5556*22dc650dSSadaf Ebrahimi abcdef\=ovector=4 5557*22dc650dSSadaf Ebrahimi abxyz\=ovector=4 5558*22dc650dSSadaf Ebrahimi 5559*22dc650dSSadaf Ebrahimi/a(b)c|xyz/g,replace=<$0>,substitute_callout 5560*22dc650dSSadaf Ebrahimi abcdefabcpqr 5561*22dc650dSSadaf Ebrahimi abxyzpqrabcxyz 5562*22dc650dSSadaf Ebrahimi 12abc34xyz99abc55\=substitute_stop=2 5563*22dc650dSSadaf Ebrahimi 12abc34xyz99abc55\=substitute_skip=1 5564*22dc650dSSadaf Ebrahimi 12abc34xyz99abc55\=substitute_skip=2 5565*22dc650dSSadaf Ebrahimi 5566*22dc650dSSadaf Ebrahimi/a(b)c|xyz/g,replace=<$0> 5567*22dc650dSSadaf Ebrahimi abcdefabcpqr 5568*22dc650dSSadaf Ebrahimi abxyzpqrabcxyz 5569*22dc650dSSadaf Ebrahimi 12abc34xyz\=substitute_stop=2 5570*22dc650dSSadaf Ebrahimi 12abc34xyz\=substitute_skip=1 5571*22dc650dSSadaf Ebrahimi 5572*22dc650dSSadaf Ebrahimi/a(b)c|xyz/replace=<$0> 5573*22dc650dSSadaf Ebrahimi abcdefabcpqr 5574*22dc650dSSadaf Ebrahimi 12abc34xyz\=substitute_skip=1 5575*22dc650dSSadaf Ebrahimi 12abc34xyz\=substitute_stop=1 5576*22dc650dSSadaf Ebrahimi 5577*22dc650dSSadaf Ebrahimi/abc\rdef/ 5578*22dc650dSSadaf Ebrahimi abc\ndef 5579*22dc650dSSadaf Ebrahimi 5580*22dc650dSSadaf Ebrahimi/abc\rdef\x{0d}xyz/escaped_cr_is_lf 5581*22dc650dSSadaf Ebrahimi abc\ndef\rxyz 5582*22dc650dSSadaf Ebrahimi\= Expect no match 5583*22dc650dSSadaf Ebrahimi abc\ndef\nxyz 5584*22dc650dSSadaf Ebrahimi 5585*22dc650dSSadaf Ebrahimi/(?(*ACCEPT)xxx)/ 5586*22dc650dSSadaf Ebrahimi 5587*22dc650dSSadaf Ebrahimi/(?(*atomic:xx)xxx)/ 5588*22dc650dSSadaf Ebrahimi 5589*22dc650dSSadaf Ebrahimi/(?(*script_run:xxx)zzz)/ 5590*22dc650dSSadaf Ebrahimi 5591*22dc650dSSadaf Ebrahimi/foobar/ 5592*22dc650dSSadaf Ebrahimi the foobar thing\=copy_matched_subject 5593*22dc650dSSadaf Ebrahimi the foobar thing\=copy_matched_subject,zero_terminate 5594*22dc650dSSadaf Ebrahimi 5595*22dc650dSSadaf Ebrahimi/foobar/g 5596*22dc650dSSadaf Ebrahimi the foobar thing foobar again\=copy_matched_subject 5597*22dc650dSSadaf Ebrahimi 5598*22dc650dSSadaf Ebrahimi/(*:XX)^abc/I 5599*22dc650dSSadaf Ebrahimi 5600*22dc650dSSadaf Ebrahimi/(*COMMIT:XX)^abc/I 5601*22dc650dSSadaf Ebrahimi 5602*22dc650dSSadaf Ebrahimi/(*ACCEPT:XX)^abc/I 5603*22dc650dSSadaf Ebrahimi 5604*22dc650dSSadaf Ebrahimi/abc/replace=xyz 5605*22dc650dSSadaf Ebrahimi abc\=null_context 5606*22dc650dSSadaf Ebrahimi 5607*22dc650dSSadaf Ebrahimi/abc/replace=xyz,substitute_callout 5608*22dc650dSSadaf Ebrahimi abc 5609*22dc650dSSadaf Ebrahimi\= Expect error message 5610*22dc650dSSadaf Ebrahimi abc\=null_context 5611*22dc650dSSadaf Ebrahimi 5612*22dc650dSSadaf Ebrahimi/\[()]{65535}()/expand 5613*22dc650dSSadaf Ebrahimi 5614*22dc650dSSadaf Ebrahimi/\[()]{65535}(?<A>)/expand 5615*22dc650dSSadaf Ebrahimi 5616*22dc650dSSadaf Ebrahimi/a(?:(*ACCEPT))??bc/ 5617*22dc650dSSadaf Ebrahimi abc 5618*22dc650dSSadaf Ebrahimi axy 5619*22dc650dSSadaf Ebrahimi 5620*22dc650dSSadaf Ebrahimi/a(*ACCEPT)??bc/ 5621*22dc650dSSadaf Ebrahimi abc 5622*22dc650dSSadaf Ebrahimi axy 5623*22dc650dSSadaf Ebrahimi 5624*22dc650dSSadaf Ebrahimi/a(*ACCEPT:XX)??bc/mark 5625*22dc650dSSadaf Ebrahimi abc 5626*22dc650dSSadaf Ebrahimi axy 5627*22dc650dSSadaf Ebrahimi 5628*22dc650dSSadaf Ebrahimi/(*:\)?/ 5629*22dc650dSSadaf Ebrahimi 5630*22dc650dSSadaf Ebrahimi/(*:\Q \E){5}/alt_verbnames 5631*22dc650dSSadaf Ebrahimi 5632*22dc650dSSadaf Ebrahimi/(?=abc)/I 5633*22dc650dSSadaf Ebrahimi 5634*22dc650dSSadaf Ebrahimi/(?|(X)|(XY))\1abc/I 5635*22dc650dSSadaf Ebrahimi 5636*22dc650dSSadaf Ebrahimi/(?|(a)|(bcde))(c)\2/I 5637*22dc650dSSadaf Ebrahimi 5638*22dc650dSSadaf Ebrahimi/(?|(a)|(bcde))(c)\1/I 5639*22dc650dSSadaf Ebrahimi 5640*22dc650dSSadaf Ebrahimi/(?|(?'A'a)|(?'A'bcde))(?'B'c)\k'B'(?'A')/I,dupnames 5641*22dc650dSSadaf Ebrahimi 5642*22dc650dSSadaf Ebrahimi/(?|(?'A'a)|(?'A'bcde))(?'B'c)\k'A'(?'A')/I,dupnames 5643*22dc650dSSadaf Ebrahimi 5644*22dc650dSSadaf Ebrahimi/((a|)+)+Z/I 5645*22dc650dSSadaf Ebrahimi 5646*22dc650dSSadaf Ebrahimi/((?=a))[abcd]/I 5647*22dc650dSSadaf Ebrahimi 5648*22dc650dSSadaf Ebrahimi/A(?:(*ACCEPT))?B/info 5649*22dc650dSSadaf Ebrahimi 5650*22dc650dSSadaf Ebrahimi/(A(*ACCEPT)??B)C/ 5651*22dc650dSSadaf Ebrahimi ABC 5652*22dc650dSSadaf Ebrahimi AXY 5653*22dc650dSSadaf Ebrahimi 5654*22dc650dSSadaf Ebrahimi/(?<=(?<=a)b)c.*/I 5655*22dc650dSSadaf Ebrahimi abc\=ph 5656*22dc650dSSadaf Ebrahimi\= Expect no match 5657*22dc650dSSadaf Ebrahimi xbc\=ph 5658*22dc650dSSadaf Ebrahimi 5659*22dc650dSSadaf Ebrahimi/(?<=ab)c.*/I 5660*22dc650dSSadaf Ebrahimi abc\=ph 5661*22dc650dSSadaf Ebrahimi\= Expect no match 5662*22dc650dSSadaf Ebrahimi xbc\=ph 5663*22dc650dSSadaf Ebrahimi 5664*22dc650dSSadaf Ebrahimi/(?<=a(?<=a|a)c)/I 5665*22dc650dSSadaf Ebrahimi 5666*22dc650dSSadaf Ebrahimi/(?<=a(?<=a|ba)c)/I 5667*22dc650dSSadaf Ebrahimi 5668*22dc650dSSadaf Ebrahimi/(?<=(?<=a)b)(?<!abcd)/I 5669*22dc650dSSadaf Ebrahimi 5670*22dc650dSSadaf Ebrahimi/(?<=(?<=a)b)(?<!abcd)(?<=(?<=a)bcde)/I 5671*22dc650dSSadaf Ebrahimi 5672*22dc650dSSadaf Ebrahimi# Addition overflow 5673*22dc650dSSadaf Ebrahimi/( {32742} {42})(?<!\1{65481})/ 5674*22dc650dSSadaf Ebrahimi 5675*22dc650dSSadaf Ebrahimi# Multiplication overflow 5676*22dc650dSSadaf Ebrahimi/(X{65535})(?<=\1{32770})/ 5677*22dc650dSSadaf Ebrahimi 5678*22dc650dSSadaf Ebrahimi# ---- Non-atomic assertion tests ---- 5679*22dc650dSSadaf Ebrahimi 5680*22dc650dSSadaf Ebrahimi# Expect error: not allowed as a condition 5681*22dc650dSSadaf Ebrahimi/(?(*napla:xx)bc)/ 5682*22dc650dSSadaf Ebrahimi 5683*22dc650dSSadaf Ebrahimi/\A(*pla:.*\b(\w++))(?>.*?\b\1\b){3}/ 5684*22dc650dSSadaf Ebrahimi word1 word3 word1 word2 word3 word2 word2 word1 word3 word4 5685*22dc650dSSadaf Ebrahimi 5686*22dc650dSSadaf Ebrahimi/\A(*napla:.*\b(\w++))(?>.*?\b\1\b){3}/ 5687*22dc650dSSadaf Ebrahimi word1 word3 word1 word2 word3 word2 word2 word1 word3 word4 5688*22dc650dSSadaf Ebrahimi 5689*22dc650dSSadaf Ebrahimi/\A(?*.*\b(\w++))(?>.*?\b\1\b){3}/ 5690*22dc650dSSadaf Ebrahimi word1 word3 word1 word2 word3 word2 word2 word1 word3 word4 5691*22dc650dSSadaf Ebrahimi 5692*22dc650dSSadaf Ebrahimi/(*plb:(.)..|(.)...)(\1|\2)/ 5693*22dc650dSSadaf Ebrahimi abcdb\=offset=4 5694*22dc650dSSadaf Ebrahimi abcda\=offset=4 5695*22dc650dSSadaf Ebrahimi 5696*22dc650dSSadaf Ebrahimi/(*naplb:(.)..|(.)...)(\1|\2)/ 5697*22dc650dSSadaf Ebrahimi abcdb\=offset=4 5698*22dc650dSSadaf Ebrahimi abcda\=offset=4 5699*22dc650dSSadaf Ebrahimi 5700*22dc650dSSadaf Ebrahimi/(?<*(.)..|(.)...)(\1|\2)/ 5701*22dc650dSSadaf Ebrahimi abcdb\=offset=4 5702*22dc650dSSadaf Ebrahimi abcda\=offset=4 5703*22dc650dSSadaf Ebrahimi 5704*22dc650dSSadaf Ebrahimi/(*non_atomic_positive_lookahead:ab)/B 5705*22dc650dSSadaf Ebrahimi 5706*22dc650dSSadaf Ebrahimi/(*non_atomic_positive_lookbehind:ab)/B 5707*22dc650dSSadaf Ebrahimi 5708*22dc650dSSadaf Ebrahimi/(*pla:ab+)/B 5709*22dc650dSSadaf Ebrahimi 5710*22dc650dSSadaf Ebrahimi/(*napla:ab+)/B 5711*22dc650dSSadaf Ebrahimi 5712*22dc650dSSadaf Ebrahimi/(*napla:)+/ 5713*22dc650dSSadaf Ebrahimi 5714*22dc650dSSadaf Ebrahimi/(*naplb:)+/ 5715*22dc650dSSadaf Ebrahimi 5716*22dc650dSSadaf Ebrahimi/(*napla:^x|^y)/I 5717*22dc650dSSadaf Ebrahimi 5718*22dc650dSSadaf Ebrahimi/(*napla:abc|abd)/I 5719*22dc650dSSadaf Ebrahimi 5720*22dc650dSSadaf Ebrahimi/(*napla:a|(.)(*ACCEPT)zz)\1../ 5721*22dc650dSSadaf Ebrahimi abcd 5722*22dc650dSSadaf Ebrahimi 5723*22dc650dSSadaf Ebrahimi/(*napla:a(*ACCEPT)zz|(.))\1../ 5724*22dc650dSSadaf Ebrahimi abcd 5725*22dc650dSSadaf Ebrahimi 5726*22dc650dSSadaf Ebrahimi/(*napla:a|(*COMMIT)(.))\1\1/ 5727*22dc650dSSadaf Ebrahimi aabc 5728*22dc650dSSadaf Ebrahimi\= Expect no match 5729*22dc650dSSadaf Ebrahimi abbc 5730*22dc650dSSadaf Ebrahimi 5731*22dc650dSSadaf Ebrahimi/(*napla:a|(.))\1\1/ 5732*22dc650dSSadaf Ebrahimi aabc 5733*22dc650dSSadaf Ebrahimi abbc 5734*22dc650dSSadaf Ebrahimi 5735*22dc650dSSadaf Ebrahimi/(*naplb:ab?c|PQ).../g 5736*22dc650dSSadaf Ebrahimi abcdefgacxyzPQR123 5737*22dc650dSSadaf Ebrahimi 5738*22dc650dSSadaf Ebrahimi# ---- 5739*22dc650dSSadaf Ebrahimi 5740*22dc650dSSadaf Ebrahimi# Expect error (recursion => not fixed length) 5741*22dc650dSSadaf Ebrahimi/(\2)((?=(?<=\1)))/ 5742*22dc650dSSadaf Ebrahimi 5743*22dc650dSSadaf Ebrahimi/c*+(?<=[bc])/ 5744*22dc650dSSadaf Ebrahimi abc\=ph 5745*22dc650dSSadaf Ebrahimi ab\=ph 5746*22dc650dSSadaf Ebrahimi abc\=ps 5747*22dc650dSSadaf Ebrahimi ab\=ps 5748*22dc650dSSadaf Ebrahimi 5749*22dc650dSSadaf Ebrahimi/c++(?<=[bc])/ 5750*22dc650dSSadaf Ebrahimi abc\=ph 5751*22dc650dSSadaf Ebrahimi ab\=ph 5752*22dc650dSSadaf Ebrahimi 5753*22dc650dSSadaf Ebrahimi/(?<=(?=.(?<=x)))/ 5754*22dc650dSSadaf Ebrahimi abx 5755*22dc650dSSadaf Ebrahimi ab\=ph 5756*22dc650dSSadaf Ebrahimi bxyz 5757*22dc650dSSadaf Ebrahimi xyz 5758*22dc650dSSadaf Ebrahimi 5759*22dc650dSSadaf Ebrahimi/\z/ 5760*22dc650dSSadaf Ebrahimi abc\=ph 5761*22dc650dSSadaf Ebrahimi abc\=ps 5762*22dc650dSSadaf Ebrahimi 5763*22dc650dSSadaf Ebrahimi/\Z/ 5764*22dc650dSSadaf Ebrahimi abc\=ph 5765*22dc650dSSadaf Ebrahimi abc\=ps 5766*22dc650dSSadaf Ebrahimi abc\n\=ph 5767*22dc650dSSadaf Ebrahimi abc\n\=ps 5768*22dc650dSSadaf Ebrahimi 5769*22dc650dSSadaf Ebrahimi/(?![ab]).*/ 5770*22dc650dSSadaf Ebrahimi ab\=ph 5771*22dc650dSSadaf Ebrahimi 5772*22dc650dSSadaf Ebrahimi/c*+/ 5773*22dc650dSSadaf Ebrahimi ab\=ph,offset=2 5774*22dc650dSSadaf Ebrahimi 5775*22dc650dSSadaf Ebrahimi/\A\s*(a|(?:[^`]{28500}){4})/I 5776*22dc650dSSadaf Ebrahimi a 5777*22dc650dSSadaf Ebrahimi 5778*22dc650dSSadaf Ebrahimi/\A\s*((?:[^`]{28500}){4})/I 5779*22dc650dSSadaf Ebrahimi 5780*22dc650dSSadaf Ebrahimi/\A\s*((?:[^`]{28500}){4}|a)/I 5781*22dc650dSSadaf Ebrahimi a 5782*22dc650dSSadaf Ebrahimi 5783*22dc650dSSadaf Ebrahimi/(?<A>a)(?(<A>)b)((?<=b).*)/B 5784*22dc650dSSadaf Ebrahimi 5785*22dc650dSSadaf Ebrahimi/(?(1)b)((?<=b).*)/B 5786*22dc650dSSadaf Ebrahimi 5787*22dc650dSSadaf Ebrahimi/(?(R1)b)((?<=b).*)/B 5788*22dc650dSSadaf Ebrahimi 5789*22dc650dSSadaf Ebrahimi/(?(DEFINE)b)((?<=b).*)/B 5790*22dc650dSSadaf Ebrahimi 5791*22dc650dSSadaf Ebrahimi/(?(VERSION=10.3)b)((?<=b).*)/B 5792*22dc650dSSadaf Ebrahimi 5793*22dc650dSSadaf Ebrahimi/[aA]b[cC]/IB 5794*22dc650dSSadaf Ebrahimi 5795*22dc650dSSadaf Ebrahimi/[cc]abcd/I 5796*22dc650dSSadaf Ebrahimi 5797*22dc650dSSadaf Ebrahimi/[Cc]abcd/I 5798*22dc650dSSadaf Ebrahimi 5799*22dc650dSSadaf Ebrahimi/[c]abcd/I 5800*22dc650dSSadaf Ebrahimi 5801*22dc650dSSadaf Ebrahimi/(?:c|C)abcd/I 5802*22dc650dSSadaf Ebrahimi 5803*22dc650dSSadaf Ebrahimi/(a)?a/I 5804*22dc650dSSadaf Ebrahimi manm 5805*22dc650dSSadaf Ebrahimi 5806*22dc650dSSadaf Ebrahimi/^(?|(\*)(*napla:\S*_(\2?+.+))|(\w)(?=\S*_(\2?+\1)))+_\2$/ 5807*22dc650dSSadaf Ebrahimi *abc_12345abc 5808*22dc650dSSadaf Ebrahimi 5809*22dc650dSSadaf Ebrahimi/^(?|(\*)(*napla:\S*_(\3?+.+))|(\w)(?=\S*_((\2?+\1))))+_\2$/ 5810*22dc650dSSadaf Ebrahimi *abc_12345abc 5811*22dc650dSSadaf Ebrahimi 5812*22dc650dSSadaf Ebrahimi/^((\1+)(?C)|\d)+133X$/ 5813*22dc650dSSadaf Ebrahimi 111133X\=callout_capture 5814*22dc650dSSadaf Ebrahimi 5815*22dc650dSSadaf Ebrahimi/abc/replace=xyz,substitute_replacement_only 5816*22dc650dSSadaf Ebrahimi 123abc456 5817*22dc650dSSadaf Ebrahimi 5818*22dc650dSSadaf Ebrahimi/a(?<ONE>b)c(?<TWO>d)e/g,replace=X$ONE+${TWO}Z,substitute_replacement_only 5819*22dc650dSSadaf Ebrahimi "abcde-abcde-" 5820*22dc650dSSadaf Ebrahimi 5821*22dc650dSSadaf Ebrahimi/a(b)c|xyz/g,replace=<$0>,substitute_callout,substitute_replacement_only 5822*22dc650dSSadaf Ebrahimi abcdefabcpqr 5823*22dc650dSSadaf Ebrahimi abxyzpqrabcxyz 5824*22dc650dSSadaf Ebrahimi 12abc34xyz99abc55\=substitute_stop=2 5825*22dc650dSSadaf Ebrahimi 12abc34xyz99abc55\=substitute_skip=1 5826*22dc650dSSadaf Ebrahimi 12abc34xyz99abc55\=substitute_skip=2 5827*22dc650dSSadaf Ebrahimi 5828*22dc650dSSadaf Ebrahimi/a(..)d/replace=>$1<,substitute_matched 5829*22dc650dSSadaf Ebrahimi xyzabcdxyzabcdxyz 5830*22dc650dSSadaf Ebrahimi xyzabcdxyzabcdxyz\=ovector=2 5831*22dc650dSSadaf Ebrahimi\= Expect error 5832*22dc650dSSadaf Ebrahimi xyzabcdxyzabcdxyz\=ovector=1 5833*22dc650dSSadaf Ebrahimi 5834*22dc650dSSadaf Ebrahimi/a(..)d/g,replace=>$1<,substitute_matched 5835*22dc650dSSadaf Ebrahimi xyzabcdxyzabcdxyz 5836*22dc650dSSadaf Ebrahimi xyzabcdxyzabcdxyz\=ovector=2 5837*22dc650dSSadaf Ebrahimi\= Expect error 5838*22dc650dSSadaf Ebrahimi xyzabcdxyzabcdxyz\=ovector=1 5839*22dc650dSSadaf Ebrahimi xyzabcdxyzabcdxyz\=ovector=1,substitute_unset_empty 5840*22dc650dSSadaf Ebrahimi 5841*22dc650dSSadaf Ebrahimi/55|a(..)d/g,replace=>$1<,substitute_matched 5842*22dc650dSSadaf Ebrahimi xyz55abcdxyzabcdxyz\=ovector=2,substitute_unset_empty 5843*22dc650dSSadaf Ebrahimi\= Expect error 5844*22dc650dSSadaf Ebrahimi xyz55abcdxyzabcdxyz\=ovector=2 5845*22dc650dSSadaf Ebrahimi 5846*22dc650dSSadaf Ebrahimi/55|a(..)d/replace=>$1<,substitute_matched 5847*22dc650dSSadaf Ebrahimi xyz55abcdxyzabcdxyz\=ovector=2,substitute_unset_empty 5848*22dc650dSSadaf Ebrahimi 5849*22dc650dSSadaf Ebrahimi/55|a(..)d/replace=>$1< 5850*22dc650dSSadaf Ebrahimi xyz55abcdxyzabcdxyz\=ovector=2,substitute_unset_empty 5851*22dc650dSSadaf Ebrahimi 5852*22dc650dSSadaf Ebrahimi/55|a(..)d/g,replace=>$1< 5853*22dc650dSSadaf Ebrahimi xyz55abcdxyzabcdxyz\=ovector=2,substitute_unset_empty 5854*22dc650dSSadaf Ebrahimi 5855*22dc650dSSadaf Ebrahimi/abc/replace=,caseless 5856*22dc650dSSadaf Ebrahimi XabcY 5857*22dc650dSSadaf Ebrahimi XABCY 5858*22dc650dSSadaf Ebrahimi 5859*22dc650dSSadaf Ebrahimi/abc/replace=[4],caseless 5860*22dc650dSSadaf Ebrahimi XabcY 5861*22dc650dSSadaf Ebrahimi XABCY 5862*22dc650dSSadaf Ebrahimi 5863*22dc650dSSadaf Ebrahimi/abc/replace=*,caseless 5864*22dc650dSSadaf Ebrahimi XabcY 5865*22dc650dSSadaf Ebrahimi XABCY 5866*22dc650dSSadaf Ebrahimi XabcY\=replace= 5867*22dc650dSSadaf Ebrahimi 5868*22dc650dSSadaf Ebrahimi# Expect non-fixed-length error 5869*22dc650dSSadaf Ebrahimi 5870*22dc650dSSadaf Ebrahimi"(?<=X(?(DEFINE)(.*))(?1))." 5871*22dc650dSSadaf Ebrahimi 5872*22dc650dSSadaf Ebrahimi/\sxxx\s/tables=1 5873*22dc650dSSadaf Ebrahimi\= Expect no match 5874*22dc650dSSadaf Ebrahimi AB\x{85}xxx\x{a0}XYZ 5875*22dc650dSSadaf Ebrahimi 5876*22dc650dSSadaf Ebrahimi/\sxxx\s/tables=2 5877*22dc650dSSadaf Ebrahimi AB\x{85}xxx\x{a0}XYZ 5878*22dc650dSSadaf Ebrahimi 5879*22dc650dSSadaf Ebrahimi/^\w+/tables=2 5880*22dc650dSSadaf Ebrahimi École 5881*22dc650dSSadaf Ebrahimi 5882*22dc650dSSadaf Ebrahimi/^\w+/tables=3 5883*22dc650dSSadaf Ebrahimi École 5884*22dc650dSSadaf Ebrahimi 5885*22dc650dSSadaf Ebrahimi#loadtables ./testbtables 5886*22dc650dSSadaf Ebrahimi 5887*22dc650dSSadaf Ebrahimi/^\w+/tables=3 5888*22dc650dSSadaf Ebrahimi École 5889*22dc650dSSadaf Ebrahimi 5890*22dc650dSSadaf Ebrahimi/"(*MARK:>" 00 "<).."/hex,mark,no_start_optimize 5891*22dc650dSSadaf Ebrahimi AB 5892*22dc650dSSadaf Ebrahimi A\=ph 5893*22dc650dSSadaf Ebrahimi\= Expect no match 5894*22dc650dSSadaf Ebrahimi A 5895*22dc650dSSadaf Ebrahimi 5896*22dc650dSSadaf Ebrahimi/"(*MARK:>" 00 "<).(?C1)."/hex,mark,no_start_optimize 5897*22dc650dSSadaf Ebrahimi AB 5898*22dc650dSSadaf Ebrahimi 5899*22dc650dSSadaf Ebrahimi/(?(VERSION=0.0/ 5900*22dc650dSSadaf Ebrahimi 5901*22dc650dSSadaf Ebrahimi# Perl has made \K in lookarounds an error. PCRE2 now rejects as well, unless 5902*22dc650dSSadaf Ebrahimi# explicitly authorized. 5903*22dc650dSSadaf Ebrahimi 5904*22dc650dSSadaf Ebrahimi/(?=a\Kb)ab/ 5905*22dc650dSSadaf Ebrahimi 5906*22dc650dSSadaf Ebrahimi/(?=a\Kb)ab/allow_lookaround_bsk 5907*22dc650dSSadaf Ebrahimi ab 5908*22dc650dSSadaf Ebrahimi 5909*22dc650dSSadaf Ebrahimi/(?!a\Kb)ac/ 5910*22dc650dSSadaf Ebrahimi 5911*22dc650dSSadaf Ebrahimi/(?!a\Kb)ac/allow_lookaround_bsk 5912*22dc650dSSadaf Ebrahimi ac 5913*22dc650dSSadaf Ebrahimi 5914*22dc650dSSadaf Ebrahimi/^abc(?<=b\Kc)d/ 5915*22dc650dSSadaf Ebrahimi 5916*22dc650dSSadaf Ebrahimi/^abc(?<=b\Kc)d/allow_lookaround_bsk 5917*22dc650dSSadaf Ebrahimi abcd 5918*22dc650dSSadaf Ebrahimi 5919*22dc650dSSadaf Ebrahimi/^abc(?<!b\Kq)d/ 5920*22dc650dSSadaf Ebrahimi 5921*22dc650dSSadaf Ebrahimi/^abc(?<!b\Kq)d/,allow_lookaround_bsk 5922*22dc650dSSadaf Ebrahimi abcd 5923*22dc650dSSadaf Ebrahimi 5924*22dc650dSSadaf Ebrahimi# --------- 5925*22dc650dSSadaf Ebrahimi 5926*22dc650dSSadaf Ebrahimi# Tests for zero-length NULL to be treated as an empty string. 5927*22dc650dSSadaf Ebrahimi 5928*22dc650dSSadaf Ebrahimi// 5929*22dc650dSSadaf Ebrahimi \=null_subject 5930*22dc650dSSadaf Ebrahimi\= Expect error 5931*22dc650dSSadaf Ebrahimi abc\=null_subject 5932*22dc650dSSadaf Ebrahimi 5933*22dc650dSSadaf Ebrahimi//replace=[20] 5934*22dc650dSSadaf Ebrahimi abc\=null_replacement 5935*22dc650dSSadaf Ebrahimi \=null_subject 5936*22dc650dSSadaf Ebrahimi \=null_replacement 5937*22dc650dSSadaf Ebrahimi 5938*22dc650dSSadaf Ebrahimi/X*/g,replace=xy 5939*22dc650dSSadaf Ebrahimi\= Expect error 5940*22dc650dSSadaf Ebrahimi >X<\=null_replacement 5941*22dc650dSSadaf Ebrahimi 5942*22dc650dSSadaf Ebrahimi/X+/replace=[20] 5943*22dc650dSSadaf Ebrahimi >XX<\=null_replacement 5944*22dc650dSSadaf Ebrahimi 5945*22dc650dSSadaf Ebrahimi# --------- 5946*22dc650dSSadaf Ebrahimi 5947*22dc650dSSadaf Ebrahimi/[Aa]{2}/BI 5948*22dc650dSSadaf Ebrahimi aabcd 5949*22dc650dSSadaf Ebrahimi 5950*22dc650dSSadaf Ebrahimi/A{2}/iBI 5951*22dc650dSSadaf Ebrahimi aabcd 5952*22dc650dSSadaf Ebrahimi 5953*22dc650dSSadaf Ebrahimi/[Aa]{2,3}/BI 5954*22dc650dSSadaf Ebrahimi aabcd 5955*22dc650dSSadaf Ebrahimi 5956*22dc650dSSadaf Ebrahimi-- 5957*22dc650dSSadaf Ebrahimi \[X]{-10} 5958*22dc650dSSadaf Ebrahimi 5959*22dc650dSSadaf Ebrahimi# Check imposition of maximum by match_data_create(). 5960*22dc650dSSadaf Ebrahimi 5961*22dc650dSSadaf Ebrahimi/abcd/ 5962*22dc650dSSadaf Ebrahimi abcd\=ovector=65536 5963*22dc650dSSadaf Ebrahimi 5964*22dc650dSSadaf Ebrahimi# Use recurse to test \K and Mark in atomic scope. 5965*22dc650dSSadaf Ebrahimi/(?>this line\s*((?R)|)\K)/ 5966*22dc650dSSadaf Ebrahimi this line this line this line 5967*22dc650dSSadaf Ebrahimi 5968*22dc650dSSadaf Ebrahimi/(?>this line\s*((?R)|)(*MARK:A))/ 5969*22dc650dSSadaf Ebrahimi this line this line this line 5970*22dc650dSSadaf Ebrahimi 5971*22dc650dSSadaf Ebrahimi# Check use of NULL pattern with zero length. 5972*22dc650dSSadaf Ebrahimi 5973*22dc650dSSadaf Ebrahimi//null_pattern,use_length 5974*22dc650dSSadaf Ebrahimi abc 5975*22dc650dSSadaf Ebrahimi 5976*22dc650dSSadaf Ebrahimi//null_pattern 5977*22dc650dSSadaf Ebrahimi 5978*22dc650dSSadaf Ebrahimi/bad null pattern/null_pattern,use_length 5979*22dc650dSSadaf Ebrahimi 5980*22dc650dSSadaf Ebrahimi/bad null pattern/null_pattern 5981*22dc650dSSadaf Ebrahimi 5982*22dc650dSSadaf Ebrahimi# -------- Variable length lookbehinds -------- 5983*22dc650dSSadaf Ebrahimi/12345(?<=\d{1,256})X/ 5984*22dc650dSSadaf Ebrahimi 5985*22dc650dSSadaf Ebrahimi/(?<=(\d{1,256}))X/max_varlookbehind=256 5986*22dc650dSSadaf Ebrahimi 12345XYZ 5987*22dc650dSSadaf Ebrahimi 5988*22dc650dSSadaf Ebrahimi/12345(?<=a?bc)X/max_varlookbehind=0 5989*22dc650dSSadaf Ebrahimi 5990*22dc650dSSadaf Ebrahimi/12345(?<=abc)X/max_varlookbehind=0 5991*22dc650dSSadaf Ebrahimi 5992*22dc650dSSadaf Ebrahimi/(?<!( {65054}){9,44965})/ 5993*22dc650dSSadaf Ebrahimi 5994*22dc650dSSadaf Ebrahimi/(?(?<!|(|a)))/ 5995*22dc650dSSadaf Ebrahimi aaaa\=get=0 5996*22dc650dSSadaf Ebrahimi 5997*22dc650dSSadaf Ebrahimi/(?(?<!|a?))/ 5998*22dc650dSSadaf Ebrahimi aaaa\=get=0 5999*22dc650dSSadaf Ebrahimi 6000*22dc650dSSadaf Ebrahimi# -------- 6001*22dc650dSSadaf Ebrahimi 6002*22dc650dSSadaf Ebrahimi/(?<=(()()()()()()()()()()()()()(()()()()(())()()()()(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()(())()()()()(()()()()()()(()()()()()()()()()()()()()()()()()()()()()(())()()()()(()()()()()()()()()()()()()(()()()()()()()()()()()()()(()())))))))))/ 6003*22dc650dSSadaf Ebrahimi 6004*22dc650dSSadaf Ebrahimi/(?<!( {65054}){0,44965})/auto_callout 6005*22dc650dSSadaf Ebrahimi 6006*22dc650dSSadaf Ebrahimi/A+{,3}/ 6007*22dc650dSSadaf Ebrahimi 6008*22dc650dSSadaf Ebrahimi/(\g{+1}Z|(A))+/ 6009*22dc650dSSadaf Ebrahimi BAAZCD 6010*22dc650dSSadaf Ebrahimi ZAAAZAZAZAACD 6011*22dc650dSSadaf Ebrahimi 6012*22dc650dSSadaf Ebrahimi# This doesn't work in Perl (though I think it used to) 6013*22dc650dSSadaf Ebrahimi 6014*22dc650dSSadaf Ebrahimi/^(?=.*(?=(([A-Z]).*(?(1)\1)))(?!.+\2)){26}/i 6015*22dc650dSSadaf Ebrahimi The quick brown fox jumps over the lazy dog. 6016*22dc650dSSadaf Ebrahimi Jackdaws love my big sphinx of quartz. 6017*22dc650dSSadaf Ebrahimi Pack my box with five dozen liquor jugs. 6018*22dc650dSSadaf Ebrahimi\= Expect no match 6019*22dc650dSSadaf Ebrahimi The quick brown fox jumps over the lazy cat. 6020*22dc650dSSadaf Ebrahimi Hackdaws love my big sphinx of quartz. 6021*22dc650dSSadaf Ebrahimi Pack my fox with five dozen liquor jugs. 6022*22dc650dSSadaf Ebrahimi 6023*22dc650dSSadaf Ebrahimi# These are different to Perl because of the different capturing in repeating 6024*22dc650dSSadaf Ebrahimi# groups. 6025*22dc650dSSadaf Ebrahimi 6026*22dc650dSSadaf Ebrahimi/((foo)|(bar))*/ 6027*22dc650dSSadaf Ebrahimi foobar 6028*22dc650dSSadaf Ebrahimi 6029*22dc650dSSadaf Ebrahimi/(?:(f)(o)(o)|(b)(a)(r))*/ 6030*22dc650dSSadaf Ebrahimi foobar 6031*22dc650dSSadaf Ebrahimi 6032*22dc650dSSadaf Ebrahimi/((Z)+|A)*/ 6033*22dc650dSSadaf Ebrahimi ZABCDEFG 6034*22dc650dSSadaf Ebrahimi 6035*22dc650dSSadaf Ebrahimi/(?:(?P=same)?(?:(?P<same>a)|(?P<same>b))(?P=same))+/g,dupnames 6036*22dc650dSSadaf Ebrahimi bbbaaabaabb 6037*22dc650dSSadaf Ebrahimi 6038*22dc650dSSadaf Ebrahimi# -------- 6039*22dc650dSSadaf Ebrahimi 6040*22dc650dSSadaf Ebrahimi/ 6041*22dc650dSSadaf Ebrahimi/anchored, firstline 6042*22dc650dSSadaf Ebrahimi \x0a 6043*22dc650dSSadaf Ebrahimi 6044*22dc650dSSadaf Ebrahimi/ 6045*22dc650dSSadaf Ebrahimi/anchored,firstline,no_start_optimize 6046*22dc650dSSadaf Ebrahimi \x0a 6047*22dc650dSSadaf Ebrahimi 6048*22dc650dSSadaf Ebrahimi/ 6049*22dc650dSSadaf Ebrahimi/firstline 6050*22dc650dSSadaf Ebrahimi \x0a 6051*22dc650dSSadaf Ebrahimi abc\x0adef 6052*22dc650dSSadaf Ebrahimi 6053*22dc650dSSadaf Ebrahimi# This test is currently broken in the interpreter 6054*22dc650dSSadaf Ebrahimi# /|a(?0)/endanchored 6055*22dc650dSSadaf Ebrahimi# aaaa 6056*22dc650dSSadaf Ebrahimi 6057*22dc650dSSadaf Ebrahimi/A +/extended 6058*22dc650dSSadaf Ebrahimi 6059*22dc650dSSadaf Ebrahimi/(*ACCEPT)+/B,auto_callout 6060*22dc650dSSadaf Ebrahimi 6061*22dc650dSSadaf Ebrahimi/a\z/ 6062*22dc650dSSadaf Ebrahimi a 6063*22dc650dSSadaf Ebrahimi a\=noteol 6064*22dc650dSSadaf Ebrahimi 6065*22dc650dSSadaf Ebrahimi# This matches a character that only exists once in the subject, sort of like a 6066*22dc650dSSadaf Ebrahimi# hypothetical "(.)(?<!\1.+)(?!.*\1)". That has unlimited variable length 6067*22dc650dSSadaf Ebrahimi# lookbehind, so is invalid. This pattern doesn't work in Perl 5.38.0. 6068*22dc650dSSadaf Ebrahimi 6069*22dc650dSSadaf Ebrahimi/\G(?:(?=(\1.|)(.))){1,13}?(?!.*\2.*\2)\1\K\2/g 6070*22dc650dSSadaf Ebrahimi aaabcccdeee 6071*22dc650dSSadaf Ebrahimi 6072*22dc650dSSadaf Ebrahimi/|(?0)./endanchored 6073*22dc650dSSadaf Ebrahimi abcd 6074*22dc650dSSadaf Ebrahimi 6075*22dc650dSSadaf Ebrahimi/|a(?0)/endanchored 6076*22dc650dSSadaf Ebrahimi aaaa 6077*22dc650dSSadaf Ebrahimi 6078*22dc650dSSadaf Ebrahimi/(?:|(?0).)(?(R)|\z)/ 6079*22dc650dSSadaf Ebrahimi abcd 6080*22dc650dSSadaf Ebrahimi 6081*22dc650dSSadaf Ebrahimi/a?(?=b(*COMMIT)c|)d/I 6082*22dc650dSSadaf Ebrahimi bd 6083*22dc650dSSadaf Ebrahimi 6084*22dc650dSSadaf Ebrahimi/(?=b(*COMMIT)c|)d/I 6085*22dc650dSSadaf Ebrahimi bd 6086*22dc650dSSadaf Ebrahimi 6087*22dc650dSSadaf Ebrahimi/a?(?=b(*COMMIT)c|)d/I,no_start_optimize 6088*22dc650dSSadaf Ebrahimi bd 6089*22dc650dSSadaf Ebrahimi 6090*22dc650dSSadaf Ebrahimi/(?=b(*COMMIT)c|)d/I,no_start_optimize 6091*22dc650dSSadaf Ebrahimi bd 6092*22dc650dSSadaf Ebrahimi 6093*22dc650dSSadaf Ebrahimi/a?(?=bc|)d/I,auto_callout 6094*22dc650dSSadaf Ebrahimi bd 6095*22dc650dSSadaf Ebrahimi 6096*22dc650dSSadaf Ebrahimi/a?(?=bc|)\bd/I 6097*22dc650dSSadaf Ebrahimi bd 6098*22dc650dSSadaf Ebrahimi 6099*22dc650dSSadaf Ebrahimi/(?0)/ 6100*22dc650dSSadaf Ebrahimi abc\=disable_recurseloop_check,match_limit=100 6101*22dc650dSSadaf Ebrahimi 6102*22dc650dSSadaf Ebrahimi/(a(?1)z||(?1)++)$/ 6103*22dc650dSSadaf Ebrahimi abcd\=disable_recurseloop_check 6104*22dc650dSSadaf Ebrahimi 6105*22dc650dSSadaf Ebrahimi/(((?<=123?456456|ABC)))(?<=\2)../ 6106*22dc650dSSadaf Ebrahimi ABCDEFG 6107*22dc650dSSadaf Ebrahimi 12345645678910 6108*22dc650dSSadaf Ebrahimi 6109*22dc650dSSadaf Ebrahimi# This test is crashing Perl 5.38.2. 6110*22dc650dSSadaf Ebrahimi 6111*22dc650dSSadaf Ebrahimi/[^\S\W]{6}/ 6112*22dc650dSSadaf Ebrahimi .abc def.. 6113*22dc650dSSadaf Ebrahimi 6114*22dc650dSSadaf Ebrahimi# End of testinput2 6115