Annotation of embedaddon/pcre/testdata/testinput2, revision 1.1
1.1 ! misho 1: /-- This set of tests is not Perl-compatible. It checks on special features
! 2: of PCRE's API, error diagnostics, and the compiled code of some patterns.
! 3: It also checks the non-Perl syntax the PCRE supports (Python, .NET,
! 4: Oniguruma). Finally, there are some tests where PCRE and Perl differ,
! 5: either because PCRE can't be compatible, or there is a possible Perl
! 6: bug.
! 7:
! 8: NOTE: This is a non-UTF-8 set of tests. When UTF-8 is needed, use test
! 9: 5, and if Unicode Property Support is needed, use test 13. --/
! 10:
! 11: /-- Originally, the Perl >= 5.10 things were in here too, but now I have
! 12: separated many (most?) of them out into test 11. However, there may still
! 13: be some that were overlooked. --/
! 14:
! 15: /(a)b|/I
! 16:
! 17: /abc/I
! 18: abc
! 19: defabc
! 20: \Aabc
! 21: *** Failers
! 22: \Adefabc
! 23: ABC
! 24:
! 25: /^abc/I
! 26: abc
! 27: \Aabc
! 28: *** Failers
! 29: defabc
! 30: \Adefabc
! 31:
! 32: /a+bc/I
! 33:
! 34: /a*bc/I
! 35:
! 36: /a{3}bc/I
! 37:
! 38: /(abc|a+z)/I
! 39:
! 40: /^abc$/I
! 41: abc
! 42: *** Failers
! 43: def\nabc
! 44:
! 45: /ab\idef/X
! 46:
! 47: /(?X)ab\idef/X
! 48:
! 49: /x{5,4}/
! 50:
! 51: /z{65536}/
! 52:
! 53: /[abcd/
! 54:
! 55: /(?X)[\B]/
! 56:
! 57: /(?X)[\R]/
! 58:
! 59: /(?X)[\X]/
! 60:
! 61: /[\B]/BZ
! 62:
! 63: /[\R]/BZ
! 64:
! 65: /[\X]/BZ
! 66:
! 67: /[z-a]/
! 68:
! 69: /^*/
! 70:
! 71: /(abc/
! 72:
! 73: /(?# abc/
! 74:
! 75: /(?z)abc/
! 76:
! 77: /.*b/I
! 78:
! 79: /.*?b/I
! 80:
! 81: /cat|dog|elephant/I
! 82: this sentence eventually mentions a cat
! 83: this sentences rambles on and on for a while and then reaches elephant
! 84:
! 85: /cat|dog|elephant/IS
! 86: this sentence eventually mentions a cat
! 87: this sentences rambles on and on for a while and then reaches elephant
! 88:
! 89: /cat|dog|elephant/IiS
! 90: this sentence eventually mentions a CAT cat
! 91: this sentences rambles on and on for a while to elephant ElePhant
! 92:
! 93: /a|[bcd]/IS
! 94:
! 95: /(a|[^\dZ])/IS
! 96:
! 97: /(a|b)*[\s]/IS
! 98:
! 99: /(ab\2)/
! 100:
! 101: /{4,5}abc/
! 102:
! 103: /(a)(b)(c)\2/I
! 104: abcb
! 105: \O0abcb
! 106: \O3abcb
! 107: \O6abcb
! 108: \O9abcb
! 109: \O12abcb
! 110:
! 111: /(a)bc|(a)(b)\2/I
! 112: abc
! 113: \O0abc
! 114: \O3abc
! 115: \O6abc
! 116: aba
! 117: \O0aba
! 118: \O3aba
! 119: \O6aba
! 120: \O9aba
! 121: \O12aba
! 122:
! 123: /abc$/IE
! 124: abc
! 125: *** Failers
! 126: abc\n
! 127: abc\ndef
! 128:
! 129: /(a)(b)(c)(d)(e)\6/
! 130:
! 131: /the quick brown fox/I
! 132: the quick brown fox
! 133: this is a line with the quick brown fox
! 134:
! 135: /the quick brown fox/IA
! 136: the quick brown fox
! 137: *** Failers
! 138: this is a line with the quick brown fox
! 139:
! 140: /ab(?z)cd/
! 141:
! 142: /^abc|def/I
! 143: abcdef
! 144: abcdef\B
! 145:
! 146: /.*((abc)$|(def))/I
! 147: defabc
! 148: \Zdefabc
! 149:
! 150: /abc/P
! 151: abc
! 152: *** Failers
! 153:
! 154: /^abc|def/P
! 155: abcdef
! 156: abcdef\B
! 157:
! 158: /.*((abc)$|(def))/P
! 159: defabc
! 160: \Zdefabc
! 161:
! 162: /the quick brown fox/P
! 163: the quick brown fox
! 164: *** Failers
! 165: The Quick Brown Fox
! 166:
! 167: /the quick brown fox/Pi
! 168: the quick brown fox
! 169: The Quick Brown Fox
! 170:
! 171: /abc.def/P
! 172: *** Failers
! 173: abc\ndef
! 174:
! 175: /abc$/P
! 176: abc
! 177: abc\n
! 178:
! 179: /(abc)\2/P
! 180:
! 181: /(abc\1)/P
! 182: abc
! 183:
! 184: /)/
! 185:
! 186: /a[]b/
! 187:
! 188: /[^aeiou ]{3,}/I
! 189: co-processors, and for
! 190:
! 191: /<.*>/I
! 192: abc<def>ghi<klm>nop
! 193:
! 194: /<.*?>/I
! 195: abc<def>ghi<klm>nop
! 196:
! 197: /<.*>/IU
! 198: abc<def>ghi<klm>nop
! 199:
! 200: /(?U)<.*>/I
! 201: abc<def>ghi<klm>nop
! 202:
! 203: /<.*?>/IU
! 204: abc<def>ghi<klm>nop
! 205:
! 206: /={3,}/IU
! 207: abc========def
! 208:
! 209: /(?U)={3,}?/I
! 210: abc========def
! 211:
! 212: /(?<!bar|cattle)foo/I
! 213: foo
! 214: catfoo
! 215: *** Failers
! 216: the barfoo
! 217: and cattlefoo
! 218:
! 219: /(?<=a+)b/
! 220:
! 221: /(?<=aaa|b{0,3})b/
! 222:
! 223: /(?<!(foo)a\1)bar/
! 224:
! 225: /(?i)abc/I
! 226:
! 227: /(a|(?m)a)/I
! 228:
! 229: /(?i)^1234/I
! 230:
! 231: /(^b|(?i)^d)/I
! 232:
! 233: /(?s).*/I
! 234:
! 235: /[abcd]/IS
! 236:
! 237: /(?i)[abcd]/IS
! 238:
! 239: /(?m)[xy]|(b|c)/IS
! 240:
! 241: /(^a|^b)/Im
! 242:
! 243: /(?i)(^a|^b)/Im
! 244:
! 245: /(a)(?(1)a|b|c)/
! 246:
! 247: /(?(?=a)a|b|c)/
! 248:
! 249: /(?(1a)/
! 250:
! 251: /(?(1a))/
! 252:
! 253: /(?(?i))/
! 254:
! 255: /(?(abc))/
! 256:
! 257: /(?(?<ab))/
! 258:
! 259: /((?s)blah)\s+\1/I
! 260:
! 261: /((?i)blah)\s+\1/I
! 262:
! 263: /((?i)b)/IDZS
! 264:
! 265: /(a*b|(?i:c*(?-i)d))/IS
! 266:
! 267: /a$/I
! 268: a
! 269: a\n
! 270: *** Failers
! 271: \Za
! 272: \Za\n
! 273:
! 274: /a$/Im
! 275: a
! 276: a\n
! 277: \Za\n
! 278: *** Failers
! 279: \Za
! 280:
! 281: /\Aabc/Im
! 282:
! 283: /^abc/Im
! 284:
! 285: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
! 286: aaaaabbbbbcccccdef
! 287:
! 288: /(?<=foo)[ab]/IS
! 289:
! 290: /(?<!foo)(alpha|omega)/IS
! 291:
! 292: /(?!alphabet)[ab]/IS
! 293:
! 294: /(?<=foo\n)^bar/Im
! 295: foo\nbarbar
! 296: ***Failers
! 297: rhubarb
! 298: barbell
! 299: abc\nbarton
! 300:
! 301: /^(?<=foo\n)bar/Im
! 302: foo\nbarbar
! 303: ***Failers
! 304: rhubarb
! 305: barbell
! 306: abc\nbarton
! 307:
! 308: /(?>^abc)/Im
! 309: abc
! 310: def\nabc
! 311: *** Failers
! 312: defabc
! 313:
! 314: /(?<=ab(c+)d)ef/
! 315:
! 316: /(?<=ab(?<=c+)d)ef/
! 317:
! 318: /(?<=ab(c|de)f)g/
! 319:
! 320: /The next three are in testinput2 because they have variable length branches/
! 321:
! 322: /(?<=bullock|donkey)-cart/I
! 323: the bullock-cart
! 324: a donkey-cart race
! 325: *** Failers
! 326: cart
! 327: horse-and-cart
! 328:
! 329: /(?<=ab(?i)x|y|z)/I
! 330:
! 331: /(?>.*)(?<=(abcd)|(xyz))/I
! 332: alphabetabcd
! 333: endingxyz
! 334:
! 335: /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
! 336: abxyZZ
! 337: abXyZZ
! 338: ZZZ
! 339: zZZ
! 340: bZZ
! 341: BZZ
! 342: *** Failers
! 343: ZZ
! 344: abXYZZ
! 345: zzz
! 346: bzz
! 347:
! 348: /(?<!(foo)a)bar/I
! 349: bar
! 350: foobbar
! 351: *** Failers
! 352: fooabar
! 353:
! 354: /This one is here because Perl 5.005_02 doesn't fail it/I
! 355:
! 356: /^(a)?(?(1)a|b)+$/I
! 357: *** Failers
! 358: a
! 359:
! 360: /This one is here because Perl behaves differently; see also the following/I
! 361:
! 362: /^(a\1?){4}$/I
! 363: aaaa
! 364: aaaaaa
! 365:
! 366: /Perl does not fail these two for the final subjects. Neither did PCRE until/
! 367: /release 8.01. The problem is in backtracking into a subpattern that contains/
! 368: /a recursive reference to itself. PCRE has now made these into atomic patterns./
! 369:
! 370: /^(xa|=?\1a){2}$/
! 371: xa=xaa
! 372: ** Failers
! 373: xa=xaaa
! 374:
! 375: /^(xa|=?\1a)+$/
! 376: xa=xaa
! 377: ** Failers
! 378: xa=xaaa
! 379:
! 380: /These are syntax tests from Perl 5.005/I
! 381:
! 382: /a[b-a]/
! 383:
! 384: /a[]b/
! 385:
! 386: /a[/
! 387:
! 388: /*a/
! 389:
! 390: /(*)b/
! 391:
! 392: /abc)/
! 393:
! 394: /(abc/
! 395:
! 396: /a**/
! 397:
! 398: /)(/
! 399:
! 400: /\1/
! 401:
! 402: /\2/
! 403:
! 404: /(a)|\2/
! 405:
! 406: /a[b-a]/Ii
! 407:
! 408: /a[]b/Ii
! 409:
! 410: /a[/Ii
! 411:
! 412: /*a/Ii
! 413:
! 414: /(*)b/Ii
! 415:
! 416: /abc)/Ii
! 417:
! 418: /(abc/Ii
! 419:
! 420: /a**/Ii
! 421:
! 422: /)(/Ii
! 423:
! 424: /:(?:/
! 425:
! 426: /(?<%)b/
! 427:
! 428: /a(?{)b/
! 429:
! 430: /a(?{{})b/
! 431:
! 432: /a(?{}})b/
! 433:
! 434: /a(?{"{"})b/
! 435:
! 436: /a(?{"{"}})b/
! 437:
! 438: /(?(1?)a|b)/
! 439:
! 440: /[a[:xyz:/
! 441:
! 442: /(?<=x+)y/
! 443:
! 444: /a{37,17}/
! 445:
! 446: /abc/\
! 447:
! 448: /abc/\P
! 449:
! 450: /abc/\i
! 451:
! 452: /(a)bc(d)/I
! 453: abcd
! 454: abcd\C2
! 455: abcd\C5
! 456:
! 457: /(.{20})/I
! 458: abcdefghijklmnopqrstuvwxyz
! 459: abcdefghijklmnopqrstuvwxyz\C1
! 460: abcdefghijklmnopqrstuvwxyz\G1
! 461:
! 462: /(.{15})/I
! 463: abcdefghijklmnopqrstuvwxyz
! 464: abcdefghijklmnopqrstuvwxyz\C1\G1
! 465:
! 466: /(.{16})/I
! 467: abcdefghijklmnopqrstuvwxyz
! 468: abcdefghijklmnopqrstuvwxyz\C1\G1\L
! 469:
! 470: /^(a|(bc))de(f)/I
! 471: adef\G1\G2\G3\G4\L
! 472: bcdef\G1\G2\G3\G4\L
! 473: adefghijk\C0
! 474:
! 475: /^abc\00def/I
! 476: abc\00def\L\C0
! 477:
! 478: /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
! 479: )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
! 480: )?)?)?)?)?)?)?)?)?otherword/I
! 481:
! 482: /.*X/IDZ
! 483:
! 484: /.*X/IDZs
! 485:
! 486: /(.*X|^B)/IDZ
! 487:
! 488: /(.*X|^B)/IDZs
! 489:
! 490: /(?s)(.*X|^B)/IDZ
! 491:
! 492: /(?s:.*X|^B)/IDZ
! 493:
! 494: /\Biss\B/I+
! 495: Mississippi
! 496:
! 497: /\Biss\B/I+P
! 498: Mississippi
! 499:
! 500: /iss/IG+
! 501: Mississippi
! 502:
! 503: /\Biss\B/IG+
! 504: Mississippi
! 505:
! 506: /\Biss\B/Ig+
! 507: Mississippi
! 508: *** Failers
! 509: Mississippi\A
! 510:
! 511: /(?<=[Ms])iss/Ig+
! 512: Mississippi
! 513:
! 514: /(?<=[Ms])iss/IG+
! 515: Mississippi
! 516:
! 517: /^iss/Ig+
! 518: ississippi
! 519:
! 520: /.*iss/Ig+
! 521: abciss\nxyzisspqr
! 522:
! 523: /.i./I+g
! 524: Mississippi
! 525: Mississippi\A
! 526: Missouri river
! 527: Missouri river\A
! 528:
! 529: /^.is/I+g
! 530: Mississippi
! 531:
! 532: /^ab\n/Ig+
! 533: ab\nab\ncd
! 534:
! 535: /^ab\n/Img+
! 536: ab\nab\ncd
! 537:
! 538: /abc/I
! 539:
! 540: /abc|bac/I
! 541:
! 542: /(abc|bac)/I
! 543:
! 544: /(abc|(c|dc))/I
! 545:
! 546: /(abc|(d|de)c)/I
! 547:
! 548: /a*/I
! 549:
! 550: /a+/I
! 551:
! 552: /(baa|a+)/I
! 553:
! 554: /a{0,3}/I
! 555:
! 556: /baa{3,}/I
! 557:
! 558: /"([^\\"]+|\\.)*"/I
! 559:
! 560: /(abc|ab[cd])/I
! 561:
! 562: /(a|.)/I
! 563:
! 564: /a|ba|\w/I
! 565:
! 566: /abc(?=pqr)/I
! 567:
! 568: /...(?<=abc)/I
! 569:
! 570: /abc(?!pqr)/I
! 571:
! 572: /ab./I
! 573:
! 574: /ab[xyz]/I
! 575:
! 576: /abc*/I
! 577:
! 578: /ab.c*/I
! 579:
! 580: /a.c*/I
! 581:
! 582: /.c*/I
! 583:
! 584: /ac*/I
! 585:
! 586: /(a.c*|b.c*)/I
! 587:
! 588: /a.c*|aba/I
! 589:
! 590: /.+a/I
! 591:
! 592: /(?=abcda)a.*/I
! 593:
! 594: /(?=a)a.*/I
! 595:
! 596: /a(b)*/I
! 597:
! 598: /a\d*/I
! 599:
! 600: /ab\d*/I
! 601:
! 602: /a(\d)*/I
! 603:
! 604: /abcde{0,0}/I
! 605:
! 606: /ab\d+/I
! 607:
! 608: /a(?(1)b)(.)/I
! 609:
! 610: /a(?(1)bag|big)(.)/I
! 611:
! 612: /a(?(1)bag|big)*(.)/I
! 613:
! 614: /a(?(1)bag|big)+(.)/I
! 615:
! 616: /a(?(1)b..|b..)(.)/I
! 617:
! 618: /ab\d{0}e/I
! 619:
! 620: /a?b?/I
! 621: a
! 622: b
! 623: ab
! 624: \
! 625: *** Failers
! 626: \N
! 627:
! 628: /|-/I
! 629: abcd
! 630: -abc
! 631: \Nab-c
! 632: *** Failers
! 633: \Nabc
! 634:
! 635: /a*(b+)(z)(z)/P
! 636: aaaabbbbzzzz
! 637: aaaabbbbzzzz\O0
! 638: aaaabbbbzzzz\O1
! 639: aaaabbbbzzzz\O2
! 640: aaaabbbbzzzz\O3
! 641: aaaabbbbzzzz\O4
! 642: aaaabbbbzzzz\O5
! 643:
! 644: /^.?abcd/IS
! 645:
! 646: /\( # ( at start
! 647: (?: # Non-capturing bracket
! 648: (?>[^()]+) # Either a sequence of non-brackets (no backtracking)
! 649: | # Or
! 650: (?R) # Recurse - i.e. nested bracketed string
! 651: )* # Zero or more contents
! 652: \) # Closing )
! 653: /Ix
! 654: (abcd)
! 655: (abcd)xyz
! 656: xyz(abcd)
! 657: (ab(xy)cd)pqr
! 658: (ab(xycd)pqr
! 659: () abc ()
! 660: 12(abcde(fsh)xyz(foo(bar))lmno)89
! 661: *** Failers
! 662: abcd
! 663: abcd)
! 664: (abcd
! 665:
! 666: /\( ( (?>[^()]+) | (?R) )* \) /Ixg
! 667: (ab(xy)cd)pqr
! 668: 1(abcd)(x(y)z)pqr
! 669:
! 670: /\( (?: (?>[^()]+) | (?R) ) \) /Ix
! 671: (abcd)
! 672: (ab(xy)cd)
! 673: (a(b(c)d)e)
! 674: ((ab))
! 675: *** Failers
! 676: ()
! 677:
! 678: /\( (?: (?>[^()]+) | (?R) )? \) /Ix
! 679: ()
! 680: 12(abcde(fsh)xyz(foo(bar))lmno)89
! 681:
! 682: /\( ( (?>[^()]+) | (?R) )* \) /Ix
! 683: (ab(xy)cd)
! 684:
! 685: /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
! 686: (ab(xy)cd)
! 687:
! 688: /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
! 689: (ab(xy)cd)
! 690: (123ab(xy)cd)
! 691:
! 692: /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
! 693: (ab(xy)cd)
! 694: (123ab(xy)cd)
! 695:
! 696: /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
! 697: (ab(xy)cd)
! 698:
! 699: /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
! 700: (abcd(xyz<p>qrs)123)
! 701:
! 702: /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
! 703: (ab(cd)ef)
! 704: (ab(cd(ef)gh)ij)
! 705:
! 706: /^[[:alnum:]]/DZ
! 707:
! 708: /^[[:^alnum:]]/DZ
! 709:
! 710: /^[[:alpha:]]/DZ
! 711:
! 712: /^[[:^alpha:]]/DZ
! 713:
! 714: /[_[:alpha:]]/IS
! 715:
! 716: /^[[:ascii:]]/DZ
! 717:
! 718: /^[[:^ascii:]]/DZ
! 719:
! 720: /^[[:blank:]]/DZ
! 721:
! 722: /^[[:^blank:]]/DZ
! 723:
! 724: /[\n\x0b\x0c\x0d[:blank:]]/IS
! 725:
! 726: /^[[:cntrl:]]/DZ
! 727:
! 728: /^[[:digit:]]/DZ
! 729:
! 730: /^[[:graph:]]/DZ
! 731:
! 732: /^[[:lower:]]/DZ
! 733:
! 734: /^[[:print:]]/DZ
! 735:
! 736: /^[[:punct:]]/DZ
! 737:
! 738: /^[[:space:]]/DZ
! 739:
! 740: /^[[:upper:]]/DZ
! 741:
! 742: /^[[:xdigit:]]/DZ
! 743:
! 744: /^[[:word:]]/DZ
! 745:
! 746: /^[[:^cntrl:]]/DZ
! 747:
! 748: /^[12[:^digit:]]/DZ
! 749:
! 750: /^[[:^blank:]]/DZ
! 751:
! 752: /[01[:alpha:]%]/DZ
! 753:
! 754: /[[.ch.]]/I
! 755:
! 756: /[[=ch=]]/I
! 757:
! 758: /[[:rhubarb:]]/I
! 759:
! 760: /[[:upper:]]/Ii
! 761: A
! 762: a
! 763:
! 764: /[[:lower:]]/Ii
! 765: A
! 766: a
! 767:
! 768: /((?-i)[[:lower:]])[[:lower:]]/Ii
! 769: ab
! 770: aB
! 771: *** Failers
! 772: Ab
! 773: AB
! 774:
! 775: /[\200-\110]/I
! 776:
! 777: /^(?(0)f|b)oo/I
! 778:
! 779: /This one's here because of the large output vector needed/I
! 780:
! 781: /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
! 782: \O900 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC
! 783:
! 784: /This one's here because Perl does this differently and PCRE can't at present/I
! 785:
! 786: /(main(O)?)+/I
! 787: mainmain
! 788: mainOmain
! 789:
! 790: /These are all cases where Perl does it differently (nested captures)/I
! 791:
! 792: /^(a(b)?)+$/I
! 793: aba
! 794:
! 795: /^(aa(bb)?)+$/I
! 796: aabbaa
! 797:
! 798: /^(aa|aa(bb))+$/I
! 799: aabbaa
! 800:
! 801: /^(aa(bb)??)+$/I
! 802: aabbaa
! 803:
! 804: /^(?:aa(bb)?)+$/I
! 805: aabbaa
! 806:
! 807: /^(aa(b(b))?)+$/I
! 808: aabbaa
! 809:
! 810: /^(?:aa(b(b))?)+$/I
! 811: aabbaa
! 812:
! 813: /^(?:aa(b(?:b))?)+$/I
! 814: aabbaa
! 815:
! 816: /^(?:aa(bb(?:b))?)+$/I
! 817: aabbbaa
! 818:
! 819: /^(?:aa(b(?:bb))?)+$/I
! 820: aabbbaa
! 821:
! 822: /^(?:aa(?:b(b))?)+$/I
! 823: aabbaa
! 824:
! 825: /^(?:aa(?:b(bb))?)+$/I
! 826: aabbbaa
! 827:
! 828: /^(aa(b(bb))?)+$/I
! 829: aabbbaa
! 830:
! 831: /^(aa(bb(bb))?)+$/I
! 832: aabbbbaa
! 833:
! 834: /--------------------------------------------------------------------/I
! 835:
! 836: /#/IxDZ
! 837:
! 838: /a#/IxDZ
! 839:
! 840: /[\s]/DZ
! 841:
! 842: /[\S]/DZ
! 843:
! 844: /a(?i)b/DZ
! 845: ab
! 846: aB
! 847: *** Failers
! 848: AB
! 849:
! 850: /(a(?i)b)/DZ
! 851: ab
! 852: aB
! 853: *** Failers
! 854: AB
! 855:
! 856: / (?i)abc/IxDZ
! 857:
! 858: /#this is a comment
! 859: (?i)abc/IxDZ
! 860:
! 861: /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
! 862:
! 863: /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
! 864:
! 865: /\Q\E/DZ
! 866: \
! 867:
! 868: /\Q\Ex/DZ
! 869:
! 870: / \Q\E/DZ
! 871:
! 872: /a\Q\E/DZ
! 873: abc
! 874: bca
! 875: bac
! 876:
! 877: /a\Q\Eb/DZ
! 878: abc
! 879:
! 880: /\Q\Eabc/DZ
! 881:
! 882: /x*+\w/DZ
! 883: *** Failers
! 884: xxxxx
! 885:
! 886: /x?+/DZ
! 887:
! 888: /x++/DZ
! 889:
! 890: /x{1,3}+/DZ
! 891:
! 892: /(x)*+/DZ
! 893:
! 894: /^(\w++|\s++)*$/I
! 895: now is the time for all good men to come to the aid of the party
! 896: *** Failers
! 897: this is not a line with only words and spaces!
! 898:
! 899: /(\d++)(\w)/I
! 900: 12345a
! 901: *** Failers
! 902: 12345+
! 903:
! 904: /a++b/I
! 905: aaab
! 906:
! 907: /(a++b)/I
! 908: aaab
! 909:
! 910: /(a++)b/I
! 911: aaab
! 912:
! 913: /([^()]++|\([^()]*\))+/I
! 914: ((abc(ade)ufh()()x
! 915:
! 916: /\(([^()]++|\([^()]+\))+\)/I
! 917: (abc)
! 918: (abc(def)xyz)
! 919: *** Failers
! 920: ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
! 921:
! 922: /(abc){1,3}+/DZ
! 923:
! 924: /a+?+/I
! 925:
! 926: /a{2,3}?+b/I
! 927:
! 928: /(?U)a+?+/I
! 929:
! 930: /a{2,3}?+b/IU
! 931:
! 932: /x(?U)a++b/DZ
! 933: xaaaab
! 934:
! 935: /(?U)xa++b/DZ
! 936: xaaaab
! 937:
! 938: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
! 939:
! 940: /^x(?U)a+b/DZ
! 941:
! 942: /^x(?U)(a+)b/DZ
! 943:
! 944: /[.x.]/I
! 945:
! 946: /[=x=]/I
! 947:
! 948: /[:x:]/I
! 949:
! 950: /\l/I
! 951:
! 952: /\L/I
! 953:
! 954: /\N{name}/I
! 955:
! 956: /\u/I
! 957:
! 958: /\U/I
! 959:
! 960: /[/I
! 961:
! 962: /[a-/I
! 963:
! 964: /[[:space:]/I
! 965:
! 966: /[\s]/IDZ
! 967:
! 968: /[[:space:]]/IDZ
! 969:
! 970: /[[:space:]abcde]/IDZ
! 971:
! 972: /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix
! 973: <>
! 974: <abcd>
! 975: <abc <123> hij>
! 976: <abc <def> hij>
! 977: <abc<>def>
! 978: <abc<>
! 979: *** Failers
! 980: <abc
! 981:
! 982: |8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
! 983:
! 984: |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
! 985:
! 986: /(.*)\d+\1/I
! 987:
! 988: /(.*)\d+/I
! 989:
! 990: /(.*)\d+\1/Is
! 991:
! 992: /(.*)\d+/Is
! 993:
! 994: /(.*(xyz))\d+\2/I
! 995:
! 996: /((.*))\d+\1/I
! 997: abc123bc
! 998:
! 999: /a[b]/I
! 1000:
! 1001: /(?=a).*/I
! 1002:
! 1003: /(?=abc).xyz/IiI
! 1004:
! 1005: /(?=abc)(?i).xyz/I
! 1006:
! 1007: /(?=a)(?=b)/I
! 1008:
! 1009: /(?=.)a/I
! 1010:
! 1011: /((?=abcda)a)/I
! 1012:
! 1013: /((?=abcda)ab)/I
! 1014:
! 1015: /()a/I
! 1016:
! 1017: /(?(1)ab|ac)(.)/I
! 1018:
! 1019: /(?(1)abz|acz)(.)/I
! 1020:
! 1021: /(?(1)abz)(.)/I
! 1022:
! 1023: /(?(1)abz)(1)23/I
! 1024:
! 1025: /(a)+/I
! 1026:
! 1027: /(a){2,3}/I
! 1028:
! 1029: /(a)*/I
! 1030:
! 1031: /[a]/I
! 1032:
! 1033: /[ab]/I
! 1034:
! 1035: /[ab]/IS
! 1036:
! 1037: /[^a]/I
! 1038:
! 1039: /\d456/I
! 1040:
! 1041: /\d456/IS
! 1042:
! 1043: /a^b/I
! 1044:
! 1045: /^a/Im
! 1046: abcde
! 1047: xy\nabc
! 1048: *** Failers
! 1049: xyabc
! 1050:
! 1051: /c|abc/I
! 1052:
! 1053: /(?i)[ab]/IS
! 1054:
! 1055: /[ab](?i)cd/IS
! 1056:
! 1057: /abc(?C)def/I
! 1058: abcdef
! 1059: 1234abcdef
! 1060: *** Failers
! 1061: abcxyz
! 1062: abcxyzf
! 1063:
! 1064: /abc(?C)de(?C1)f/I
! 1065: 123abcdef
! 1066:
! 1067: /(?C1)\dabc(?C2)def/IS
! 1068: 1234abcdef
! 1069: *** Failers
! 1070: abcdef
! 1071:
! 1072: /(?C1)\dabc(?C2)def/ISS
! 1073: 1234abcdef
! 1074: *** Failers
! 1075: abcdef
! 1076:
! 1077: /(?C255)ab/I
! 1078:
! 1079: /(?C256)ab/I
! 1080:
! 1081: /(?Cab)xx/I
! 1082:
! 1083: /(?C12vr)x/I
! 1084:
! 1085: /abc(?C)def/I
! 1086: *** Failers
! 1087: \x83\x0\x61bcdef
! 1088:
! 1089: /(abc)(?C)de(?C1)f/I
! 1090: 123abcdef
! 1091: 123abcdef\C+
! 1092: 123abcdef\C-
! 1093: *** Failers
! 1094: 123abcdef\C!1
! 1095:
! 1096: /(?C0)(abc(?C1))*/I
! 1097: abcabcabc
! 1098: abcabc\C!1!3
! 1099: *** Failers
! 1100: abcabcabc\C!1!3
! 1101:
! 1102: /(\d{3}(?C))*/I
! 1103: 123\C+
! 1104: 123456\C+
! 1105: 123456789\C+
! 1106:
! 1107: /((xyz)(?C)p|(?C1)xyzabc)/I
! 1108: xyzabc\C+
! 1109:
! 1110: /(X)((xyz)(?C)p|(?C1)xyzabc)/I
! 1111: Xxyzabc\C+
! 1112:
! 1113: /(?=(abc))(?C)abcdef/I
! 1114: abcdef\C+
! 1115:
! 1116: /(?!(abc)(?C1)d)(?C2)abcxyz/I
! 1117: abcxyz\C+
! 1118:
! 1119: /(?<=(abc)(?C))xyz/I
! 1120: abcxyz\C+
! 1121:
! 1122: /a(b+)(c*)(?C1)/I
! 1123: abbbbbccc\C*1
! 1124:
! 1125: /a(b+?)(c*?)(?C1)/I
! 1126: abbbbbccc\C*1
! 1127:
! 1128: /(?C)abc/I
! 1129:
! 1130: /(?C)^abc/I
! 1131:
! 1132: /(?C)a|b/IS
! 1133:
! 1134: /(?R)/I
! 1135:
! 1136: /(a|(?R))/I
! 1137:
! 1138: /(ab|(bc|(de|(?R))))/I
! 1139:
! 1140: /x(ab|(bc|(de|(?R))))/I
! 1141: xab
! 1142: xbc
! 1143: xde
! 1144: xxab
! 1145: xxxab
! 1146: *** Failers
! 1147: xyab
! 1148:
! 1149: /(ab|(bc|(de|(?1))))/I
! 1150:
! 1151: /x(ab|(bc|(de|(?1)x)x)x)/I
! 1152:
! 1153: /^([^()]|\((?1)*\))*$/I
! 1154: abc
! 1155: a(b)c
! 1156: a(b(c))d
! 1157: *** Failers)
! 1158: a(b(c)d
! 1159:
! 1160: /^>abc>([^()]|\((?1)*\))*<xyz<$/I
! 1161: >abc>123<xyz<
! 1162: >abc>1(2)3<xyz<
! 1163: >abc>(1(2)3)<xyz<
! 1164:
! 1165: /(a(?1)b)/DZ
! 1166:
! 1167: /(a(?1)+b)/DZ
! 1168:
! 1169: /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
! 1170: 12
! 1171: (((2+2)*-3)-7)
! 1172: -12
! 1173: *** Failers
! 1174: ((2+2)*-3)-7)
! 1175:
! 1176: /^(x(y|(?1){2})z)/I
! 1177: xyz
! 1178: xxyzxyzz
! 1179: *** Failers
! 1180: xxyzz
! 1181: xxyzxyzxyzz
! 1182:
! 1183: /((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix
! 1184: <>
! 1185: <abcd>
! 1186: <abc <123> hij>
! 1187: <abc <def> hij>
! 1188: <abc<>def>
! 1189: <abc<>
! 1190: *** Failers
! 1191: <abc
! 1192:
! 1193: /(?1)/I
! 1194:
! 1195: /((?2)(abc)/I
! 1196:
! 1197: /^(abc)def(?1)/I
! 1198: abcdefabc
! 1199:
! 1200: /^(a|b|c)=(?1)+/I
! 1201: a=a
! 1202: a=b
! 1203: a=bc
! 1204:
! 1205: /^(a|b|c)=((?1))+/I
! 1206: a=a
! 1207: a=b
! 1208: a=bc
! 1209:
! 1210: /a(?P<name1>b|c)d(?P<longername2>e)/DZ
! 1211: abde
! 1212: acde
! 1213:
! 1214: /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
! 1215:
! 1216: /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
! 1217:
! 1218: /^\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
! 1219: 1221
! 1220: Satan, oscillate my metallic sonatas!
! 1221: A man, a plan, a canal: Panama!
! 1222: Able was I ere I saw Elba.
! 1223: *** Failers
! 1224: The quick brown fox
! 1225:
! 1226: /((?(R)a|b))\1(?1)?/I
! 1227: bb
! 1228: bbaa
! 1229:
! 1230: /(.*)a/Is
! 1231:
! 1232: /(.*)a\1/Is
! 1233:
! 1234: /(.*)a(b)\2/Is
! 1235:
! 1236: /((.*)a|(.*)b)z/Is
! 1237:
! 1238: /((.*)a|(.*)b)z\1/Is
! 1239:
! 1240: /((.*)a|(.*)b)z\2/Is
! 1241:
! 1242: /((.*)a|(.*)b)z\3/Is
! 1243:
! 1244: /((.*)a|^(.*)b)z\3/Is
! 1245:
! 1246: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
! 1247:
! 1248: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
! 1249:
! 1250: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
! 1251:
! 1252: /(a)(bc)/INDZ
! 1253: abc
! 1254:
! 1255: /(?P<one>a)(bc)/INDZ
! 1256: abc
! 1257:
! 1258: /(a)(?P<named>bc)/INDZ
! 1259:
! 1260: /(a+)*zz/I
! 1261: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
! 1262: aaaaaaaaaaaaaz\M
! 1263:
! 1264: /(aaa(?C1)bbb|ab)/I
! 1265: aaabbb
! 1266: aaabbb\C*0
! 1267: aaabbb\C*1
! 1268: aaabbb\C*-1
! 1269:
! 1270: /ab(?P<one>cd)ef(?P<two>gh)/I
! 1271: abcdefgh
! 1272: abcdefgh\C1\Gtwo
! 1273: abcdefgh\Cone\Ctwo
! 1274: abcdefgh\Cthree
! 1275:
! 1276: /(?P<Tes>)(?P<Test>)/DZ
! 1277:
! 1278: /(?P<Test>)(?P<Tes>)/DZ
! 1279:
! 1280: /(?P<Z>zz)(?P<A>aa)/I
! 1281: zzaa\CZ
! 1282: zzaa\CA
! 1283:
! 1284: /(?P<x>eks)(?P<x>eccs)/I
! 1285:
! 1286: /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
! 1287:
! 1288: "\[((?P<elem>\d+)(,(?P>elem))*)\]"I
! 1289: [10,20,30,5,5,4,4,2,43,23,4234]
! 1290: *** Failers
! 1291: []
! 1292:
! 1293: "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
! 1294: [10,20,30,5,5,4,4,2,43,23,4234]
! 1295: []
! 1296:
! 1297: /(a(b(?2)c))?/DZ
! 1298:
! 1299: /(a(b(?2)c))*/DZ
! 1300:
! 1301: /(a(b(?2)c)){0,2}/DZ
! 1302:
! 1303: /[ab]{1}+/DZ
! 1304:
! 1305: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
! 1306: Baby Bjorn Active Carrier - With free SHIPPING!!
! 1307:
! 1308: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
! 1309: Baby Bjorn Active Carrier - With free SHIPPING!!
! 1310:
! 1311: /a*.*b/ISDZ
! 1312:
! 1313: /(a|b)*.?c/ISDZ
! 1314:
! 1315: /abc(?C255)de(?C)f/DZ
! 1316:
! 1317: /abcde/ICDZ
! 1318: abcde
! 1319: abcdfe
! 1320:
! 1321: /a*b/ICDZS
! 1322: ab
! 1323: aaaab
! 1324: aaaacb
! 1325:
! 1326: /a*b/ICDZSS
! 1327: ab
! 1328: aaaab
! 1329: aaaacb
! 1330:
! 1331: /a+b/ICDZ
! 1332: ab
! 1333: aaaab
! 1334: aaaacb
! 1335:
! 1336: /(abc|def)x/ICDZS
! 1337: abcx
! 1338: defx
! 1339: ** Failers
! 1340: abcdefzx
! 1341:
! 1342: /(abc|def)x/ICDZSS
! 1343: abcx
! 1344: defx
! 1345: ** Failers
! 1346: abcdefzx
! 1347:
! 1348: /(ab|cd){3,4}/IC
! 1349: ababab
! 1350: abcdabcd
! 1351: abcdcdcdcdcd
! 1352:
! 1353: /([ab]{,4}c|xy)/ICDZS
! 1354: Note: that { does NOT introduce a quantifier
! 1355:
! 1356: /([ab]{,4}c|xy)/ICDZSS
! 1357: Note: that { does NOT introduce a quantifier
! 1358:
! 1359: /([ab]{1,4}c|xy){4,5}?123/ICDZ
! 1360: aacaacaacaacaac123
! 1361:
! 1362: /\b.*/I
! 1363: ab cd\>1
! 1364:
! 1365: /\b.*/Is
! 1366: ab cd\>1
! 1367:
! 1368: /(?!.bcd).*/I
! 1369: Xbcd12345
! 1370:
! 1371: /abcde/I
! 1372: ab\P
! 1373: abc\P
! 1374: abcd\P
! 1375: abcde\P
! 1376: the quick brown abc\P
! 1377: ** Failers\P
! 1378: the quick brown abxyz fox\P
! 1379:
! 1380: "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
! 1381: 13/05/04\P
! 1382: 13/5/2004\P
! 1383: 02/05/09\P
! 1384: 1\P
! 1385: 1/2\P
! 1386: 1/2/0\P
! 1387: 1/2/04\P
! 1388: 0\P
! 1389: 02/\P
! 1390: 02/0\P
! 1391: 02/1\P
! 1392: ** Failers\P
! 1393: \P
! 1394: 123\P
! 1395: 33/4/04\P
! 1396: 3/13/04\P
! 1397: 0/1/2003\P
! 1398: 0/\P
! 1399: 02/0/\P
! 1400: 02/13\P
! 1401:
! 1402: /0{0,2}ABC/I
! 1403:
! 1404: /\d{3,}ABC/I
! 1405:
! 1406: /\d*ABC/I
! 1407:
! 1408: /[abc]+DE/I
! 1409:
! 1410: /[abc]?123/I
! 1411: 123\P
! 1412: a\P
! 1413: b\P
! 1414: c\P
! 1415: c12\P
! 1416: c123\P
! 1417:
! 1418: /^(?:\d){3,5}X/I
! 1419: 1\P
! 1420: 123\P
! 1421: 123X
! 1422: 1234\P
! 1423: 1234X
! 1424: 12345\P
! 1425: 12345X
! 1426: *** Failers
! 1427: 1X
! 1428: 123456\P
! 1429:
! 1430: /abc/IS>testsavedregex
! 1431: <testsavedregex
! 1432: abc
! 1433: ** Failers
! 1434: bca
! 1435:
! 1436: /abc/ISS>testsavedregex
! 1437: <testsavedregex
! 1438: abc
! 1439: ** Failers
! 1440: bca
! 1441:
! 1442: /abc/IFS>testsavedregex
! 1443: <testsavedregex
! 1444: abc
! 1445: ** Failers
! 1446: bca
! 1447:
! 1448: /abc/IFSS>testsavedregex
! 1449: <testsavedregex
! 1450: abc
! 1451: ** Failers
! 1452: bca
! 1453:
! 1454: /(a|b)/IS>testsavedregex
! 1455: <testsavedregex
! 1456: abc
! 1457: ** Failers
! 1458: def
! 1459:
! 1460: /(a|b)/ISS>testsavedregex
! 1461: <testsavedregex
! 1462: abc
! 1463: ** Failers
! 1464: def
! 1465:
! 1466: /(a|b)/ISF>testsavedregex
! 1467: <testsavedregex
! 1468: abc
! 1469: ** Failers
! 1470: def
! 1471:
! 1472: /(a|b)/ISSF>testsavedregex
! 1473: <testsavedregex
! 1474: abc
! 1475: ** Failers
! 1476: def
! 1477:
! 1478: ~<(\w+)/?>(.)*</(\1)>~smgI
! 1479: \J1024<!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>
! 1480:
! 1481: /^a/IF
! 1482:
! 1483: /line\nbreak/I
! 1484: this is a line\nbreak
! 1485: line one\nthis is a line\nbreak in the second line
! 1486:
! 1487: /line\nbreak/If
! 1488: this is a line\nbreak
! 1489: ** Failers
! 1490: line one\nthis is a line\nbreak in the second line
! 1491:
! 1492: /line\nbreak/Imf
! 1493: this is a line\nbreak
! 1494: ** Failers
! 1495: line one\nthis is a line\nbreak in the second line
! 1496:
! 1497: /ab.cd/P
! 1498: ab-cd
! 1499: ab=cd
! 1500: ** Failers
! 1501: ab\ncd
! 1502:
! 1503: /ab.cd/Ps
! 1504: ab-cd
! 1505: ab=cd
! 1506: ab\ncd
! 1507:
! 1508: /(?i)(?-i)AbCd/I
! 1509: AbCd
! 1510: ** Failers
! 1511: abcd
! 1512:
! 1513: /a{11111111111111111111}/I
! 1514:
! 1515: /(){64294967295}/I
! 1516:
! 1517: /(){2,4294967295}/I
! 1518:
! 1519: "(?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
! 1520: abcdefghijklAkB
! 1521:
! 1522: "(?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
! 1523: abcdefghijklAkB
! 1524:
! 1525: "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
! 1526: abcdefghijklAkB
! 1527:
! 1528: "(?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
! 1529: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
! 1530:
! 1531: "(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(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
! 1532: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
! 1533:
! 1534: /[^()]*(?:\((?R)\)[^()]*)*/I
! 1535: (this(and)that
! 1536: (this(and)that)
! 1537: (this(and)that)stuff
! 1538:
! 1539: /[^()]*(?:\((?>(?R))\)[^()]*)*/I
! 1540: (this(and)that
! 1541: (this(and)that)
! 1542:
! 1543: /[^()]*(?:\((?R)\))*[^()]*/I
! 1544: (this(and)that
! 1545: (this(and)that)
! 1546:
! 1547: /(?:\((?R)\))*[^()]*/I
! 1548: (this(and)that
! 1549: (this(and)that)
! 1550: ((this))
! 1551:
! 1552: /(?:\((?R)\))|[^()]*/I
! 1553: (this(and)that
! 1554: (this(and)that)
! 1555: (this)
! 1556: ((this))
! 1557:
! 1558: /a(b)c/PN
! 1559: abc
! 1560:
! 1561: /a(?P<name>b)c/PN
! 1562: abc
! 1563:
! 1564: /\x{100}/I
! 1565:
! 1566: /\x{0000ff}/I
! 1567:
! 1568: /^((?P<A>a1)|(?P<A>a2)b)/I
! 1569:
! 1570: /^((?P<A>a1)|(?P<A>a2)b)/IJ
! 1571: a1b\CA
! 1572: a2b\CA
! 1573: ** Failers
! 1574: a1b\CZ\CA
! 1575:
! 1576: /^(?P<A>a)(?P<A>b)/IJ
! 1577: ab\CA
! 1578:
! 1579: /^(?P<A>a)(?P<A>b)|cd/IJ
! 1580: ab\CA
! 1581: cd\CA
! 1582:
! 1583: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
! 1584: cdefgh\CA
! 1585:
! 1586: /^((?P<A>a1)|(?P<A>a2)b)/IJ
! 1587: a1b\GA
! 1588: a2b\GA
! 1589: ** Failers
! 1590: a1b\GZ\GA
! 1591:
! 1592: /^(?P<A>a)(?P<A>b)/IJ
! 1593: ab\GA
! 1594:
! 1595: /^(?P<A>a)(?P<A>b)|cd/IJ
! 1596: ab\GA
! 1597: cd\GA
! 1598:
! 1599: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
! 1600: cdefgh\GA
! 1601:
! 1602: /(?J)^((?P<A>a1)|(?P<A>a2)b)/I
! 1603: a1b\CA
! 1604: a2b\CA
! 1605:
! 1606: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
! 1607:
! 1608: / In this next test, J is not set at the outer level; consequently it isn't
! 1609: set in the pattern's options; consequently pcre_get_named_substring() produces
! 1610: a random value. /Ix
! 1611:
! 1612: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
! 1613: a bc d\CA\CB\CC
! 1614:
! 1615: /^(?P<A>a)?(?(A)a|b)/I
! 1616: aabc
! 1617: bc
! 1618: ** Failers
! 1619: abc
! 1620:
! 1621: /(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
! 1622: bXaX
! 1623:
! 1624: /(?:(?(2y)a|b)(X))+/I
! 1625:
! 1626: /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
! 1627:
! 1628: /(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
! 1629: bbXaaX
! 1630:
! 1631: /(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
! 1632: (b)\\Xa\\X
! 1633:
! 1634: /(?P<ABC/I
! 1635:
! 1636: /(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
! 1637: bXXaYYaY
! 1638: bXYaXXaX
! 1639:
! 1640: /()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
! 1641: bXXaYYaY
! 1642:
! 1643: /\777/I
! 1644:
! 1645: /\s*,\s*/IS
! 1646: \x0b,\x0b
! 1647: \x0c,\x0d
! 1648:
! 1649: /^abc/Im
! 1650: xyz\nabc
! 1651: xyz\nabc\<lf>
! 1652: xyz\r\nabc\<lf>
! 1653: xyz\rabc\<cr>
! 1654: xyz\r\nabc\<crlf>
! 1655: ** Failers
! 1656: xyz\nabc\<cr>
! 1657: xyz\r\nabc\<cr>
! 1658: xyz\nabc\<crlf>
! 1659: xyz\rabc\<crlf>
! 1660: xyz\rabc\<lf>
! 1661:
! 1662: /abc$/Im<lf>
! 1663: xyzabc
! 1664: xyzabc\n
! 1665: xyzabc\npqr
! 1666: xyzabc\r\<cr>
! 1667: xyzabc\rpqr\<cr>
! 1668: xyzabc\r\n\<crlf>
! 1669: xyzabc\r\npqr\<crlf>
! 1670: ** Failers
! 1671: xyzabc\r
! 1672: xyzabc\rpqr
! 1673: xyzabc\r\n
! 1674: xyzabc\r\npqr
! 1675:
! 1676: /^abc/Im<cr>
! 1677: xyz\rabcdef
! 1678: xyz\nabcdef\<lf>
! 1679: ** Failers
! 1680: xyz\nabcdef
! 1681:
! 1682: /^abc/Im<lf>
! 1683: xyz\nabcdef
! 1684: xyz\rabcdef\<cr>
! 1685: ** Failers
! 1686: xyz\rabcdef
! 1687:
! 1688: /^abc/Im<crlf>
! 1689: xyz\r\nabcdef
! 1690: xyz\rabcdef\<cr>
! 1691: ** Failers
! 1692: xyz\rabcdef
! 1693:
! 1694: /^abc/Im<bad>
! 1695:
! 1696: /abc/I
! 1697: xyz\rabc\<bad>
! 1698: abc
! 1699:
! 1700: /.*/I<lf>
! 1701: abc\ndef
! 1702: abc\rdef
! 1703: abc\r\ndef
! 1704: \<cr>abc\ndef
! 1705: \<cr>abc\rdef
! 1706: \<cr>abc\r\ndef
! 1707: \<crlf>abc\ndef
! 1708: \<crlf>abc\rdef
! 1709: \<crlf>abc\r\ndef
! 1710:
! 1711: /\w+(.)(.)?def/Is
! 1712: abc\ndef
! 1713: abc\rdef
! 1714: abc\r\ndef
! 1715:
! 1716: +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
! 1717: /* this is a C style comment */\M
! 1718:
! 1719: /(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
! 1720:
! 1721: /()()()()()()()()()()()()()()()()()()()()
! 1722: ()()()()()()()()()()()()()()()()()()()()
! 1723: ()()()()()()()()()()()()()()()()()()()()
! 1724: ()()()()()()()()()()()()()()()()()()()()
! 1725: ()()()()()()()()()()()()()()()()()()()()
! 1726: (.(.))/Ix
! 1727: XY\O400
! 1728:
! 1729: /(a*b|(?i:c*(?-i)d))/IS
! 1730:
! 1731: /()[ab]xyz/IS
! 1732:
! 1733: /(|)[ab]xyz/IS
! 1734:
! 1735: /(|c)[ab]xyz/IS
! 1736:
! 1737: /(|c?)[ab]xyz/IS
! 1738:
! 1739: /(d?|c?)[ab]xyz/IS
! 1740:
! 1741: /(d?|c)[ab]xyz/IS
! 1742:
! 1743: /^a*b\d/DZ
! 1744:
! 1745: /^a*+b\d/DZ
! 1746:
! 1747: /^a*?b\d/DZ
! 1748:
! 1749: /^a+A\d/DZ
! 1750: aaaA5
! 1751: ** Failers
! 1752: aaaa5
! 1753:
! 1754: /^a*A\d/IiDZ
! 1755: aaaA5
! 1756: aaaa5
! 1757:
! 1758: /(a*|b*)[cd]/IS
! 1759:
! 1760: /(a+|b*)[cd]/IS
! 1761:
! 1762: /(a*|b+)[cd]/IS
! 1763:
! 1764: /(a+|b+)[cd]/IS
! 1765:
! 1766: /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
! 1767: ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
! 1768: (((
! 1769: a
! 1770: ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
! 1771: ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
! 1772: )))
! 1773: /Ix
! 1774: large nest
! 1775:
! 1776: /a*\d/BZ
! 1777:
! 1778: /a*\D/BZ
! 1779:
! 1780: /0*\d/BZ
! 1781:
! 1782: /0*\D/BZ
! 1783:
! 1784: /a*\s/BZ
! 1785:
! 1786: /a*\S/BZ
! 1787:
! 1788: / *\s/BZ
! 1789:
! 1790: / *\S/BZ
! 1791:
! 1792: /a*\w/BZ
! 1793:
! 1794: /a*\W/BZ
! 1795:
! 1796: /=*\w/BZ
! 1797:
! 1798: /=*\W/BZ
! 1799:
! 1800: /\d*a/BZ
! 1801:
! 1802: /\d*2/BZ
! 1803:
! 1804: /\d*\d/BZ
! 1805:
! 1806: /\d*\D/BZ
! 1807:
! 1808: /\d*\s/BZ
! 1809:
! 1810: /\d*\S/BZ
! 1811:
! 1812: /\d*\w/BZ
! 1813:
! 1814: /\d*\W/BZ
! 1815:
! 1816: /\D*a/BZ
! 1817:
! 1818: /\D*2/BZ
! 1819:
! 1820: /\D*\d/BZ
! 1821:
! 1822: /\D*\D/BZ
! 1823:
! 1824: /\D*\s/BZ
! 1825:
! 1826: /\D*\S/BZ
! 1827:
! 1828: /\D*\w/BZ
! 1829:
! 1830: /\D*\W/BZ
! 1831:
! 1832: /\s*a/BZ
! 1833:
! 1834: /\s*2/BZ
! 1835:
! 1836: /\s*\d/BZ
! 1837:
! 1838: /\s*\D/BZ
! 1839:
! 1840: /\s*\s/BZ
! 1841:
! 1842: /\s*\S/BZ
! 1843:
! 1844: /\s*\w/BZ
! 1845:
! 1846: /\s*\W/BZ
! 1847:
! 1848: /\S*a/BZ
! 1849:
! 1850: /\S*2/BZ
! 1851:
! 1852: /\S*\d/BZ
! 1853:
! 1854: /\S*\D/BZ
! 1855:
! 1856: /\S*\s/BZ
! 1857:
! 1858: /\S*\S/BZ
! 1859:
! 1860: /\S*\w/BZ
! 1861:
! 1862: /\S*\W/BZ
! 1863:
! 1864: /\w*a/BZ
! 1865:
! 1866: /\w*2/BZ
! 1867:
! 1868: /\w*\d/BZ
! 1869:
! 1870: /\w*\D/BZ
! 1871:
! 1872: /\w*\s/BZ
! 1873:
! 1874: /\w*\S/BZ
! 1875:
! 1876: /\w*\w/BZ
! 1877:
! 1878: /\w*\W/BZ
! 1879:
! 1880: /\W*a/BZ
! 1881:
! 1882: /\W*2/BZ
! 1883:
! 1884: /\W*\d/BZ
! 1885:
! 1886: /\W*\D/BZ
! 1887:
! 1888: /\W*\s/BZ
! 1889:
! 1890: /\W*\S/BZ
! 1891:
! 1892: /\W*\w/BZ
! 1893:
! 1894: /\W*\W/BZ
! 1895:
! 1896: /[^a]+a/BZ
! 1897:
! 1898: /[^a]+a/BZi
! 1899:
! 1900: /[^a]+A/BZi
! 1901:
! 1902: /[^a]+b/BZ
! 1903:
! 1904: /[^a]+\d/BZ
! 1905:
! 1906: /a*[^a]/BZ
! 1907:
! 1908: /(?P<abc>x)(?P<xyz>y)/I
! 1909: xy\Cabc\Cxyz
! 1910:
! 1911: /(?<abc>x)(?'xyz'y)/I
! 1912: xy\Cabc\Cxyz
! 1913:
! 1914: /(?<abc'x)(?'xyz'y)/I
! 1915:
! 1916: /(?<abc>x)(?'xyz>y)/I
! 1917:
! 1918: /(?P'abc'x)(?P<xyz>y)/I
! 1919:
! 1920: /^(?:(?(ZZ)a|b)(?<ZZ>X))+/
! 1921: bXaX
! 1922: bXbX
! 1923: ** Failers
! 1924: aXaX
! 1925: aXbX
! 1926:
! 1927: /^(?P>abc)(?<abcd>xxx)/
! 1928:
! 1929: /^(?P>abc)(?<abc>x|y)/
! 1930: xx
! 1931: xy
! 1932: yy
! 1933: yx
! 1934:
! 1935: /^(?P>abc)(?P<abc>x|y)/
! 1936: xx
! 1937: xy
! 1938: yy
! 1939: yx
! 1940:
! 1941: /^((?(abc)a|b)(?<abc>x|y))+/
! 1942: bxay
! 1943: bxby
! 1944: ** Failers
! 1945: axby
! 1946:
! 1947: /^(((?P=abc)|X)(?<abc>x|y))+/
! 1948: XxXxxx
! 1949: XxXyyx
! 1950: XxXyxx
! 1951: ** Failers
! 1952: x
! 1953:
! 1954: /^(?1)(abc)/
! 1955: abcabc
! 1956:
! 1957: /^(?:(?:\1|X)(a|b))+/
! 1958: Xaaa
! 1959: Xaba
! 1960:
! 1961: /^[\E\Qa\E-\Qz\E]+/BZ
! 1962:
! 1963: /^[a\Q]bc\E]/BZ
! 1964:
! 1965: /^[a-\Q\E]/BZ
! 1966:
! 1967: /^(?P>abc)[()](?<abc>)/BZ
! 1968:
! 1969: /^((?(abc)y)[()](?P<abc>x))+/BZ
! 1970: (xy)x
! 1971:
! 1972: /^(?P>abc)\Q()\E(?<abc>)/BZ
! 1973:
! 1974: /^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
! 1975:
! 1976: /^(?P>abc) # this is (a comment)
! 1977: (?<abc>)/BZx
! 1978:
! 1979: /^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
! 1980: 1221
! 1981: Satan, oscillate my metallic sonatas!
! 1982: A man, a plan, a canal: Panama!
! 1983: Able was I ere I saw Elba.
! 1984: *** Failers
! 1985: The quick brown fox
! 1986:
! 1987: /(?=(\w+))\1:/I
! 1988: abcd:
! 1989:
! 1990: /(?=(?'abc'\w+))\k<abc>:/I
! 1991: abcd:
! 1992:
! 1993: /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
! 1994: adaa
! 1995: ** Failers
! 1996: addd
! 1997: adbb
! 1998:
! 1999: /(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
! 2000: bdaa
! 2001: bdab
! 2002: ** Failers
! 2003: bddd
! 2004:
! 2005: /(?(<bc))/
! 2006:
! 2007: /(?(''))/
! 2008:
! 2009: /(?('R')stuff)/
! 2010:
! 2011: /((abc (?(R) (?(R1)1) (?(R2)2) X | (?1) (?2) (?R) ))) /x
! 2012: abcabc1Xabc2XabcXabcabc
! 2013:
! 2014: /(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
! 2015: abcabc1Xabc2XabcXabcabc
! 2016:
! 2017: /(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
! 2018:
! 2019: /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
! 2020: abcabc1Xabc2XabcXabcabc
! 2021:
! 2022: /^(?(DEFINE) abc | xyz ) /x
! 2023:
! 2024: /(?(DEFINE) abc) xyz/xI
! 2025:
! 2026: /(a|)*\d/
! 2027: \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
! 2028: \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
! 2029:
! 2030: /^a.b/<lf>
! 2031: a\rb
! 2032: a\nb\<cr>
! 2033: a\x85b\<anycrlf>
! 2034: ** Failers
! 2035: a\nb
! 2036: a\nb\<any>
! 2037: a\rb\<cr>
! 2038: a\rb\<any>
! 2039: a\x85b\<any>
! 2040: a\rb\<anycrlf>
! 2041:
! 2042: /^abc./mgx<any>
! 2043: abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
! 2044:
! 2045: /abc.$/mgx<any>
! 2046: abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
! 2047:
! 2048: /a/<cr><any>
! 2049:
! 2050: /a/<any><crlf>
! 2051:
! 2052: /^a\Rb/<bsr_unicode>
! 2053: a\nb
! 2054: a\rb
! 2055: a\r\nb
! 2056: a\x0bb
! 2057: a\x0cb
! 2058: a\x85b
! 2059: ** Failers
! 2060: a\n\rb
! 2061:
! 2062: /^a\R*b/<bsr_unicode>
! 2063: ab
! 2064: a\nb
! 2065: a\rb
! 2066: a\r\nb
! 2067: a\x0bb
! 2068: a\x0cb
! 2069: a\x85b
! 2070: a\n\rb
! 2071: a\n\r\x85\x0cb
! 2072:
! 2073: /^a\R+b/<bsr_unicode>
! 2074: a\nb
! 2075: a\rb
! 2076: a\r\nb
! 2077: a\x0bb
! 2078: a\x0cb
! 2079: a\x85b
! 2080: a\n\rb
! 2081: a\n\r\x85\x0cb
! 2082: ** Failers
! 2083: ab
! 2084:
! 2085: /^a\R{1,3}b/<bsr_unicode>
! 2086: a\nb
! 2087: a\n\rb
! 2088: a\n\r\x85b
! 2089: a\r\n\r\nb
! 2090: a\r\n\r\n\r\nb
! 2091: a\n\r\n\rb
! 2092: a\n\n\r\nb
! 2093: ** Failers
! 2094: a\n\n\n\rb
! 2095: a\r
! 2096:
! 2097: /^a[\R]b/<bsr_unicode>
! 2098: aRb
! 2099: ** Failers
! 2100: a\nb
! 2101:
! 2102: /(?&abc)X(?<abc>P)/I
! 2103: abcPXP123
! 2104:
! 2105: /(?1)X(?<abc>P)/I
! 2106: abcPXP123
! 2107:
! 2108: /(?:a(?&abc)b)*(?<abc>x)/
! 2109: 123axbaxbaxbx456
! 2110: 123axbaxbaxb456
! 2111:
! 2112: /(?:a(?&abc)b){1,5}(?<abc>x)/
! 2113: 123axbaxbaxbx456
! 2114:
! 2115: /(?:a(?&abc)b){2,5}(?<abc>x)/
! 2116: 123axbaxbaxbx456
! 2117:
! 2118: /(?:a(?&abc)b){2,}(?<abc>x)/
! 2119: 123axbaxbaxbx456
! 2120:
! 2121: /(abc)(?i:(?1))/
! 2122: defabcabcxyz
! 2123: DEFabcABCXYZ
! 2124:
! 2125: /(abc)(?:(?i)(?1))/
! 2126: defabcabcxyz
! 2127: DEFabcABCXYZ
! 2128:
! 2129: /^(a)\g-2/
! 2130:
! 2131: /^(a)\g/
! 2132:
! 2133: /^(a)\g{0}/
! 2134:
! 2135: /^(a)\g{3/
! 2136:
! 2137: /^(a)\g{4a}/
! 2138:
! 2139: /^a.b/<lf>
! 2140: a\rb
! 2141: *** Failers
! 2142: a\nb
! 2143:
! 2144: /.+foo/
! 2145: afoo
! 2146: ** Failers
! 2147: \r\nfoo
! 2148: \nfoo
! 2149:
! 2150: /.+foo/<crlf>
! 2151: afoo
! 2152: \nfoo
! 2153: ** Failers
! 2154: \r\nfoo
! 2155:
! 2156: /.+foo/<any>
! 2157: afoo
! 2158: ** Failers
! 2159: \nfoo
! 2160: \r\nfoo
! 2161:
! 2162: /.+foo/s
! 2163: afoo
! 2164: \r\nfoo
! 2165: \nfoo
! 2166:
! 2167: /^$/mg<any>
! 2168: abc\r\rxyz
! 2169: abc\n\rxyz
! 2170: ** Failers
! 2171: abc\r\nxyz
! 2172:
! 2173: /(?m)^$/<any>g+
! 2174: abc\r\n\r\n
! 2175:
! 2176: /(?m)^$|^\r\n/<any>g+
! 2177: abc\r\n\r\n
! 2178:
! 2179: /(?m)$/<any>g+
! 2180: abc\r\n\r\n
! 2181:
! 2182: /abc.$/mgx<anycrlf>
! 2183: abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
! 2184:
! 2185: /^X/m
! 2186: XABC
! 2187: ** Failers
! 2188: XABC\B
! 2189:
! 2190: /(ab|c)(?-1)/BZ
! 2191: abc
! 2192:
! 2193: /xy(?+1)(abc)/BZ
! 2194: xyabcabc
! 2195: ** Failers
! 2196: xyabc
! 2197:
! 2198: /x(?-0)y/
! 2199:
! 2200: /x(?-1)y/
! 2201:
! 2202: /x(?+0)y/
! 2203:
! 2204: /x(?+1)y/
! 2205:
! 2206: /^(abc)?(?(-1)X|Y)/BZ
! 2207: abcX
! 2208: Y
! 2209: ** Failers
! 2210: abcY
! 2211:
! 2212: /^((?(+1)X|Y)(abc))+/BZ
! 2213: YabcXabc
! 2214: YabcXabcXabc
! 2215: ** Failers
! 2216: XabcXabc
! 2217:
! 2218: /(?(-1)a)/BZ
! 2219:
! 2220: /((?(-1)a))/BZ
! 2221:
! 2222: /((?(-2)a))/BZ
! 2223:
! 2224: /^(?(+1)X|Y)(.)/BZ
! 2225: Y!
! 2226:
! 2227: /(?<A>tom|bon)-\k{A}/
! 2228: tom-tom
! 2229: bon-bon
! 2230: ** Failers
! 2231: tom-bon
! 2232:
! 2233: /\g{A/
! 2234:
! 2235: /(?|(abc)|(xyz))/BZ
! 2236: >abc<
! 2237: >xyz<
! 2238:
! 2239: /(x)(?|(abc)|(xyz))(x)/BZ
! 2240: xabcx
! 2241: xxyzx
! 2242:
! 2243: /(x)(?|(abc)(pqr)|(xyz))(x)/BZ
! 2244: xabcpqrx
! 2245: xxyzx
! 2246:
! 2247: /[\h]/BZ
! 2248: >\x09<
! 2249:
! 2250: /[\h]+/BZ
! 2251: >\x09\x20\xa0<
! 2252:
! 2253: /[\v]/BZ
! 2254:
! 2255: /[\H]/BZ
! 2256:
! 2257: /[^\h]/BZ
! 2258:
! 2259: /[\V]/BZ
! 2260:
! 2261: /[\x0a\V]/BZ
! 2262:
! 2263: /\H++X/BZ
! 2264: ** Failers
! 2265: XXXX
! 2266:
! 2267: /\H+\hY/BZ
! 2268: XXXX Y
! 2269:
! 2270: /\H+ Y/BZ
! 2271:
! 2272: /\h+A/BZ
! 2273:
! 2274: /\v*B/BZ
! 2275:
! 2276: /\V+\x0a/BZ
! 2277:
! 2278: /A+\h/BZ
! 2279:
! 2280: / *\H/BZ
! 2281:
! 2282: /A*\v/BZ
! 2283:
! 2284: /\x0b*\V/BZ
! 2285:
! 2286: /\d+\h/BZ
! 2287:
! 2288: /\d*\v/BZ
! 2289:
! 2290: /S+\h\S+\v/BZ
! 2291:
! 2292: /\w{3,}\h\w+\v/BZ
! 2293:
! 2294: /\h+\d\h+\w\h+\S\h+\H/BZ
! 2295:
! 2296: /\v+\d\v+\w\v+\S\v+\V/BZ
! 2297:
! 2298: /\H+\h\H+\d/BZ
! 2299:
! 2300: /\V+\v\V+\w/BZ
! 2301:
! 2302: /\( (?: [^()]* | (?R) )* \)/x
! 2303: \J1024(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
! 2304:
! 2305: /[\E]AAA/
! 2306:
! 2307: /[\Q\E]AAA/
! 2308:
! 2309: /[^\E]AAA/
! 2310:
! 2311: /[^\Q\E]AAA/
! 2312:
! 2313: /[\E^]AAA/
! 2314:
! 2315: /[\Q\E^]AAA/
! 2316:
! 2317: /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
! 2318:
! 2319: /^a+(*FAIL)/C
! 2320: aaaaaa
! 2321:
! 2322: /a+b?c+(*FAIL)/C
! 2323: aaabccc
! 2324:
! 2325: /a+b?(*PRUNE)c+(*FAIL)/C
! 2326: aaabccc
! 2327:
! 2328: /a+b?(*COMMIT)c+(*FAIL)/C
! 2329: aaabccc
! 2330:
! 2331: /a+b?(*SKIP)c+(*FAIL)/C
! 2332: aaabcccaaabccc
! 2333:
! 2334: /a+b?(*THEN)c+(*FAIL)/C
! 2335: aaabccc
! 2336:
! 2337: /a(*MARK)b/
! 2338:
! 2339: /(?i:A{1,}\6666666666)/
! 2340:
! 2341: /\g6666666666/
! 2342:
! 2343: /[\g6666666666]/BZ
! 2344:
! 2345: /(?1)\c[/
! 2346:
! 2347: /.+A/<crlf>
! 2348: \r\nA
! 2349:
! 2350: /\nA/<crlf>
! 2351: \r\nA
! 2352:
! 2353: /[\r\n]A/<crlf>
! 2354: \r\nA
! 2355:
! 2356: /(\r|\n)A/<crlf>
! 2357: \r\nA
! 2358:
! 2359: /a(*CR)b/
! 2360:
! 2361: /(*CR)a.b/
! 2362: a\nb
! 2363: ** Failers
! 2364: a\rb
! 2365:
! 2366: /(*CR)a.b/<lf>
! 2367: a\nb
! 2368: ** Failers
! 2369: a\rb
! 2370:
! 2371: /(*LF)a.b/<CRLF>
! 2372: a\rb
! 2373: ** Failers
! 2374: a\nb
! 2375:
! 2376: /(*CRLF)a.b/
! 2377: a\rb
! 2378: a\nb
! 2379: ** Failers
! 2380: a\r\nb
! 2381:
! 2382: /(*ANYCRLF)a.b/<CR>
! 2383: ** Failers
! 2384: a\rb
! 2385: a\nb
! 2386: a\r\nb
! 2387:
! 2388: /(*ANY)a.b/<cr>
! 2389: ** Failers
! 2390: a\rb
! 2391: a\nb
! 2392: a\r\nb
! 2393: a\x85b
! 2394:
! 2395: /(*ANY).*/g
! 2396: abc\r\ndef
! 2397:
! 2398: /(*ANYCRLF).*/g
! 2399: abc\r\ndef
! 2400:
! 2401: /(*CRLF).*/g
! 2402: abc\r\ndef
! 2403:
! 2404: /a\Rb/I<bsr_anycrlf>
! 2405: a\rb
! 2406: a\nb
! 2407: a\r\nb
! 2408: ** Failers
! 2409: a\x85b
! 2410: a\x0bb
! 2411:
! 2412: /a\Rb/I<bsr_unicode>
! 2413: a\rb
! 2414: a\nb
! 2415: a\r\nb
! 2416: a\x85b
! 2417: a\x0bb
! 2418: ** Failers
! 2419: a\x85b\<bsr_anycrlf>
! 2420: a\x0bb\<bsr_anycrlf>
! 2421:
! 2422: /a\R?b/I<bsr_anycrlf>
! 2423: a\rb
! 2424: a\nb
! 2425: a\r\nb
! 2426: ** Failers
! 2427: a\x85b
! 2428: a\x0bb
! 2429:
! 2430: /a\R?b/I<bsr_unicode>
! 2431: a\rb
! 2432: a\nb
! 2433: a\r\nb
! 2434: a\x85b
! 2435: a\x0bb
! 2436: ** Failers
! 2437: a\x85b\<bsr_anycrlf>
! 2438: a\x0bb\<bsr_anycrlf>
! 2439:
! 2440: /a\R{2,4}b/I<bsr_anycrlf>
! 2441: a\r\n\nb
! 2442: a\n\r\rb
! 2443: a\r\n\r\n\r\n\r\nb
! 2444: ** Failers
! 2445: a\x85\85b
! 2446: a\x0b\0bb
! 2447:
! 2448: /a\R{2,4}b/I<bsr_unicode>
! 2449: a\r\rb
! 2450: a\n\n\nb
! 2451: a\r\n\n\r\rb
! 2452: a\x85\85b
! 2453: a\x0b\0bb
! 2454: ** Failers
! 2455: a\r\r\r\r\rb
! 2456: a\x85\85b\<bsr_anycrlf>
! 2457: a\x0b\0bb\<bsr_anycrlf>
! 2458:
! 2459: /(*BSR_ANYCRLF)a\Rb/I
! 2460: a\nb
! 2461: a\rb
! 2462:
! 2463: /(*BSR_UNICODE)a\Rb/I
! 2464: a\x85b
! 2465:
! 2466: /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
! 2467: a\nb
! 2468: a\rb
! 2469:
! 2470: /(*CRLF)(*BSR_UNICODE)a\Rb/I
! 2471: a\x85b
! 2472:
! 2473: /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
! 2474:
! 2475: /(?<a>)(?&)/
! 2476:
! 2477: /(?<abc>)(?&a)/
! 2478:
! 2479: /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
! 2480:
! 2481: /(?+-a)/
! 2482:
! 2483: /(?-+a)/
! 2484:
! 2485: /(?(-1))/
! 2486:
! 2487: /(?(+10))/
! 2488:
! 2489: /(?(10))/
! 2490:
! 2491: /(?(+2))()()/
! 2492:
! 2493: /(?(2))()()/
! 2494:
! 2495: /\k''/
! 2496:
! 2497: /\k<>/
! 2498:
! 2499: /\k{}/
! 2500:
! 2501: /\k/
! 2502:
! 2503: /\kabc/
! 2504:
! 2505: /(?P=)/
! 2506:
! 2507: /(?P>)/
! 2508:
! 2509: /(?!\w)(?R)/
! 2510:
! 2511: /(?=\w)(?R)/
! 2512:
! 2513: /(?<!\w)(?R)/
! 2514:
! 2515: /(?<=\w)(?R)/
! 2516:
! 2517: /[[:foo:]]/
! 2518:
! 2519: /[[:1234:]]/
! 2520:
! 2521: /[[:f\oo:]]/
! 2522:
! 2523: /[[: :]]/
! 2524:
! 2525: /[[:...:]]/
! 2526:
! 2527: /[[:l\ower:]]/
! 2528:
! 2529: /[[:abc\:]]/
! 2530:
! 2531: /[abc[:x\]pqr:]]/
! 2532:
! 2533: /[[:a\dz:]]/
! 2534:
! 2535: /(^(a|b\g<-1'c))/
! 2536:
! 2537: /^(?+1)(?<a>x|y){0}z/
! 2538: xzxx
! 2539: yzyy
! 2540: ** Failers
! 2541: xxz
! 2542:
! 2543: /(\3)(\1)(a)/
! 2544: cat
! 2545:
! 2546: /(\3)(\1)(a)/<JS>
! 2547: cat
! 2548:
! 2549: /TA]/
! 2550: The ACTA] comes
! 2551:
! 2552: /TA]/<JS>
! 2553: The ACTA] comes
! 2554:
! 2555: /(?2)[]a()b](abc)/
! 2556: abcbabc
! 2557:
! 2558: /(?2)[^]a()b](abc)/
! 2559: abcbabc
! 2560:
! 2561: /(?1)[]a()b](abc)/
! 2562: abcbabc
! 2563: ** Failers
! 2564: abcXabc
! 2565:
! 2566: /(?1)[^]a()b](abc)/
! 2567: abcXabc
! 2568: ** Failers
! 2569: abcbabc
! 2570:
! 2571: /(?2)[]a()b](abc)(xyz)/
! 2572: xyzbabcxyz
! 2573:
! 2574: /(?&N)[]a(?<N>)](?<M>abc)/
! 2575: abc<abc
! 2576:
! 2577: /(?&N)[]a(?<N>)](abc)/
! 2578: abc<abc
! 2579:
! 2580: /a[]b/
! 2581:
! 2582: /a[^]b/
! 2583:
! 2584: /a[]b/<JS>
! 2585: ** Failers
! 2586: ab
! 2587:
! 2588: /a[]+b/<JS>
! 2589: ** Failers
! 2590: ab
! 2591:
! 2592: /a[]*+b/<JS>
! 2593: ** Failers
! 2594: ab
! 2595:
! 2596: /a[^]b/<JS>
! 2597: aXb
! 2598: a\nb
! 2599: ** Failers
! 2600: ab
! 2601:
! 2602: /a[^]+b/<JS>
! 2603: aXb
! 2604: a\nX\nXb
! 2605: ** Failers
! 2606: ab
! 2607:
! 2608: /a(?!)+b/
! 2609:
! 2610: /a(*FAIL)+b/
! 2611:
! 2612: /(abc|pqr|123){0}[xyz]/SI
! 2613:
! 2614: /(?(?=.*b)b|^)/CI
! 2615: adc
! 2616: abc
! 2617:
! 2618: /(?(?=b).*b|^d)/I
! 2619:
! 2620: /(?(?=.*b).*b|^d)/I
! 2621:
! 2622: /a?|b?/P
! 2623: abc
! 2624: ** Failers
! 2625: ddd\N
! 2626:
! 2627: /xyz/C
! 2628: xyz
! 2629: abcxyz
! 2630: abcxyz\Y
! 2631: ** Failers
! 2632: abc
! 2633: abc\Y
! 2634: abcxypqr
! 2635: abcxypqr\Y
! 2636:
! 2637: /(*NO_START_OPT)xyz/C
! 2638: abcxyz
! 2639:
! 2640: /xyz/CY
! 2641: abcxyz
! 2642:
! 2643: /^"((?(?=[a])[^"])|b)*"$/C
! 2644: "ab"
! 2645:
! 2646: /^"((?(?=[a])[^"])|b)*"$/
! 2647: "ab"
! 2648:
! 2649: /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
! 2650: XYabcdY
! 2651:
! 2652: /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
! 2653: XYabcdY
! 2654:
! 2655: /Xa{2,4}b/
! 2656: X\P
! 2657: Xa\P
! 2658: Xaa\P
! 2659: Xaaa\P
! 2660: Xaaaa\P
! 2661:
! 2662: /Xa{2,4}?b/
! 2663: X\P
! 2664: Xa\P
! 2665: Xaa\P
! 2666: Xaaa\P
! 2667: Xaaaa\P
! 2668:
! 2669: /Xa{2,4}+b/
! 2670: X\P
! 2671: Xa\P
! 2672: Xaa\P
! 2673: Xaaa\P
! 2674: Xaaaa\P
! 2675:
! 2676: /X\d{2,4}b/
! 2677: X\P
! 2678: X3\P
! 2679: X33\P
! 2680: X333\P
! 2681: X3333\P
! 2682:
! 2683: /X\d{2,4}?b/
! 2684: X\P
! 2685: X3\P
! 2686: X33\P
! 2687: X333\P
! 2688: X3333\P
! 2689:
! 2690: /X\d{2,4}+b/
! 2691: X\P
! 2692: X3\P
! 2693: X33\P
! 2694: X333\P
! 2695: X3333\P
! 2696:
! 2697: /X\D{2,4}b/
! 2698: X\P
! 2699: Xa\P
! 2700: Xaa\P
! 2701: Xaaa\P
! 2702: Xaaaa\P
! 2703:
! 2704: /X\D{2,4}?b/
! 2705: X\P
! 2706: Xa\P
! 2707: Xaa\P
! 2708: Xaaa\P
! 2709: Xaaaa\P
! 2710:
! 2711: /X\D{2,4}+b/
! 2712: X\P
! 2713: Xa\P
! 2714: Xaa\P
! 2715: Xaaa\P
! 2716: Xaaaa\P
! 2717:
! 2718: /X[abc]{2,4}b/
! 2719: X\P
! 2720: Xa\P
! 2721: Xaa\P
! 2722: Xaaa\P
! 2723: Xaaaa\P
! 2724:
! 2725: /X[abc]{2,4}?b/
! 2726: X\P
! 2727: Xa\P
! 2728: Xaa\P
! 2729: Xaaa\P
! 2730: Xaaaa\P
! 2731:
! 2732: /X[abc]{2,4}+b/
! 2733: X\P
! 2734: Xa\P
! 2735: Xaa\P
! 2736: Xaaa\P
! 2737: Xaaaa\P
! 2738:
! 2739: /X[^a]{2,4}b/
! 2740: X\P
! 2741: Xz\P
! 2742: Xzz\P
! 2743: Xzzz\P
! 2744: Xzzzz\P
! 2745:
! 2746: /X[^a]{2,4}?b/
! 2747: X\P
! 2748: Xz\P
! 2749: Xzz\P
! 2750: Xzzz\P
! 2751: Xzzzz\P
! 2752:
! 2753: /X[^a]{2,4}+b/
! 2754: X\P
! 2755: Xz\P
! 2756: Xzz\P
! 2757: Xzzz\P
! 2758: Xzzzz\P
! 2759:
! 2760: /(Y)X\1{2,4}b/
! 2761: YX\P
! 2762: YXY\P
! 2763: YXYY\P
! 2764: YXYYY\P
! 2765: YXYYYY\P
! 2766:
! 2767: /(Y)X\1{2,4}?b/
! 2768: YX\P
! 2769: YXY\P
! 2770: YXYY\P
! 2771: YXYYY\P
! 2772: YXYYYY\P
! 2773:
! 2774: /(Y)X\1{2,4}+b/
! 2775: YX\P
! 2776: YXY\P
! 2777: YXYY\P
! 2778: YXYYY\P
! 2779: YXYYYY\P
! 2780:
! 2781: /\++\KZ|\d+X|9+Y/
! 2782: ++++123999\P
! 2783: ++++123999Y\P
! 2784: ++++Z1234\P
! 2785:
! 2786: /Z(*F)/
! 2787: Z\P
! 2788: ZA\P
! 2789:
! 2790: /Z(?!)/
! 2791: Z\P
! 2792: ZA\P
! 2793:
! 2794: /dog(sbody)?/
! 2795: dogs\P
! 2796: dogs\P\P
! 2797:
! 2798: /dog(sbody)??/
! 2799: dogs\P
! 2800: dogs\P\P
! 2801:
! 2802: /dog|dogsbody/
! 2803: dogs\P
! 2804: dogs\P\P
! 2805:
! 2806: /dogsbody|dog/
! 2807: dogs\P
! 2808: dogs\P\P
! 2809:
! 2810: /\bthe cat\b/
! 2811: the cat\P
! 2812: the cat\P\P
! 2813:
! 2814: /abc/
! 2815: abc\P
! 2816: abc\P\P
! 2817:
! 2818: /\w+A/P
! 2819: CDAAAAB
! 2820:
! 2821: /\w+A/PU
! 2822: CDAAAAB
! 2823:
! 2824: /abc\K123/
! 2825: xyzabc123pqr
! 2826: xyzabc12\P
! 2827: xyzabc12\P\P
! 2828:
! 2829: /(?<=abc)123/
! 2830: xyzabc123pqr
! 2831: xyzabc12\P
! 2832: xyzabc12\P\P
! 2833:
! 2834: /\babc\b/
! 2835: +++abc+++
! 2836: +++ab\P
! 2837: +++ab\P\P
! 2838:
! 2839: /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
! 2840:
! 2841: /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
! 2842:
! 2843: /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
! 2844:
! 2845: /abc\K/+
! 2846: abcdef
! 2847: abcdef\N\N
! 2848: xyzabcdef\N\N
! 2849: ** Failers
! 2850: abcdef\N
! 2851: xyzabcdef\N
! 2852:
! 2853: /^(?:(?=abc)|abc\K)/+
! 2854: abcdef
! 2855: abcdef\N\N
! 2856: ** Failers
! 2857: abcdef\N
! 2858:
! 2859: /a?b?/+
! 2860: xyz
! 2861: xyzabc
! 2862: xyzabc\N
! 2863: xyzabc\N\N
! 2864: xyz\N\N
! 2865: ** Failers
! 2866: xyz\N
! 2867:
! 2868: /^a?b?/+
! 2869: xyz
! 2870: xyzabc
! 2871: ** Failers
! 2872: xyzabc\N
! 2873: xyzabc\N\N
! 2874: xyz\N\N
! 2875: xyz\N
! 2876:
! 2877: /^(?<name>a|b\g<name>c)/
! 2878: aaaa
! 2879: bacxxx
! 2880: bbaccxxx
! 2881: bbbacccxx
! 2882:
! 2883: /^(?<name>a|b\g'name'c)/
! 2884: aaaa
! 2885: bacxxx
! 2886: bbaccxxx
! 2887: bbbacccxx
! 2888:
! 2889: /^(a|b\g<1>c)/
! 2890: aaaa
! 2891: bacxxx
! 2892: bbaccxxx
! 2893: bbbacccxx
! 2894:
! 2895: /^(a|b\g'1'c)/
! 2896: aaaa
! 2897: bacxxx
! 2898: bbaccxxx
! 2899: bbbacccxx
! 2900:
! 2901: /^(a|b\g'-1'c)/
! 2902: aaaa
! 2903: bacxxx
! 2904: bbaccxxx
! 2905: bbbacccxx
! 2906:
! 2907: /(^(a|b\g<-1>c))/
! 2908: aaaa
! 2909: bacxxx
! 2910: bbaccxxx
! 2911: bbbacccxx
! 2912:
! 2913: /(?-i:\g<name>)(?i:(?<name>a))/
! 2914: XaaX
! 2915: XAAX
! 2916:
! 2917: /(?i:\g<name>)(?-i:(?<name>a))/
! 2918: XaaX
! 2919: ** Failers
! 2920: XAAX
! 2921:
! 2922: /(?-i:\g<+1>)(?i:(a))/
! 2923: XaaX
! 2924: XAAX
! 2925:
! 2926: /(?=(?<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>\})\}))\{/
! 2927:
! 2928: /(?<n>a|b|c)\g<n>*/
! 2929: abc
! 2930: accccbbb
! 2931:
! 2932: /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
! 2933: XYabcdY
! 2934:
! 2935: /(?<=b(?1)|zzz)(a)/
! 2936: xbaax
! 2937: xzzzax
! 2938:
! 2939: /(a)(?<=b\1)/
! 2940:
! 2941: /(a)(?<=b+(?1))/
! 2942:
! 2943: /(a+)(?<=b(?1))/
! 2944:
! 2945: /(a(?<=b(?1)))/
! 2946:
! 2947: /(?<=b(?1))xyz/
! 2948:
! 2949: /(?<=b(?1))xyz(b+)pqrstuvew/
! 2950:
! 2951: /(a|bc)\1/SI
! 2952:
! 2953: /(a|bc)\1{2,3}/SI
! 2954:
! 2955: /(a|bc)(?1)/SI
! 2956:
! 2957: /(a|b\1)(a|b\1)/SI
! 2958:
! 2959: /(a|b\1){2}/SI
! 2960:
! 2961: /(a|bbbb\1)(a|bbbb\1)/SI
! 2962:
! 2963: /(a|bbbb\1){2}/SI
! 2964:
! 2965: /^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]/SI
! 2966:
! 2967: / (?: [\040\t] | \(
! 2968: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 2969: \) )* # optional leading comment
! 2970: (?: (?:
! 2971: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
! 2972: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
! 2973: |
! 2974: " (?: # opening quote...
! 2975: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
! 2976: | # or
! 2977: \\ [^\x80-\xff] # Escaped something (something != CR)
! 2978: )* " # closing quote
! 2979: ) # initial word
! 2980: (?: (?: [\040\t] | \(
! 2981: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 2982: \) )* \. (?: [\040\t] | \(
! 2983: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 2984: \) )* (?:
! 2985: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
! 2986: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
! 2987: |
! 2988: " (?: # opening quote...
! 2989: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
! 2990: | # or
! 2991: \\ [^\x80-\xff] # Escaped something (something != CR)
! 2992: )* " # closing quote
! 2993: ) )* # further okay, if led by a period
! 2994: (?: [\040\t] | \(
! 2995: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 2996: \) )* @ (?: [\040\t] | \(
! 2997: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 2998: \) )* (?:
! 2999: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
! 3000: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
! 3001: | \[ # [
! 3002: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
! 3003: \] # ]
! 3004: ) # initial subdomain
! 3005: (?: #
! 3006: (?: [\040\t] | \(
! 3007: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3008: \) )* \. # if led by a period...
! 3009: (?: [\040\t] | \(
! 3010: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3011: \) )* (?:
! 3012: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
! 3013: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
! 3014: | \[ # [
! 3015: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
! 3016: \] # ]
! 3017: ) # ...further okay
! 3018: )*
! 3019: # address
! 3020: | # or
! 3021: (?:
! 3022: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
! 3023: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
! 3024: |
! 3025: " (?: # opening quote...
! 3026: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
! 3027: | # or
! 3028: \\ [^\x80-\xff] # Escaped something (something != CR)
! 3029: )* " # closing quote
! 3030: ) # one word, optionally followed by....
! 3031: (?:
! 3032: [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
! 3033: \(
! 3034: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3035: \) | # comments, or...
! 3036:
! 3037: " (?: # opening quote...
! 3038: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
! 3039: | # or
! 3040: \\ [^\x80-\xff] # Escaped something (something != CR)
! 3041: )* " # closing quote
! 3042: # quoted strings
! 3043: )*
! 3044: < (?: [\040\t] | \(
! 3045: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3046: \) )* # leading <
! 3047: (?: @ (?: [\040\t] | \(
! 3048: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3049: \) )* (?:
! 3050: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
! 3051: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
! 3052: | \[ # [
! 3053: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
! 3054: \] # ]
! 3055: ) # initial subdomain
! 3056: (?: #
! 3057: (?: [\040\t] | \(
! 3058: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3059: \) )* \. # if led by a period...
! 3060: (?: [\040\t] | \(
! 3061: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3062: \) )* (?:
! 3063: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
! 3064: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
! 3065: | \[ # [
! 3066: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
! 3067: \] # ]
! 3068: ) # ...further okay
! 3069: )*
! 3070:
! 3071: (?: (?: [\040\t] | \(
! 3072: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3073: \) )* , (?: [\040\t] | \(
! 3074: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3075: \) )* @ (?: [\040\t] | \(
! 3076: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3077: \) )* (?:
! 3078: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
! 3079: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
! 3080: | \[ # [
! 3081: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
! 3082: \] # ]
! 3083: ) # initial subdomain
! 3084: (?: #
! 3085: (?: [\040\t] | \(
! 3086: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3087: \) )* \. # if led by a period...
! 3088: (?: [\040\t] | \(
! 3089: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3090: \) )* (?:
! 3091: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
! 3092: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
! 3093: | \[ # [
! 3094: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
! 3095: \] # ]
! 3096: ) # ...further okay
! 3097: )*
! 3098: )* # further okay, if led by comma
! 3099: : # closing colon
! 3100: (?: [\040\t] | \(
! 3101: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3102: \) )* )? # optional route
! 3103: (?:
! 3104: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
! 3105: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
! 3106: |
! 3107: " (?: # opening quote...
! 3108: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
! 3109: | # or
! 3110: \\ [^\x80-\xff] # Escaped something (something != CR)
! 3111: )* " # closing quote
! 3112: ) # initial word
! 3113: (?: (?: [\040\t] | \(
! 3114: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3115: \) )* \. (?: [\040\t] | \(
! 3116: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3117: \) )* (?:
! 3118: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
! 3119: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
! 3120: |
! 3121: " (?: # opening quote...
! 3122: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
! 3123: | # or
! 3124: \\ [^\x80-\xff] # Escaped something (something != CR)
! 3125: )* " # closing quote
! 3126: ) )* # further okay, if led by a period
! 3127: (?: [\040\t] | \(
! 3128: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3129: \) )* @ (?: [\040\t] | \(
! 3130: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3131: \) )* (?:
! 3132: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
! 3133: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
! 3134: | \[ # [
! 3135: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
! 3136: \] # ]
! 3137: ) # initial subdomain
! 3138: (?: #
! 3139: (?: [\040\t] | \(
! 3140: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3141: \) )* \. # if led by a period...
! 3142: (?: [\040\t] | \(
! 3143: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3144: \) )* (?:
! 3145: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
! 3146: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
! 3147: | \[ # [
! 3148: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
! 3149: \] # ]
! 3150: ) # ...further okay
! 3151: )*
! 3152: # address spec
! 3153: (?: [\040\t] | \(
! 3154: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3155: \) )* > # trailing >
! 3156: # name and address
! 3157: ) (?: [\040\t] | \(
! 3158: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
! 3159: \) )* # optional trailing comment
! 3160: /xSI
! 3161:
! 3162: /<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>/isIS
! 3163:
! 3164: "(?>.*/)foo"SI
! 3165:
! 3166: /(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /xSI
! 3167:
! 3168: /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
! 3169:
! 3170: /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
! 3171:
! 3172: /<a[\s]+href[\s]*=[\s]* # find <a href=
! 3173: ([\"\'])? # find single or double quote
! 3174: (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching
! 3175: # quote, otherwise match up to next space
! 3176: /isxSI
! 3177:
! 3178: /^(?!:) # colon disallowed at start
! 3179: (?: # start of item
! 3180: (?: [0-9a-f]{1,4} | # 1-4 hex digits or
! 3181: (?(1)0 | () ) ) # if null previously matched, fail; else null
! 3182: : # followed by colon
! 3183: ){1,7} # end item; 1-7 of them required
! 3184: [0-9a-f]{1,4} $ # final hex number at end of string
! 3185: (?(1)|.) # check that there was an empty component
! 3186: /xiIS
! 3187:
! 3188: /(?|(?<a>A)|(?<a>B))/I
! 3189: AB\Ca
! 3190: BA\Ca
! 3191:
! 3192: /(?|(?<a>A)|(?<b>B))/
! 3193:
! 3194: /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
! 3195: b(?<quote> (?<apostrophe>')|(?<realquote>")) )
! 3196: (?('quote')[a-z]+|[0-9]+)/JIx
! 3197: a"aaaaa
! 3198: b"aaaaa
! 3199: ** Failers
! 3200: b"11111
! 3201: a"11111
! 3202:
! 3203: /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
! 3204: abcdX
! 3205: eX
! 3206: ** Failers
! 3207: abcdY
! 3208: ey
! 3209:
! 3210: /(?<A>a) (b)(c) (?<A>d (?(R&A)$ | (?4)) )/JDZx
! 3211: abcdd
! 3212: ** Failers
! 3213: abcdde
! 3214:
! 3215: /abcd*/
! 3216: xxxxabcd\P
! 3217: xxxxabcd\P\P
! 3218:
! 3219: /abcd*/i
! 3220: xxxxabcd\P
! 3221: xxxxabcd\P\P
! 3222: XXXXABCD\P
! 3223: XXXXABCD\P\P
! 3224:
! 3225: /abc\d*/
! 3226: xxxxabc1\P
! 3227: xxxxabc1\P\P
! 3228:
! 3229: /(a)bc\1*/
! 3230: xxxxabca\P
! 3231: xxxxabca\P\P
! 3232:
! 3233: /abc[de]*/
! 3234: xxxxabcde\P
! 3235: xxxxabcde\P\P
! 3236:
! 3237: /-- This is not in the Perl >= 5.10 test because Perl seems currently to be
! 3238: broken and not behaving as specified in that it *does* bumpalong after
! 3239: hitting (*COMMIT). --/
! 3240:
! 3241: /(?1)(A(*COMMIT)|B)D/
! 3242: ABD
! 3243: XABD
! 3244: BAD
! 3245: ABXABD
! 3246: ** Failers
! 3247: ABX
! 3248: BAXBAD
! 3249:
! 3250: /(\3)(\1)(a)/<JS>
! 3251: cat
! 3252:
! 3253: /(\3)(\1)(a)/SI<JS>
! 3254: cat
! 3255:
! 3256: /(\3)(\1)(a)/SI
! 3257: cat
! 3258:
! 3259: /i(?(DEFINE)(?<s>a))/SI
! 3260: i
! 3261:
! 3262: /()i(?(1)a)/SI
! 3263: ia
! 3264:
! 3265: /(?i)a(?-i)b|c/BZ
! 3266: XabX
! 3267: XAbX
! 3268: CcC
! 3269: ** Failers
! 3270: XABX
! 3271:
! 3272: /(?i)a(?s)b|c/BZ
! 3273:
! 3274: /(?i)a(?s-i)b|c/BZ
! 3275:
! 3276: /^(ab(c\1)d|x){2}$/BZ
! 3277: xabcxd
! 3278:
! 3279: /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
! 3280:
! 3281: /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
! 3282:
! 3283: / -- The first four of these are not in the Perl >= 5.10 test because Perl
! 3284: documents that the use of \K in assertions is "not well defined". The
! 3285: last is here because Perl gives the match as "b" rather than "ab". I
! 3286: believe this to be a Perl bug. --/
! 3287:
! 3288: /(?=a\Kb)ab/
! 3289: ab
! 3290:
! 3291: /(?!a\Kb)ac/
! 3292: ac
! 3293:
! 3294: /^abc(?<=b\Kc)d/
! 3295: abcd
! 3296:
! 3297: /^abc(?<!b\Kq)d/
! 3298: abcd
! 3299:
! 3300: /(?>a\Kb)z|(ab)/
! 3301: ab
! 3302:
! 3303: /----------------------/
! 3304:
! 3305: /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
! 3306:
! 3307: /abc(*MARK:)pqr/
! 3308:
! 3309: /abc(*:)pqr/
! 3310:
! 3311: /abc(*FAIL:123)xyz/
! 3312:
! 3313: /--- This should, and does, fail. In Perl, it does not, which I think is a
! 3314: bug because replacing the B in the pattern by (B|D) does make it fail. ---/
! 3315:
! 3316: /A(*COMMIT)B/+K
! 3317: ACABX
! 3318:
! 3319: /--- These should be different, but in Perl 5.11 are not, which I think
! 3320: is a bug in Perl. ---/
! 3321:
! 3322: /A(*THEN)B|A(*THEN)C/K
! 3323: AC
! 3324:
! 3325: /A(*PRUNE)B|A(*PRUNE)C/K
! 3326: AC
! 3327:
! 3328: /--- This should fail; the SKIP advances by one, but when we get to AC, the
! 3329: PRUNE kills it. Perl behaves differently. ---/
! 3330:
! 3331: /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
! 3332: AAAC
! 3333:
! 3334: /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
! 3335: though PCRE does. ---/
! 3336:
! 3337: /^A(*:A)B|^X(*:A)Y/K
! 3338: ** Failers
! 3339: XAQQ
! 3340:
! 3341: /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
! 3342: optimizations defeat this. So does the PCRE optimization unless we disable it
! 3343: with \Y. ---/
! 3344:
! 3345: /(*COMMIT)ABC/
! 3346: ABCDEFG
! 3347: ** Failers
! 3348: DEFGABC\Y
! 3349:
! 3350: /^(ab (c+(*THEN)cd) | xyz)/x
! 3351: abcccd
! 3352:
! 3353: /^(ab (c+(*PRUNE)cd) | xyz)/x
! 3354: abcccd
! 3355:
! 3356: /^(ab (c+(*FAIL)cd) | xyz)/x
! 3357: abcccd
! 3358:
! 3359: /--- Perl 5.11 gets some of these wrong ---/
! 3360:
! 3361: /(?>.(*ACCEPT))*?5/
! 3362: abcde
! 3363:
! 3364: /(.(*ACCEPT))*?5/
! 3365: abcde
! 3366:
! 3367: /(.(*ACCEPT))5/
! 3368: abcde
! 3369:
! 3370: /(.(*ACCEPT))*5/
! 3371: abcde
! 3372:
! 3373: /A\NB./BZ
! 3374: ACBD
! 3375: *** Failers
! 3376: A\nB
! 3377: ACB\n
! 3378:
! 3379: /A\NB./sBZ
! 3380: ACBD
! 3381: ACB\n
! 3382: *** Failers
! 3383: A\nB
! 3384:
! 3385: /A\NB/<crlf>
! 3386: A\nB
! 3387: A\rB
! 3388: ** Failers
! 3389: A\r\nB
! 3390:
! 3391: /\R+b/BZ
! 3392:
! 3393: /\R+\n/BZ
! 3394:
! 3395: /\R+\d/BZ
! 3396:
! 3397: /\d*\R/BZ
! 3398:
! 3399: /\s*\R/BZ
! 3400:
! 3401: /-- Perl treats this one differently, not failing the second string. I believe
! 3402: that is a bug in Perl. --/
! 3403:
! 3404: /^((abc|abcx)(*THEN)y|abcd)/
! 3405: abcd
! 3406: *** Failers
! 3407: abcxy
! 3408:
! 3409: /(?<=abc)def/
! 3410: abc\P\P
! 3411:
! 3412: /abc$/
! 3413: abc
! 3414: abc\P
! 3415: abc\P\P
! 3416:
! 3417: /abc$/m
! 3418: abc
! 3419: abc\n
! 3420: abc\P\P
! 3421: abc\n\P\P
! 3422: abc\P
! 3423: abc\n\P
! 3424:
! 3425: /abc\z/
! 3426: abc
! 3427: abc\P
! 3428: abc\P\P
! 3429:
! 3430: /abc\Z/
! 3431: abc
! 3432: abc\P
! 3433: abc\P\P
! 3434:
! 3435: /abc\b/
! 3436: abc
! 3437: abc\P
! 3438: abc\P\P
! 3439:
! 3440: /abc\B/
! 3441: abc
! 3442: abc\P
! 3443: abc\P\P
! 3444:
! 3445: /.+/
! 3446: abc\>0
! 3447: abc\>1
! 3448: abc\>2
! 3449: abc\>3
! 3450: abc\>4
! 3451: abc\>-4
! 3452:
! 3453: /^\cģ/
! 3454:
! 3455: /(?P<abn>(?P=abn)xxx)/BZ
! 3456:
! 3457: /(a\1z)/BZ
! 3458:
! 3459: /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
! 3460:
! 3461: /(?P<abn>(?P=axn)xxx)/BZ
! 3462:
! 3463: /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
! 3464:
! 3465: /-- These tests are here because Perl gets the first one wrong. --/
! 3466:
! 3467: /(\R*)(.)/s
! 3468: \r\n
! 3469: \r\r\n\n\r
! 3470: \r\r\n\n\r\n
! 3471:
! 3472: /(\R)*(.)/s
! 3473: \r\n
! 3474: \r\r\n\n\r
! 3475: \r\r\n\n\r\n
! 3476:
! 3477: /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
! 3478: \r\n
! 3479: \r\r\n\n\r
! 3480: \r\r\n\n\r\n
! 3481:
! 3482: /-- --/
! 3483:
! 3484: /^abc$/BZ
! 3485:
! 3486: /^abc$/BZm
! 3487:
! 3488: /^(a)*+(\w)/S
! 3489: aaaaX
! 3490: ** Failers
! 3491: aaaa
! 3492:
! 3493: /^(?:a)*+(\w)/S
! 3494: aaaaX
! 3495: ** Failers
! 3496: aaaa
! 3497:
! 3498: /(a)++1234/SDZ
! 3499:
! 3500: /([abc])++1234/SI
! 3501:
! 3502: /(?<=(abc)+)X/
! 3503:
! 3504: /(^ab)/I
! 3505:
! 3506: /(^ab)++/I
! 3507:
! 3508: /(^ab|^)+/I
! 3509:
! 3510: /(^ab|^)++/I
! 3511:
! 3512: /(?:^ab)/I
! 3513:
! 3514: /(?:^ab)++/I
! 3515:
! 3516: /(?:^ab|^)+/I
! 3517:
! 3518: /(?:^ab|^)++/I
! 3519:
! 3520: /(.*ab)/I
! 3521:
! 3522: /(.*ab)++/I
! 3523:
! 3524: /(.*ab|.*)+/I
! 3525:
! 3526: /(.*ab|.*)++/I
! 3527:
! 3528: /(?:.*ab)/I
! 3529:
! 3530: /(?:.*ab)++/I
! 3531:
! 3532: /(?:.*ab|.*)+/I
! 3533:
! 3534: /(?:.*ab|.*)++/I
! 3535:
! 3536: /(?=a)[bcd]/I
! 3537:
! 3538: /((?=a))[bcd]/I
! 3539:
! 3540: /((?=a))+[bcd]/I
! 3541:
! 3542: /((?=a))++[bcd]/I
! 3543:
! 3544: /(?=a+)[bcd]/iI
! 3545:
! 3546: /(?=a+?)[bcd]/iI
! 3547:
! 3548: /(?=a++)[bcd]/iI
! 3549:
! 3550: /(?=a{3})[bcd]/iI
! 3551:
! 3552: /(abc)\1+/S
! 3553:
! 3554: /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
! 3555:
! 3556: /(?1)(?:(b(*ACCEPT))){0}/
! 3557: b
! 3558:
! 3559: /(?1)(?:(b(*ACCEPT))){0}c/
! 3560: bc
! 3561: ** Failers
! 3562: b
! 3563:
! 3564: /(?1)(?:((*ACCEPT))){0}c/
! 3565: c
! 3566: c\N
! 3567:
! 3568: /^.*?(?(?=a)a|b(*THEN)c)/
! 3569: ba
! 3570:
! 3571: /^.*?(?(?=a)a|bc)/
! 3572: ba
! 3573:
! 3574: /^.*?(?(?=a)a(*THEN)b|c)/
! 3575: ac
! 3576:
! 3577: /^.*?(?(?=a)a(*THEN)b)c/
! 3578: ac
! 3579:
! 3580: /^.*?(a(*THEN)b)c/
! 3581: aabc
! 3582:
! 3583: /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
! 3584: aabc
! 3585:
! 3586: /^.*?(a(*THEN)b|z)c/
! 3587: aabc
! 3588:
! 3589: /^.*?(z|a(*THEN)b)c/
! 3590: aabc
! 3591:
! 3592: /-- --/
! 3593:
! 3594: /-- These studied versions are here because they are not Perl-compatible; the
! 3595: studying means the mark is not seen. --/
! 3596:
! 3597: /(*MARK:A)(*SKIP:B)(C|X)/KS
! 3598: C
! 3599: D
! 3600:
! 3601: /(*:A)A+(*SKIP:A)(B|Z)/KS
! 3602: AAAC
! 3603:
! 3604: /-- --/
! 3605:
! 3606: "(?=a*(*ACCEPT)b)c"
! 3607: c
! 3608: c\N
! 3609:
! 3610: /(?1)c(?(DEFINE)((*ACCEPT)b))/
! 3611: c
! 3612: c\N
! 3613:
! 3614: /(?>(*ACCEPT)b)c/
! 3615: c
! 3616: c\N
! 3617:
! 3618: /(?:(?>(a)))+a%/++
! 3619: %aa%
! 3620:
! 3621: /(a)b|ac/++SS
! 3622: ac\O3
! 3623:
! 3624: /(a)(b)x|abc/++
! 3625: abc\O6
! 3626:
! 3627: /(a)bc|(a)(b)\2/
! 3628: \O3abc
! 3629: \O4abc
! 3630:
! 3631: /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
! 3632:
! 3633: /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
! 3634:
! 3635: /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
! 3636:
! 3637: /(abc)(?1)/SI
! 3638:
! 3639: /^(?>a)++/
! 3640: aa\M
! 3641: aaaaaaaaa\M
! 3642:
! 3643: /(a)(?1)++/
! 3644: aa\M
! 3645: aaaaaaaaa\M
! 3646:
! 3647: /(?:(foo)|(bar)|(baz))X/SS=
! 3648: bazfooX
! 3649: foobazbarX
! 3650: barfooX
! 3651: bazX
! 3652: foobarbazX
! 3653: bazfooX\O0
! 3654: bazfooX\O2
! 3655: bazfooX\O4
! 3656: bazfooX\O6
! 3657: bazfooX\O8
! 3658: bazfooX\O10
! 3659:
! 3660: /(?=abc){3}abc/BZ
! 3661:
! 3662: /(?=abc)+abc/BZ
! 3663:
! 3664: /(?=abc)++abc/BZ
! 3665:
! 3666: /(?=abc){0}xyz/BZ
! 3667:
! 3668: /(?=(a))?./BZ
! 3669:
! 3670: /(?=(a))??./BZ
! 3671:
! 3672: /^(?=(a)){0}b(?1)/BZ
! 3673:
! 3674: /(?(DEFINE)(a))?b(?1)/BZ
! 3675:
! 3676: /^(?=(?1))?[az]([abc])d/BZ
! 3677:
! 3678: /^(?!a){0}\w+/BZ
! 3679:
! 3680: /(?<=(abc))?xyz/BZ
! 3681:
! 3682: /[:a[:abc]b:]/BZ
! 3683:
! 3684: /((?2))((?1))/SS
! 3685: abc
! 3686:
! 3687: /((?(R2)a+|(?1)b))/SS
! 3688: aaaabcde
! 3689:
! 3690: /(?(R)a*(?1)|((?R))b)/SS
! 3691: aaaabcde
! 3692:
! 3693: /(a+|(?R)b)/
! 3694:
! 3695: /^(a(*:A)(d|e(*:B))z|aeq)/C
! 3696: adz
! 3697: aez
! 3698: aeqwerty
! 3699:
! 3700: /.(*F)/
! 3701: \P\Pabc
! 3702:
! 3703: /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
! 3704:
! 3705: /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
! 3706:
! 3707: /a(*SKIP)c|b(*ACCEPT)|/+SI
! 3708: a
! 3709:
! 3710: /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
! 3711: ax
! 3712:
! 3713: 'a*(*ACCEPT)b'+
! 3714: \N\N
! 3715: abc\N\N
! 3716: bbb\N\N
! 3717:
! 3718: /(*ACCEPT)a/+I
! 3719: bax
! 3720:
! 3721: /z(*ACCEPT)a/+I
! 3722: baxzbx
! 3723:
! 3724: /a(?:.)*?a/ims
! 3725: \Mabbbbbbbbbbbbbbbbbbbbba
! 3726:
! 3727: /a(?:.(*THEN))*?a/ims
! 3728: \Mabbbbbbbbbbbbbbbbbbbbba
! 3729:
! 3730: /a(?:.(*THEN:ABC))*?a/ims
! 3731: \Mabbbbbbbbbbbbbbbbbbbbba
! 3732:
! 3733: /-- These tests are in agreement with development Perl 5.015, which has fixed
! 3734: some things, but they don't all work with 5.012, so they aren't in the
! 3735: Perl-compatible tests. Those after the first come from Perl's own test
! 3736: files. --/
! 3737:
! 3738: /^((yes|no)(*THEN)(*F))?/
! 3739: yes
! 3740:
! 3741: /(A (.*) C? (*THEN) | A D) (*FAIL)/x
! 3742: AbcdCBefgBhiBqz
! 3743:
! 3744: /(A (.*) C? (*THEN) | A D) z/x
! 3745: AbcdCBefgBhiBqz
! 3746:
! 3747: /(A (.*) C? (*THEN) | A D) \s* (*FAIL)/x
! 3748: AbcdCBefgBhiBqz
! 3749:
! 3750: /(A (.*) C? (*THEN) | A D) \s* z/x
! 3751: AbcdCBefgBhiBqz
! 3752:
! 3753: /(A (.*) (?:C|) (*THEN) | A D) (*FAIL)/x
! 3754: AbcdCBefgBhiBqz
! 3755:
! 3756: /(A (.*) (?:C|) (*THEN) | A D) z/x
! 3757: AbcdCBefgBhiBqz
! 3758:
! 3759: /(A (.*) C{0,6} (*THEN) | A D) (*FAIL)/x
! 3760: AbcdCBefgBhiBqz
! 3761:
! 3762: /(A (.*) C{0,6} (*THEN) | A D) z/x
! 3763: AbcdCBefgBhiBqz
! 3764:
! 3765: /(A (.*) (CE){0,6} (*THEN) | A D) (*FAIL)/x
! 3766: AbcdCEBefgBhiBqz
! 3767:
! 3768: /(A (.*) (CE){0,6} (*THEN) | A D) z/x
! 3769: AbcdCEBefgBhiBqz
! 3770:
! 3771: /(A (.*) (CE*){0,6} (*THEN) | A D) (*FAIL)/x
! 3772: AbcdCBefgBhiBqz
! 3773:
! 3774: /(A (.*) (CE*){0,6} (*THEN) | A D) z/x
! 3775: AbcdCBefgBhiBqz
! 3776:
! 3777: /-----------------------------------------------/
! 3778:
! 3779: /^(?>a+)(?>(z+))\w/BZ
! 3780: aaaazzzzb
! 3781: ** Failers
! 3782: aazz
! 3783:
! 3784: /(.)(\1|a(?2))/
! 3785: bab
! 3786:
! 3787: /\1|(.)(?R)\1/
! 3788: cbbbc
! 3789:
! 3790: /(.)((?(1)c|a)|a(?2))/
! 3791: baa
! 3792:
! 3793: /(?P<abn>(?P=abn)xxx)/BZ
! 3794:
! 3795: /(a\1z)/BZ
! 3796:
! 3797: /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
! 3798: \Maabbccddee
! 3799:
! 3800: /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
! 3801: \Maabbccddee
! 3802:
! 3803: /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
! 3804: \Maabbccddee
! 3805:
! 3806: /^a\x41z/<JS>
! 3807: aAz
! 3808: *** Failers
! 3809: ax41z
! 3810:
! 3811: /^a[m\x41]z/<JS>
! 3812: aAz
! 3813:
! 3814: /^a\x1z/<JS>
! 3815: ax1z
! 3816:
! 3817: /^a\u0041z/<JS>
! 3818: aAz
! 3819: *** Failers
! 3820: au0041z
! 3821:
! 3822: /^a[m\u0041]z/<JS>
! 3823: aAz
! 3824:
! 3825: /^a\u041z/<JS>
! 3826: au041z
! 3827: *** Failers
! 3828: aAz
! 3829:
! 3830: /^a\U0041z/<JS>
! 3831: aU0041z
! 3832: *** Failers
! 3833: aAz
! 3834:
! 3835: /(?(?=c)c|d)++Y/BZ
! 3836:
! 3837: /(?(?=c)c|d)*+Y/BZ
! 3838:
! 3839: /a[\NB]c/
! 3840: aNc
! 3841:
! 3842: /a[B-\Nc]/
! 3843:
! 3844: /(a)(?2){0,1999}?(b)/
! 3845:
! 3846: /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
! 3847:
! 3848: /--- This test, with something more complicated than individual letters, causes
! 3849: different behaviour in Perl. Perhaps it disables some optimization; no tag is
! 3850: passed back for the failures, whereas in PCRE there is a tag. ---/
! 3851:
! 3852: /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
! 3853: AABC
! 3854: XXYZ
! 3855: ** Failers
! 3856: XAQQ
! 3857: XAQQXZZ
! 3858: AXQQQ
! 3859: AXXQQQ
! 3860:
! 3861: /-- Perl doesn't give marks for these, though it does if the alternatives are
! 3862: replaced by single letters. --/
! 3863:
! 3864: /(b|q)(*:m)f|a(*:n)w/K
! 3865: aw
! 3866: ** Failers
! 3867: abc
! 3868:
! 3869: /(q|b)(*:m)f|a(*:n)w/K
! 3870: aw
! 3871: ** Failers
! 3872: abc
! 3873:
! 3874: /-- After a partial match, the behaviour is as for a failure. --/
! 3875:
! 3876: /^a(*:X)bcde/K
! 3877: abc\P
! 3878:
! 3879: /-- End of testinput2 --/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>