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