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 set of tests. When UTF support is needed, use 9 test 5, and if Unicode Property Support is needed, use test 7. --/ 10 11< forbid 8W 12 13/(a)b|/I 14Capturing subpattern count = 1 15May match empty string 16No options 17No first char 18No need char 19 20/abc/I 21Capturing subpattern count = 0 22No options 23First char = 'a' 24Need char = 'c' 25 abc 26 0: abc 27 defabc 28 0: abc 29 \Aabc 30 0: abc 31 *** Failers 32No match 33 \Adefabc 34No match 35 ABC 36No match 37 38/^abc/I 39Capturing subpattern count = 0 40Options: anchored 41No first char 42No need char 43 abc 44 0: abc 45 \Aabc 46 0: abc 47 *** Failers 48No match 49 defabc 50No match 51 \Adefabc 52No match 53 54/a+bc/I 55Capturing subpattern count = 0 56No options 57First char = 'a' 58Need char = 'c' 59 60/a*bc/I 61Capturing subpattern count = 0 62No options 63No first char 64Need char = 'c' 65 66/a{3}bc/I 67Capturing subpattern count = 0 68No options 69First char = 'a' 70Need char = 'c' 71 72/(abc|a+z)/I 73Capturing subpattern count = 1 74No options 75First char = 'a' 76No need char 77 78/^abc$/I 79Capturing subpattern count = 0 80Options: anchored 81No first char 82No need char 83 abc 84 0: abc 85 *** Failers 86No match 87 def\nabc 88No match 89 90/ab\idef/X 91Failed: unrecognized character follows \ at offset 3 92 93/(?X)ab\idef/X 94Failed: unrecognized character follows \ at offset 7 95 96/x{5,4}/ 97Failed: numbers out of order in {} quantifier at offset 5 98 99/z{65536}/ 100Failed: number too big in {} quantifier at offset 7 101 102/[abcd/ 103Failed: missing terminating ] for character class at offset 5 104 105/(?X)[\B]/ 106Failed: invalid escape sequence in character class at offset 6 107 108/(?X)[\R]/ 109Failed: invalid escape sequence in character class at offset 6 110 111/(?X)[\X]/ 112Failed: invalid escape sequence in character class at offset 6 113 114/[\B]/BZ 115------------------------------------------------------------------ 116 Bra 117 B 118 Ket 119 End 120------------------------------------------------------------------ 121 122/[\R]/BZ 123------------------------------------------------------------------ 124 Bra 125 R 126 Ket 127 End 128------------------------------------------------------------------ 129 130/[\X]/BZ 131------------------------------------------------------------------ 132 Bra 133 X 134 Ket 135 End 136------------------------------------------------------------------ 137 138/[z-a]/ 139Failed: range out of order in character class at offset 3 140 141/^*/ 142Failed: nothing to repeat at offset 1 143 144/(abc/ 145Failed: missing ) at offset 4 146 147/(?# abc/ 148Failed: missing ) after comment at offset 7 149 150/(?z)abc/ 151Failed: unrecognized character after (? or (?- at offset 2 152 153/.*b/I 154Capturing subpattern count = 0 155No options 156First char at start or follows newline 157Need char = 'b' 158 159/.*?b/I 160Capturing subpattern count = 0 161No options 162First char at start or follows newline 163Need char = 'b' 164 165/cat|dog|elephant/I 166Capturing subpattern count = 0 167No options 168No first char 169No need char 170 this sentence eventually mentions a cat 171 0: cat 172 this sentences rambles on and on for a while and then reaches elephant 173 0: elephant 174 175/cat|dog|elephant/IS 176Capturing subpattern count = 0 177No options 178No first char 179No need char 180Subject length lower bound = 3 181Starting chars: c d e 182 this sentence eventually mentions a cat 183 0: cat 184 this sentences rambles on and on for a while and then reaches elephant 185 0: elephant 186 187/cat|dog|elephant/IiS 188Capturing subpattern count = 0 189Options: caseless 190No first char 191No need char 192Subject length lower bound = 3 193Starting chars: C D E c d e 194 this sentence eventually mentions a CAT cat 195 0: CAT 196 this sentences rambles on and on for a while to elephant ElePhant 197 0: elephant 198 199/a|[bcd]/IS 200Capturing subpattern count = 0 201No options 202No first char 203No need char 204Subject length lower bound = 1 205Starting chars: a b c d 206 207/(a|[^\dZ])/IS 208Capturing subpattern count = 1 209No options 210No first char 211No need char 212Subject length lower bound = 1 213Starting chars: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 214 \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 215 \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = > 216 ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y [ \ ] ^ _ ` a b c d 217 e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \x80 \x81 \x82 \x83 218 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92 219 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1 220 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0 221 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf 222 \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce 223 \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd 224 \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec 225 \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb 226 \xfc \xfd \xfe \xff 227 228/(a|b)*[\s]/IS 229Capturing subpattern count = 1 230No options 231No first char 232No need char 233Subject length lower bound = 1 234Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 a b 235 236/(ab\2)/ 237Failed: reference to non-existent subpattern at offset 6 238 239/{4,5}abc/ 240Failed: nothing to repeat at offset 4 241 242/(a)(b)(c)\2/I 243Capturing subpattern count = 3 244Max back reference = 2 245No options 246First char = 'a' 247Need char = 'c' 248 abcb 249 0: abcb 250 1: a 251 2: b 252 3: c 253 \O0abcb 254Matched, but too many substrings 255 \O3abcb 256Matched, but too many substrings 257 0: abcb 258 \O6abcb 259Matched, but too many substrings 260 0: abcb 261 1: a 262 \O9abcb 263Matched, but too many substrings 264 0: abcb 265 1: a 266 2: b 267 \O12abcb 268 0: abcb 269 1: a 270 2: b 271 3: c 272 273/(a)bc|(a)(b)\2/I 274Capturing subpattern count = 3 275Max back reference = 2 276No options 277First char = 'a' 278No need char 279 abc 280 0: abc 281 1: a 282 \O0abc 283Matched, but too many substrings 284 \O3abc 285Matched, but too many substrings 286 0: abc 287 \O6abc 288 0: abc 289 1: a 290 aba 291 0: aba 292 1: <unset> 293 2: a 294 3: b 295 \O0aba 296Matched, but too many substrings 297 \O3aba 298Matched, but too many substrings 299 0: aba 300 \O6aba 301Matched, but too many substrings 302 0: aba 303 1: <unset> 304 \O9aba 305Matched, but too many substrings 306 0: aba 307 1: <unset> 308 2: a 309 \O12aba 310 0: aba 311 1: <unset> 312 2: a 313 3: b 314 315/abc$/IE 316Capturing subpattern count = 0 317Options: dollar_endonly 318First char = 'a' 319Need char = 'c' 320 abc 321 0: abc 322 *** Failers 323No match 324 abc\n 325No match 326 abc\ndef 327No match 328 329/(a)(b)(c)(d)(e)\6/ 330Failed: reference to non-existent subpattern at offset 17 331 332/the quick brown fox/I 333Capturing subpattern count = 0 334No options 335First char = 't' 336Need char = 'x' 337 the quick brown fox 338 0: the quick brown fox 339 this is a line with the quick brown fox 340 0: the quick brown fox 341 342/the quick brown fox/IA 343Capturing subpattern count = 0 344Options: anchored 345No first char 346No need char 347 the quick brown fox 348 0: the quick brown fox 349 *** Failers 350No match 351 this is a line with the quick brown fox 352No match 353 354/ab(?z)cd/ 355Failed: unrecognized character after (? or (?- at offset 4 356 357/^abc|def/I 358Capturing subpattern count = 0 359No options 360No first char 361No need char 362 abcdef 363 0: abc 364 abcdef\B 365 0: def 366 367/.*((abc)$|(def))/I 368Capturing subpattern count = 3 369No options 370First char at start or follows newline 371No need char 372 defabc 373 0: defabc 374 1: abc 375 2: abc 376 \Zdefabc 377 0: def 378 1: def 379 2: <unset> 380 3: def 381 382/)/ 383Failed: unmatched parentheses at offset 0 384 385/a[]b/ 386Failed: missing terminating ] for character class at offset 4 387 388/[^aeiou ]{3,}/I 389Capturing subpattern count = 0 390No options 391No first char 392No need char 393 co-processors, and for 394 0: -pr 395 396/<.*>/I 397Capturing subpattern count = 0 398No options 399First char = '<' 400Need char = '>' 401 abc<def>ghi<klm>nop 402 0: <def>ghi<klm> 403 404/<.*?>/I 405Capturing subpattern count = 0 406No options 407First char = '<' 408Need char = '>' 409 abc<def>ghi<klm>nop 410 0: <def> 411 412/<.*>/IU 413Capturing subpattern count = 0 414Options: ungreedy 415First char = '<' 416Need char = '>' 417 abc<def>ghi<klm>nop 418 0: <def> 419 420/(?U)<.*>/I 421Capturing subpattern count = 0 422Options: ungreedy 423First char = '<' 424Need char = '>' 425 abc<def>ghi<klm>nop 426 0: <def> 427 428/<.*?>/IU 429Capturing subpattern count = 0 430Options: ungreedy 431First char = '<' 432Need char = '>' 433 abc<def>ghi<klm>nop 434 0: <def>ghi<klm> 435 436/={3,}/IU 437Capturing subpattern count = 0 438Options: ungreedy 439First char = '=' 440Need char = '=' 441 abc========def 442 0: === 443 444/(?U)={3,}?/I 445Capturing subpattern count = 0 446Options: ungreedy 447First char = '=' 448Need char = '=' 449 abc========def 450 0: ======== 451 452/(?<!bar|cattle)foo/I 453Capturing subpattern count = 0 454Max lookbehind = 6 455No options 456First char = 'f' 457Need char = 'o' 458 foo 459 0: foo 460 catfoo 461 0: foo 462 *** Failers 463No match 464 the barfoo 465No match 466 and cattlefoo 467No match 468 469/(?<=a+)b/ 470Failed: lookbehind assertion is not fixed length at offset 6 471 472/(?<=aaa|b{0,3})b/ 473Failed: lookbehind assertion is not fixed length at offset 14 474 475/(?<!(foo)a\1)bar/ 476Failed: lookbehind assertion is not fixed length at offset 12 477 478/(?i)abc/I 479Capturing subpattern count = 0 480Options: caseless 481First char = 'a' (caseless) 482Need char = 'c' (caseless) 483 484/(a|(?m)a)/I 485Capturing subpattern count = 1 486No options 487First char = 'a' 488No need char 489 490/(?i)^1234/I 491Capturing subpattern count = 0 492Options: anchored caseless 493No first char 494No need char 495 496/(^b|(?i)^d)/I 497Capturing subpattern count = 1 498Options: anchored 499No first char 500No need char 501 502/(?s).*/I 503Capturing subpattern count = 0 504May match empty string 505Options: anchored dotall 506No first char 507No need char 508 509/[abcd]/IS 510Capturing subpattern count = 0 511No options 512No first char 513No need char 514Subject length lower bound = 1 515Starting chars: a b c d 516 517/(?i)[abcd]/IS 518Capturing subpattern count = 0 519Options: caseless 520No first char 521No need char 522Subject length lower bound = 1 523Starting chars: A B C D a b c d 524 525/(?m)[xy]|(b|c)/IS 526Capturing subpattern count = 1 527Options: multiline 528No first char 529No need char 530Subject length lower bound = 1 531Starting chars: b c x y 532 533/(^a|^b)/Im 534Capturing subpattern count = 1 535Options: multiline 536First char at start or follows newline 537No need char 538 539/(?i)(^a|^b)/Im 540Capturing subpattern count = 1 541Options: caseless multiline 542First char at start or follows newline 543No need char 544 545/(a)(?(1)a|b|c)/ 546Failed: conditional group contains more than two branches at offset 13 547 548/(?(?=a)a|b|c)/ 549Failed: conditional group contains more than two branches at offset 12 550 551/(?(1a)/ 552Failed: malformed number or name after (?( at offset 4 553 554/(?(1a))/ 555Failed: malformed number or name after (?( at offset 4 556 557/(?(?i))/ 558Failed: assertion expected after (?( at offset 3 559 560/(?(abc))/ 561Failed: reference to non-existent subpattern at offset 7 562 563/(?(?<ab))/ 564Failed: assertion expected after (?( at offset 3 565 566/((?s)blah)\s+\1/I 567Capturing subpattern count = 1 568Max back reference = 1 569No options 570First char = 'b' 571Need char = 'h' 572 573/((?i)blah)\s+\1/I 574Capturing subpattern count = 1 575Max back reference = 1 576No options 577First char = 'b' (caseless) 578Need char = 'h' (caseless) 579 580/((?i)b)/IDZS 581------------------------------------------------------------------ 582 Bra 583 CBra 1 584 /i b 585 Ket 586 Ket 587 End 588------------------------------------------------------------------ 589Capturing subpattern count = 1 590No options 591First char = 'b' (caseless) 592No need char 593Subject length lower bound = 1 594No starting char list 595 596/(a*b|(?i:c*(?-i)d))/IS 597Capturing subpattern count = 1 598No options 599No first char 600No need char 601Subject length lower bound = 1 602Starting chars: C a b c d 603 604/a$/I 605Capturing subpattern count = 0 606No options 607First char = 'a' 608No need char 609 a 610 0: a 611 a\n 612 0: a 613 *** Failers 614No match 615 \Za 616No match 617 \Za\n 618No match 619 620/a$/Im 621Capturing subpattern count = 0 622Options: multiline 623First char = 'a' 624No need char 625 a 626 0: a 627 a\n 628 0: a 629 \Za\n 630 0: a 631 *** Failers 632No match 633 \Za 634No match 635 636/\Aabc/Im 637Capturing subpattern count = 0 638Max lookbehind = 1 639Options: anchored multiline 640No first char 641No need char 642 643/^abc/Im 644Capturing subpattern count = 0 645Options: multiline 646First char at start or follows newline 647Need char = 'c' 648 649/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I 650Capturing subpattern count = 5 651Options: anchored 652No first char 653No need char 654 aaaaabbbbbcccccdef 655 0: aaaaabbbbbcccccdef 656 1: aaaaabbbbbcccccdef 657 2: aaaaa 658 3: b 659 4: bbbbccccc 660 5: def 661 662/(?<=foo)[ab]/IS 663Capturing subpattern count = 0 664Max lookbehind = 3 665No options 666No first char 667No need char 668Subject length lower bound = 1 669Starting chars: a b 670 671/(?<!foo)(alpha|omega)/IS 672Capturing subpattern count = 1 673Max lookbehind = 3 674No options 675No first char 676Need char = 'a' 677Subject length lower bound = 5 678Starting chars: a o 679 680/(?!alphabet)[ab]/IS 681Capturing subpattern count = 0 682No options 683No first char 684No need char 685Subject length lower bound = 1 686Starting chars: a b 687 688/(?<=foo\n)^bar/Im 689Capturing subpattern count = 0 690Max lookbehind = 4 691Contains explicit CR or LF match 692Options: multiline 693No first char 694Need char = 'r' 695 foo\nbarbar 696 0: bar 697 ***Failers 698No match 699 rhubarb 700No match 701 barbell 702No match 703 abc\nbarton 704No match 705 706/^(?<=foo\n)bar/Im 707Capturing subpattern count = 0 708Max lookbehind = 4 709Contains explicit CR or LF match 710Options: multiline 711First char at start or follows newline 712Need char = 'r' 713 foo\nbarbar 714 0: bar 715 ***Failers 716No match 717 rhubarb 718No match 719 barbell 720No match 721 abc\nbarton 722No match 723 724/(?>^abc)/Im 725Capturing subpattern count = 0 726Options: multiline 727First char at start or follows newline 728Need char = 'c' 729 abc 730 0: abc 731 def\nabc 732 0: abc 733 *** Failers 734No match 735 defabc 736No match 737 738/(?<=ab(c+)d)ef/ 739Failed: lookbehind assertion is not fixed length at offset 11 740 741/(?<=ab(?<=c+)d)ef/ 742Failed: lookbehind assertion is not fixed length at offset 12 743 744/(?<=ab(c|de)f)g/ 745Failed: lookbehind assertion is not fixed length at offset 13 746 747/The next three are in testinput2 because they have variable length branches/ 748 749/(?<=bullock|donkey)-cart/I 750Capturing subpattern count = 0 751Max lookbehind = 7 752No options 753First char = '-' 754Need char = 't' 755 the bullock-cart 756 0: -cart 757 a donkey-cart race 758 0: -cart 759 *** Failers 760No match 761 cart 762No match 763 horse-and-cart 764No match 765 766/(?<=ab(?i)x|y|z)/I 767Capturing subpattern count = 0 768Max lookbehind = 3 769May match empty string 770No options 771No first char 772No need char 773 774/(?>.*)(?<=(abcd)|(xyz))/I 775Capturing subpattern count = 2 776Max lookbehind = 4 777May match empty string 778No options 779No first char 780No need char 781 alphabetabcd 782 0: alphabetabcd 783 1: abcd 784 endingxyz 785 0: endingxyz 786 1: <unset> 787 2: xyz 788 789/(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I 790Capturing subpattern count = 0 791Max lookbehind = 4 792No options 793First char = 'Z' 794Need char = 'Z' 795 abxyZZ 796 0: ZZ 797 abXyZZ 798 0: ZZ 799 ZZZ 800 0: ZZ 801 zZZ 802 0: ZZ 803 bZZ 804 0: ZZ 805 BZZ 806 0: ZZ 807 *** Failers 808No match 809 ZZ 810No match 811 abXYZZ 812No match 813 zzz 814No match 815 bzz 816No match 817 818/(?<!(foo)a)bar/I 819Capturing subpattern count = 1 820Max lookbehind = 4 821No options 822First char = 'b' 823Need char = 'r' 824 bar 825 0: bar 826 foobbar 827 0: bar 828 *** Failers 829No match 830 fooabar 831No match 832 833/This one is here because Perl behaves differently; see also the following/I 834Capturing subpattern count = 0 835No options 836First char = 'T' 837Need char = 'g' 838 839/^(a\1?){4}$/I 840Capturing subpattern count = 1 841Max back reference = 1 842Options: anchored 843No first char 844No need char 845 aaaa 846No match 847 aaaaaa 848No match 849 850/Perl does not fail these two for the final subjects. Neither did PCRE until/ 851/release 8.01. The problem is in backtracking into a subpattern that contains/ 852No match 853/a recursive reference to itself. PCRE has now made these into atomic patterns./ 854No match 855 856/^(xa|=?\1a){2}$/ 857 xa=xaa 858 0: xa=xaa 859 1: =xaa 860 ** Failers 861No match 862 xa=xaaa 863No match 864 865/^(xa|=?\1a)+$/ 866 xa=xaa 867 0: xa=xaa 868 1: =xaa 869 ** Failers 870No match 871 xa=xaaa 872No match 873 874/These are syntax tests from Perl 5.005/I 875Capturing subpattern count = 0 876No options 877First char = 'T' 878Need char = '5' 879 880/a[b-a]/ 881Failed: range out of order in character class at offset 4 882 883/a[]b/ 884Failed: missing terminating ] for character class at offset 4 885 886/a[/ 887Failed: missing terminating ] for character class at offset 2 888 889/*a/ 890Failed: nothing to repeat at offset 0 891 892/(*)b/ 893Failed: nothing to repeat at offset 1 894 895/abc)/ 896Failed: unmatched parentheses at offset 3 897 898/(abc/ 899Failed: missing ) at offset 4 900 901/a**/ 902Failed: nothing to repeat at offset 2 903 904/)(/ 905Failed: unmatched parentheses at offset 0 906 907/\1/ 908Failed: reference to non-existent subpattern at offset 2 909 910/\2/ 911Failed: reference to non-existent subpattern at offset 2 912 913/(a)|\2/ 914Failed: reference to non-existent subpattern at offset 6 915 916/a[b-a]/Ii 917Failed: range out of order in character class at offset 4 918 919/a[]b/Ii 920Failed: missing terminating ] for character class at offset 4 921 922/a[/Ii 923Failed: missing terminating ] for character class at offset 2 924 925/*a/Ii 926Failed: nothing to repeat at offset 0 927 928/(*)b/Ii 929Failed: nothing to repeat at offset 1 930 931/abc)/Ii 932Failed: unmatched parentheses at offset 3 933 934/(abc/Ii 935Failed: missing ) at offset 4 936 937/a**/Ii 938Failed: nothing to repeat at offset 2 939 940/)(/Ii 941Failed: unmatched parentheses at offset 0 942 943/:(?:/ 944Failed: missing ) at offset 4 945 946/(?<%)b/ 947Failed: unrecognized character after (?< at offset 3 948 949/a(?{)b/ 950Failed: unrecognized character after (? or (?- at offset 3 951 952/a(?{{})b/ 953Failed: unrecognized character after (? or (?- at offset 3 954 955/a(?{}})b/ 956Failed: unrecognized character after (? or (?- at offset 3 957 958/a(?{"{"})b/ 959Failed: unrecognized character after (? or (?- at offset 3 960 961/a(?{"{"}})b/ 962Failed: unrecognized character after (? or (?- at offset 3 963 964/(?(1?)a|b)/ 965Failed: malformed number or name after (?( at offset 4 966 967/[a[:xyz:/ 968Failed: missing terminating ] for character class at offset 8 969 970/(?<=x+)y/ 971Failed: lookbehind assertion is not fixed length at offset 6 972 973/a{37,17}/ 974Failed: numbers out of order in {} quantifier at offset 7 975 976/abc/\ 977Failed: \ at end of pattern at offset 4 978 979/abc/\i 980Failed: \ at end of pattern at offset 4 981 982/(a)bc(d)/I 983Capturing subpattern count = 2 984No options 985First char = 'a' 986Need char = 'd' 987 abcd 988 0: abcd 989 1: a 990 2: d 991 abcd\C2 992 0: abcd 993 1: a 994 2: d 995 2C d (1) 996 abcd\C5 997 0: abcd 998 1: a 999 2: d 1000copy substring 5 failed -7 1001 1002/(.{20})/I 1003Capturing subpattern count = 1 1004No options 1005No first char 1006No need char 1007 abcdefghijklmnopqrstuvwxyz 1008 0: abcdefghijklmnopqrst 1009 1: abcdefghijklmnopqrst 1010 abcdefghijklmnopqrstuvwxyz\C1 1011 0: abcdefghijklmnopqrst 1012 1: abcdefghijklmnopqrst 1013 1C abcdefghijklmnopqrst (20) 1014 abcdefghijklmnopqrstuvwxyz\G1 1015 0: abcdefghijklmnopqrst 1016 1: abcdefghijklmnopqrst 1017 1G abcdefghijklmnopqrst (20) 1018 1019/(.{15})/I 1020Capturing subpattern count = 1 1021No options 1022No first char 1023No need char 1024 abcdefghijklmnopqrstuvwxyz 1025 0: abcdefghijklmno 1026 1: abcdefghijklmno 1027 abcdefghijklmnopqrstuvwxyz\C1\G1 1028 0: abcdefghijklmno 1029 1: abcdefghijklmno 1030 1C abcdefghijklmno (15) 1031 1G abcdefghijklmno (15) 1032 1033/(.{16})/I 1034Capturing subpattern count = 1 1035No options 1036No first char 1037No need char 1038 abcdefghijklmnopqrstuvwxyz 1039 0: abcdefghijklmnop 1040 1: abcdefghijklmnop 1041 abcdefghijklmnopqrstuvwxyz\C1\G1\L 1042 0: abcdefghijklmnop 1043 1: abcdefghijklmnop 1044 1C abcdefghijklmnop (16) 1045 1G abcdefghijklmnop (16) 1046 0L abcdefghijklmnop 1047 1L abcdefghijklmnop 1048 1049/^(a|(bc))de(f)/I 1050Capturing subpattern count = 3 1051Options: anchored 1052No first char 1053No need char 1054 adef\G1\G2\G3\G4\L 1055 0: adef 1056 1: a 1057 2: <unset> 1058 3: f 1059 1G a (1) 1060 2G (0) 1061 3G f (1) 1062get substring 4 failed -7 1063 0L adef 1064 1L a 1065 2L 1066 3L f 1067 bcdef\G1\G2\G3\G4\L 1068 0: bcdef 1069 1: bc 1070 2: bc 1071 3: f 1072 1G bc (2) 1073 2G bc (2) 1074 3G f (1) 1075get substring 4 failed -7 1076 0L bcdef 1077 1L bc 1078 2L bc 1079 3L f 1080 adefghijk\C0 1081 0: adef 1082 1: a 1083 2: <unset> 1084 3: f 1085 0C adef (4) 1086 1087/^abc\00def/I 1088Capturing subpattern count = 0 1089Options: anchored 1090No first char 1091No need char 1092 abc\00def\L\C0 1093 0: abc\x00def 1094 0C abc\x00def (7) 1095 0L abc 1096 1097/word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ 1098)((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ 1099)?)?)?)?)?)?)?)?)?otherword/I 1100Capturing subpattern count = 8 1101Contains explicit CR or LF match 1102No options 1103First char = 'w' 1104Need char = 'd' 1105 1106/.*X/IDZ 1107------------------------------------------------------------------ 1108 Bra 1109 Any* 1110 X 1111 Ket 1112 End 1113------------------------------------------------------------------ 1114Capturing subpattern count = 0 1115No options 1116First char at start or follows newline 1117Need char = 'X' 1118 1119/.*X/IDZs 1120------------------------------------------------------------------ 1121 Bra 1122 AllAny* 1123 X 1124 Ket 1125 End 1126------------------------------------------------------------------ 1127Capturing subpattern count = 0 1128Options: anchored dotall 1129No first char 1130Need char = 'X' 1131 1132/(.*X|^B)/IDZ 1133------------------------------------------------------------------ 1134 Bra 1135 CBra 1 1136 Any* 1137 X 1138 Alt 1139 ^ 1140 B 1141 Ket 1142 Ket 1143 End 1144------------------------------------------------------------------ 1145Capturing subpattern count = 1 1146No options 1147First char at start or follows newline 1148No need char 1149 1150/(.*X|^B)/IDZs 1151------------------------------------------------------------------ 1152 Bra 1153 CBra 1 1154 AllAny* 1155 X 1156 Alt 1157 ^ 1158 B 1159 Ket 1160 Ket 1161 End 1162------------------------------------------------------------------ 1163Capturing subpattern count = 1 1164Options: anchored dotall 1165No first char 1166No need char 1167 1168/(?s)(.*X|^B)/IDZ 1169------------------------------------------------------------------ 1170 Bra 1171 CBra 1 1172 AllAny* 1173 X 1174 Alt 1175 ^ 1176 B 1177 Ket 1178 Ket 1179 End 1180------------------------------------------------------------------ 1181Capturing subpattern count = 1 1182Options: anchored dotall 1183No first char 1184No need char 1185 1186/(?s:.*X|^B)/IDZ 1187------------------------------------------------------------------ 1188 Bra 1189 Bra 1190 AllAny* 1191 X 1192 Alt 1193 ^ 1194 B 1195 Ket 1196 Ket 1197 End 1198------------------------------------------------------------------ 1199Capturing subpattern count = 0 1200Options: anchored 1201No first char 1202No need char 1203 1204/\Biss\B/I+ 1205Capturing subpattern count = 0 1206Max lookbehind = 1 1207No options 1208First char = 'i' 1209Need char = 's' 1210 Mississippi 1211 0: iss 1212 0+ issippi 1213 1214/iss/IG+ 1215Capturing subpattern count = 0 1216No options 1217First char = 'i' 1218Need char = 's' 1219 Mississippi 1220 0: iss 1221 0+ issippi 1222 0: iss 1223 0+ ippi 1224 1225/\Biss\B/IG+ 1226Capturing subpattern count = 0 1227Max lookbehind = 1 1228No options 1229First char = 'i' 1230Need char = 's' 1231 Mississippi 1232 0: iss 1233 0+ issippi 1234 1235/\Biss\B/Ig+ 1236Capturing subpattern count = 0 1237Max lookbehind = 1 1238No options 1239First char = 'i' 1240Need char = 's' 1241 Mississippi 1242 0: iss 1243 0+ issippi 1244 0: iss 1245 0+ ippi 1246 *** Failers 1247No match 1248 Mississippi\A 1249No match 1250 1251/(?<=[Ms])iss/Ig+ 1252Capturing subpattern count = 0 1253Max lookbehind = 1 1254No options 1255First char = 'i' 1256Need char = 's' 1257 Mississippi 1258 0: iss 1259 0+ issippi 1260 0: iss 1261 0+ ippi 1262 1263/(?<=[Ms])iss/IG+ 1264Capturing subpattern count = 0 1265Max lookbehind = 1 1266No options 1267First char = 'i' 1268Need char = 's' 1269 Mississippi 1270 0: iss 1271 0+ issippi 1272 1273/^iss/Ig+ 1274Capturing subpattern count = 0 1275Options: anchored 1276No first char 1277No need char 1278 ississippi 1279 0: iss 1280 0+ issippi 1281 1282/.*iss/Ig+ 1283Capturing subpattern count = 0 1284No options 1285First char at start or follows newline 1286Need char = 's' 1287 abciss\nxyzisspqr 1288 0: abciss 1289 0+ \x0axyzisspqr 1290 0: xyziss 1291 0+ pqr 1292 1293/.i./I+g 1294Capturing subpattern count = 0 1295No options 1296No first char 1297Need char = 'i' 1298 Mississippi 1299 0: Mis 1300 0+ sissippi 1301 0: sis 1302 0+ sippi 1303 0: sip 1304 0+ pi 1305 Mississippi\A 1306 0: Mis 1307 0+ sissippi 1308 0: sis 1309 0+ sippi 1310 0: sip 1311 0+ pi 1312 Missouri river 1313 0: Mis 1314 0+ souri river 1315 0: ri 1316 0+ river 1317 0: riv 1318 0+ er 1319 Missouri river\A 1320 0: Mis 1321 0+ souri river 1322 1323/^.is/I+g 1324Capturing subpattern count = 0 1325Options: anchored 1326No first char 1327No need char 1328 Mississippi 1329 0: Mis 1330 0+ sissippi 1331 1332/^ab\n/Ig+ 1333Capturing subpattern count = 0 1334Contains explicit CR or LF match 1335Options: anchored 1336No first char 1337No need char 1338 ab\nab\ncd 1339 0: ab\x0a 1340 0+ ab\x0acd 1341 1342/^ab\n/Img+ 1343Capturing subpattern count = 0 1344Contains explicit CR or LF match 1345Options: multiline 1346First char at start or follows newline 1347Need char = \x0a 1348 ab\nab\ncd 1349 0: ab\x0a 1350 0+ ab\x0acd 1351 0: ab\x0a 1352 0+ cd 1353 1354/abc/I 1355Capturing subpattern count = 0 1356No options 1357First char = 'a' 1358Need char = 'c' 1359 1360/abc|bac/I 1361Capturing subpattern count = 0 1362No options 1363No first char 1364Need char = 'c' 1365 1366/(abc|bac)/I 1367Capturing subpattern count = 1 1368No options 1369No first char 1370Need char = 'c' 1371 1372/(abc|(c|dc))/I 1373Capturing subpattern count = 2 1374No options 1375No first char 1376Need char = 'c' 1377 1378/(abc|(d|de)c)/I 1379Capturing subpattern count = 2 1380No options 1381No first char 1382Need char = 'c' 1383 1384/a*/I 1385Capturing subpattern count = 0 1386May match empty string 1387No options 1388No first char 1389No need char 1390 1391/a+/I 1392Capturing subpattern count = 0 1393No options 1394First char = 'a' 1395No need char 1396 1397/(baa|a+)/I 1398Capturing subpattern count = 1 1399No options 1400No first char 1401Need char = 'a' 1402 1403/a{0,3}/I 1404Capturing subpattern count = 0 1405May match empty string 1406No options 1407No first char 1408No need char 1409 1410/baa{3,}/I 1411Capturing subpattern count = 0 1412No options 1413First char = 'b' 1414Need char = 'a' 1415 1416/"([^\\"]+|\\.)*"/I 1417Capturing subpattern count = 1 1418No options 1419First char = '"' 1420Need char = '"' 1421 1422/(abc|ab[cd])/I 1423Capturing subpattern count = 1 1424No options 1425First char = 'a' 1426No need char 1427 1428/(a|.)/I 1429Capturing subpattern count = 1 1430No options 1431No first char 1432No need char 1433 1434/a|ba|\w/I 1435Capturing subpattern count = 0 1436No options 1437No first char 1438No need char 1439 1440/abc(?=pqr)/I 1441Capturing subpattern count = 0 1442No options 1443First char = 'a' 1444Need char = 'r' 1445 1446/...(?<=abc)/I 1447Capturing subpattern count = 0 1448Max lookbehind = 3 1449No options 1450No first char 1451No need char 1452 1453/abc(?!pqr)/I 1454Capturing subpattern count = 0 1455No options 1456First char = 'a' 1457Need char = 'c' 1458 1459/ab./I 1460Capturing subpattern count = 0 1461No options 1462First char = 'a' 1463Need char = 'b' 1464 1465/ab[xyz]/I 1466Capturing subpattern count = 0 1467No options 1468First char = 'a' 1469Need char = 'b' 1470 1471/abc*/I 1472Capturing subpattern count = 0 1473No options 1474First char = 'a' 1475Need char = 'b' 1476 1477/ab.c*/I 1478Capturing subpattern count = 0 1479No options 1480First char = 'a' 1481Need char = 'b' 1482 1483/a.c*/I 1484Capturing subpattern count = 0 1485No options 1486First char = 'a' 1487No need char 1488 1489/.c*/I 1490Capturing subpattern count = 0 1491No options 1492No first char 1493No need char 1494 1495/ac*/I 1496Capturing subpattern count = 0 1497No options 1498First char = 'a' 1499No need char 1500 1501/(a.c*|b.c*)/I 1502Capturing subpattern count = 1 1503No options 1504No first char 1505No need char 1506 1507/a.c*|aba/I 1508Capturing subpattern count = 0 1509No options 1510First char = 'a' 1511No need char 1512 1513/.+a/I 1514Capturing subpattern count = 0 1515No options 1516No first char 1517Need char = 'a' 1518 1519/(?=abcda)a.*/I 1520Capturing subpattern count = 0 1521No options 1522First char = 'a' 1523Need char = 'a' 1524 1525/(?=a)a.*/I 1526Capturing subpattern count = 0 1527No options 1528First char = 'a' 1529No need char 1530 1531/a(b)*/I 1532Capturing subpattern count = 1 1533No options 1534First char = 'a' 1535No need char 1536 1537/a\d*/I 1538Capturing subpattern count = 0 1539No options 1540First char = 'a' 1541No need char 1542 1543/ab\d*/I 1544Capturing subpattern count = 0 1545No options 1546First char = 'a' 1547Need char = 'b' 1548 1549/a(\d)*/I 1550Capturing subpattern count = 1 1551No options 1552First char = 'a' 1553No need char 1554 1555/abcde{0,0}/I 1556Capturing subpattern count = 0 1557No options 1558First char = 'a' 1559Need char = 'd' 1560 1561/ab\d+/I 1562Capturing subpattern count = 0 1563No options 1564First char = 'a' 1565Need char = 'b' 1566 1567/a(?(1)b)(.)/I 1568Capturing subpattern count = 1 1569Max back reference = 1 1570No options 1571First char = 'a' 1572No need char 1573 1574/a(?(1)bag|big)(.)/I 1575Capturing subpattern count = 1 1576Max back reference = 1 1577No options 1578First char = 'a' 1579Need char = 'g' 1580 1581/a(?(1)bag|big)*(.)/I 1582Capturing subpattern count = 1 1583Max back reference = 1 1584No options 1585First char = 'a' 1586No need char 1587 1588/a(?(1)bag|big)+(.)/I 1589Capturing subpattern count = 1 1590Max back reference = 1 1591No options 1592First char = 'a' 1593Need char = 'g' 1594 1595/a(?(1)b..|b..)(.)/I 1596Capturing subpattern count = 1 1597Max back reference = 1 1598No options 1599First char = 'a' 1600Need char = 'b' 1601 1602/ab\d{0}e/I 1603Capturing subpattern count = 0 1604No options 1605First char = 'a' 1606Need char = 'e' 1607 1608/a?b?/I 1609Capturing subpattern count = 0 1610May match empty string 1611No options 1612No first char 1613No need char 1614 a 1615 0: a 1616 b 1617 0: b 1618 ab 1619 0: ab 1620 \ 1621 0: 1622 *** Failers 1623 0: 1624 \N 1625No match 1626 1627/|-/I 1628Capturing subpattern count = 0 1629May match empty string 1630No options 1631No first char 1632No need char 1633 abcd 1634 0: 1635 -abc 1636 0: 1637 \Nab-c 1638 0: - 1639 *** Failers 1640 0: 1641 \Nabc 1642No match 1643 1644/^.?abcd/IS 1645Capturing subpattern count = 0 1646Options: anchored 1647No first char 1648Need char = 'd' 1649Subject length lower bound = 4 1650No starting char list 1651 1652/\( # ( at start 1653 (?: # Non-capturing bracket 1654 (?>[^()]+) # Either a sequence of non-brackets (no backtracking) 1655 | # Or 1656 (?R) # Recurse - i.e. nested bracketed string 1657 )* # Zero or more contents 1658 \) # Closing ) 1659 /Ix 1660Capturing subpattern count = 0 1661Options: extended 1662First char = '(' 1663Need char = ')' 1664 (abcd) 1665 0: (abcd) 1666 (abcd)xyz 1667 0: (abcd) 1668 xyz(abcd) 1669 0: (abcd) 1670 (ab(xy)cd)pqr 1671 0: (ab(xy)cd) 1672 (ab(xycd)pqr 1673 0: (xycd) 1674 () abc () 1675 0: () 1676 12(abcde(fsh)xyz(foo(bar))lmno)89 1677 0: (abcde(fsh)xyz(foo(bar))lmno) 1678 *** Failers 1679No match 1680 abcd 1681No match 1682 abcd) 1683No match 1684 (abcd 1685No match 1686 1687/\( ( (?>[^()]+) | (?R) )* \) /Ixg 1688Capturing subpattern count = 1 1689Options: extended 1690First char = '(' 1691Need char = ')' 1692 (ab(xy)cd)pqr 1693 0: (ab(xy)cd) 1694 1: cd 1695 1(abcd)(x(y)z)pqr 1696 0: (abcd) 1697 1: abcd 1698 0: (x(y)z) 1699 1: z 1700 1701/\( (?: (?>[^()]+) | (?R) ) \) /Ix 1702Capturing subpattern count = 0 1703Options: extended 1704First char = '(' 1705Need char = ')' 1706 (abcd) 1707 0: (abcd) 1708 (ab(xy)cd) 1709 0: (xy) 1710 (a(b(c)d)e) 1711 0: (c) 1712 ((ab)) 1713 0: ((ab)) 1714 *** Failers 1715No match 1716 () 1717No match 1718 1719/\( (?: (?>[^()]+) | (?R) )? \) /Ix 1720Capturing subpattern count = 0 1721Options: extended 1722First char = '(' 1723Need char = ')' 1724 () 1725 0: () 1726 12(abcde(fsh)xyz(foo(bar))lmno)89 1727 0: (fsh) 1728 1729/\( ( (?>[^()]+) | (?R) )* \) /Ix 1730Capturing subpattern count = 1 1731Options: extended 1732First char = '(' 1733Need char = ')' 1734 (ab(xy)cd) 1735 0: (ab(xy)cd) 1736 1: cd 1737 1738/\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix 1739Capturing subpattern count = 2 1740Options: extended 1741First char = '(' 1742Need char = ')' 1743 (ab(xy)cd) 1744 0: (ab(xy)cd) 1745 1: ab(xy)cd 1746 2: cd 1747 1748/\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix 1749Capturing subpattern count = 3 1750Options: extended 1751First char = '(' 1752Need char = ')' 1753 (ab(xy)cd) 1754 0: (ab(xy)cd) 1755 1: <unset> 1756 2: ab(xy)cd 1757 3: cd 1758 (123ab(xy)cd) 1759 0: (123ab(xy)cd) 1760 1: 123 1761 2: ab(xy)cd 1762 3: cd 1763 1764/\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix 1765Capturing subpattern count = 3 1766Options: extended 1767First char = '(' 1768Need char = ')' 1769 (ab(xy)cd) 1770 0: (ab(xy)cd) 1771 1: ab(xy)cd 1772 2: <unset> 1773 3: cd 1774 (123ab(xy)cd) 1775 0: (123ab(xy)cd) 1776 1: 123ab(xy)cd 1777 2: 123 1778 3: cd 1779 1780/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix 1781Capturing subpattern count = 11 1782Options: extended 1783First char = '(' 1784Need char = ')' 1785 (ab(xy)cd) 1786 0: (ab(xy)cd) 1787 1: ab(xy)cd 1788 2: ab(xy)cd 1789 3: ab(xy)cd 1790 4: ab(xy)cd 1791 5: ab(xy)cd 1792 6: ab(xy)cd 1793 7: ab(xy)cd 1794 8: ab(xy)cd 1795 9: ab(xy)cd 179610: ab(xy)cd 179711: cd 1798 1799/\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix 1800Capturing subpattern count = 3 1801Options: extended 1802First char = '(' 1803Need char = ')' 1804 (abcd(xyz<p>qrs)123) 1805 0: (abcd(xyz<p>qrs)123) 1806 1: abcd(xyz<p>qrs)123 1807 2: 123 1808 1809/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix 1810Capturing subpattern count = 3 1811Options: extended 1812First char = '(' 1813Need char = ')' 1814 (ab(cd)ef) 1815 0: (ab(cd)ef) 1816 1: ab(cd)ef 1817 2: ef 1818 3: (cd) 1819 (ab(cd(ef)gh)ij) 1820 0: (ab(cd(ef)gh)ij) 1821 1: ab(cd(ef)gh)ij 1822 2: ij 1823 3: (cd(ef)gh) 1824 1825/^[[:alnum:]]/DZ 1826------------------------------------------------------------------ 1827 Bra 1828 ^ 1829 [0-9A-Za-z] 1830 Ket 1831 End 1832------------------------------------------------------------------ 1833Capturing subpattern count = 0 1834Options: anchored 1835No first char 1836No need char 1837 1838/^[[:^alnum:]]/DZ 1839------------------------------------------------------------------ 1840 Bra 1841 ^ 1842 [\x00-/:-@[-`{-\xff] (neg) 1843 Ket 1844 End 1845------------------------------------------------------------------ 1846Capturing subpattern count = 0 1847Options: anchored 1848No first char 1849No need char 1850 1851/^[[:alpha:]]/DZ 1852------------------------------------------------------------------ 1853 Bra 1854 ^ 1855 [A-Za-z] 1856 Ket 1857 End 1858------------------------------------------------------------------ 1859Capturing subpattern count = 0 1860Options: anchored 1861No first char 1862No need char 1863 1864/^[[:^alpha:]]/DZ 1865------------------------------------------------------------------ 1866 Bra 1867 ^ 1868 [\x00-@[-`{-\xff] (neg) 1869 Ket 1870 End 1871------------------------------------------------------------------ 1872Capturing subpattern count = 0 1873Options: anchored 1874No first char 1875No need char 1876 1877/[_[:alpha:]]/IS 1878Capturing subpattern count = 0 1879No options 1880No first char 1881No need char 1882Subject length lower bound = 1 1883Starting chars: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1884 _ a b c d e f g h i j k l m n o p q r s t u v w x y z 1885 1886/^[[:ascii:]]/DZ 1887------------------------------------------------------------------ 1888 Bra 1889 ^ 1890 [\x00-\x7f] 1891 Ket 1892 End 1893------------------------------------------------------------------ 1894Capturing subpattern count = 0 1895Options: anchored 1896No first char 1897No need char 1898 1899/^[[:^ascii:]]/DZ 1900------------------------------------------------------------------ 1901 Bra 1902 ^ 1903 [\x80-\xff] (neg) 1904 Ket 1905 End 1906------------------------------------------------------------------ 1907Capturing subpattern count = 0 1908Options: anchored 1909No first char 1910No need char 1911 1912/^[[:blank:]]/DZ 1913------------------------------------------------------------------ 1914 Bra 1915 ^ 1916 [\x09 ] 1917 Ket 1918 End 1919------------------------------------------------------------------ 1920Capturing subpattern count = 0 1921Options: anchored 1922No first char 1923No need char 1924 1925/^[[:^blank:]]/DZ 1926------------------------------------------------------------------ 1927 Bra 1928 ^ 1929 [\x00-\x08\x0a-\x1f!-\xff] (neg) 1930 Ket 1931 End 1932------------------------------------------------------------------ 1933Capturing subpattern count = 0 1934Options: anchored 1935No first char 1936No need char 1937 1938/[\n\x0b\x0c\x0d[:blank:]]/IS 1939Capturing subpattern count = 0 1940Contains explicit CR or LF match 1941No options 1942No first char 1943No need char 1944Subject length lower bound = 1 1945Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 1946 1947/^[[:cntrl:]]/DZ 1948------------------------------------------------------------------ 1949 Bra 1950 ^ 1951 [\x00-\x1f\x7f] 1952 Ket 1953 End 1954------------------------------------------------------------------ 1955Capturing subpattern count = 0 1956Options: anchored 1957No first char 1958No need char 1959 1960/^[[:digit:]]/DZ 1961------------------------------------------------------------------ 1962 Bra 1963 ^ 1964 [0-9] 1965 Ket 1966 End 1967------------------------------------------------------------------ 1968Capturing subpattern count = 0 1969Options: anchored 1970No first char 1971No need char 1972 1973/^[[:graph:]]/DZ 1974------------------------------------------------------------------ 1975 Bra 1976 ^ 1977 [!-~] 1978 Ket 1979 End 1980------------------------------------------------------------------ 1981Capturing subpattern count = 0 1982Options: anchored 1983No first char 1984No need char 1985 1986/^[[:lower:]]/DZ 1987------------------------------------------------------------------ 1988 Bra 1989 ^ 1990 [a-z] 1991 Ket 1992 End 1993------------------------------------------------------------------ 1994Capturing subpattern count = 0 1995Options: anchored 1996No first char 1997No need char 1998 1999/^[[:print:]]/DZ 2000------------------------------------------------------------------ 2001 Bra 2002 ^ 2003 [ -~] 2004 Ket 2005 End 2006------------------------------------------------------------------ 2007Capturing subpattern count = 0 2008Options: anchored 2009No first char 2010No need char 2011 2012/^[[:punct:]]/DZ 2013------------------------------------------------------------------ 2014 Bra 2015 ^ 2016 [!-/:-@[-`{-~] 2017 Ket 2018 End 2019------------------------------------------------------------------ 2020Capturing subpattern count = 0 2021Options: anchored 2022No first char 2023No need char 2024 2025/^[[:space:]]/DZ 2026------------------------------------------------------------------ 2027 Bra 2028 ^ 2029 [\x09-\x0d ] 2030 Ket 2031 End 2032------------------------------------------------------------------ 2033Capturing subpattern count = 0 2034Options: anchored 2035No first char 2036No need char 2037 2038/^[[:upper:]]/DZ 2039------------------------------------------------------------------ 2040 Bra 2041 ^ 2042 [A-Z] 2043 Ket 2044 End 2045------------------------------------------------------------------ 2046Capturing subpattern count = 0 2047Options: anchored 2048No first char 2049No need char 2050 2051/^[[:xdigit:]]/DZ 2052------------------------------------------------------------------ 2053 Bra 2054 ^ 2055 [0-9A-Fa-f] 2056 Ket 2057 End 2058------------------------------------------------------------------ 2059Capturing subpattern count = 0 2060Options: anchored 2061No first char 2062No need char 2063 2064/^[[:word:]]/DZ 2065------------------------------------------------------------------ 2066 Bra 2067 ^ 2068 [0-9A-Z_a-z] 2069 Ket 2070 End 2071------------------------------------------------------------------ 2072Capturing subpattern count = 0 2073Options: anchored 2074No first char 2075No need char 2076 2077/^[[:^cntrl:]]/DZ 2078------------------------------------------------------------------ 2079 Bra 2080 ^ 2081 [ -~\x80-\xff] (neg) 2082 Ket 2083 End 2084------------------------------------------------------------------ 2085Capturing subpattern count = 0 2086Options: anchored 2087No first char 2088No need char 2089 2090/^[12[:^digit:]]/DZ 2091------------------------------------------------------------------ 2092 Bra 2093 ^ 2094 [\x00-/12:-\xff] (neg) 2095 Ket 2096 End 2097------------------------------------------------------------------ 2098Capturing subpattern count = 0 2099Options: anchored 2100No first char 2101No need char 2102 2103/^[[:^blank:]]/DZ 2104------------------------------------------------------------------ 2105 Bra 2106 ^ 2107 [\x00-\x08\x0a-\x1f!-\xff] (neg) 2108 Ket 2109 End 2110------------------------------------------------------------------ 2111Capturing subpattern count = 0 2112Options: anchored 2113No first char 2114No need char 2115 2116/[01[:alpha:]%]/DZ 2117------------------------------------------------------------------ 2118 Bra 2119 [%01A-Za-z] 2120 Ket 2121 End 2122------------------------------------------------------------------ 2123Capturing subpattern count = 0 2124No options 2125No first char 2126No need char 2127 2128/[[.ch.]]/I 2129Failed: POSIX collating elements are not supported at offset 1 2130 2131/[[=ch=]]/I 2132Failed: POSIX collating elements are not supported at offset 1 2133 2134/[[:rhubarb:]]/I 2135Failed: unknown POSIX class name at offset 3 2136 2137/[[:upper:]]/Ii 2138Capturing subpattern count = 0 2139Options: caseless 2140No first char 2141No need char 2142 A 2143 0: A 2144 a 2145 0: a 2146 2147/[[:lower:]]/Ii 2148Capturing subpattern count = 0 2149Options: caseless 2150No first char 2151No need char 2152 A 2153 0: A 2154 a 2155 0: a 2156 2157/((?-i)[[:lower:]])[[:lower:]]/Ii 2158Capturing subpattern count = 1 2159Options: caseless 2160No first char 2161No need char 2162 ab 2163 0: ab 2164 1: a 2165 aB 2166 0: aB 2167 1: a 2168 *** Failers 2169 0: ai 2170 1: a 2171 Ab 2172No match 2173 AB 2174No match 2175 2176/[\200-\110]/I 2177Failed: range out of order in character class at offset 9 2178 2179/^(?(0)f|b)oo/I 2180Failed: invalid condition (?(0) at offset 6 2181 2182/This one's here because of the large output vector needed/I 2183Capturing subpattern count = 0 2184No options 2185First char = 'T' 2186Need char = 'd' 2187 2188/(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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 2189Capturing subpattern count = 271 2190Max back reference = 270 2191No options 2192No first char 2193No need char 2194 \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 2195 0: 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 2196 1: 1 2197 2: 2 2198 3: 3 2199 4: 4 2200 5: 5 2201 6: 6 2202 7: 7 2203 8: 8 2204 9: 9 220510: 10 220611: 11 220712: 12 220813: 13 220914: 14 221015: 15 221116: 16 221217: 17 221318: 18 221419: 19 221520: 20 221621: 21 221722: 22 221823: 23 221924: 24 222025: 25 222126: 26 222227: 27 222328: 28 222429: 29 222530: 30 222631: 31 222732: 32 222833: 33 222934: 34 223035: 35 223136: 36 223237: 37 223338: 38 223439: 39 223540: 40 223641: 41 223742: 42 223843: 43 223944: 44 224045: 45 224146: 46 224247: 47 224348: 48 224449: 49 224550: 50 224651: 51 224752: 52 224853: 53 224954: 54 225055: 55 225156: 56 225257: 57 225358: 58 225459: 59 225560: 60 225661: 61 225762: 62 225863: 63 225964: 64 226065: 65 226166: 66 226267: 67 226368: 68 226469: 69 226570: 70 226671: 71 226772: 72 226873: 73 226974: 74 227075: 75 227176: 76 227277: 77 227378: 78 227479: 79 227580: 80 227681: 81 227782: 82 227883: 83 227984: 84 228085: 85 228186: 86 228287: 87 228388: 88 228489: 89 228590: 90 228691: 91 228792: 92 228893: 93 228994: 94 229095: 95 229196: 96 229297: 97 229398: 98 229499: 99 2295100: 100 2296101: 101 2297102: 102 2298103: 103 2299104: 104 2300105: 105 2301106: 106 2302107: 107 2303108: 108 2304109: 109 2305110: 110 2306111: 111 2307112: 112 2308113: 113 2309114: 114 2310115: 115 2311116: 116 2312117: 117 2313118: 118 2314119: 119 2315120: 120 2316121: 121 2317122: 122 2318123: 123 2319124: 124 2320125: 125 2321126: 126 2322127: 127 2323128: 128 2324129: 129 2325130: 130 2326131: 131 2327132: 132 2328133: 133 2329134: 134 2330135: 135 2331136: 136 2332137: 137 2333138: 138 2334139: 139 2335140: 140 2336141: 141 2337142: 142 2338143: 143 2339144: 144 2340145: 145 2341146: 146 2342147: 147 2343148: 148 2344149: 149 2345150: 150 2346151: 151 2347152: 152 2348153: 153 2349154: 154 2350155: 155 2351156: 156 2352157: 157 2353158: 158 2354159: 159 2355160: 160 2356161: 161 2357162: 162 2358163: 163 2359164: 164 2360165: 165 2361166: 166 2362167: 167 2363168: 168 2364169: 169 2365170: 170 2366171: 171 2367172: 172 2368173: 173 2369174: 174 2370175: 175 2371176: 176 2372177: 177 2373178: 178 2374179: 179 2375180: 180 2376181: 181 2377182: 182 2378183: 183 2379184: 184 2380185: 185 2381186: 186 2382187: 187 2383188: 188 2384189: 189 2385190: 190 2386191: 191 2387192: 192 2388193: 193 2389194: 194 2390195: 195 2391196: 196 2392197: 197 2393198: 198 2394199: 199 2395200: 200 2396201: 201 2397202: 202 2398203: 203 2399204: 204 2400205: 205 2401206: 206 2402207: 207 2403208: 208 2404209: 209 2405210: 210 2406211: 211 2407212: 212 2408213: 213 2409214: 214 2410215: 215 2411216: 216 2412217: 217 2413218: 218 2414219: 219 2415220: 220 2416221: 221 2417222: 222 2418223: 223 2419224: 224 2420225: 225 2421226: 226 2422227: 227 2423228: 228 2424229: 229 2425230: 230 2426231: 231 2427232: 232 2428233: 233 2429234: 234 2430235: 235 2431236: 236 2432237: 237 2433238: 238 2434239: 239 2435240: 240 2436241: 241 2437242: 242 2438243: 243 2439244: 244 2440245: 245 2441246: 246 2442247: 247 2443248: 248 2444249: 249 2445250: 250 2446251: 251 2447252: 252 2448253: 253 2449254: 254 2450255: 255 2451256: 256 2452257: 257 2453258: 258 2454259: 259 2455260: 260 2456261: 261 2457262: 262 2458263: 263 2459264: 264 2460265: 265 2461266: 266 2462267: 267 2463268: 268 2464269: 269 2465270: ABC 2466271: ABC 2467 2468/This one's here because Perl does this differently and PCRE can't at present/I 2469Capturing subpattern count = 0 2470No options 2471First char = 'T' 2472Need char = 't' 2473 2474/(main(O)?)+/I 2475Capturing subpattern count = 2 2476No options 2477First char = 'm' 2478Need char = 'n' 2479 mainmain 2480 0: mainmain 2481 1: main 2482 mainOmain 2483 0: mainOmain 2484 1: main 2485 2: O 2486 2487/These are all cases where Perl does it differently (nested captures)/I 2488Capturing subpattern count = 1 2489No options 2490First char = 'T' 2491Need char = 's' 2492 2493/^(a(b)?)+$/I 2494Capturing subpattern count = 2 2495Options: anchored 2496No first char 2497No need char 2498 aba 2499 0: aba 2500 1: a 2501 2: b 2502 2503/^(aa(bb)?)+$/I 2504Capturing subpattern count = 2 2505Options: anchored 2506No first char 2507No need char 2508 aabbaa 2509 0: aabbaa 2510 1: aa 2511 2: bb 2512 2513/^(aa|aa(bb))+$/I 2514Capturing subpattern count = 2 2515Options: anchored 2516No first char 2517No need char 2518 aabbaa 2519 0: aabbaa 2520 1: aa 2521 2: bb 2522 2523/^(aa(bb)??)+$/I 2524Capturing subpattern count = 2 2525Options: anchored 2526No first char 2527No need char 2528 aabbaa 2529 0: aabbaa 2530 1: aa 2531 2: bb 2532 2533/^(?:aa(bb)?)+$/I 2534Capturing subpattern count = 1 2535Options: anchored 2536No first char 2537No need char 2538 aabbaa 2539 0: aabbaa 2540 1: bb 2541 2542/^(aa(b(b))?)+$/I 2543Capturing subpattern count = 3 2544Options: anchored 2545No first char 2546No need char 2547 aabbaa 2548 0: aabbaa 2549 1: aa 2550 2: bb 2551 3: b 2552 2553/^(?:aa(b(b))?)+$/I 2554Capturing subpattern count = 2 2555Options: anchored 2556No first char 2557No need char 2558 aabbaa 2559 0: aabbaa 2560 1: bb 2561 2: b 2562 2563/^(?:aa(b(?:b))?)+$/I 2564Capturing subpattern count = 1 2565Options: anchored 2566No first char 2567No need char 2568 aabbaa 2569 0: aabbaa 2570 1: bb 2571 2572/^(?:aa(bb(?:b))?)+$/I 2573Capturing subpattern count = 1 2574Options: anchored 2575No first char 2576No need char 2577 aabbbaa 2578 0: aabbbaa 2579 1: bbb 2580 2581/^(?:aa(b(?:bb))?)+$/I 2582Capturing subpattern count = 1 2583Options: anchored 2584No first char 2585No need char 2586 aabbbaa 2587 0: aabbbaa 2588 1: bbb 2589 2590/^(?:aa(?:b(b))?)+$/I 2591Capturing subpattern count = 1 2592Options: anchored 2593No first char 2594No need char 2595 aabbaa 2596 0: aabbaa 2597 1: b 2598 2599/^(?:aa(?:b(bb))?)+$/I 2600Capturing subpattern count = 1 2601Options: anchored 2602No first char 2603No need char 2604 aabbbaa 2605 0: aabbbaa 2606 1: bb 2607 2608/^(aa(b(bb))?)+$/I 2609Capturing subpattern count = 3 2610Options: anchored 2611No first char 2612No need char 2613 aabbbaa 2614 0: aabbbaa 2615 1: aa 2616 2: bbb 2617 3: bb 2618 2619/^(aa(bb(bb))?)+$/I 2620Capturing subpattern count = 3 2621Options: anchored 2622No first char 2623No need char 2624 aabbbbaa 2625 0: aabbbbaa 2626 1: aa 2627 2: bbbb 2628 3: bb 2629 2630/--------------------------------------------------------------------/I 2631Capturing subpattern count = 0 2632No options 2633First char = '-' 2634Need char = '-' 2635 2636/#/IxDZ 2637------------------------------------------------------------------ 2638 Bra 2639 Ket 2640 End 2641------------------------------------------------------------------ 2642Capturing subpattern count = 0 2643May match empty string 2644Options: extended 2645No first char 2646No need char 2647 2648/a#/IxDZ 2649------------------------------------------------------------------ 2650 Bra 2651 a 2652 Ket 2653 End 2654------------------------------------------------------------------ 2655Capturing subpattern count = 0 2656Options: extended 2657First char = 'a' 2658No need char 2659 2660/[\s]/DZ 2661------------------------------------------------------------------ 2662 Bra 2663 [\x09-\x0d ] 2664 Ket 2665 End 2666------------------------------------------------------------------ 2667Capturing subpattern count = 0 2668No options 2669No first char 2670No need char 2671 2672/[\S]/DZ 2673------------------------------------------------------------------ 2674 Bra 2675 [\x00-\x08\x0e-\x1f!-\xff] (neg) 2676 Ket 2677 End 2678------------------------------------------------------------------ 2679Capturing subpattern count = 0 2680No options 2681No first char 2682No need char 2683 2684/a(?i)b/DZ 2685------------------------------------------------------------------ 2686 Bra 2687 a 2688 /i b 2689 Ket 2690 End 2691------------------------------------------------------------------ 2692Capturing subpattern count = 0 2693No options 2694First char = 'a' 2695Need char = 'b' (caseless) 2696 ab 2697 0: ab 2698 aB 2699 0: aB 2700 *** Failers 2701No match 2702 AB 2703No match 2704 2705/(a(?i)b)/DZ 2706------------------------------------------------------------------ 2707 Bra 2708 CBra 1 2709 a 2710 /i b 2711 Ket 2712 Ket 2713 End 2714------------------------------------------------------------------ 2715Capturing subpattern count = 1 2716No options 2717First char = 'a' 2718Need char = 'b' (caseless) 2719 ab 2720 0: ab 2721 1: ab 2722 aB 2723 0: aB 2724 1: aB 2725 *** Failers 2726No match 2727 AB 2728No match 2729 2730/ (?i)abc/IxDZ 2731------------------------------------------------------------------ 2732 Bra 2733 /i abc 2734 Ket 2735 End 2736------------------------------------------------------------------ 2737Capturing subpattern count = 0 2738Options: caseless extended 2739First char = 'a' (caseless) 2740Need char = 'c' (caseless) 2741 2742/#this is a comment 2743 (?i)abc/IxDZ 2744------------------------------------------------------------------ 2745 Bra 2746 /i abc 2747 Ket 2748 End 2749------------------------------------------------------------------ 2750Capturing subpattern count = 0 2751Options: caseless extended 2752First char = 'a' (caseless) 2753Need char = 'c' (caseless) 2754 2755/123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ 2756------------------------------------------------------------------ 2757 Bra 2758 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 2759 Ket 2760 End 2761------------------------------------------------------------------ 2762Capturing subpattern count = 0 2763No options 2764First char = '1' 2765Need char = '0' 2766 2767/\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ 2768------------------------------------------------------------------ 2769 Bra 2770 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 2771 Ket 2772 End 2773------------------------------------------------------------------ 2774Capturing subpattern count = 0 2775No options 2776First char = '1' 2777Need char = '0' 2778 2779/\Q\E/DZ 2780------------------------------------------------------------------ 2781 Bra 2782 Ket 2783 End 2784------------------------------------------------------------------ 2785Capturing subpattern count = 0 2786May match empty string 2787No options 2788No first char 2789No need char 2790 \ 2791 0: 2792 2793/\Q\Ex/DZ 2794------------------------------------------------------------------ 2795 Bra 2796 x 2797 Ket 2798 End 2799------------------------------------------------------------------ 2800Capturing subpattern count = 0 2801No options 2802First char = 'x' 2803No need char 2804 2805/ \Q\E/DZ 2806------------------------------------------------------------------ 2807 Bra 2808 2809 Ket 2810 End 2811------------------------------------------------------------------ 2812Capturing subpattern count = 0 2813No options 2814First char = ' ' 2815No need char 2816 2817/a\Q\E/DZ 2818------------------------------------------------------------------ 2819 Bra 2820 a 2821 Ket 2822 End 2823------------------------------------------------------------------ 2824Capturing subpattern count = 0 2825No options 2826First char = 'a' 2827No need char 2828 abc 2829 0: a 2830 bca 2831 0: a 2832 bac 2833 0: a 2834 2835/a\Q\Eb/DZ 2836------------------------------------------------------------------ 2837 Bra 2838 ab 2839 Ket 2840 End 2841------------------------------------------------------------------ 2842Capturing subpattern count = 0 2843No options 2844First char = 'a' 2845Need char = 'b' 2846 abc 2847 0: ab 2848 2849/\Q\Eabc/DZ 2850------------------------------------------------------------------ 2851 Bra 2852 abc 2853 Ket 2854 End 2855------------------------------------------------------------------ 2856Capturing subpattern count = 0 2857No options 2858First char = 'a' 2859Need char = 'c' 2860 2861/x*+\w/DZ 2862------------------------------------------------------------------ 2863 Bra 2864 x*+ 2865 \w 2866 Ket 2867 End 2868------------------------------------------------------------------ 2869Capturing subpattern count = 0 2870No options 2871No first char 2872No need char 2873 *** Failers 2874 0: F 2875 xxxxx 2876No match 2877 2878/x?+/DZ 2879------------------------------------------------------------------ 2880 Bra 2881 x?+ 2882 Ket 2883 End 2884------------------------------------------------------------------ 2885Capturing subpattern count = 0 2886May match empty string 2887No options 2888No first char 2889No need char 2890 2891/x++/DZ 2892------------------------------------------------------------------ 2893 Bra 2894 x++ 2895 Ket 2896 End 2897------------------------------------------------------------------ 2898Capturing subpattern count = 0 2899No options 2900First char = 'x' 2901No need char 2902 2903/x{1,3}+/BZO 2904------------------------------------------------------------------ 2905 Bra 2906 x 2907 x{0,2}+ 2908 Ket 2909 End 2910------------------------------------------------------------------ 2911 2912/x{1,3}+/BZOi 2913------------------------------------------------------------------ 2914 Bra 2915 /i x 2916 /i x{0,2}+ 2917 Ket 2918 End 2919------------------------------------------------------------------ 2920 2921/[^x]{1,3}+/BZO 2922------------------------------------------------------------------ 2923 Bra 2924 [^x] 2925 [^x]{0,2}+ 2926 Ket 2927 End 2928------------------------------------------------------------------ 2929 2930/[^x]{1,3}+/BZOi 2931------------------------------------------------------------------ 2932 Bra 2933 /i [^x] 2934 /i [^x]{0,2}+ 2935 Ket 2936 End 2937------------------------------------------------------------------ 2938 2939/(x)*+/DZ 2940------------------------------------------------------------------ 2941 Bra 2942 Braposzero 2943 CBraPos 1 2944 x 2945 KetRpos 2946 Ket 2947 End 2948------------------------------------------------------------------ 2949Capturing subpattern count = 1 2950May match empty string 2951No options 2952No first char 2953No need char 2954 2955/^(\w++|\s++)*$/I 2956Capturing subpattern count = 1 2957May match empty string 2958Options: anchored 2959No first char 2960No need char 2961 now is the time for all good men to come to the aid of the party 2962 0: now is the time for all good men to come to the aid of the party 2963 1: party 2964 *** Failers 2965No match 2966 this is not a line with only words and spaces! 2967No match 2968 2969/(\d++)(\w)/I 2970Capturing subpattern count = 2 2971No options 2972No first char 2973No need char 2974 12345a 2975 0: 12345a 2976 1: 12345 2977 2: a 2978 *** Failers 2979No match 2980 12345+ 2981No match 2982 2983/a++b/I 2984Capturing subpattern count = 0 2985No options 2986First char = 'a' 2987Need char = 'b' 2988 aaab 2989 0: aaab 2990 2991/(a++b)/I 2992Capturing subpattern count = 1 2993No options 2994First char = 'a' 2995Need char = 'b' 2996 aaab 2997 0: aaab 2998 1: aaab 2999 3000/(a++)b/I 3001Capturing subpattern count = 1 3002No options 3003First char = 'a' 3004Need char = 'b' 3005 aaab 3006 0: aaab 3007 1: aaa 3008 3009/([^()]++|\([^()]*\))+/I 3010Capturing subpattern count = 1 3011No options 3012No first char 3013No need char 3014 ((abc(ade)ufh()()x 3015 0: abc(ade)ufh()()x 3016 1: x 3017 3018/\(([^()]++|\([^()]+\))+\)/I 3019Capturing subpattern count = 1 3020No options 3021First char = '(' 3022Need char = ')' 3023 (abc) 3024 0: (abc) 3025 1: abc 3026 (abc(def)xyz) 3027 0: (abc(def)xyz) 3028 1: xyz 3029 *** Failers 3030No match 3031 ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 3032No match 3033 3034/(abc){1,3}+/DZ 3035------------------------------------------------------------------ 3036 Bra 3037 Once 3038 CBra 1 3039 abc 3040 Ket 3041 Brazero 3042 Bra 3043 CBra 1 3044 abc 3045 Ket 3046 Brazero 3047 CBra 1 3048 abc 3049 Ket 3050 Ket 3051 Ket 3052 Ket 3053 End 3054------------------------------------------------------------------ 3055Capturing subpattern count = 1 3056No options 3057First char = 'a' 3058Need char = 'c' 3059 3060/a+?+/I 3061Failed: nothing to repeat at offset 3 3062 3063/a{2,3}?+b/I 3064Failed: nothing to repeat at offset 7 3065 3066/(?U)a+?+/I 3067Failed: nothing to repeat at offset 7 3068 3069/a{2,3}?+b/IU 3070Failed: nothing to repeat at offset 7 3071 3072/x(?U)a++b/DZ 3073------------------------------------------------------------------ 3074 Bra 3075 x 3076 a++ 3077 b 3078 Ket 3079 End 3080------------------------------------------------------------------ 3081Capturing subpattern count = 0 3082No options 3083First char = 'x' 3084Need char = 'b' 3085 xaaaab 3086 0: xaaaab 3087 3088/(?U)xa++b/DZ 3089------------------------------------------------------------------ 3090 Bra 3091 x 3092 a++ 3093 b 3094 Ket 3095 End 3096------------------------------------------------------------------ 3097Capturing subpattern count = 0 3098Options: ungreedy 3099First char = 'x' 3100Need char = 'b' 3101 xaaaab 3102 0: xaaaab 3103 3104/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ 3105------------------------------------------------------------------ 3106 Bra 3107 ^ 3108 CBra 1 3109 CBra 2 3110 a+ 3111 Ket 3112 CBra 3 3113 [ab]+? 3114 Ket 3115 CBra 4 3116 [bc]+ 3117 Ket 3118 CBra 5 3119 \w*+ 3120 Ket 3121 Ket 3122 Ket 3123 End 3124------------------------------------------------------------------ 3125Capturing subpattern count = 5 3126Options: anchored 3127No first char 3128No need char 3129 3130/^x(?U)a+b/DZ 3131------------------------------------------------------------------ 3132 Bra 3133 ^ 3134 x 3135 a++ 3136 b 3137 Ket 3138 End 3139------------------------------------------------------------------ 3140Capturing subpattern count = 0 3141Options: anchored 3142No first char 3143Need char = 'b' 3144 3145/^x(?U)(a+)b/DZ 3146------------------------------------------------------------------ 3147 Bra 3148 ^ 3149 x 3150 CBra 1 3151 a+? 3152 Ket 3153 b 3154 Ket 3155 End 3156------------------------------------------------------------------ 3157Capturing subpattern count = 1 3158Options: anchored 3159No first char 3160Need char = 'b' 3161 3162/[.x.]/I 3163Failed: POSIX collating elements are not supported at offset 0 3164 3165/[=x=]/I 3166Failed: POSIX collating elements are not supported at offset 0 3167 3168/[:x:]/I 3169Failed: POSIX named classes are supported only within a class at offset 0 3170 3171/\l/I 3172Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 3173 3174/\L/I 3175Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 3176 3177/\N{name}/I 3178Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 3179 3180/\u/I 3181Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 3182 3183/\U/I 3184Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 3185 3186/a{1,3}b/U 3187 ab 3188 0: ab 3189 3190/[/I 3191Failed: missing terminating ] for character class at offset 1 3192 3193/[a-/I 3194Failed: missing terminating ] for character class at offset 3 3195 3196/[[:space:]/I 3197Failed: missing terminating ] for character class at offset 10 3198 3199/[\s]/IDZ 3200------------------------------------------------------------------ 3201 Bra 3202 [\x09-\x0d ] 3203 Ket 3204 End 3205------------------------------------------------------------------ 3206Capturing subpattern count = 0 3207No options 3208No first char 3209No need char 3210 3211/[[:space:]]/IDZ 3212------------------------------------------------------------------ 3213 Bra 3214 [\x09-\x0d ] 3215 Ket 3216 End 3217------------------------------------------------------------------ 3218Capturing subpattern count = 0 3219No options 3220No first char 3221No need char 3222 3223/[[:space:]abcde]/IDZ 3224------------------------------------------------------------------ 3225 Bra 3226 [\x09-\x0d a-e] 3227 Ket 3228 End 3229------------------------------------------------------------------ 3230Capturing subpattern count = 0 3231No options 3232No first char 3233No need char 3234 3235/< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix 3236Capturing subpattern count = 0 3237Options: extended 3238First char = '<' 3239Need char = '>' 3240 <> 3241 0: <> 3242 <abcd> 3243 0: <abcd> 3244 <abc <123> hij> 3245 0: <abc <123> hij> 3246 <abc <def> hij> 3247 0: <def> 3248 <abc<>def> 3249 0: <abc<>def> 3250 <abc<> 3251 0: <> 3252 *** Failers 3253No match 3254 <abc 3255No match 3256 3257|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 3258------------------------------------------------------------------ 3259 Bra 3260 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 3261 \b 3262 Ket 3263 End 3264------------------------------------------------------------------ 3265Capturing subpattern count = 0 3266Max lookbehind = 1 3267No options 3268First char = '8' 3269Need char = 'X' 3270 3271|\$\<\.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 3272------------------------------------------------------------------ 3273 Bra 3274 $<.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 3275 \b 3276 Ket 3277 End 3278------------------------------------------------------------------ 3279Capturing subpattern count = 0 3280Max lookbehind = 1 3281No options 3282First char = '$' 3283Need char = 'X' 3284 3285/(.*)\d+\1/I 3286Capturing subpattern count = 1 3287Max back reference = 1 3288No options 3289No first char 3290No need char 3291 3292/(.*)\d+/I 3293Capturing subpattern count = 1 3294No options 3295First char at start or follows newline 3296No need char 3297 3298/(.*)\d+\1/Is 3299Capturing subpattern count = 1 3300Max back reference = 1 3301Options: dotall 3302No first char 3303No need char 3304 3305/(.*)\d+/Is 3306Capturing subpattern count = 1 3307Options: anchored dotall 3308No first char 3309No need char 3310 3311/(.*(xyz))\d+\2/I 3312Capturing subpattern count = 2 3313Max back reference = 2 3314No options 3315First char at start or follows newline 3316Need char = 'z' 3317 3318/((.*))\d+\1/I 3319Capturing subpattern count = 2 3320Max back reference = 1 3321No options 3322No first char 3323No need char 3324 abc123bc 3325 0: bc123bc 3326 1: bc 3327 2: bc 3328 3329/a[b]/I 3330Capturing subpattern count = 0 3331No options 3332First char = 'a' 3333Need char = 'b' 3334 3335/(?=a).*/I 3336Capturing subpattern count = 0 3337May match empty string 3338No options 3339First char = 'a' 3340No need char 3341 3342/(?=abc).xyz/IiI 3343Capturing subpattern count = 0 3344Options: caseless 3345First char = 'a' (caseless) 3346Need char = 'z' (caseless) 3347 3348/(?=abc)(?i).xyz/I 3349Capturing subpattern count = 0 3350No options 3351First char = 'a' 3352Need char = 'z' (caseless) 3353 3354/(?=a)(?=b)/I 3355Capturing subpattern count = 0 3356May match empty string 3357No options 3358First char = 'a' 3359No need char 3360 3361/(?=.)a/I 3362Capturing subpattern count = 0 3363No options 3364First char = 'a' 3365No need char 3366 3367/((?=abcda)a)/I 3368Capturing subpattern count = 1 3369No options 3370First char = 'a' 3371Need char = 'a' 3372 3373/((?=abcda)ab)/I 3374Capturing subpattern count = 1 3375No options 3376First char = 'a' 3377Need char = 'b' 3378 3379/()a/I 3380Capturing subpattern count = 1 3381No options 3382No first char 3383Need char = 'a' 3384 3385/(?(1)ab|ac)(.)/I 3386Capturing subpattern count = 1 3387Max back reference = 1 3388No options 3389First char = 'a' 3390No need char 3391 3392/(?(1)abz|acz)(.)/I 3393Capturing subpattern count = 1 3394Max back reference = 1 3395No options 3396First char = 'a' 3397Need char = 'z' 3398 3399/(?(1)abz)(.)/I 3400Capturing subpattern count = 1 3401Max back reference = 1 3402No options 3403No first char 3404No need char 3405 3406/(?(1)abz)(1)23/I 3407Capturing subpattern count = 1 3408Max back reference = 1 3409No options 3410No first char 3411Need char = '3' 3412 3413/(a)+/I 3414Capturing subpattern count = 1 3415No options 3416First char = 'a' 3417No need char 3418 3419/(a){2,3}/I 3420Capturing subpattern count = 1 3421No options 3422First char = 'a' 3423Need char = 'a' 3424 3425/(a)*/I 3426Capturing subpattern count = 1 3427May match empty string 3428No options 3429No first char 3430No need char 3431 3432/[a]/I 3433Capturing subpattern count = 0 3434No options 3435First char = 'a' 3436No need char 3437 3438/[ab]/I 3439Capturing subpattern count = 0 3440No options 3441No first char 3442No need char 3443 3444/[ab]/IS 3445Capturing subpattern count = 0 3446No options 3447No first char 3448No need char 3449Subject length lower bound = 1 3450Starting chars: a b 3451 3452/[^a]/I 3453Capturing subpattern count = 0 3454No options 3455No first char 3456No need char 3457 3458/\d456/I 3459Capturing subpattern count = 0 3460No options 3461No first char 3462Need char = '6' 3463 3464/\d456/IS 3465Capturing subpattern count = 0 3466No options 3467No first char 3468Need char = '6' 3469Subject length lower bound = 4 3470Starting chars: 0 1 2 3 4 5 6 7 8 9 3471 3472/a^b/I 3473Capturing subpattern count = 0 3474No options 3475First char = 'a' 3476Need char = 'b' 3477 3478/^a/Im 3479Capturing subpattern count = 0 3480Options: multiline 3481First char at start or follows newline 3482Need char = 'a' 3483 abcde 3484 0: a 3485 xy\nabc 3486 0: a 3487 *** Failers 3488No match 3489 xyabc 3490No match 3491 3492/c|abc/I 3493Capturing subpattern count = 0 3494No options 3495No first char 3496Need char = 'c' 3497 3498/(?i)[ab]/IS 3499Capturing subpattern count = 0 3500Options: caseless 3501No first char 3502No need char 3503Subject length lower bound = 1 3504Starting chars: A B a b 3505 3506/[ab](?i)cd/IS 3507Capturing subpattern count = 0 3508No options 3509No first char 3510Need char = 'd' (caseless) 3511Subject length lower bound = 3 3512Starting chars: a b 3513 3514/abc(?C)def/I 3515Capturing subpattern count = 0 3516No options 3517First char = 'a' 3518Need char = 'f' 3519 abcdef 3520--->abcdef 3521 0 ^ ^ d 3522 0: abcdef 3523 1234abcdef 3524--->1234abcdef 3525 0 ^ ^ d 3526 0: abcdef 3527 *** Failers 3528No match 3529 abcxyz 3530No match 3531 abcxyzf 3532--->abcxyzf 3533 0 ^ ^ d 3534No match 3535 3536/abc(?C)de(?C1)f/I 3537Capturing subpattern count = 0 3538No options 3539First char = 'a' 3540Need char = 'f' 3541 123abcdef 3542--->123abcdef 3543 0 ^ ^ d 3544 1 ^ ^ f 3545 0: abcdef 3546 3547/(?C1)\dabc(?C2)def/IS 3548Capturing subpattern count = 0 3549No options 3550No first char 3551Need char = 'f' 3552Subject length lower bound = 7 3553Starting chars: 0 1 2 3 4 5 6 7 8 9 3554 1234abcdef 3555--->1234abcdef 3556 1 ^ \d 3557 1 ^ \d 3558 1 ^ \d 3559 1 ^ \d 3560 2 ^ ^ d 3561 0: 4abcdef 3562 *** Failers 3563No match 3564 abcdef 3565No match 3566 3567/(?C1)\dabc(?C2)def/ISS 3568Capturing subpattern count = 0 3569No options 3570No first char 3571Need char = 'f' 3572 1234abcdef 3573--->1234abcdef 3574 1 ^ \d 3575 1 ^ \d 3576 1 ^ \d 3577 1 ^ \d 3578 2 ^ ^ d 3579 0: 4abcdef 3580 *** Failers 3581No match 3582 abcdef 3583--->abcdef 3584 1 ^ \d 3585 1 ^ \d 3586 1 ^ \d 3587 1 ^ \d 3588 1 ^ \d 3589 1 ^ \d 3590No match 3591 3592/(?C255)ab/I 3593Capturing subpattern count = 0 3594No options 3595First char = 'a' 3596Need char = 'b' 3597 3598/(?C256)ab/I 3599Failed: number after (?C is > 255 at offset 6 3600 3601/(?Cab)xx/I 3602Failed: closing ) for (?C expected at offset 3 3603 3604/(?C12vr)x/I 3605Failed: closing ) for (?C expected at offset 5 3606 3607/abc(?C)def/I 3608Capturing subpattern count = 0 3609No options 3610First char = 'a' 3611Need char = 'f' 3612 *** Failers 3613No match 3614 \x83\x0\x61bcdef 3615--->\x83\x00abcdef 3616 0 ^ ^ d 3617 0: abcdef 3618 3619/(abc)(?C)de(?C1)f/I 3620Capturing subpattern count = 1 3621No options 3622First char = 'a' 3623Need char = 'f' 3624 123abcdef 3625--->123abcdef 3626 0 ^ ^ d 3627 1 ^ ^ f 3628 0: abcdef 3629 1: abc 3630 123abcdef\C+ 3631Callout 0: last capture = 1 3632 0: <unset> 3633 1: abc 3634--->123abcdef 3635 ^ ^ d 3636Callout 1: last capture = 1 3637 0: <unset> 3638 1: abc 3639--->123abcdef 3640 ^ ^ f 3641 0: abcdef 3642 1: abc 3643 123abcdef\C- 3644 0: abcdef 3645 1: abc 3646 *** Failers 3647No match 3648 123abcdef\C!1 3649--->123abcdef 3650 0 ^ ^ d 3651 1 ^ ^ f 3652No match 3653 3654/(?C0)(abc(?C1))*/I 3655Capturing subpattern count = 1 3656May match empty string 3657No options 3658No first char 3659No need char 3660 abcabcabc 3661--->abcabcabc 3662 0 ^ (abc(?C1))* 3663 1 ^ ^ ) 3664 1 ^ ^ ) 3665 1 ^ ^ ) 3666 0: abcabcabc 3667 1: abc 3668 abcabc\C!1!3 3669--->abcabc 3670 0 ^ (abc(?C1))* 3671 1 ^ ^ ) 3672 1 ^ ^ ) 3673 0: abcabc 3674 1: abc 3675 *** Failers 3676--->*** Failers 3677 0 ^ (abc(?C1))* 3678 0: 3679 abcabcabc\C!1!3 3680--->abcabcabc 3681 0 ^ (abc(?C1))* 3682 1 ^ ^ ) 3683 1 ^ ^ ) 3684 1 ^ ^ ) 3685 0: abcabc 3686 1: abc 3687 3688/(\d{3}(?C))*/I 3689Capturing subpattern count = 1 3690May match empty string 3691No options 3692No first char 3693No need char 3694 123\C+ 3695Callout 0: last capture = -1 3696 0: <unset> 3697--->123 3698 ^ ^ ) 3699 0: 123 3700 1: 123 3701 123456\C+ 3702Callout 0: last capture = -1 3703 0: <unset> 3704--->123456 3705 ^ ^ ) 3706Callout 0: last capture = 1 3707 0: <unset> 3708 1: 123 3709--->123456 3710 ^ ^ ) 3711 0: 123456 3712 1: 456 3713 123456789\C+ 3714Callout 0: last capture = -1 3715 0: <unset> 3716--->123456789 3717 ^ ^ ) 3718Callout 0: last capture = 1 3719 0: <unset> 3720 1: 123 3721--->123456789 3722 ^ ^ ) 3723Callout 0: last capture = 1 3724 0: <unset> 3725 1: 456 3726--->123456789 3727 ^ ^ ) 3728 0: 123456789 3729 1: 789 3730 3731/((xyz)(?C)p|(?C1)xyzabc)/I 3732Capturing subpattern count = 2 3733No options 3734First char = 'x' 3735No need char 3736 xyzabc\C+ 3737Callout 0: last capture = 2 3738 0: <unset> 3739 1: <unset> 3740 2: xyz 3741--->xyzabc 3742 ^ ^ p 3743Callout 1: last capture = -1 3744 0: <unset> 3745--->xyzabc 3746 ^ x 3747 0: xyzabc 3748 1: xyzabc 3749 3750/(X)((xyz)(?C)p|(?C1)xyzabc)/I 3751Capturing subpattern count = 3 3752No options 3753First char = 'X' 3754Need char = 'x' 3755 Xxyzabc\C+ 3756Callout 0: last capture = 3 3757 0: <unset> 3758 1: X 3759 2: <unset> 3760 3: xyz 3761--->Xxyzabc 3762 ^ ^ p 3763Callout 1: last capture = 1 3764 0: <unset> 3765 1: X 3766--->Xxyzabc 3767 ^^ x 3768 0: Xxyzabc 3769 1: X 3770 2: xyzabc 3771 3772/(?=(abc))(?C)abcdef/I 3773Capturing subpattern count = 1 3774No options 3775First char = 'a' 3776Need char = 'f' 3777 abcdef\C+ 3778Callout 0: last capture = 1 3779 0: <unset> 3780 1: abc 3781--->abcdef 3782 ^ a 3783 0: abcdef 3784 1: abc 3785 3786/(?!(abc)(?C1)d)(?C2)abcxyz/I 3787Capturing subpattern count = 1 3788No options 3789First char = 'a' 3790Need char = 'z' 3791 abcxyz\C+ 3792Callout 1: last capture = 1 3793 0: <unset> 3794 1: abc 3795--->abcxyz 3796 ^ ^ d 3797Callout 2: last capture = -1 3798 0: <unset> 3799--->abcxyz 3800 ^ a 3801 0: abcxyz 3802 3803/(?<=(abc)(?C))xyz/I 3804Capturing subpattern count = 1 3805Max lookbehind = 3 3806No options 3807First char = 'x' 3808Need char = 'z' 3809 abcxyz\C+ 3810Callout 0: last capture = 1 3811 0: <unset> 3812 1: abc 3813--->abcxyz 3814 ^ ) 3815 0: xyz 3816 1: abc 3817 3818/a(b+)(c*)(?C1)/I 3819Capturing subpattern count = 2 3820No options 3821First char = 'a' 3822Need char = 'b' 3823 abbbbbccc\C*1 3824--->abbbbbccc 3825 1 ^ ^ 3826Callout data = 1 3827No match 3828 3829/a(b+?)(c*?)(?C1)/I 3830Capturing subpattern count = 2 3831No options 3832First char = 'a' 3833Need char = 'b' 3834 abbbbbccc\C*1 3835--->abbbbbccc 3836 1 ^ ^ 3837Callout data = 1 3838 1 ^ ^ 3839Callout data = 1 3840 1 ^ ^ 3841Callout data = 1 3842 1 ^ ^ 3843Callout data = 1 3844 1 ^ ^ 3845Callout data = 1 3846 1 ^ ^ 3847Callout data = 1 3848 1 ^ ^ 3849Callout data = 1 3850 1 ^ ^ 3851Callout data = 1 3852No match 3853 3854/(?C)abc/I 3855Capturing subpattern count = 0 3856No options 3857First char = 'a' 3858Need char = 'c' 3859 3860/(?C)^abc/I 3861Capturing subpattern count = 0 3862Options: anchored 3863No first char 3864No need char 3865 3866/(?C)a|b/IS 3867Capturing subpattern count = 0 3868No options 3869No first char 3870No need char 3871Subject length lower bound = 1 3872Starting chars: a b 3873 3874/(?R)/I 3875Failed: recursive call could loop indefinitely at offset 3 3876 3877/(a|(?R))/I 3878Failed: recursive call could loop indefinitely at offset 6 3879 3880/(ab|(bc|(de|(?R))))/I 3881Failed: recursive call could loop indefinitely at offset 15 3882 3883/x(ab|(bc|(de|(?R))))/I 3884Capturing subpattern count = 3 3885No options 3886First char = 'x' 3887No need char 3888 xab 3889 0: xab 3890 1: ab 3891 xbc 3892 0: xbc 3893 1: bc 3894 2: bc 3895 xde 3896 0: xde 3897 1: de 3898 2: de 3899 3: de 3900 xxab 3901 0: xxab 3902 1: xab 3903 2: xab 3904 3: xab 3905 xxxab 3906 0: xxxab 3907 1: xxab 3908 2: xxab 3909 3: xxab 3910 *** Failers 3911No match 3912 xyab 3913No match 3914 3915/(ab|(bc|(de|(?1))))/I 3916Failed: recursive call could loop indefinitely at offset 15 3917 3918/x(ab|(bc|(de|(?1)x)x)x)/I 3919Failed: recursive call could loop indefinitely at offset 16 3920 3921/^([^()]|\((?1)*\))*$/I 3922Capturing subpattern count = 1 3923May match empty string 3924Options: anchored 3925No first char 3926No need char 3927 abc 3928 0: abc 3929 1: c 3930 a(b)c 3931 0: a(b)c 3932 1: c 3933 a(b(c))d 3934 0: a(b(c))d 3935 1: d 3936 *** Failers) 3937No match 3938 a(b(c)d 3939No match 3940 3941/^>abc>([^()]|\((?1)*\))*<xyz<$/I 3942Capturing subpattern count = 1 3943Options: anchored 3944No first char 3945Need char = '<' 3946 >abc>123<xyz< 3947 0: >abc>123<xyz< 3948 1: 3 3949 >abc>1(2)3<xyz< 3950 0: >abc>1(2)3<xyz< 3951 1: 3 3952 >abc>(1(2)3)<xyz< 3953 0: >abc>(1(2)3)<xyz< 3954 1: (1(2)3) 3955 3956/(a(?1)b)/DZ 3957------------------------------------------------------------------ 3958 Bra 3959 CBra 1 3960 a 3961 Recurse 3962 b 3963 Ket 3964 Ket 3965 End 3966------------------------------------------------------------------ 3967Capturing subpattern count = 1 3968No options 3969First char = 'a' 3970Need char = 'b' 3971 3972/(a(?1)+b)/DZ 3973------------------------------------------------------------------ 3974 Bra 3975 CBra 1 3976 a 3977 Once 3978 Recurse 3979 KetRmax 3980 b 3981 Ket 3982 Ket 3983 End 3984------------------------------------------------------------------ 3985Capturing subpattern count = 1 3986No options 3987First char = 'a' 3988Need char = 'b' 3989 3990/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I 3991Capturing subpattern count = 2 3992Options: anchored 3993No first char 3994No need char 3995 12 3996 0: 12 3997 1: 12 3998 (((2+2)*-3)-7) 3999 0: (((2+2)*-3)-7) 4000 1: (((2+2)*-3)-7) 4001 2: - 4002 -12 4003 0: -12 4004 1: -12 4005 *** Failers 4006No match 4007 ((2+2)*-3)-7) 4008No match 4009 4010/^(x(y|(?1){2})z)/I 4011Capturing subpattern count = 2 4012Options: anchored 4013No first char 4014No need char 4015 xyz 4016 0: xyz 4017 1: xyz 4018 2: y 4019 xxyzxyzz 4020 0: xxyzxyzz 4021 1: xxyzxyzz 4022 2: xyzxyz 4023 *** Failers 4024No match 4025 xxyzz 4026No match 4027 xxyzxyzxyzz 4028No match 4029 4030/((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix 4031Capturing subpattern count = 2 4032Options: extended 4033First char = '<' 4034Need char = '>' 4035 <> 4036 0: <> 4037 1: <> 4038 2: <> 4039 <abcd> 4040 0: <abcd> 4041 1: <abcd> 4042 2: <abcd> 4043 <abc <123> hij> 4044 0: <abc <123> hij> 4045 1: <abc <123> hij> 4046 2: <abc <123> hij> 4047 <abc <def> hij> 4048 0: <def> 4049 1: <def> 4050 2: <def> 4051 <abc<>def> 4052 0: <abc<>def> 4053 1: <abc<>def> 4054 2: <abc<>def> 4055 <abc<> 4056 0: <> 4057 1: <> 4058 2: <> 4059 *** Failers 4060No match 4061 <abc 4062No match 4063 4064/(?1)/I 4065Failed: reference to non-existent subpattern at offset 3 4066 4067/((?2)(abc)/I 4068Failed: missing ) at offset 10 4069 4070/^(abc)def(?1)/I 4071Capturing subpattern count = 1 4072Options: anchored 4073No first char 4074No need char 4075 abcdefabc 4076 0: abcdefabc 4077 1: abc 4078 4079/^(a|b|c)=(?1)+/I 4080Capturing subpattern count = 1 4081Options: anchored 4082No first char 4083No need char 4084 a=a 4085 0: a=a 4086 1: a 4087 a=b 4088 0: a=b 4089 1: a 4090 a=bc 4091 0: a=bc 4092 1: a 4093 4094/^(a|b|c)=((?1))+/I 4095Capturing subpattern count = 2 4096Options: anchored 4097No first char 4098No need char 4099 a=a 4100 0: a=a 4101 1: a 4102 2: a 4103 a=b 4104 0: a=b 4105 1: a 4106 2: b 4107 a=bc 4108 0: a=bc 4109 1: a 4110 2: c 4111 4112/a(?P<name1>b|c)d(?P<longername2>e)/DZ 4113------------------------------------------------------------------ 4114 Bra 4115 a 4116 CBra 1 4117 b 4118 Alt 4119 c 4120 Ket 4121 d 4122 CBra 2 4123 e 4124 Ket 4125 Ket 4126 End 4127------------------------------------------------------------------ 4128Capturing subpattern count = 2 4129Named capturing subpatterns: 4130 longername2 2 4131 name1 1 4132No options 4133First char = 'a' 4134Need char = 'e' 4135 abde 4136 0: abde 4137 1: b 4138 2: e 4139 acde 4140 0: acde 4141 1: c 4142 2: e 4143 4144/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ 4145------------------------------------------------------------------ 4146 Bra 4147 Bra 4148 a 4149 CBra 1 4150 c 4151 CBra 2 4152 d 4153 Ket 4154 Ket 4155 Ket 4156 CBra 3 4157 a 4158 Ket 4159 Ket 4160 End 4161------------------------------------------------------------------ 4162Capturing subpattern count = 3 4163Named capturing subpatterns: 4164 a 3 4165 c 1 4166 d 2 4167No options 4168First char = 'a' 4169Need char = 'a' 4170 4171/(?P<a>a)...(?P=a)bbb(?P>a)d/DZ 4172------------------------------------------------------------------ 4173 Bra 4174 CBra 1 4175 a 4176 Ket 4177 Any 4178 Any 4179 Any 4180 \1 4181 bbb 4182 Recurse 4183 d 4184 Ket 4185 End 4186------------------------------------------------------------------ 4187Capturing subpattern count = 1 4188Max back reference = 1 4189Named capturing subpatterns: 4190 a 1 4191No options 4192First char = 'a' 4193Need char = 'd' 4194 4195/^\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 4196Capturing subpattern count = 4 4197Max back reference = 4 4198Named capturing subpatterns: 4199 four 4 4200 one 1 4201 three 3 4202 two 2 4203May match empty string 4204Options: anchored caseless 4205No first char 4206No need char 4207 1221 4208 0: 1221 4209 1: 1221 4210 2: 1 4211 Satan, oscillate my metallic sonatas! 4212 0: Satan, oscillate my metallic sonatas! 4213 1: <unset> 4214 2: <unset> 4215 3: Satan, oscillate my metallic sonatas 4216 4: S 4217 A man, a plan, a canal: Panama! 4218 0: A man, a plan, a canal: Panama! 4219 1: <unset> 4220 2: <unset> 4221 3: A man, a plan, a canal: Panama 4222 4: A 4223 Able was I ere I saw Elba. 4224 0: Able was I ere I saw Elba. 4225 1: <unset> 4226 2: <unset> 4227 3: Able was I ere I saw Elba 4228 4: A 4229 *** Failers 4230No match 4231 The quick brown fox 4232No match 4233 4234/((?(R)a|b))\1(?1)?/I 4235Capturing subpattern count = 1 4236Max back reference = 1 4237No options 4238No first char 4239No need char 4240 bb 4241 0: bb 4242 1: b 4243 bbaa 4244 0: bba 4245 1: b 4246 4247/(.*)a/Is 4248Capturing subpattern count = 1 4249Options: anchored dotall 4250No first char 4251Need char = 'a' 4252 4253/(.*)a\1/Is 4254Capturing subpattern count = 1 4255Max back reference = 1 4256Options: dotall 4257No first char 4258Need char = 'a' 4259 4260/(.*)a(b)\2/Is 4261Capturing subpattern count = 2 4262Max back reference = 2 4263Options: anchored dotall 4264No first char 4265Need char = 'b' 4266 4267/((.*)a|(.*)b)z/Is 4268Capturing subpattern count = 3 4269Options: anchored dotall 4270No first char 4271Need char = 'z' 4272 4273/((.*)a|(.*)b)z\1/Is 4274Capturing subpattern count = 3 4275Max back reference = 1 4276Options: dotall 4277No first char 4278Need char = 'z' 4279 4280/((.*)a|(.*)b)z\2/Is 4281Capturing subpattern count = 3 4282Max back reference = 2 4283Options: dotall 4284No first char 4285Need char = 'z' 4286 4287/((.*)a|(.*)b)z\3/Is 4288Capturing subpattern count = 3 4289Max back reference = 3 4290Options: dotall 4291No first char 4292Need char = 'z' 4293 4294/((.*)a|^(.*)b)z\3/Is 4295Capturing subpattern count = 3 4296Max back reference = 3 4297Options: anchored dotall 4298No first char 4299Need char = 'z' 4300 4301/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is 4302Capturing subpattern count = 31 4303May match empty string 4304Options: anchored dotall 4305No first char 4306No need char 4307 4308/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is 4309Capturing subpattern count = 31 4310Max back reference = 31 4311May match empty string 4312Options: dotall 4313No first char 4314No need char 4315 4316/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is 4317Capturing subpattern count = 32 4318Max back reference = 32 4319May match empty string 4320Options: dotall 4321No first char 4322No need char 4323 4324/(a)(bc)/INDZ 4325------------------------------------------------------------------ 4326 Bra 4327 Bra 4328 a 4329 Ket 4330 Bra 4331 bc 4332 Ket 4333 Ket 4334 End 4335------------------------------------------------------------------ 4336Capturing subpattern count = 0 4337Options: no_auto_capture 4338First char = 'a' 4339Need char = 'c' 4340 abc 4341 0: abc 4342 4343/(?P<one>a)(bc)/INDZ 4344------------------------------------------------------------------ 4345 Bra 4346 CBra 1 4347 a 4348 Ket 4349 Bra 4350 bc 4351 Ket 4352 Ket 4353 End 4354------------------------------------------------------------------ 4355Capturing subpattern count = 1 4356Named capturing subpatterns: 4357 one 1 4358Options: no_auto_capture 4359First char = 'a' 4360Need char = 'c' 4361 abc 4362 0: abc 4363 1: a 4364 4365/(a)(?P<named>bc)/INDZ 4366------------------------------------------------------------------ 4367 Bra 4368 Bra 4369 a 4370 Ket 4371 CBra 1 4372 bc 4373 Ket 4374 Ket 4375 End 4376------------------------------------------------------------------ 4377Capturing subpattern count = 1 4378Named capturing subpatterns: 4379 named 1 4380Options: no_auto_capture 4381First char = 'a' 4382Need char = 'c' 4383 4384/(a+)*zz/I 4385Capturing subpattern count = 1 4386No options 4387No first char 4388Need char = 'z' 4389 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M 4390Minimum match() limit = 8 4391Minimum match() recursion limit = 6 4392 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz 4393 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 4394 aaaaaaaaaaaaaz\M 4395Minimum match() limit = 32768 4396Minimum match() recursion limit = 29 4397No match 4398 4399/(aaa(?C1)bbb|ab)/I 4400Capturing subpattern count = 1 4401No options 4402First char = 'a' 4403Need char = 'b' 4404 aaabbb 4405--->aaabbb 4406 1 ^ ^ b 4407 0: aaabbb 4408 1: aaabbb 4409 aaabbb\C*0 4410--->aaabbb 4411 1 ^ ^ b 4412 0: aaabbb 4413 1: aaabbb 4414 aaabbb\C*1 4415--->aaabbb 4416 1 ^ ^ b 4417Callout data = 1 4418 0: ab 4419 1: ab 4420 aaabbb\C*-1 4421--->aaabbb 4422 1 ^ ^ b 4423Callout data = -1 4424No match 4425 4426/ab(?P<one>cd)ef(?P<two>gh)/I 4427Capturing subpattern count = 2 4428Named capturing subpatterns: 4429 one 1 4430 two 2 4431No options 4432First char = 'a' 4433Need char = 'h' 4434 abcdefgh 4435 0: abcdefgh 4436 1: cd 4437 2: gh 4438 abcdefgh\C1\Gtwo 4439 0: abcdefgh 4440 1: cd 4441 2: gh 4442 1C cd (2) 4443 G gh (2) two 4444 abcdefgh\Cone\Ctwo 4445 0: abcdefgh 4446 1: cd 4447 2: gh 4448 C cd (2) one 4449 C gh (2) two 4450 abcdefgh\Cthree 4451no parentheses with name "three" 4452 0: abcdefgh 4453 1: cd 4454 2: gh 4455copy substring three failed -7 4456 4457/(?P<Tes>)(?P<Test>)/DZ 4458------------------------------------------------------------------ 4459 Bra 4460 CBra 1 4461 Ket 4462 CBra 2 4463 Ket 4464 Ket 4465 End 4466------------------------------------------------------------------ 4467Capturing subpattern count = 2 4468Named capturing subpatterns: 4469 Tes 1 4470 Test 2 4471May match empty string 4472No options 4473No first char 4474No need char 4475 4476/(?P<Test>)(?P<Tes>)/DZ 4477------------------------------------------------------------------ 4478 Bra 4479 CBra 1 4480 Ket 4481 CBra 2 4482 Ket 4483 Ket 4484 End 4485------------------------------------------------------------------ 4486Capturing subpattern count = 2 4487Named capturing subpatterns: 4488 Tes 2 4489 Test 1 4490May match empty string 4491No options 4492No first char 4493No need char 4494 4495/(?P<Z>zz)(?P<A>aa)/I 4496Capturing subpattern count = 2 4497Named capturing subpatterns: 4498 A 2 4499 Z 1 4500No options 4501First char = 'z' 4502Need char = 'a' 4503 zzaa\CZ 4504 0: zzaa 4505 1: zz 4506 2: aa 4507 C zz (2) Z 4508 zzaa\CA 4509 0: zzaa 4510 1: zz 4511 2: aa 4512 C aa (2) A 4513 4514/(?P<x>eks)(?P<x>eccs)/I 4515Failed: two named subpatterns have the same name at offset 15 4516 4517/(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I 4518Failed: two named subpatterns have the same name at offset 30 4519 4520"\[((?P<elem>\d+)(,(?P>elem))*)\]"I 4521Capturing subpattern count = 3 4522Named capturing subpatterns: 4523 elem 2 4524No options 4525First char = '[' 4526Need char = ']' 4527 [10,20,30,5,5,4,4,2,43,23,4234] 4528 0: [10,20,30,5,5,4,4,2,43,23,4234] 4529 1: 10,20,30,5,5,4,4,2,43,23,4234 4530 2: 10 4531 3: ,4234 4532 *** Failers 4533No match 4534 [] 4535No match 4536 4537"\[((?P<elem>\d+)(,(?P>elem))*)?\]"I 4538Capturing subpattern count = 3 4539Named capturing subpatterns: 4540 elem 2 4541No options 4542First char = '[' 4543Need char = ']' 4544 [10,20,30,5,5,4,4,2,43,23,4234] 4545 0: [10,20,30,5,5,4,4,2,43,23,4234] 4546 1: 10,20,30,5,5,4,4,2,43,23,4234 4547 2: 10 4548 3: ,4234 4549 [] 4550 0: [] 4551 4552/(a(b(?2)c))?/DZ 4553------------------------------------------------------------------ 4554 Bra 4555 Brazero 4556 CBra 1 4557 a 4558 CBra 2 4559 b 4560 Recurse 4561 c 4562 Ket 4563 Ket 4564 Ket 4565 End 4566------------------------------------------------------------------ 4567Capturing subpattern count = 2 4568May match empty string 4569No options 4570No first char 4571No need char 4572 4573/(a(b(?2)c))*/DZ 4574------------------------------------------------------------------ 4575 Bra 4576 Brazero 4577 CBra 1 4578 a 4579 CBra 2 4580 b 4581 Recurse 4582 c 4583 Ket 4584 KetRmax 4585 Ket 4586 End 4587------------------------------------------------------------------ 4588Capturing subpattern count = 2 4589May match empty string 4590No options 4591No first char 4592No need char 4593 4594/(a(b(?2)c)){0,2}/DZ 4595------------------------------------------------------------------ 4596 Bra 4597 Brazero 4598 Bra 4599 CBra 1 4600 a 4601 CBra 2 4602 b 4603 Recurse 4604 c 4605 Ket 4606 Ket 4607 Brazero 4608 CBra 1 4609 a 4610 CBra 2 4611 b 4612 Recurse 4613 c 4614 Ket 4615 Ket 4616 Ket 4617 Ket 4618 End 4619------------------------------------------------------------------ 4620Capturing subpattern count = 2 4621May match empty string 4622No options 4623No first char 4624No need char 4625 4626/[ab]{1}+/DZ 4627------------------------------------------------------------------ 4628 Bra 4629 [ab]{1,1}+ 4630 Ket 4631 End 4632------------------------------------------------------------------ 4633Capturing subpattern count = 0 4634No options 4635No first char 4636No need char 4637 4638/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii 4639Capturing subpattern count = 3 4640Options: caseless 4641No first char 4642Need char = 'g' (caseless) 4643 Baby Bjorn Active Carrier - With free SHIPPING!! 4644 0: Baby Bjorn Active Carrier - With free SHIPPING!! 4645 1: Baby Bjorn Active Carrier - With free SHIPPING!! 4646 4647/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS 4648Capturing subpattern count = 3 4649Options: caseless 4650No first char 4651Need char = 'g' (caseless) 4652Subject length lower bound = 8 4653No starting char list 4654 Baby Bjorn Active Carrier - With free SHIPPING!! 4655 0: Baby Bjorn Active Carrier - With free SHIPPING!! 4656 1: Baby Bjorn Active Carrier - With free SHIPPING!! 4657 4658/a*.*b/ISDZ 4659------------------------------------------------------------------ 4660 Bra 4661 a* 4662 Any* 4663 b 4664 Ket 4665 End 4666------------------------------------------------------------------ 4667Capturing subpattern count = 0 4668No options 4669No first char 4670Need char = 'b' 4671Subject length lower bound = 1 4672No starting char list 4673 4674/(a|b)*.?c/ISDZ 4675------------------------------------------------------------------ 4676 Bra 4677 Brazero 4678 CBra 1 4679 a 4680 Alt 4681 b 4682 KetRmax 4683 Any? 4684 c 4685 Ket 4686 End 4687------------------------------------------------------------------ 4688Capturing subpattern count = 1 4689No options 4690No first char 4691Need char = 'c' 4692Subject length lower bound = 1 4693No starting char list 4694 4695/abc(?C255)de(?C)f/DZ 4696------------------------------------------------------------------ 4697 Bra 4698 abc 4699 Callout 255 10 1 4700 de 4701 Callout 0 16 1 4702 f 4703 Ket 4704 End 4705------------------------------------------------------------------ 4706Capturing subpattern count = 0 4707No options 4708First char = 'a' 4709Need char = 'f' 4710 4711/abcde/ICDZ 4712------------------------------------------------------------------ 4713 Bra 4714 Callout 255 0 1 4715 a 4716 Callout 255 1 1 4717 b 4718 Callout 255 2 1 4719 c 4720 Callout 255 3 1 4721 d 4722 Callout 255 4 1 4723 e 4724 Callout 255 5 0 4725 Ket 4726 End 4727------------------------------------------------------------------ 4728Capturing subpattern count = 0 4729Options: 4730First char = 'a' 4731Need char = 'e' 4732 abcde 4733--->abcde 4734 +0 ^ a 4735 +1 ^^ b 4736 +2 ^ ^ c 4737 +3 ^ ^ d 4738 +4 ^ ^ e 4739 +5 ^ ^ 4740 0: abcde 4741 abcdfe 4742--->abcdfe 4743 +0 ^ a 4744 +1 ^^ b 4745 +2 ^ ^ c 4746 +3 ^ ^ d 4747 +4 ^ ^ e 4748No match 4749 4750/a*b/ICDZS 4751------------------------------------------------------------------ 4752 Bra 4753 Callout 255 0 2 4754 a*+ 4755 Callout 255 2 1 4756 b 4757 Callout 255 3 0 4758 Ket 4759 End 4760------------------------------------------------------------------ 4761Capturing subpattern count = 0 4762Options: 4763No first char 4764Need char = 'b' 4765Subject length lower bound = 1 4766Starting chars: a b 4767 ab 4768--->ab 4769 +0 ^ a* 4770 +2 ^^ b 4771 +3 ^ ^ 4772 0: ab 4773 aaaab 4774--->aaaab 4775 +0 ^ a* 4776 +2 ^ ^ b 4777 +3 ^ ^ 4778 0: aaaab 4779 aaaacb 4780--->aaaacb 4781 +0 ^ a* 4782 +2 ^ ^ b 4783 +0 ^ a* 4784 +2 ^ ^ b 4785 +0 ^ a* 4786 +2 ^ ^ b 4787 +0 ^ a* 4788 +2 ^^ b 4789 +0 ^ a* 4790 +2 ^ b 4791 +3 ^^ 4792 0: b 4793 4794/a*b/ICDZSS 4795------------------------------------------------------------------ 4796 Bra 4797 Callout 255 0 2 4798 a*+ 4799 Callout 255 2 1 4800 b 4801 Callout 255 3 0 4802 Ket 4803 End 4804------------------------------------------------------------------ 4805Capturing subpattern count = 0 4806Options: 4807No first char 4808Need char = 'b' 4809 ab 4810--->ab 4811 +0 ^ a* 4812 +2 ^^ b 4813 +3 ^ ^ 4814 0: ab 4815 aaaab 4816--->aaaab 4817 +0 ^ a* 4818 +2 ^ ^ b 4819 +3 ^ ^ 4820 0: aaaab 4821 aaaacb 4822--->aaaacb 4823 +0 ^ a* 4824 +2 ^ ^ b 4825 +0 ^ a* 4826 +2 ^ ^ b 4827 +0 ^ a* 4828 +2 ^ ^ b 4829 +0 ^ a* 4830 +2 ^^ b 4831 +0 ^ a* 4832 +2 ^ b 4833 +0 ^ a* 4834 +2 ^ b 4835 +3 ^^ 4836 0: b 4837 4838/a+b/ICDZ 4839------------------------------------------------------------------ 4840 Bra 4841 Callout 255 0 2 4842 a++ 4843 Callout 255 2 1 4844 b 4845 Callout 255 3 0 4846 Ket 4847 End 4848------------------------------------------------------------------ 4849Capturing subpattern count = 0 4850Options: 4851First char = 'a' 4852Need char = 'b' 4853 ab 4854--->ab 4855 +0 ^ a+ 4856 +2 ^^ b 4857 +3 ^ ^ 4858 0: ab 4859 aaaab 4860--->aaaab 4861 +0 ^ a+ 4862 +2 ^ ^ b 4863 +3 ^ ^ 4864 0: aaaab 4865 aaaacb 4866--->aaaacb 4867 +0 ^ a+ 4868 +2 ^ ^ b 4869 +0 ^ a+ 4870 +2 ^ ^ b 4871 +0 ^ a+ 4872 +2 ^ ^ b 4873 +0 ^ a+ 4874 +2 ^^ b 4875No match 4876 4877/(abc|def)x/ICDZS 4878------------------------------------------------------------------ 4879 Bra 4880 Callout 255 0 9 4881 CBra 1 4882 Callout 255 1 1 4883 a 4884 Callout 255 2 1 4885 b 4886 Callout 255 3 1 4887 c 4888 Callout 255 4 0 4889 Alt 4890 Callout 255 5 1 4891 d 4892 Callout 255 6 1 4893 e 4894 Callout 255 7 1 4895 f 4896 Callout 255 8 0 4897 Ket 4898 Callout 255 9 1 4899 x 4900 Callout 255 10 0 4901 Ket 4902 End 4903------------------------------------------------------------------ 4904Capturing subpattern count = 1 4905Options: 4906No first char 4907Need char = 'x' 4908Subject length lower bound = 4 4909Starting chars: a d 4910 abcx 4911--->abcx 4912 +0 ^ (abc|def) 4913 +1 ^ a 4914 +2 ^^ b 4915 +3 ^ ^ c 4916 +4 ^ ^ | 4917 +9 ^ ^ x 4918+10 ^ ^ 4919 0: abcx 4920 1: abc 4921 defx 4922--->defx 4923 +0 ^ (abc|def) 4924 +1 ^ a 4925 +5 ^ d 4926 +6 ^^ e 4927 +7 ^ ^ f 4928 +8 ^ ^ ) 4929 +9 ^ ^ x 4930+10 ^ ^ 4931 0: defx 4932 1: def 4933 ** Failers 4934No match 4935 abcdefzx 4936--->abcdefzx 4937 +0 ^ (abc|def) 4938 +1 ^ a 4939 +2 ^^ b 4940 +3 ^ ^ c 4941 +4 ^ ^ | 4942 +9 ^ ^ x 4943 +5 ^ d 4944 +0 ^ (abc|def) 4945 +1 ^ a 4946 +5 ^ d 4947 +6 ^^ e 4948 +7 ^ ^ f 4949 +8 ^ ^ ) 4950 +9 ^ ^ x 4951No match 4952 4953/(abc|def)x/ICDZSS 4954------------------------------------------------------------------ 4955 Bra 4956 Callout 255 0 9 4957 CBra 1 4958 Callout 255 1 1 4959 a 4960 Callout 255 2 1 4961 b 4962 Callout 255 3 1 4963 c 4964 Callout 255 4 0 4965 Alt 4966 Callout 255 5 1 4967 d 4968 Callout 255 6 1 4969 e 4970 Callout 255 7 1 4971 f 4972 Callout 255 8 0 4973 Ket 4974 Callout 255 9 1 4975 x 4976 Callout 255 10 0 4977 Ket 4978 End 4979------------------------------------------------------------------ 4980Capturing subpattern count = 1 4981Options: 4982No first char 4983Need char = 'x' 4984 abcx 4985--->abcx 4986 +0 ^ (abc|def) 4987 +1 ^ a 4988 +2 ^^ b 4989 +3 ^ ^ c 4990 +4 ^ ^ | 4991 +9 ^ ^ x 4992+10 ^ ^ 4993 0: abcx 4994 1: abc 4995 defx 4996--->defx 4997 +0 ^ (abc|def) 4998 +1 ^ a 4999 +5 ^ d 5000 +6 ^^ e 5001 +7 ^ ^ f 5002 +8 ^ ^ ) 5003 +9 ^ ^ x 5004+10 ^ ^ 5005 0: defx 5006 1: def 5007 ** Failers 5008No match 5009 abcdefzx 5010--->abcdefzx 5011 +0 ^ (abc|def) 5012 +1 ^ a 5013 +2 ^^ b 5014 +3 ^ ^ c 5015 +4 ^ ^ | 5016 +9 ^ ^ x 5017 +5 ^ d 5018 +0 ^ (abc|def) 5019 +1 ^ a 5020 +5 ^ d 5021 +0 ^ (abc|def) 5022 +1 ^ a 5023 +5 ^ d 5024 +0 ^ (abc|def) 5025 +1 ^ a 5026 +5 ^ d 5027 +6 ^^ e 5028 +7 ^ ^ f 5029 +8 ^ ^ ) 5030 +9 ^ ^ x 5031 +0 ^ (abc|def) 5032 +1 ^ a 5033 +5 ^ d 5034 +0 ^ (abc|def) 5035 +1 ^ a 5036 +5 ^ d 5037 +0 ^ (abc|def) 5038 +1 ^ a 5039 +5 ^ d 5040 +0 ^ (abc|def) 5041 +1 ^ a 5042 +5 ^ d 5043No match 5044 5045/(ab|cd){3,4}/IC 5046Capturing subpattern count = 1 5047Options: 5048No first char 5049No need char 5050 ababab 5051--->ababab 5052 +0 ^ (ab|cd){3,4} 5053 +1 ^ a 5054 +2 ^^ b 5055 +3 ^ ^ | 5056 +1 ^ ^ a 5057 +2 ^ ^ b 5058 +3 ^ ^ | 5059 +1 ^ ^ a 5060 +2 ^ ^ b 5061 +3 ^ ^ | 5062 +1 ^ ^ a 5063 +4 ^ ^ c 5064+12 ^ ^ 5065 0: ababab 5066 1: ab 5067 abcdabcd 5068--->abcdabcd 5069 +0 ^ (ab|cd){3,4} 5070 +1 ^ a 5071 +2 ^^ b 5072 +3 ^ ^ | 5073 +1 ^ ^ a 5074 +4 ^ ^ c 5075 +5 ^ ^ d 5076 +6 ^ ^ ) 5077 +1 ^ ^ a 5078 +2 ^ ^ b 5079 +3 ^ ^ | 5080 +1 ^ ^ a 5081 +4 ^ ^ c 5082 +5 ^ ^ d 5083 +6 ^ ^ ) 5084+12 ^ ^ 5085 0: abcdabcd 5086 1: cd 5087 abcdcdcdcdcd 5088--->abcdcdcdcdcd 5089 +0 ^ (ab|cd){3,4} 5090 +1 ^ a 5091 +2 ^^ b 5092 +3 ^ ^ | 5093 +1 ^ ^ a 5094 +4 ^ ^ c 5095 +5 ^ ^ d 5096 +6 ^ ^ ) 5097 +1 ^ ^ a 5098 +4 ^ ^ c 5099 +5 ^ ^ d 5100 +6 ^ ^ ) 5101 +1 ^ ^ a 5102 +4 ^ ^ c 5103 +5 ^ ^ d 5104 +6 ^ ^ ) 5105+12 ^ ^ 5106 0: abcdcdcd 5107 1: cd 5108 5109/([ab]{,4}c|xy)/ICDZS 5110------------------------------------------------------------------ 5111 Bra 5112 Callout 255 0 14 5113 CBra 1 5114 Callout 255 1 4 5115 [ab] 5116 Callout 255 5 1 5117 { 5118 Callout 255 6 1 5119 , 5120 Callout 255 7 1 5121 4 5122 Callout 255 8 1 5123 } 5124 Callout 255 9 1 5125 c 5126 Callout 255 10 0 5127 Alt 5128 Callout 255 11 1 5129 x 5130 Callout 255 12 1 5131 y 5132 Callout 255 13 0 5133 Ket 5134 Callout 255 14 0 5135 Ket 5136 End 5137------------------------------------------------------------------ 5138Capturing subpattern count = 1 5139Options: 5140No first char 5141No need char 5142Subject length lower bound = 2 5143Starting chars: a b x 5144 Note: that { does NOT introduce a quantifier 5145--->Note: that { does NOT introduce a quantifier 5146 +0 ^ ([ab]{,4}c|xy) 5147 +1 ^ [ab] 5148 +5 ^^ { 5149+11 ^ x 5150 +0 ^ ([ab]{,4}c|xy) 5151 +1 ^ [ab] 5152 +5 ^^ { 5153+11 ^ x 5154 +0 ^ ([ab]{,4}c|xy) 5155 +1 ^ [ab] 5156 +5 ^^ { 5157+11 ^ x 5158No match 5159 5160/([ab]{,4}c|xy)/ICDZSS 5161------------------------------------------------------------------ 5162 Bra 5163 Callout 255 0 14 5164 CBra 1 5165 Callout 255 1 4 5166 [ab] 5167 Callout 255 5 1 5168 { 5169 Callout 255 6 1 5170 , 5171 Callout 255 7 1 5172 4 5173 Callout 255 8 1 5174 } 5175 Callout 255 9 1 5176 c 5177 Callout 255 10 0 5178 Alt 5179 Callout 255 11 1 5180 x 5181 Callout 255 12 1 5182 y 5183 Callout 255 13 0 5184 Ket 5185 Callout 255 14 0 5186 Ket 5187 End 5188------------------------------------------------------------------ 5189Capturing subpattern count = 1 5190Options: 5191No first char 5192No need char 5193 Note: that { does NOT introduce a quantifier 5194--->Note: that { does NOT introduce a quantifier 5195 +0 ^ ([ab]{,4}c|xy) 5196 +1 ^ [ab] 5197+11 ^ x 5198 +0 ^ ([ab]{,4}c|xy) 5199 +1 ^ [ab] 5200+11 ^ x 5201 +0 ^ ([ab]{,4}c|xy) 5202 +1 ^ [ab] 5203+11 ^ x 5204 +0 ^ ([ab]{,4}c|xy) 5205 +1 ^ [ab] 5206+11 ^ x 5207 +0 ^ ([ab]{,4}c|xy) 5208 +1 ^ [ab] 5209+11 ^ x 5210 +0 ^ ([ab]{,4}c|xy) 5211 +1 ^ [ab] 5212+11 ^ x 5213 +0 ^ ([ab]{,4}c|xy) 5214 +1 ^ [ab] 5215+11 ^ x 5216 +0 ^ ([ab]{,4}c|xy) 5217 +1 ^ [ab] 5218+11 ^ x 5219 +0 ^ ([ab]{,4}c|xy) 5220 +1 ^ [ab] 5221 +5 ^^ { 5222+11 ^ x 5223 +0 ^ ([ab]{,4}c|xy) 5224 +1 ^ [ab] 5225+11 ^ x 5226 +0 ^ ([ab]{,4}c|xy) 5227 +1 ^ [ab] 5228+11 ^ x 5229 +0 ^ ([ab]{,4}c|xy) 5230 +1 ^ [ab] 5231+11 ^ x 5232 +0 ^ ([ab]{,4}c|xy) 5233 +1 ^ [ab] 5234+11 ^ x 5235 +0 ^ ([ab]{,4}c|xy) 5236 +1 ^ [ab] 5237+11 ^ x 5238 +0 ^ ([ab]{,4}c|xy) 5239 +1 ^ [ab] 5240+11 ^ x 5241 +0 ^ ([ab]{,4}c|xy) 5242 +1 ^ [ab] 5243+11 ^ x 5244 +0 ^ ([ab]{,4}c|xy) 5245 +1 ^ [ab] 5246+11 ^ x 5247 +0 ^ ([ab]{,4}c|xy) 5248 +1 ^ [ab] 5249+11 ^ x 5250 +0 ^ ([ab]{,4}c|xy) 5251 +1 ^ [ab] 5252+11 ^ x 5253 +0 ^ ([ab]{,4}c|xy) 5254 +1 ^ [ab] 5255+11 ^ x 5256 +0 ^ ([ab]{,4}c|xy) 5257 +1 ^ [ab] 5258+11 ^ x 5259 +0 ^ ([ab]{,4}c|xy) 5260 +1 ^ [ab] 5261+11 ^ x 5262 +0 ^ ([ab]{,4}c|xy) 5263 +1 ^ [ab] 5264+11 ^ x 5265 +0 ^ ([ab]{,4}c|xy) 5266 +1 ^ [ab] 5267+11 ^ x 5268 +0 ^ ([ab]{,4}c|xy) 5269 +1 ^ [ab] 5270+11 ^ x 5271 +0 ^ ([ab]{,4}c|xy) 5272 +1 ^ [ab] 5273+11 ^ x 5274 +0 ^ ([ab]{,4}c|xy) 5275 +1 ^ [ab] 5276+11 ^ x 5277 +0 ^ ([ab]{,4}c|xy) 5278 +1 ^ [ab] 5279+11 ^ x 5280 +0 ^ ([ab]{,4}c|xy) 5281 +1 ^ [ab] 5282+11 ^ x 5283 +0 ^ ([ab]{,4}c|xy) 5284 +1 ^ [ab] 5285+11 ^ x 5286 +0 ^ ([ab]{,4}c|xy) 5287 +1 ^ [ab] 5288+11 ^ x 5289 +0 ^ ([ab]{,4}c|xy) 5290 +1 ^ [ab] 5291+11 ^ x 5292 +0 ^ ([ab]{,4}c|xy) 5293 +1 ^ [ab] 5294 +5 ^^ { 5295+11 ^ x 5296 +0 ^ ([ab]{,4}c|xy) 5297 +1 ^ [ab] 5298+11 ^ x 5299 +0 ^ ([ab]{,4}c|xy) 5300 +1 ^ [ab] 5301+11 ^ x 5302 +0 ^ ([ab]{,4}c|xy) 5303 +1 ^ [ab] 5304+11 ^ x 5305 +0 ^ ([ab]{,4}c|xy) 5306 +1 ^ [ab] 5307 +5 ^^ { 5308+11 ^ x 5309 +0 ^ ([ab]{,4}c|xy) 5310 +1 ^ [ab] 5311+11 ^ x 5312 +0 ^ ([ab]{,4}c|xy) 5313 +1 ^ [ab] 5314+11 ^ x 5315 +0 ^ ([ab]{,4}c|xy) 5316 +1 ^ [ab] 5317+11 ^ x 5318 +0 ^ ([ab]{,4}c|xy) 5319 +1 ^ [ab] 5320+11 ^ x 5321 +0 ^ ([ab]{,4}c|xy) 5322 +1 ^ [ab] 5323+11 ^ x 5324 +0 ^ ([ab]{,4}c|xy) 5325 +1 ^ [ab] 5326+11 ^ x 5327 +0 ^ ([ab]{,4}c|xy) 5328 +1 ^ [ab] 5329+11 ^ x 5330 +0 ^ ([ab]{,4}c|xy) 5331 +1 ^ [ab] 5332+11 ^ x 5333No match 5334 5335/([ab]{1,4}c|xy){4,5}?123/ICDZ 5336------------------------------------------------------------------ 5337 Bra 5338 Callout 255 0 21 5339 CBra 1 5340 Callout 255 1 9 5341 [ab]{1,4}+ 5342 Callout 255 10 1 5343 c 5344 Callout 255 11 0 5345 Alt 5346 Callout 255 12 1 5347 x 5348 Callout 255 13 1 5349 y 5350 Callout 255 14 0 5351 Ket 5352 CBra 1 5353 Callout 255 1 9 5354 [ab]{1,4}+ 5355 Callout 255 10 1 5356 c 5357 Callout 255 11 0 5358 Alt 5359 Callout 255 12 1 5360 x 5361 Callout 255 13 1 5362 y 5363 Callout 255 14 0 5364 Ket 5365 CBra 1 5366 Callout 255 1 9 5367 [ab]{1,4}+ 5368 Callout 255 10 1 5369 c 5370 Callout 255 11 0 5371 Alt 5372 Callout 255 12 1 5373 x 5374 Callout 255 13 1 5375 y 5376 Callout 255 14 0 5377 Ket 5378 CBra 1 5379 Callout 255 1 9 5380 [ab]{1,4}+ 5381 Callout 255 10 1 5382 c 5383 Callout 255 11 0 5384 Alt 5385 Callout 255 12 1 5386 x 5387 Callout 255 13 1 5388 y 5389 Callout 255 14 0 5390 Ket 5391 Braminzero 5392 CBra 1 5393 Callout 255 1 9 5394 [ab]{1,4}+ 5395 Callout 255 10 1 5396 c 5397 Callout 255 11 0 5398 Alt 5399 Callout 255 12 1 5400 x 5401 Callout 255 13 1 5402 y 5403 Callout 255 14 0 5404 Ket 5405 Callout 255 21 1 5406 1 5407 Callout 255 22 1 5408 2 5409 Callout 255 23 1 5410 3 5411 Callout 255 24 0 5412 Ket 5413 End 5414------------------------------------------------------------------ 5415Capturing subpattern count = 1 5416Options: 5417No first char 5418Need char = '3' 5419 aacaacaacaacaac123 5420--->aacaacaacaacaac123 5421 +0 ^ ([ab]{1,4}c|xy){4,5}? 5422 +1 ^ [ab]{1,4} 5423+10 ^ ^ c 5424+11 ^ ^ | 5425 +1 ^ ^ [ab]{1,4} 5426+10 ^ ^ c 5427+11 ^ ^ | 5428 +1 ^ ^ [ab]{1,4} 5429+10 ^ ^ c 5430+11 ^ ^ | 5431 +1 ^ ^ [ab]{1,4} 5432+10 ^ ^ c 5433+11 ^ ^ | 5434+21 ^ ^ 1 5435 +1 ^ ^ [ab]{1,4} 5436+10 ^ ^ c 5437+11 ^ ^ | 5438+21 ^ ^ 1 5439+22 ^ ^ 2 5440+23 ^ ^ 3 5441+24 ^ ^ 5442 0: aacaacaacaacaac123 5443 1: aac 5444 5445/\b.*/I 5446Capturing subpattern count = 0 5447Max lookbehind = 1 5448May match empty string 5449No options 5450No first char 5451No need char 5452 ab cd\>1 5453 0: cd 5454 5455/\b.*/Is 5456Capturing subpattern count = 0 5457Max lookbehind = 1 5458May match empty string 5459Options: dotall 5460No first char 5461No need char 5462 ab cd\>1 5463 0: cd 5464 5465/(?!.bcd).*/I 5466Capturing subpattern count = 0 5467May match empty string 5468No options 5469No first char 5470No need char 5471 Xbcd12345 5472 0: bcd12345 5473 5474/abcde/I 5475Capturing subpattern count = 0 5476No options 5477First char = 'a' 5478Need char = 'e' 5479 ab\P 5480Partial match: ab 5481 abc\P 5482Partial match: abc 5483 abcd\P 5484Partial match: abcd 5485 abcde\P 5486 0: abcde 5487 the quick brown abc\P 5488Partial match: abc 5489 ** Failers\P 5490No match 5491 the quick brown abxyz fox\P 5492No match 5493 5494"^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I 5495Capturing subpattern count = 3 5496Options: anchored 5497No first char 5498Need char = '/' 5499 13/05/04\P 5500 0: 13/05/04 5501 1: 13 5502 2: 05 5503 13/5/2004\P 5504 0: 13/5/2004 5505 1: 13 5506 2: 5 5507 3: 20 5508 02/05/09\P 5509 0: 02/05/09 5510 1: 02 5511 2: 05 5512 1\P 5513Partial match: 1 5514 1/2\P 5515Partial match: 1/2 5516 1/2/0\P 5517Partial match: 1/2/0 5518 1/2/04\P 5519 0: 1/2/04 5520 1: 1 5521 2: 2 5522 0\P 5523Partial match: 0 5524 02/\P 5525Partial match: 02/ 5526 02/0\P 5527Partial match: 02/0 5528 02/1\P 5529Partial match: 02/1 5530 ** Failers\P 5531No match 5532 \P 5533No match 5534 123\P 5535No match 5536 33/4/04\P 5537No match 5538 3/13/04\P 5539No match 5540 0/1/2003\P 5541No match 5542 0/\P 5543No match 5544 02/0/\P 5545No match 5546 02/13\P 5547No match 5548 5549/0{0,2}ABC/I 5550Capturing subpattern count = 0 5551No options 5552No first char 5553Need char = 'C' 5554 5555/\d{3,}ABC/I 5556Capturing subpattern count = 0 5557No options 5558No first char 5559Need char = 'C' 5560 5561/\d*ABC/I 5562Capturing subpattern count = 0 5563No options 5564No first char 5565Need char = 'C' 5566 5567/[abc]+DE/I 5568Capturing subpattern count = 0 5569No options 5570No first char 5571Need char = 'E' 5572 5573/[abc]?123/I 5574Capturing subpattern count = 0 5575No options 5576No first char 5577Need char = '3' 5578 123\P 5579 0: 123 5580 a\P 5581Partial match: a 5582 b\P 5583Partial match: b 5584 c\P 5585Partial match: c 5586 c12\P 5587Partial match: c12 5588 c123\P 5589 0: c123 5590 5591/^(?:\d){3,5}X/I 5592Capturing subpattern count = 0 5593Options: anchored 5594No first char 5595Need char = 'X' 5596 1\P 5597Partial match: 1 5598 123\P 5599Partial match: 123 5600 123X 5601 0: 123X 5602 1234\P 5603Partial match: 1234 5604 1234X 5605 0: 1234X 5606 12345\P 5607Partial match: 12345 5608 12345X 5609 0: 12345X 5610 *** Failers 5611No match 5612 1X 5613No match 5614 123456\P 5615No match 5616 5617//KF>testsavedregex 5618Compiled pattern written to testsavedregex 5619Study data written to testsavedregex 5620 5621/abc/IS>testsavedregex 5622Capturing subpattern count = 0 5623No options 5624First char = 'a' 5625Need char = 'c' 5626Subject length lower bound = 3 5627No starting char list 5628Compiled pattern written to testsavedregex 5629Study data written to testsavedregex 5630<testsavedregex 5631Compiled pattern loaded from testsavedregex 5632Study data loaded from testsavedregex 5633 abc 5634 0: abc 5635 ** Failers 5636No match 5637 bca 5638No match 5639 5640/abc/ISS>testsavedregex 5641Capturing subpattern count = 0 5642No options 5643First char = 'a' 5644Need char = 'c' 5645Compiled pattern written to testsavedregex 5646<testsavedregex 5647Compiled pattern loaded from testsavedregex 5648No study data 5649 abc 5650 0: abc 5651 ** Failers 5652No match 5653 bca 5654No match 5655 5656/abc/IFS>testsavedregex 5657Capturing subpattern count = 0 5658No options 5659First char = 'a' 5660Need char = 'c' 5661Subject length lower bound = 3 5662No starting char list 5663Compiled pattern written to testsavedregex 5664Study data written to testsavedregex 5665<testsavedregex 5666Compiled pattern (byte-inverted) loaded from testsavedregex 5667Study data loaded from testsavedregex 5668 abc 5669 0: abc 5670 ** Failers 5671No match 5672 bca 5673No match 5674 5675/abc/IFSS>testsavedregex 5676Capturing subpattern count = 0 5677No options 5678First char = 'a' 5679Need char = 'c' 5680Compiled pattern written to testsavedregex 5681<testsavedregex 5682Compiled pattern (byte-inverted) loaded from testsavedregex 5683No study data 5684 abc 5685 0: abc 5686 ** Failers 5687No match 5688 bca 5689No match 5690 5691/(a|b)/IS>testsavedregex 5692Capturing subpattern count = 1 5693No options 5694No first char 5695No need char 5696Subject length lower bound = 1 5697Starting chars: a b 5698Compiled pattern written to testsavedregex 5699Study data written to testsavedregex 5700<testsavedregex 5701Compiled pattern loaded from testsavedregex 5702Study data loaded from testsavedregex 5703 abc 5704 0: a 5705 1: a 5706 ** Failers 5707 0: a 5708 1: a 5709 def 5710No match 5711 5712/(a|b)/ISS>testsavedregex 5713Capturing subpattern count = 1 5714No options 5715No first char 5716No need char 5717Compiled pattern written to testsavedregex 5718<testsavedregex 5719Compiled pattern loaded from testsavedregex 5720No study data 5721 abc 5722 0: a 5723 1: a 5724 ** Failers 5725 0: a 5726 1: a 5727 def 5728No match 5729 5730/(a|b)/ISF>testsavedregex 5731Capturing subpattern count = 1 5732No options 5733No first char 5734No need char 5735Subject length lower bound = 1 5736Starting chars: a b 5737Compiled pattern written to testsavedregex 5738Study data written to testsavedregex 5739<testsavedregex 5740Compiled pattern (byte-inverted) loaded from testsavedregex 5741Study data loaded from testsavedregex 5742 abc 5743 0: a 5744 1: a 5745 ** Failers 5746 0: a 5747 1: a 5748 def 5749No match 5750 5751/(a|b)/ISSF>testsavedregex 5752Capturing subpattern count = 1 5753No options 5754No first char 5755No need char 5756Compiled pattern written to testsavedregex 5757<testsavedregex 5758Compiled pattern (byte-inverted) loaded from testsavedregex 5759No study data 5760 abc 5761 0: a 5762 1: a 5763 ** Failers 5764 0: a 5765 1: a 5766 def 5767No match 5768 5769~<(\w+)/?>(.)*</(\1)>~smgI 5770Capturing subpattern count = 3 5771Max back reference = 1 5772Options: multiline dotall 5773First char = '<' 5774Need char = '>' 5775 \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> 5776 0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite> 5777 1: seite 5778 2: \x0a 5779 3: seite 5780 5781/^a/IF 5782Capturing subpattern count = 0 5783Options: anchored 5784No first char 5785No need char 5786 5787/line\nbreak/I 5788Capturing subpattern count = 0 5789Contains explicit CR or LF match 5790No options 5791First char = 'l' 5792Need char = 'k' 5793 this is a line\nbreak 5794 0: line\x0abreak 5795 line one\nthis is a line\nbreak in the second line 5796 0: line\x0abreak 5797 5798/line\nbreak/If 5799Capturing subpattern count = 0 5800Contains explicit CR or LF match 5801Options: firstline 5802First char = 'l' 5803Need char = 'k' 5804 this is a line\nbreak 5805 0: line\x0abreak 5806 ** Failers 5807No match 5808 line one\nthis is a line\nbreak in the second line 5809No match 5810 5811/line\nbreak/Imf 5812Capturing subpattern count = 0 5813Contains explicit CR or LF match 5814Options: multiline firstline 5815First char = 'l' 5816Need char = 'k' 5817 this is a line\nbreak 5818 0: line\x0abreak 5819 ** Failers 5820No match 5821 line one\nthis is a line\nbreak in the second line 5822No match 5823 5824/(?i)(?-i)AbCd/I 5825Capturing subpattern count = 0 5826No options 5827First char = 'A' 5828Need char = 'd' 5829 AbCd 5830 0: AbCd 5831 ** Failers 5832No match 5833 abcd 5834No match 5835 5836/a{11111111111111111111}/I 5837Failed: number too big in {} quantifier at offset 8 5838 5839/(){64294967295}/I 5840Failed: number too big in {} quantifier at offset 9 5841 5842/(){2,4294967295}/I 5843Failed: number too big in {} quantifier at offset 11 5844 5845"(?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 5846Capturing subpattern count = 1 5847Max back reference = 1 5848No options 5849First char = 'a' (caseless) 5850Need char = 'B' 5851 abcdefghijklAkB 5852 0: abcdefghijklAkB 5853 1: k 5854 5855"(?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 5856Capturing subpattern count = 12 5857Max back reference = 11 5858Named capturing subpatterns: 5859 n0 1 5860 n1 2 5861 n10 11 5862 n11 12 5863 n2 3 5864 n3 4 5865 n4 5 5866 n5 6 5867 n6 7 5868 n7 8 5869 n8 9 5870 n9 10 5871No options 5872First char = 'a' 5873Need char = 'B' 5874 abcdefghijklAkB 5875 0: abcdefghijklAkB 5876 1: a 5877 2: b 5878 3: c 5879 4: d 5880 5: e 5881 6: f 5882 7: g 5883 8: h 5884 9: i 588510: j 588611: k 588712: l 5888 5889"(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I 5890Capturing subpattern count = 12 5891Max back reference = 11 5892No options 5893First char = 'a' 5894Need char = 'B' 5895 abcdefghijklAkB 5896 0: abcdefghijklAkB 5897 1: a 5898 2: b 5899 3: c 5900 4: d 5901 5: e 5902 6: f 5903 7: g 5904 8: h 5905 9: i 590610: j 590711: k 590812: l 5909 5910"(?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 5911Capturing subpattern count = 101 5912Named capturing subpatterns: 5913 name0 1 5914 name1 2 5915 name10 11 5916 name100 101 5917 name11 12 5918 name12 13 5919 name13 14 5920 name14 15 5921 name15 16 5922 name16 17 5923 name17 18 5924 name18 19 5925 name19 20 5926 name2 3 5927 name20 21 5928 name21 22 5929 name22 23 5930 name23 24 5931 name24 25 5932 name25 26 5933 name26 27 5934 name27 28 5935 name28 29 5936 name29 30 5937 name3 4 5938 name30 31 5939 name31 32 5940 name32 33 5941 name33 34 5942 name34 35 5943 name35 36 5944 name36 37 5945 name37 38 5946 name38 39 5947 name39 40 5948 name4 5 5949 name40 41 5950 name41 42 5951 name42 43 5952 name43 44 5953 name44 45 5954 name45 46 5955 name46 47 5956 name47 48 5957 name48 49 5958 name49 50 5959 name5 6 5960 name50 51 5961 name51 52 5962 name52 53 5963 name53 54 5964 name54 55 5965 name55 56 5966 name56 57 5967 name57 58 5968 name58 59 5969 name59 60 5970 name6 7 5971 name60 61 5972 name61 62 5973 name62 63 5974 name63 64 5975 name64 65 5976 name65 66 5977 name66 67 5978 name67 68 5979 name68 69 5980 name69 70 5981 name7 8 5982 name70 71 5983 name71 72 5984 name72 73 5985 name73 74 5986 name74 75 5987 name75 76 5988 name76 77 5989 name77 78 5990 name78 79 5991 name79 80 5992 name8 9 5993 name80 81 5994 name81 82 5995 name82 83 5996 name83 84 5997 name84 85 5998 name85 86 5999 name86 87 6000 name87 88 6001 name88 89 6002 name89 90 6003 name9 10 6004 name90 91 6005 name91 92 6006 name92 93 6007 name93 94 6008 name94 95 6009 name95 96 6010 name96 97 6011 name97 98 6012 name98 99 6013 name99 100 6014No options 6015First char = 'a' 6016Need char = 'a' 6017 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6018Matched, but too many substrings 6019 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6020 1: a 6021 2: a 6022 3: a 6023 4: a 6024 5: a 6025 6: a 6026 7: a 6027 8: a 6028 9: a 602910: a 603011: a 603112: a 603213: a 603314: a 6034 6035"(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(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 6036Capturing subpattern count = 101 6037No options 6038First char = 'a' 6039Need char = 'a' 6040 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6041Matched, but too many substrings 6042 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6043 1: a 6044 2: a 6045 3: a 6046 4: a 6047 5: a 6048 6: a 6049 7: a 6050 8: a 6051 9: a 605210: a 605311: a 605412: a 605513: a 605614: a 6057 6058/[^()]*(?:\((?R)\)[^()]*)*/I 6059Capturing subpattern count = 0 6060May match empty string 6061No options 6062No first char 6063No need char 6064 (this(and)that 6065 0: 6066 (this(and)that) 6067 0: (this(and)that) 6068 (this(and)that)stuff 6069 0: (this(and)that)stuff 6070 6071/[^()]*(?:\((?>(?R))\)[^()]*)*/I 6072Capturing subpattern count = 0 6073May match empty string 6074No options 6075No first char 6076No need char 6077 (this(and)that 6078 0: 6079 (this(and)that) 6080 0: (this(and)that) 6081 6082/[^()]*(?:\((?R)\))*[^()]*/I 6083Capturing subpattern count = 0 6084May match empty string 6085No options 6086No first char 6087No need char 6088 (this(and)that 6089 0: 6090 (this(and)that) 6091 0: (this(and)that) 6092 6093/(?:\((?R)\))*[^()]*/I 6094Capturing subpattern count = 0 6095May match empty string 6096No options 6097No first char 6098No need char 6099 (this(and)that 6100 0: 6101 (this(and)that) 6102 0: 6103 ((this)) 6104 0: ((this)) 6105 6106/(?:\((?R)\))|[^()]*/I 6107Capturing subpattern count = 0 6108May match empty string 6109No options 6110No first char 6111No need char 6112 (this(and)that 6113 0: 6114 (this(and)that) 6115 0: 6116 (this) 6117 0: (this) 6118 ((this)) 6119 0: ((this)) 6120 6121/\x{0000ff}/I 6122Capturing subpattern count = 0 6123No options 6124First char = \xff 6125No need char 6126 6127/^((?P<A>a1)|(?P<A>a2)b)/I 6128Failed: two named subpatterns have the same name at offset 17 6129 6130/^((?P<A>a1)|(?P<A>a2)b)/IJ 6131Capturing subpattern count = 3 6132Named capturing subpatterns: 6133 A 2 6134 A 3 6135Options: anchored dupnames 6136No first char 6137No need char 6138 a1b\CA 6139 0: a1 6140 1: a1 6141 2: a1 6142 C a1 (2) A 6143 a2b\CA 6144 0: a2b 6145 1: a2b 6146 2: <unset> 6147 3: a2 6148 C a2 (2) A 6149 ** Failers 6150No match 6151 a1b\CZ\CA 6152no parentheses with name "Z" 6153 0: a1 6154 1: a1 6155 2: a1 6156copy substring Z failed -7 6157 C a1 (2) A 6158 6159/(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ 6160Capturing subpattern count = 3 6161Named capturing subpatterns: 6162 a 1 6163 a 3 6164 b 2 6165May match empty string 6166Options: dupnames 6167No first char 6168No need char 6169 6170/^(?P<A>a)(?P<A>b)/IJ 6171Capturing subpattern count = 2 6172Named capturing subpatterns: 6173 A 1 6174 A 2 6175Options: anchored dupnames 6176No first char 6177No need char 6178 ab\CA 6179 0: ab 6180 1: a 6181 2: b 6182 C a (1) A 6183 6184/^(?P<A>a)(?P<A>b)|cd/IJ 6185Capturing subpattern count = 2 6186Named capturing subpatterns: 6187 A 1 6188 A 2 6189Options: dupnames 6190No first char 6191No need char 6192 ab\CA 6193 0: ab 6194 1: a 6195 2: b 6196 C a (1) A 6197 cd\CA 6198 0: cd 6199copy substring A failed -7 6200 6201/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ 6202Capturing subpattern count = 4 6203Named capturing subpatterns: 6204 A 1 6205 A 2 6206 A 3 6207 A 4 6208Options: dupnames 6209No first char 6210No need char 6211 cdefgh\CA 6212 0: cdefgh 6213 1: <unset> 6214 2: <unset> 6215 3: ef 6216 4: gh 6217 C ef (2) A 6218 6219/^((?P<A>a1)|(?P<A>a2)b)/IJ 6220Capturing subpattern count = 3 6221Named capturing subpatterns: 6222 A 2 6223 A 3 6224Options: anchored dupnames 6225No first char 6226No need char 6227 a1b\GA 6228 0: a1 6229 1: a1 6230 2: a1 6231 G a1 (2) A 6232 a2b\GA 6233 0: a2b 6234 1: a2b 6235 2: <unset> 6236 3: a2 6237 G a2 (2) A 6238 ** Failers 6239No match 6240 a1b\GZ\GA 6241no parentheses with name "Z" 6242 0: a1 6243 1: a1 6244 2: a1 6245get substring Z failed -7 6246 G a1 (2) A 6247 6248/^(?P<A>a)(?P<A>b)/IJ 6249Capturing subpattern count = 2 6250Named capturing subpatterns: 6251 A 1 6252 A 2 6253Options: anchored dupnames 6254No first char 6255No need char 6256 ab\GA 6257 0: ab 6258 1: a 6259 2: b 6260 G a (1) A 6261 6262/^(?P<A>a)(?P<A>b)|cd/IJ 6263Capturing subpattern count = 2 6264Named capturing subpatterns: 6265 A 1 6266 A 2 6267Options: dupnames 6268No first char 6269No need char 6270 ab\GA 6271 0: ab 6272 1: a 6273 2: b 6274 G a (1) A 6275 cd\GA 6276 0: cd 6277get substring A failed -7 6278 6279/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ 6280Capturing subpattern count = 4 6281Named capturing subpatterns: 6282 A 1 6283 A 2 6284 A 3 6285 A 4 6286Options: dupnames 6287No first char 6288No need char 6289 cdefgh\GA 6290 0: cdefgh 6291 1: <unset> 6292 2: <unset> 6293 3: ef 6294 4: gh 6295 G ef (2) A 6296 6297/(?J)^((?P<A>a1)|(?P<A>a2)b)/I 6298Capturing subpattern count = 3 6299Named capturing subpatterns: 6300 A 2 6301 A 3 6302Options: anchored dupnames 6303Duplicate name status changes 6304No first char 6305No need char 6306 a1b\CA 6307 0: a1 6308 1: a1 6309 2: a1 6310 C a1 (2) A 6311 a2b\CA 6312 0: a2b 6313 1: a2b 6314 2: <unset> 6315 3: a2 6316 C a2 (2) A 6317 6318/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I 6319Failed: two named subpatterns have the same name at offset 37 6320 6321/ In this next test, J is not set at the outer level; consequently it isn't 6322set in the pattern's options; consequently pcre_get_named_substring() produces 6323a random value. /Ix 6324Capturing subpattern count = 1 6325Options: extended 6326First char = 'I' 6327Need char = 'e' 6328 6329/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I 6330Capturing subpattern count = 4 6331Named capturing subpatterns: 6332 A 1 6333 B 2 6334 B 3 6335 C 4 6336Options: anchored 6337Duplicate name status changes 6338No first char 6339No need char 6340 a bc d\CA\CB\CC 6341 0: a bc d 6342 1: a 6343 2: b 6344 3: c 6345 4: d 6346 C a (1) A 6347 C b (1) B 6348 C d (1) C 6349 6350/^(?P<A>a)?(?(A)a|b)/I 6351Capturing subpattern count = 1 6352Max back reference = 1 6353Named capturing subpatterns: 6354 A 1 6355Options: anchored 6356No first char 6357No need char 6358 aabc 6359 0: aa 6360 1: a 6361 bc 6362 0: b 6363 ** Failers 6364No match 6365 abc 6366No match 6367 6368/(?:(?(ZZ)a|b)(?P<ZZ>X))+/I 6369Capturing subpattern count = 1 6370Max back reference = 1 6371Named capturing subpatterns: 6372 ZZ 1 6373No options 6374No first char 6375Need char = 'X' 6376 bXaX 6377 0: bXaX 6378 1: X 6379 6380/(?:(?(2y)a|b)(X))+/I 6381Failed: malformed number or name after (?( at offset 7 6382 6383/(?:(?(ZA)a|b)(?P<ZZ>X))+/I 6384Failed: reference to non-existent subpattern at offset 9 6385 6386/(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I 6387Capturing subpattern count = 1 6388Max back reference = 1 6389Named capturing subpatterns: 6390 ZZ 1 6391No options 6392No first char 6393Need char = 'X' 6394 bbXaaX 6395 0: bbXaaX 6396 1: X 6397 6398/(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I 6399Capturing subpattern count = 1 6400Max back reference = 1 6401Named capturing subpatterns: 6402 ZZ 1 6403No options 6404No first char 6405Need char = 'X' 6406 (b)\\Xa\\X 6407 0: (b)\Xa\X 6408 1: X 6409 6410/(?P<ABC/I 6411Failed: syntax error in subpattern name (missing terminator) at offset 7 6412 6413/(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I 6414Capturing subpattern count = 1 6415Max back reference = 1 6416Named capturing subpatterns: 6417 A 1 6418No options 6419No first char 6420No need char 6421 bXXaYYaY 6422 0: bXXaYYaY 6423 1: Y 6424 bXYaXXaX 6425 0: bX 6426 1: X 6427 6428/()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I 6429Capturing subpattern count = 10 6430Max back reference = 10 6431Named capturing subpatterns: 6432 A 10 6433No options 6434No first char 6435No need char 6436 bXXaYYaY 6437 0: bXXaYYaY 6438 1: 6439 2: 6440 3: 6441 4: 6442 5: 6443 6: 6444 7: 6445 8: 6446 9: 644710: Y 6448 6449/\s*,\s*/IS 6450Capturing subpattern count = 0 6451No options 6452No first char 6453Need char = ',' 6454Subject length lower bound = 1 6455Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 , 6456 \x0b,\x0b 6457 0: \x0b,\x0b 6458 \x0c,\x0d 6459 0: \x0c,\x0d 6460 6461/^abc/Im 6462Capturing subpattern count = 0 6463Options: multiline 6464First char at start or follows newline 6465Need char = 'c' 6466 xyz\nabc 6467 0: abc 6468 xyz\nabc\<lf> 6469 0: abc 6470 xyz\r\nabc\<lf> 6471 0: abc 6472 xyz\rabc\<cr> 6473 0: abc 6474 xyz\r\nabc\<crlf> 6475 0: abc 6476 ** Failers 6477No match 6478 xyz\nabc\<cr> 6479No match 6480 xyz\r\nabc\<cr> 6481No match 6482 xyz\nabc\<crlf> 6483No match 6484 xyz\rabc\<crlf> 6485No match 6486 xyz\rabc\<lf> 6487No match 6488 6489/abc$/Im<lf> 6490Capturing subpattern count = 0 6491Options: multiline 6492Forced newline sequence: LF 6493First char = 'a' 6494Need char = 'c' 6495 xyzabc 6496 0: abc 6497 xyzabc\n 6498 0: abc 6499 xyzabc\npqr 6500 0: abc 6501 xyzabc\r\<cr> 6502 0: abc 6503 xyzabc\rpqr\<cr> 6504 0: abc 6505 xyzabc\r\n\<crlf> 6506 0: abc 6507 xyzabc\r\npqr\<crlf> 6508 0: abc 6509 ** Failers 6510No match 6511 xyzabc\r 6512No match 6513 xyzabc\rpqr 6514No match 6515 xyzabc\r\n 6516No match 6517 xyzabc\r\npqr 6518No match 6519 6520/^abc/Im<cr> 6521Capturing subpattern count = 0 6522Options: multiline 6523Forced newline sequence: CR 6524First char at start or follows newline 6525Need char = 'c' 6526 xyz\rabcdef 6527 0: abc 6528 xyz\nabcdef\<lf> 6529 0: abc 6530 ** Failers 6531No match 6532 xyz\nabcdef 6533No match 6534 6535/^abc/Im<lf> 6536Capturing subpattern count = 0 6537Options: multiline 6538Forced newline sequence: LF 6539First char at start or follows newline 6540Need char = 'c' 6541 xyz\nabcdef 6542 0: abc 6543 xyz\rabcdef\<cr> 6544 0: abc 6545 ** Failers 6546No match 6547 xyz\rabcdef 6548No match 6549 6550/^abc/Im<crlf> 6551Capturing subpattern count = 0 6552Options: multiline 6553Forced newline sequence: CRLF 6554First char at start or follows newline 6555Need char = 'c' 6556 xyz\r\nabcdef 6557 0: abc 6558 xyz\rabcdef\<cr> 6559 0: abc 6560 ** Failers 6561No match 6562 xyz\rabcdef 6563No match 6564 6565/^abc/Im<bad> 6566Unknown modifier at: <bad> 6567 6568 6569/abc/I 6570Capturing subpattern count = 0 6571No options 6572First char = 'a' 6573Need char = 'c' 6574 xyz\rabc\<bad> 6575Unknown escape sequence at: <bad> 6576 abc 6577 0: abc 6578 6579/.*/I<lf> 6580Capturing subpattern count = 0 6581May match empty string 6582Options: 6583Forced newline sequence: LF 6584First char at start or follows newline 6585No need char 6586 abc\ndef 6587 0: abc 6588 abc\rdef 6589 0: abc\x0ddef 6590 abc\r\ndef 6591 0: abc\x0d 6592 \<cr>abc\ndef 6593 0: abc\x0adef 6594 \<cr>abc\rdef 6595 0: abc 6596 \<cr>abc\r\ndef 6597 0: abc 6598 \<crlf>abc\ndef 6599 0: abc\x0adef 6600 \<crlf>abc\rdef 6601 0: abc\x0ddef 6602 \<crlf>abc\r\ndef 6603 0: abc 6604 6605/\w+(.)(.)?def/Is 6606Capturing subpattern count = 2 6607Options: dotall 6608No first char 6609Need char = 'f' 6610 abc\ndef 6611 0: abc\x0adef 6612 1: \x0a 6613 abc\rdef 6614 0: abc\x0ddef 6615 1: \x0d 6616 abc\r\ndef 6617 0: abc\x0d\x0adef 6618 1: \x0d 6619 2: \x0a 6620 6621+((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I 6622Capturing subpattern count = 1 6623May match empty string 6624No options 6625No first char 6626No need char 6627 /* this is a C style comment */\M 6628Minimum match() limit = 120 6629Minimum match() recursion limit = 6 6630 0: /* this is a C style comment */ 6631 1: /* this is a C style comment */ 6632 6633/(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I 6634Capturing subpattern count = 1 6635Named capturing subpatterns: 6636 B 1 6637No options 6638No first char 6639Need char = '.' 6640 6641/()()()()()()()()()()()()()()()()()()()() 6642 ()()()()()()()()()()()()()()()()()()()() 6643 ()()()()()()()()()()()()()()()()()()()() 6644 ()()()()()()()()()()()()()()()()()()()() 6645 ()()()()()()()()()()()()()()()()()()()() 6646 (.(.))/Ix 6647Capturing subpattern count = 102 6648Options: extended 6649No first char 6650No need char 6651 XY\O400 6652 0: XY 6653 1: 6654 2: 6655 3: 6656 4: 6657 5: 6658 6: 6659 7: 6660 8: 6661 9: 666210: 666311: 666412: 666513: 666614: 666715: 666816: 666917: 667018: 667119: 667220: 667321: 667422: 667523: 667624: 667725: 667826: 667927: 668028: 668129: 668230: 668331: 668432: 668533: 668634: 668735: 668836: 668937: 669038: 669139: 669240: 669341: 669442: 669543: 669644: 669745: 669846: 669947: 670048: 670149: 670250: 670351: 670452: 670553: 670654: 670755: 670856: 670957: 671058: 671159: 671260: 671361: 671462: 671563: 671664: 671765: 671866: 671967: 672068: 672169: 672270: 672371: 672472: 672573: 672674: 672775: 672876: 672977: 673078: 673179: 673280: 673381: 673482: 673583: 673684: 673785: 673886: 673987: 674088: 674189: 674290: 674391: 674492: 674593: 674694: 674795: 674896: 674997: 675098: 675199: 6752100: 6753101: XY 6754102: Y 6755 6756/(a*b|(?i:c*(?-i)d))/IS 6757Capturing subpattern count = 1 6758No options 6759No first char 6760No need char 6761Subject length lower bound = 1 6762Starting chars: C a b c d 6763 6764/()[ab]xyz/IS 6765Capturing subpattern count = 1 6766No options 6767No first char 6768Need char = 'z' 6769Subject length lower bound = 4 6770Starting chars: a b 6771 6772/(|)[ab]xyz/IS 6773Capturing subpattern count = 1 6774No options 6775No first char 6776Need char = 'z' 6777Subject length lower bound = 4 6778Starting chars: a b 6779 6780/(|c)[ab]xyz/IS 6781Capturing subpattern count = 1 6782No options 6783No first char 6784Need char = 'z' 6785Subject length lower bound = 4 6786Starting chars: a b c 6787 6788/(|c?)[ab]xyz/IS 6789Capturing subpattern count = 1 6790No options 6791No first char 6792Need char = 'z' 6793Subject length lower bound = 4 6794Starting chars: a b c 6795 6796/(d?|c?)[ab]xyz/IS 6797Capturing subpattern count = 1 6798No options 6799No first char 6800Need char = 'z' 6801Subject length lower bound = 4 6802Starting chars: a b c d 6803 6804/(d?|c)[ab]xyz/IS 6805Capturing subpattern count = 1 6806No options 6807No first char 6808Need char = 'z' 6809Subject length lower bound = 4 6810Starting chars: a b c d 6811 6812/^a*b\d/DZ 6813------------------------------------------------------------------ 6814 Bra 6815 ^ 6816 a*+ 6817 b 6818 \d 6819 Ket 6820 End 6821------------------------------------------------------------------ 6822Capturing subpattern count = 0 6823Options: anchored 6824No first char 6825Need char = 'b' 6826 6827/^a*+b\d/DZ 6828------------------------------------------------------------------ 6829 Bra 6830 ^ 6831 a*+ 6832 b 6833 \d 6834 Ket 6835 End 6836------------------------------------------------------------------ 6837Capturing subpattern count = 0 6838Options: anchored 6839No first char 6840Need char = 'b' 6841 6842/^a*?b\d/DZ 6843------------------------------------------------------------------ 6844 Bra 6845 ^ 6846 a*+ 6847 b 6848 \d 6849 Ket 6850 End 6851------------------------------------------------------------------ 6852Capturing subpattern count = 0 6853Options: anchored 6854No first char 6855Need char = 'b' 6856 6857/^a+A\d/DZ 6858------------------------------------------------------------------ 6859 Bra 6860 ^ 6861 a++ 6862 A 6863 \d 6864 Ket 6865 End 6866------------------------------------------------------------------ 6867Capturing subpattern count = 0 6868Options: anchored 6869No first char 6870Need char = 'A' 6871 aaaA5 6872 0: aaaA5 6873 ** Failers 6874No match 6875 aaaa5 6876No match 6877 6878/^a*A\d/IiDZ 6879------------------------------------------------------------------ 6880 Bra 6881 ^ 6882 /i a* 6883 /i A 6884 \d 6885 Ket 6886 End 6887------------------------------------------------------------------ 6888Capturing subpattern count = 0 6889Options: anchored caseless 6890No first char 6891Need char = 'A' (caseless) 6892 aaaA5 6893 0: aaaA5 6894 aaaa5 6895 0: aaaa5 6896 6897/(a*|b*)[cd]/IS 6898Capturing subpattern count = 1 6899No options 6900No first char 6901No need char 6902Subject length lower bound = 1 6903Starting chars: a b c d 6904 6905/(a+|b*)[cd]/IS 6906Capturing subpattern count = 1 6907No options 6908No first char 6909No need char 6910Subject length lower bound = 1 6911Starting chars: a b c d 6912 6913/(a*|b+)[cd]/IS 6914Capturing subpattern count = 1 6915No options 6916No first char 6917No need char 6918Subject length lower bound = 1 6919Starting chars: a b c d 6920 6921/(a+|b+)[cd]/IS 6922Capturing subpattern count = 1 6923No options 6924No first char 6925No need char 6926Subject length lower bound = 2 6927Starting chars: a b 6928 6929/(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( 6930 (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( 6931 ((( 6932 a 6933 )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 6934 )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 6935 ))) 6936/Ix 6937Capturing subpattern count = 203 6938Options: extended 6939First char = 'a' 6940No need char 6941 large nest 6942Matched, but too many substrings 6943 0: a 6944 1: a 6945 2: a 6946 3: a 6947 4: a 6948 5: a 6949 6: a 6950 7: a 6951 8: a 6952 9: a 695310: a 695411: a 695512: a 695613: a 695714: a 6958 6959/a*\d/BZ 6960------------------------------------------------------------------ 6961 Bra 6962 a*+ 6963 \d 6964 Ket 6965 End 6966------------------------------------------------------------------ 6967 6968/a*\D/BZ 6969------------------------------------------------------------------ 6970 Bra 6971 a* 6972 \D 6973 Ket 6974 End 6975------------------------------------------------------------------ 6976 6977/0*\d/BZ 6978------------------------------------------------------------------ 6979 Bra 6980 0* 6981 \d 6982 Ket 6983 End 6984------------------------------------------------------------------ 6985 6986/0*\D/BZ 6987------------------------------------------------------------------ 6988 Bra 6989 0*+ 6990 \D 6991 Ket 6992 End 6993------------------------------------------------------------------ 6994 6995/a*\s/BZ 6996------------------------------------------------------------------ 6997 Bra 6998 a*+ 6999 \s 7000 Ket 7001 End 7002------------------------------------------------------------------ 7003 7004/a*\S/BZ 7005------------------------------------------------------------------ 7006 Bra 7007 a* 7008 \S 7009 Ket 7010 End 7011------------------------------------------------------------------ 7012 7013/ *\s/BZ 7014------------------------------------------------------------------ 7015 Bra 7016 * 7017 \s 7018 Ket 7019 End 7020------------------------------------------------------------------ 7021 7022/ *\S/BZ 7023------------------------------------------------------------------ 7024 Bra 7025 *+ 7026 \S 7027 Ket 7028 End 7029------------------------------------------------------------------ 7030 7031/a*\w/BZ 7032------------------------------------------------------------------ 7033 Bra 7034 a* 7035 \w 7036 Ket 7037 End 7038------------------------------------------------------------------ 7039 7040/a*\W/BZ 7041------------------------------------------------------------------ 7042 Bra 7043 a*+ 7044 \W 7045 Ket 7046 End 7047------------------------------------------------------------------ 7048 7049/=*\w/BZ 7050------------------------------------------------------------------ 7051 Bra 7052 =*+ 7053 \w 7054 Ket 7055 End 7056------------------------------------------------------------------ 7057 7058/=*\W/BZ 7059------------------------------------------------------------------ 7060 Bra 7061 =* 7062 \W 7063 Ket 7064 End 7065------------------------------------------------------------------ 7066 7067/\d*a/BZ 7068------------------------------------------------------------------ 7069 Bra 7070 \d*+ 7071 a 7072 Ket 7073 End 7074------------------------------------------------------------------ 7075 7076/\d*2/BZ 7077------------------------------------------------------------------ 7078 Bra 7079 \d* 7080 2 7081 Ket 7082 End 7083------------------------------------------------------------------ 7084 7085/\d*\d/BZ 7086------------------------------------------------------------------ 7087 Bra 7088 \d* 7089 \d 7090 Ket 7091 End 7092------------------------------------------------------------------ 7093 7094/\d*\D/BZ 7095------------------------------------------------------------------ 7096 Bra 7097 \d*+ 7098 \D 7099 Ket 7100 End 7101------------------------------------------------------------------ 7102 7103/\d*\s/BZ 7104------------------------------------------------------------------ 7105 Bra 7106 \d*+ 7107 \s 7108 Ket 7109 End 7110------------------------------------------------------------------ 7111 7112/\d*\S/BZ 7113------------------------------------------------------------------ 7114 Bra 7115 \d* 7116 \S 7117 Ket 7118 End 7119------------------------------------------------------------------ 7120 7121/\d*\w/BZ 7122------------------------------------------------------------------ 7123 Bra 7124 \d* 7125 \w 7126 Ket 7127 End 7128------------------------------------------------------------------ 7129 7130/\d*\W/BZ 7131------------------------------------------------------------------ 7132 Bra 7133 \d*+ 7134 \W 7135 Ket 7136 End 7137------------------------------------------------------------------ 7138 7139/\D*a/BZ 7140------------------------------------------------------------------ 7141 Bra 7142 \D* 7143 a 7144 Ket 7145 End 7146------------------------------------------------------------------ 7147 7148/\D*2/BZ 7149------------------------------------------------------------------ 7150 Bra 7151 \D*+ 7152 2 7153 Ket 7154 End 7155------------------------------------------------------------------ 7156 7157/\D*\d/BZ 7158------------------------------------------------------------------ 7159 Bra 7160 \D*+ 7161 \d 7162 Ket 7163 End 7164------------------------------------------------------------------ 7165 7166/\D*\D/BZ 7167------------------------------------------------------------------ 7168 Bra 7169 \D* 7170 \D 7171 Ket 7172 End 7173------------------------------------------------------------------ 7174 7175/\D*\s/BZ 7176------------------------------------------------------------------ 7177 Bra 7178 \D* 7179 \s 7180 Ket 7181 End 7182------------------------------------------------------------------ 7183 7184/\D*\S/BZ 7185------------------------------------------------------------------ 7186 Bra 7187 \D* 7188 \S 7189 Ket 7190 End 7191------------------------------------------------------------------ 7192 7193/\D*\w/BZ 7194------------------------------------------------------------------ 7195 Bra 7196 \D* 7197 \w 7198 Ket 7199 End 7200------------------------------------------------------------------ 7201 7202/\D*\W/BZ 7203------------------------------------------------------------------ 7204 Bra 7205 \D* 7206 \W 7207 Ket 7208 End 7209------------------------------------------------------------------ 7210 7211/\s*a/BZ 7212------------------------------------------------------------------ 7213 Bra 7214 \s*+ 7215 a 7216 Ket 7217 End 7218------------------------------------------------------------------ 7219 7220/\s*2/BZ 7221------------------------------------------------------------------ 7222 Bra 7223 \s*+ 7224 2 7225 Ket 7226 End 7227------------------------------------------------------------------ 7228 7229/\s*\d/BZ 7230------------------------------------------------------------------ 7231 Bra 7232 \s*+ 7233 \d 7234 Ket 7235 End 7236------------------------------------------------------------------ 7237 7238/\s*\D/BZ 7239------------------------------------------------------------------ 7240 Bra 7241 \s* 7242 \D 7243 Ket 7244 End 7245------------------------------------------------------------------ 7246 7247/\s*\s/BZ 7248------------------------------------------------------------------ 7249 Bra 7250 \s* 7251 \s 7252 Ket 7253 End 7254------------------------------------------------------------------ 7255 7256/\s*\S/BZ 7257------------------------------------------------------------------ 7258 Bra 7259 \s*+ 7260 \S 7261 Ket 7262 End 7263------------------------------------------------------------------ 7264 7265/\s*\w/BZ 7266------------------------------------------------------------------ 7267 Bra 7268 \s*+ 7269 \w 7270 Ket 7271 End 7272------------------------------------------------------------------ 7273 7274/\s*\W/BZ 7275------------------------------------------------------------------ 7276 Bra 7277 \s* 7278 \W 7279 Ket 7280 End 7281------------------------------------------------------------------ 7282 7283/\S*a/BZ 7284------------------------------------------------------------------ 7285 Bra 7286 \S* 7287 a 7288 Ket 7289 End 7290------------------------------------------------------------------ 7291 7292/\S*2/BZ 7293------------------------------------------------------------------ 7294 Bra 7295 \S* 7296 2 7297 Ket 7298 End 7299------------------------------------------------------------------ 7300 7301/\S*\d/BZ 7302------------------------------------------------------------------ 7303 Bra 7304 \S* 7305 \d 7306 Ket 7307 End 7308------------------------------------------------------------------ 7309 7310/\S*\D/BZ 7311------------------------------------------------------------------ 7312 Bra 7313 \S* 7314 \D 7315 Ket 7316 End 7317------------------------------------------------------------------ 7318 7319/\S*\s/BZ 7320------------------------------------------------------------------ 7321 Bra 7322 \S*+ 7323 \s 7324 Ket 7325 End 7326------------------------------------------------------------------ 7327 7328/\S*\S/BZ 7329------------------------------------------------------------------ 7330 Bra 7331 \S* 7332 \S 7333 Ket 7334 End 7335------------------------------------------------------------------ 7336 7337/\S*\w/BZ 7338------------------------------------------------------------------ 7339 Bra 7340 \S* 7341 \w 7342 Ket 7343 End 7344------------------------------------------------------------------ 7345 7346/\S*\W/BZ 7347------------------------------------------------------------------ 7348 Bra 7349 \S* 7350 \W 7351 Ket 7352 End 7353------------------------------------------------------------------ 7354 7355/\w*a/BZ 7356------------------------------------------------------------------ 7357 Bra 7358 \w* 7359 a 7360 Ket 7361 End 7362------------------------------------------------------------------ 7363 7364/\w*2/BZ 7365------------------------------------------------------------------ 7366 Bra 7367 \w* 7368 2 7369 Ket 7370 End 7371------------------------------------------------------------------ 7372 7373/\w*\d/BZ 7374------------------------------------------------------------------ 7375 Bra 7376 \w* 7377 \d 7378 Ket 7379 End 7380------------------------------------------------------------------ 7381 7382/\w*\D/BZ 7383------------------------------------------------------------------ 7384 Bra 7385 \w* 7386 \D 7387 Ket 7388 End 7389------------------------------------------------------------------ 7390 7391/\w*\s/BZ 7392------------------------------------------------------------------ 7393 Bra 7394 \w*+ 7395 \s 7396 Ket 7397 End 7398------------------------------------------------------------------ 7399 7400/\w*\S/BZ 7401------------------------------------------------------------------ 7402 Bra 7403 \w* 7404 \S 7405 Ket 7406 End 7407------------------------------------------------------------------ 7408 7409/\w*\w/BZ 7410------------------------------------------------------------------ 7411 Bra 7412 \w* 7413 \w 7414 Ket 7415 End 7416------------------------------------------------------------------ 7417 7418/\w*\W/BZ 7419------------------------------------------------------------------ 7420 Bra 7421 \w*+ 7422 \W 7423 Ket 7424 End 7425------------------------------------------------------------------ 7426 7427/\W*a/BZ 7428------------------------------------------------------------------ 7429 Bra 7430 \W*+ 7431 a 7432 Ket 7433 End 7434------------------------------------------------------------------ 7435 7436/\W*2/BZ 7437------------------------------------------------------------------ 7438 Bra 7439 \W*+ 7440 2 7441 Ket 7442 End 7443------------------------------------------------------------------ 7444 7445/\W*\d/BZ 7446------------------------------------------------------------------ 7447 Bra 7448 \W*+ 7449 \d 7450 Ket 7451 End 7452------------------------------------------------------------------ 7453 7454/\W*\D/BZ 7455------------------------------------------------------------------ 7456 Bra 7457 \W* 7458 \D 7459 Ket 7460 End 7461------------------------------------------------------------------ 7462 7463/\W*\s/BZ 7464------------------------------------------------------------------ 7465 Bra 7466 \W* 7467 \s 7468 Ket 7469 End 7470------------------------------------------------------------------ 7471 7472/\W*\S/BZ 7473------------------------------------------------------------------ 7474 Bra 7475 \W* 7476 \S 7477 Ket 7478 End 7479------------------------------------------------------------------ 7480 7481/\W*\w/BZ 7482------------------------------------------------------------------ 7483 Bra 7484 \W*+ 7485 \w 7486 Ket 7487 End 7488------------------------------------------------------------------ 7489 7490/\W*\W/BZ 7491------------------------------------------------------------------ 7492 Bra 7493 \W* 7494 \W 7495 Ket 7496 End 7497------------------------------------------------------------------ 7498 7499/[^a]+a/BZ 7500------------------------------------------------------------------ 7501 Bra 7502 [^a]++ 7503 a 7504 Ket 7505 End 7506------------------------------------------------------------------ 7507 7508/[^a]+a/BZi 7509------------------------------------------------------------------ 7510 Bra 7511 /i [^a]++ 7512 /i a 7513 Ket 7514 End 7515------------------------------------------------------------------ 7516 7517/[^a]+A/BZi 7518------------------------------------------------------------------ 7519 Bra 7520 /i [^a]++ 7521 /i A 7522 Ket 7523 End 7524------------------------------------------------------------------ 7525 7526/[^a]+b/BZ 7527------------------------------------------------------------------ 7528 Bra 7529 [^a]+ 7530 b 7531 Ket 7532 End 7533------------------------------------------------------------------ 7534 7535/[^a]+\d/BZ 7536------------------------------------------------------------------ 7537 Bra 7538 [^a]+ 7539 \d 7540 Ket 7541 End 7542------------------------------------------------------------------ 7543 7544/a*[^a]/BZ 7545------------------------------------------------------------------ 7546 Bra 7547 a*+ 7548 [^a] 7549 Ket 7550 End 7551------------------------------------------------------------------ 7552 7553/(?P<abc>x)(?P<xyz>y)/I 7554Capturing subpattern count = 2 7555Named capturing subpatterns: 7556 abc 1 7557 xyz 2 7558No options 7559First char = 'x' 7560Need char = 'y' 7561 xy\Cabc\Cxyz 7562 0: xy 7563 1: x 7564 2: y 7565 C x (1) abc 7566 C y (1) xyz 7567 7568/(?<abc>x)(?'xyz'y)/I 7569Capturing subpattern count = 2 7570Named capturing subpatterns: 7571 abc 1 7572 xyz 2 7573No options 7574First char = 'x' 7575Need char = 'y' 7576 xy\Cabc\Cxyz 7577 0: xy 7578 1: x 7579 2: y 7580 C x (1) abc 7581 C y (1) xyz 7582 7583/(?<abc'x)(?'xyz'y)/I 7584Failed: syntax error in subpattern name (missing terminator) at offset 6 7585 7586/(?<abc>x)(?'xyz>y)/I 7587Failed: syntax error in subpattern name (missing terminator) at offset 15 7588 7589/(?P'abc'x)(?P<xyz>y)/I 7590Failed: unrecognized character after (?P at offset 3 7591 7592/^(?:(?(ZZ)a|b)(?<ZZ>X))+/ 7593 bXaX 7594 0: bXaX 7595 1: X 7596 bXbX 7597 0: bX 7598 1: X 7599 ** Failers 7600No match 7601 aXaX 7602No match 7603 aXbX 7604No match 7605 7606/^(?P>abc)(?<abcd>xxx)/ 7607Failed: reference to non-existent subpattern at offset 8 7608 7609/^(?P>abc)(?<abc>x|y)/ 7610 xx 7611 0: xx 7612 1: x 7613 xy 7614 0: xy 7615 1: y 7616 yy 7617 0: yy 7618 1: y 7619 yx 7620 0: yx 7621 1: x 7622 7623/^(?P>abc)(?P<abc>x|y)/ 7624 xx 7625 0: xx 7626 1: x 7627 xy 7628 0: xy 7629 1: y 7630 yy 7631 0: yy 7632 1: y 7633 yx 7634 0: yx 7635 1: x 7636 7637/^((?(abc)a|b)(?<abc>x|y))+/ 7638 bxay 7639 0: bxay 7640 1: ay 7641 2: y 7642 bxby 7643 0: bx 7644 1: bx 7645 2: x 7646 ** Failers 7647No match 7648 axby 7649No match 7650 7651/^(((?P=abc)|X)(?<abc>x|y))+/ 7652 XxXxxx 7653 0: XxXxxx 7654 1: xx 7655 2: x 7656 3: x 7657 XxXyyx 7658 0: XxXyyx 7659 1: yx 7660 2: y 7661 3: x 7662 XxXyxx 7663 0: XxXy 7664 1: Xy 7665 2: X 7666 3: y 7667 ** Failers 7668No match 7669 x 7670No match 7671 7672/^(?1)(abc)/ 7673 abcabc 7674 0: abcabc 7675 1: abc 7676 7677/^(?:(?:\1|X)(a|b))+/ 7678 Xaaa 7679 0: Xaaa 7680 1: a 7681 Xaba 7682 0: Xa 7683 1: a 7684 7685/^[\E\Qa\E-\Qz\E]+/BZ 7686------------------------------------------------------------------ 7687 Bra 7688 ^ 7689 [a-z]++ 7690 Ket 7691 End 7692------------------------------------------------------------------ 7693 7694/^[a\Q]bc\E]/BZ 7695------------------------------------------------------------------ 7696 Bra 7697 ^ 7698 [\]a-c] 7699 Ket 7700 End 7701------------------------------------------------------------------ 7702 7703/^[a-\Q\E]/BZ 7704------------------------------------------------------------------ 7705 Bra 7706 ^ 7707 [\-a] 7708 Ket 7709 End 7710------------------------------------------------------------------ 7711 7712/^(?P>abc)[()](?<abc>)/BZ 7713------------------------------------------------------------------ 7714 Bra 7715 ^ 7716 Recurse 7717 [()] 7718 CBra 1 7719 Ket 7720 Ket 7721 End 7722------------------------------------------------------------------ 7723 7724/^((?(abc)y)[()](?P<abc>x))+/BZ 7725------------------------------------------------------------------ 7726 Bra 7727 ^ 7728 CBra 1 7729 Cond 7730 2 Cond ref 7731 y 7732 Ket 7733 [()] 7734 CBra 2 7735 x 7736 Ket 7737 KetRmax 7738 Ket 7739 End 7740------------------------------------------------------------------ 7741 (xy)x 7742 0: (xy)x 7743 1: y)x 7744 2: x 7745 7746/^(?P>abc)\Q()\E(?<abc>)/BZ 7747------------------------------------------------------------------ 7748 Bra 7749 ^ 7750 Recurse 7751 () 7752 CBra 1 7753 Ket 7754 Ket 7755 End 7756------------------------------------------------------------------ 7757 7758/^(?P>abc)[a\Q(]\E(](?<abc>)/BZ 7759------------------------------------------------------------------ 7760 Bra 7761 ^ 7762 Recurse 7763 [(\]a] 7764 CBra 1 7765 Ket 7766 Ket 7767 End 7768------------------------------------------------------------------ 7769 7770/^(?P>abc) # this is (a comment) 7771 (?<abc>)/BZx 7772------------------------------------------------------------------ 7773 Bra 7774 ^ 7775 Recurse 7776 CBra 1 7777 Ket 7778 Ket 7779 End 7780------------------------------------------------------------------ 7781 7782/^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii 7783Capturing subpattern count = 4 7784Max back reference = 4 7785Named capturing subpatterns: 7786 four 4 7787 one 1 7788 three 3 7789 two 2 7790May match empty string 7791Options: anchored caseless 7792No first char 7793No need char 7794 1221 7795 0: 1221 7796 1: 1221 7797 2: 1 7798 Satan, oscillate my metallic sonatas! 7799 0: Satan, oscillate my metallic sonatas! 7800 1: <unset> 7801 2: <unset> 7802 3: Satan, oscillate my metallic sonatas 7803 4: S 7804 A man, a plan, a canal: Panama! 7805 0: A man, a plan, a canal: Panama! 7806 1: <unset> 7807 2: <unset> 7808 3: A man, a plan, a canal: Panama 7809 4: A 7810 Able was I ere I saw Elba. 7811 0: Able was I ere I saw Elba. 7812 1: <unset> 7813 2: <unset> 7814 3: Able was I ere I saw Elba 7815 4: A 7816 *** Failers 7817No match 7818 The quick brown fox 7819No match 7820 7821/(?=(\w+))\1:/I 7822Capturing subpattern count = 1 7823Max back reference = 1 7824No options 7825No first char 7826Need char = ':' 7827 abcd: 7828 0: abcd: 7829 1: abcd 7830 7831/(?=(?'abc'\w+))\k<abc>:/I 7832Capturing subpattern count = 1 7833Max back reference = 1 7834Named capturing subpatterns: 7835 abc 1 7836No options 7837No first char 7838Need char = ':' 7839 abcd: 7840 0: abcd: 7841 1: abcd 7842 7843/(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J 7844 adaa 7845 0: adaa 7846 1: a 7847 2: d 7848 ** Failers 7849No match 7850 addd 7851No match 7852 adbb 7853No match 7854 7855/(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J 7856 bdaa 7857 0: bdaa 7858 1: b 7859 2: d 7860 bdab 7861 0: bdab 7862 1: b 7863 2: d 7864 ** Failers 7865No match 7866 bddd 7867No match 7868 7869/(?(<bc))/ 7870Failed: malformed number or name after (?( at offset 6 7871 7872/(?(''))/ 7873Failed: assertion expected after (?( at offset 4 7874 7875/(?('R')stuff)/ 7876Failed: reference to non-existent subpattern at offset 7 7877 7878/((abc (?(R) (?(R1)1) (?(R2)2) X | (?1) (?2) (?R) ))) /x 7879 abcabc1Xabc2XabcXabcabc 7880 0: abcabc1Xabc2XabcX 7881 1: abcabc1Xabc2XabcX 7882 2: abcabc1Xabc2XabcX 7883 7884/(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x 7885 abcabc1Xabc2XabcXabcabc 7886 0: abcabc1Xabc2XabcX 7887 1: abcabc1Xabc2XabcX 7888 2: abcabc1Xabc2XabcX 7889 7890/(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x 7891Failed: reference to non-existent subpattern at offset 29 7892 7893/^(?(DEFINE) abc | xyz ) /x 7894Failed: DEFINE group contains more than one branch at offset 22 7895 7896/(?(DEFINE) abc) xyz/xI 7897Capturing subpattern count = 0 7898Options: extended 7899First char = 'x' 7900Need char = 'z' 7901 7902/(a|)*\d/ 7903 \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 7904No match 7905 \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 7906Matched, but too many substrings 7907 7908/^a.b/<lf> 7909 a\rb 7910 0: a\x0db 7911 a\nb\<cr> 7912 0: a\x0ab 7913 a\x85b\<anycrlf> 7914 0: a\x85b 7915 ** Failers 7916No match 7917 a\nb 7918No match 7919 a\nb\<any> 7920No match 7921 a\rb\<cr> 7922No match 7923 a\rb\<any> 7924No match 7925 a\x85b\<any> 7926No match 7927 a\rb\<anycrlf> 7928No match 7929 7930/^abc./mgx<any> 7931 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK 7932 0: abc1 7933 0: abc2 7934 0: abc3 7935 0: abc4 7936 0: abc5 7937 0: abc6 7938 0: abc7 7939 7940/abc.$/mgx<any> 7941 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9 7942 0: abc1 7943 0: abc2 7944 0: abc3 7945 0: abc4 7946 0: abc5 7947 0: abc6 7948 0: abc9 7949 7950/a/<cr><any> 7951 7952/a/<any><crlf> 7953Failed: inconsistent NEWLINE options at offset 0 7954 7955/^a\Rb/<bsr_unicode> 7956 a\nb 7957 0: a\x0ab 7958 a\rb 7959 0: a\x0db 7960 a\r\nb 7961 0: a\x0d\x0ab 7962 a\x0bb 7963 0: a\x0bb 7964 a\x0cb 7965 0: a\x0cb 7966 a\x85b 7967 0: a\x85b 7968 ** Failers 7969No match 7970 a\n\rb 7971No match 7972 7973/^a\R*b/<bsr_unicode> 7974 ab 7975 0: ab 7976 a\nb 7977 0: a\x0ab 7978 a\rb 7979 0: a\x0db 7980 a\r\nb 7981 0: a\x0d\x0ab 7982 a\x0bb 7983 0: a\x0bb 7984 a\x0cb 7985 0: a\x0cb 7986 a\x85b 7987 0: a\x85b 7988 a\n\rb 7989 0: a\x0a\x0db 7990 a\n\r\x85\x0cb 7991 0: a\x0a\x0d\x85\x0cb 7992 7993/^a\R+b/<bsr_unicode> 7994 a\nb 7995 0: a\x0ab 7996 a\rb 7997 0: a\x0db 7998 a\r\nb 7999 0: a\x0d\x0ab 8000 a\x0bb 8001 0: a\x0bb 8002 a\x0cb 8003 0: a\x0cb 8004 a\x85b 8005 0: a\x85b 8006 a\n\rb 8007 0: a\x0a\x0db 8008 a\n\r\x85\x0cb 8009 0: a\x0a\x0d\x85\x0cb 8010 ** Failers 8011No match 8012 ab 8013No match 8014 8015/^a\R{1,3}b/<bsr_unicode> 8016 a\nb 8017 0: a\x0ab 8018 a\n\rb 8019 0: a\x0a\x0db 8020 a\n\r\x85b 8021 0: a\x0a\x0d\x85b 8022 a\r\n\r\nb 8023 0: a\x0d\x0a\x0d\x0ab 8024 a\r\n\r\n\r\nb 8025 0: a\x0d\x0a\x0d\x0a\x0d\x0ab 8026 a\n\r\n\rb 8027 0: a\x0a\x0d\x0a\x0db 8028 a\n\n\r\nb 8029 0: a\x0a\x0a\x0d\x0ab 8030 ** Failers 8031No match 8032 a\n\n\n\rb 8033No match 8034 a\r 8035No match 8036 8037/^a[\R]b/<bsr_unicode> 8038 aRb 8039 0: aRb 8040 ** Failers 8041No match 8042 a\nb 8043No match 8044 8045/(?&abc)X(?<abc>P)/I 8046Capturing subpattern count = 1 8047Named capturing subpatterns: 8048 abc 1 8049No options 8050No first char 8051Need char = 'P' 8052 abcPXP123 8053 0: PXP 8054 1: P 8055 8056/(?1)X(?<abc>P)/I 8057Capturing subpattern count = 1 8058Named capturing subpatterns: 8059 abc 1 8060No options 8061No first char 8062Need char = 'P' 8063 abcPXP123 8064 0: PXP 8065 1: P 8066 8067/(?:a(?&abc)b)*(?<abc>x)/ 8068 123axbaxbaxbx456 8069 0: axbaxbaxbx 8070 1: x 8071 123axbaxbaxb456 8072 0: x 8073 1: x 8074 8075/(?:a(?&abc)b){1,5}(?<abc>x)/ 8076 123axbaxbaxbx456 8077 0: axbaxbaxbx 8078 1: x 8079 8080/(?:a(?&abc)b){2,5}(?<abc>x)/ 8081 123axbaxbaxbx456 8082 0: axbaxbaxbx 8083 1: x 8084 8085/(?:a(?&abc)b){2,}(?<abc>x)/ 8086 123axbaxbaxbx456 8087 0: axbaxbaxbx 8088 1: x 8089 8090/(abc)(?i:(?1))/ 8091 defabcabcxyz 8092 0: abcabc 8093 1: abc 8094 DEFabcABCXYZ 8095No match 8096 8097/(abc)(?:(?i)(?1))/ 8098 defabcabcxyz 8099 0: abcabc 8100 1: abc 8101 DEFabcABCXYZ 8102No match 8103 8104/^(a)\g-2/ 8105Failed: reference to non-existent subpattern at offset 7 8106 8107/^(a)\g/ 8108Failed: a numbered reference must not be zero at offset 5 8109 8110/^(a)\g{0}/ 8111Failed: a numbered reference must not be zero at offset 8 8112 8113/^(a)\g{3/ 8114Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8 8115 8116/^(a)\g{aa}/ 8117Failed: reference to non-existent subpattern at offset 9 8118 8119/^a.b/<lf> 8120 a\rb 8121 0: a\x0db 8122 *** Failers 8123No match 8124 a\nb 8125No match 8126 8127/.+foo/ 8128 afoo 8129 0: afoo 8130 ** Failers 8131No match 8132 \r\nfoo 8133No match 8134 \nfoo 8135No match 8136 8137/.+foo/<crlf> 8138 afoo 8139 0: afoo 8140 \nfoo 8141 0: \x0afoo 8142 ** Failers 8143No match 8144 \r\nfoo 8145No match 8146 8147/.+foo/<any> 8148 afoo 8149 0: afoo 8150 ** Failers 8151No match 8152 \nfoo 8153No match 8154 \r\nfoo 8155No match 8156 8157/.+foo/s 8158 afoo 8159 0: afoo 8160 \r\nfoo 8161 0: \x0d\x0afoo 8162 \nfoo 8163 0: \x0afoo 8164 8165/^$/mg<any> 8166 abc\r\rxyz 8167 0: 8168 abc\n\rxyz 8169 0: 8170 ** Failers 8171No match 8172 abc\r\nxyz 8173No match 8174 8175/(?m)^$/<any>g+ 8176 abc\r\n\r\n 8177 0: 8178 0+ \x0d\x0a 8179 8180/(?m)^$|^\r\n/<any>g+ 8181 abc\r\n\r\n 8182 0: 8183 0+ \x0d\x0a 8184 0: \x0d\x0a 8185 0+ 8186 8187/(?m)$/<any>g+ 8188 abc\r\n\r\n 8189 0: 8190 0+ \x0d\x0a\x0d\x0a 8191 0: 8192 0+ \x0d\x0a 8193 0: 8194 0+ 8195 8196/abc.$/mgx<anycrlf> 8197 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9 8198 0: abc1 8199 0: abc4 8200 0: abc5 8201 0: abc9 8202 8203/^X/m 8204 XABC 8205 0: X 8206 ** Failers 8207No match 8208 XABC\B 8209No match 8210 8211/(ab|c)(?-1)/BZ 8212------------------------------------------------------------------ 8213 Bra 8214 CBra 1 8215 ab 8216 Alt 8217 c 8218 Ket 8219 Recurse 8220 Ket 8221 End 8222------------------------------------------------------------------ 8223 abc 8224 0: abc 8225 1: ab 8226 8227/xy(?+1)(abc)/BZ 8228------------------------------------------------------------------ 8229 Bra 8230 xy 8231 Recurse 8232 CBra 1 8233 abc 8234 Ket 8235 Ket 8236 End 8237------------------------------------------------------------------ 8238 xyabcabc 8239 0: xyabcabc 8240 1: abc 8241 ** Failers 8242No match 8243 xyabc 8244No match 8245 8246/x(?-0)y/ 8247Failed: a numbered reference must not be zero at offset 5 8248 8249/x(?-1)y/ 8250Failed: reference to non-existent subpattern at offset 5 8251 8252/x(?+0)y/ 8253Failed: a numbered reference must not be zero at offset 5 8254 8255/x(?+1)y/ 8256Failed: reference to non-existent subpattern at offset 5 8257 8258/^(abc)?(?(-1)X|Y)/BZ 8259------------------------------------------------------------------ 8260 Bra 8261 ^ 8262 Brazero 8263 CBra 1 8264 abc 8265 Ket 8266 Cond 8267 1 Cond ref 8268 X 8269 Alt 8270 Y 8271 Ket 8272 Ket 8273 End 8274------------------------------------------------------------------ 8275 abcX 8276 0: abcX 8277 1: abc 8278 Y 8279 0: Y 8280 ** Failers 8281No match 8282 abcY 8283No match 8284 8285/^((?(+1)X|Y)(abc))+/BZ 8286------------------------------------------------------------------ 8287 Bra 8288 ^ 8289 CBra 1 8290 Cond 8291 2 Cond ref 8292 X 8293 Alt 8294 Y 8295 Ket 8296 CBra 2 8297 abc 8298 Ket 8299 KetRmax 8300 Ket 8301 End 8302------------------------------------------------------------------ 8303 YabcXabc 8304 0: YabcXabc 8305 1: Xabc 8306 2: abc 8307 YabcXabcXabc 8308 0: YabcXabcXabc 8309 1: Xabc 8310 2: abc 8311 ** Failers 8312No match 8313 XabcXabc 8314No match 8315 8316/(?(-1)a)/BZ 8317Failed: reference to non-existent subpattern at offset 6 8318 8319/((?(-1)a))/BZ 8320------------------------------------------------------------------ 8321 Bra 8322 CBra 1 8323 Cond 8324 1 Cond ref 8325 a 8326 Ket 8327 Ket 8328 Ket 8329 End 8330------------------------------------------------------------------ 8331 8332/((?(-2)a))/BZ 8333Failed: reference to non-existent subpattern at offset 7 8334 8335/^(?(+1)X|Y)(.)/BZ 8336------------------------------------------------------------------ 8337 Bra 8338 ^ 8339 Cond 8340 1 Cond ref 8341 X 8342 Alt 8343 Y 8344 Ket 8345 CBra 1 8346 Any 8347 Ket 8348 Ket 8349 End 8350------------------------------------------------------------------ 8351 Y! 8352 0: Y! 8353 1: ! 8354 8355/(?<A>tom|bon)-\k{A}/ 8356 tom-tom 8357 0: tom-tom 8358 1: tom 8359 bon-bon 8360 0: bon-bon 8361 1: bon 8362 ** Failers 8363No match 8364 tom-bon 8365No match 8366 8367/\g{A/ 8368Failed: syntax error in subpattern name (missing terminator) at offset 4 8369 8370/(?|(abc)|(xyz))/BZ 8371------------------------------------------------------------------ 8372 Bra 8373 Bra 8374 CBra 1 8375 abc 8376 Ket 8377 Alt 8378 CBra 1 8379 xyz 8380 Ket 8381 Ket 8382 Ket 8383 End 8384------------------------------------------------------------------ 8385 >abc< 8386 0: abc 8387 1: abc 8388 >xyz< 8389 0: xyz 8390 1: xyz 8391 8392/(x)(?|(abc)|(xyz))(x)/BZ 8393------------------------------------------------------------------ 8394 Bra 8395 CBra 1 8396 x 8397 Ket 8398 Bra 8399 CBra 2 8400 abc 8401 Ket 8402 Alt 8403 CBra 2 8404 xyz 8405 Ket 8406 Ket 8407 CBra 3 8408 x 8409 Ket 8410 Ket 8411 End 8412------------------------------------------------------------------ 8413 xabcx 8414 0: xabcx 8415 1: x 8416 2: abc 8417 3: x 8418 xxyzx 8419 0: xxyzx 8420 1: x 8421 2: xyz 8422 3: x 8423 8424/(x)(?|(abc)(pqr)|(xyz))(x)/BZ 8425------------------------------------------------------------------ 8426 Bra 8427 CBra 1 8428 x 8429 Ket 8430 Bra 8431 CBra 2 8432 abc 8433 Ket 8434 CBra 3 8435 pqr 8436 Ket 8437 Alt 8438 CBra 2 8439 xyz 8440 Ket 8441 Ket 8442 CBra 4 8443 x 8444 Ket 8445 Ket 8446 End 8447------------------------------------------------------------------ 8448 xabcpqrx 8449 0: xabcpqrx 8450 1: x 8451 2: abc 8452 3: pqr 8453 4: x 8454 xxyzx 8455 0: xxyzx 8456 1: x 8457 2: xyz 8458 3: <unset> 8459 4: x 8460 8461/\H++X/BZ 8462------------------------------------------------------------------ 8463 Bra 8464 \H++ 8465 X 8466 Ket 8467 End 8468------------------------------------------------------------------ 8469 ** Failers 8470No match 8471 XXXX 8472No match 8473 8474/\H+\hY/BZ 8475------------------------------------------------------------------ 8476 Bra 8477 \H++ 8478 \h 8479 Y 8480 Ket 8481 End 8482------------------------------------------------------------------ 8483 XXXX Y 8484 0: XXXX Y 8485 8486/\H+ Y/BZ 8487------------------------------------------------------------------ 8488 Bra 8489 \H++ 8490 Y 8491 Ket 8492 End 8493------------------------------------------------------------------ 8494 8495/\h+A/BZ 8496------------------------------------------------------------------ 8497 Bra 8498 \h++ 8499 A 8500 Ket 8501 End 8502------------------------------------------------------------------ 8503 8504/\v*B/BZ 8505------------------------------------------------------------------ 8506 Bra 8507 \v*+ 8508 B 8509 Ket 8510 End 8511------------------------------------------------------------------ 8512 8513/\V+\x0a/BZ 8514------------------------------------------------------------------ 8515 Bra 8516 \V++ 8517 \x0a 8518 Ket 8519 End 8520------------------------------------------------------------------ 8521 8522/A+\h/BZ 8523------------------------------------------------------------------ 8524 Bra 8525 A++ 8526 \h 8527 Ket 8528 End 8529------------------------------------------------------------------ 8530 8531/ *\H/BZ 8532------------------------------------------------------------------ 8533 Bra 8534 *+ 8535 \H 8536 Ket 8537 End 8538------------------------------------------------------------------ 8539 8540/A*\v/BZ 8541------------------------------------------------------------------ 8542 Bra 8543 A*+ 8544 \v 8545 Ket 8546 End 8547------------------------------------------------------------------ 8548 8549/\x0b*\V/BZ 8550------------------------------------------------------------------ 8551 Bra 8552 \x0b*+ 8553 \V 8554 Ket 8555 End 8556------------------------------------------------------------------ 8557 8558/\d+\h/BZ 8559------------------------------------------------------------------ 8560 Bra 8561 \d++ 8562 \h 8563 Ket 8564 End 8565------------------------------------------------------------------ 8566 8567/\d*\v/BZ 8568------------------------------------------------------------------ 8569 Bra 8570 \d*+ 8571 \v 8572 Ket 8573 End 8574------------------------------------------------------------------ 8575 8576/S+\h\S+\v/BZ 8577------------------------------------------------------------------ 8578 Bra 8579 S++ 8580 \h 8581 \S++ 8582 \v 8583 Ket 8584 End 8585------------------------------------------------------------------ 8586 8587/\w{3,}\h\w+\v/BZ 8588------------------------------------------------------------------ 8589 Bra 8590 \w{3} 8591 \w*+ 8592 \h 8593 \w++ 8594 \v 8595 Ket 8596 End 8597------------------------------------------------------------------ 8598 8599/\h+\d\h+\w\h+\S\h+\H/BZ 8600------------------------------------------------------------------ 8601 Bra 8602 \h++ 8603 \d 8604 \h++ 8605 \w 8606 \h++ 8607 \S 8608 \h++ 8609 \H 8610 Ket 8611 End 8612------------------------------------------------------------------ 8613 8614/\v+\d\v+\w\v+\S\v+\V/BZ 8615------------------------------------------------------------------ 8616 Bra 8617 \v++ 8618 \d 8619 \v++ 8620 \w 8621 \v++ 8622 \S 8623 \v++ 8624 \V 8625 Ket 8626 End 8627------------------------------------------------------------------ 8628 8629/\H+\h\H+\d/BZ 8630------------------------------------------------------------------ 8631 Bra 8632 \H++ 8633 \h 8634 \H+ 8635 \d 8636 Ket 8637 End 8638------------------------------------------------------------------ 8639 8640/\V+\v\V+\w/BZ 8641------------------------------------------------------------------ 8642 Bra 8643 \V++ 8644 \v 8645 \V+ 8646 \w 8647 Ket 8648 End 8649------------------------------------------------------------------ 8650 8651/\( (?: [^()]* | (?R) )* \)/x 8652\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) 8653 0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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) 8654 8655/[\E]AAA/ 8656Failed: missing terminating ] for character class at offset 7 8657 8658/[\Q\E]AAA/ 8659Failed: missing terminating ] for character class at offset 9 8660 8661/[^\E]AAA/ 8662Failed: missing terminating ] for character class at offset 8 8663 8664/[^\Q\E]AAA/ 8665Failed: missing terminating ] for character class at offset 10 8666 8667/[\E^]AAA/ 8668Failed: missing terminating ] for character class at offset 8 8669 8670/[\Q\E^]AAA/ 8671Failed: missing terminating ] for character class at offset 10 8672 8673/A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ 8674------------------------------------------------------------------ 8675 Bra 8676 A 8677 *PRUNE 8678 B 8679 *SKIP 8680 C 8681 *THEN 8682 D 8683 *COMMIT 8684 E 8685 *FAIL 8686 F 8687 *FAIL 8688 G 8689 *FAIL 8690 H 8691 *ACCEPT 8692 I 8693 Ket 8694 End 8695------------------------------------------------------------------ 8696 8697/^a+(*FAIL)/C 8698 aaaaaa 8699--->aaaaaa 8700 +0 ^ ^ 8701 +1 ^ a+ 8702 +3 ^ ^ (*FAIL) 8703 +3 ^ ^ (*FAIL) 8704 +3 ^ ^ (*FAIL) 8705 +3 ^ ^ (*FAIL) 8706 +3 ^ ^ (*FAIL) 8707 +3 ^^ (*FAIL) 8708No match 8709 8710/a+b?c+(*FAIL)/C 8711 aaabccc 8712--->aaabccc 8713 +0 ^ a+ 8714 +2 ^ ^ b? 8715 +4 ^ ^ c+ 8716 +6 ^ ^ (*FAIL) 8717 +6 ^ ^ (*FAIL) 8718 +6 ^ ^ (*FAIL) 8719 +0 ^ a+ 8720 +2 ^ ^ b? 8721 +4 ^ ^ c+ 8722 +6 ^ ^ (*FAIL) 8723 +6 ^ ^ (*FAIL) 8724 +6 ^ ^ (*FAIL) 8725 +0 ^ a+ 8726 +2 ^^ b? 8727 +4 ^ ^ c+ 8728 +6 ^ ^ (*FAIL) 8729 +6 ^ ^ (*FAIL) 8730 +6 ^ ^ (*FAIL) 8731No match 8732 8733/a+b?(*PRUNE)c+(*FAIL)/C 8734 aaabccc 8735--->aaabccc 8736 +0 ^ a+ 8737 +2 ^ ^ b? 8738 +4 ^ ^ (*PRUNE) 8739+12 ^ ^ c+ 8740+14 ^ ^ (*FAIL) 8741+14 ^ ^ (*FAIL) 8742+14 ^ ^ (*FAIL) 8743 +0 ^ a+ 8744 +2 ^ ^ b? 8745 +4 ^ ^ (*PRUNE) 8746+12 ^ ^ c+ 8747+14 ^ ^ (*FAIL) 8748+14 ^ ^ (*FAIL) 8749+14 ^ ^ (*FAIL) 8750 +0 ^ a+ 8751 +2 ^^ b? 8752 +4 ^ ^ (*PRUNE) 8753+12 ^ ^ c+ 8754+14 ^ ^ (*FAIL) 8755+14 ^ ^ (*FAIL) 8756+14 ^ ^ (*FAIL) 8757No match 8758 8759/a+b?(*COMMIT)c+(*FAIL)/C 8760 aaabccc 8761--->aaabccc 8762 +0 ^ a+ 8763 +2 ^ ^ b? 8764 +4 ^ ^ (*COMMIT) 8765+13 ^ ^ c+ 8766+15 ^ ^ (*FAIL) 8767+15 ^ ^ (*FAIL) 8768+15 ^ ^ (*FAIL) 8769No match 8770 8771/a+b?(*SKIP)c+(*FAIL)/C 8772 aaabcccaaabccc 8773--->aaabcccaaabccc 8774 +0 ^ a+ 8775 +2 ^ ^ b? 8776 +4 ^ ^ (*SKIP) 8777+11 ^ ^ c+ 8778+13 ^ ^ (*FAIL) 8779+13 ^ ^ (*FAIL) 8780+13 ^ ^ (*FAIL) 8781 +0 ^ a+ 8782 +2 ^ ^ b? 8783 +4 ^ ^ (*SKIP) 8784+11 ^ ^ c+ 8785+13 ^ ^ (*FAIL) 8786+13 ^ ^ (*FAIL) 8787+13 ^ ^ (*FAIL) 8788No match 8789 8790/a+b?(*THEN)c+(*FAIL)/C 8791 aaabccc 8792--->aaabccc 8793 +0 ^ a+ 8794 +2 ^ ^ b? 8795 +4 ^ ^ (*THEN) 8796+11 ^ ^ c+ 8797+13 ^ ^ (*FAIL) 8798+13 ^ ^ (*FAIL) 8799+13 ^ ^ (*FAIL) 8800 +0 ^ a+ 8801 +2 ^ ^ b? 8802 +4 ^ ^ (*THEN) 8803+11 ^ ^ c+ 8804+13 ^ ^ (*FAIL) 8805+13 ^ ^ (*FAIL) 8806+13 ^ ^ (*FAIL) 8807 +0 ^ a+ 8808 +2 ^^ b? 8809 +4 ^ ^ (*THEN) 8810+11 ^ ^ c+ 8811+13 ^ ^ (*FAIL) 8812+13 ^ ^ (*FAIL) 8813+13 ^ ^ (*FAIL) 8814No match 8815 8816/a(*MARK)b/ 8817Failed: (*MARK) must have an argument at offset 7 8818 8819/(?i:A{1,}\6666666666)/ 8820Failed: number is too big at offset 19 8821 8822/\g6666666666/ 8823Failed: number is too big at offset 11 8824 8825/[\g6666666666]/BZ 8826------------------------------------------------------------------ 8827 Bra 8828 [6g] 8829 Ket 8830 End 8831------------------------------------------------------------------ 8832 8833/(?1)\c[/ 8834Failed: reference to non-existent subpattern at offset 3 8835 8836/.+A/<crlf> 8837 \r\nA 8838No match 8839 8840/\nA/<crlf> 8841 \r\nA 8842 0: \x0aA 8843 8844/[\r\n]A/<crlf> 8845 \r\nA 8846 0: \x0aA 8847 8848/(\r|\n)A/<crlf> 8849 \r\nA 8850 0: \x0aA 8851 1: \x0a 8852 8853/a(*CR)b/ 8854Failed: (*VERB) not recognized or malformed at offset 5 8855 8856/(*CR)a.b/ 8857 a\nb 8858 0: a\x0ab 8859 ** Failers 8860No match 8861 a\rb 8862No match 8863 8864/(*CR)a.b/<lf> 8865 a\nb 8866 0: a\x0ab 8867 ** Failers 8868No match 8869 a\rb 8870No match 8871 8872/(*LF)a.b/<CRLF> 8873 a\rb 8874 0: a\x0db 8875 ** Failers 8876No match 8877 a\nb 8878No match 8879 8880/(*CRLF)a.b/ 8881 a\rb 8882 0: a\x0db 8883 a\nb 8884 0: a\x0ab 8885 ** Failers 8886No match 8887 a\r\nb 8888No match 8889 8890/(*ANYCRLF)a.b/<CR> 8891 ** Failers 8892No match 8893 a\rb 8894No match 8895 a\nb 8896No match 8897 a\r\nb 8898No match 8899 8900/(*ANY)a.b/<cr> 8901 ** Failers 8902No match 8903 a\rb 8904No match 8905 a\nb 8906No match 8907 a\r\nb 8908No match 8909 a\x85b 8910No match 8911 8912/(*ANY).*/g 8913 abc\r\ndef 8914 0: abc 8915 0: 8916 0: def 8917 0: 8918 8919/(*ANYCRLF).*/g 8920 abc\r\ndef 8921 0: abc 8922 0: 8923 0: def 8924 0: 8925 8926/(*CRLF).*/g 8927 abc\r\ndef 8928 0: abc 8929 0: 8930 0: def 8931 0: 8932 8933/a\Rb/I<bsr_anycrlf> 8934Capturing subpattern count = 0 8935Options: bsr_anycrlf 8936First char = 'a' 8937Need char = 'b' 8938 a\rb 8939 0: a\x0db 8940 a\nb 8941 0: a\x0ab 8942 a\r\nb 8943 0: a\x0d\x0ab 8944 ** Failers 8945No match 8946 a\x85b 8947No match 8948 a\x0bb 8949No match 8950 8951/a\Rb/I<bsr_unicode> 8952Capturing subpattern count = 0 8953Options: bsr_unicode 8954First char = 'a' 8955Need char = 'b' 8956 a\rb 8957 0: a\x0db 8958 a\nb 8959 0: a\x0ab 8960 a\r\nb 8961 0: a\x0d\x0ab 8962 a\x85b 8963 0: a\x85b 8964 a\x0bb 8965 0: a\x0bb 8966 ** Failers 8967No match 8968 a\x85b\<bsr_anycrlf> 8969No match 8970 a\x0bb\<bsr_anycrlf> 8971No match 8972 8973/a\R?b/I<bsr_anycrlf> 8974Capturing subpattern count = 0 8975Options: bsr_anycrlf 8976First char = 'a' 8977Need char = 'b' 8978 a\rb 8979 0: a\x0db 8980 a\nb 8981 0: a\x0ab 8982 a\r\nb 8983 0: a\x0d\x0ab 8984 ** Failers 8985No match 8986 a\x85b 8987No match 8988 a\x0bb 8989No match 8990 8991/a\R?b/I<bsr_unicode> 8992Capturing subpattern count = 0 8993Options: bsr_unicode 8994First char = 'a' 8995Need char = 'b' 8996 a\rb 8997 0: a\x0db 8998 a\nb 8999 0: a\x0ab 9000 a\r\nb 9001 0: a\x0d\x0ab 9002 a\x85b 9003 0: a\x85b 9004 a\x0bb 9005 0: a\x0bb 9006 ** Failers 9007No match 9008 a\x85b\<bsr_anycrlf> 9009No match 9010 a\x0bb\<bsr_anycrlf> 9011No match 9012 9013/a\R{2,4}b/I<bsr_anycrlf> 9014Capturing subpattern count = 0 9015Options: bsr_anycrlf 9016First char = 'a' 9017Need char = 'b' 9018 a\r\n\nb 9019 0: a\x0d\x0a\x0ab 9020 a\n\r\rb 9021 0: a\x0a\x0d\x0db 9022 a\r\n\r\n\r\n\r\nb 9023 0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab 9024 ** Failers 9025No match 9026 a\x85\85b 9027No match 9028 a\x0b\0bb 9029No match 9030 9031/a\R{2,4}b/I<bsr_unicode> 9032Capturing subpattern count = 0 9033Options: bsr_unicode 9034First char = 'a' 9035Need char = 'b' 9036 a\r\rb 9037 0: a\x0d\x0db 9038 a\n\n\nb 9039 0: a\x0a\x0a\x0ab 9040 a\r\n\n\r\rb 9041 0: a\x0d\x0a\x0a\x0d\x0db 9042 a\x85\85b 9043No match 9044 a\x0b\0bb 9045No match 9046 ** Failers 9047No match 9048 a\r\r\r\r\rb 9049No match 9050 a\x85\85b\<bsr_anycrlf> 9051No match 9052 a\x0b\0bb\<bsr_anycrlf> 9053No match 9054 9055/(*BSR_ANYCRLF)a\Rb/I 9056Capturing subpattern count = 0 9057Options: bsr_anycrlf 9058First char = 'a' 9059Need char = 'b' 9060 a\nb 9061 0: a\x0ab 9062 a\rb 9063 0: a\x0db 9064 9065/(*BSR_UNICODE)a\Rb/I 9066Capturing subpattern count = 0 9067Options: bsr_unicode 9068First char = 'a' 9069Need char = 'b' 9070 a\x85b 9071 0: a\x85b 9072 9073/(*BSR_ANYCRLF)(*CRLF)a\Rb/I 9074Capturing subpattern count = 0 9075Options: bsr_anycrlf 9076Forced newline sequence: CRLF 9077First char = 'a' 9078Need char = 'b' 9079 a\nb 9080 0: a\x0ab 9081 a\rb 9082 0: a\x0db 9083 9084/(*CRLF)(*BSR_UNICODE)a\Rb/I 9085Capturing subpattern count = 0 9086Options: bsr_unicode 9087Forced newline sequence: CRLF 9088First char = 'a' 9089Need char = 'b' 9090 a\x85b 9091 0: a\x85b 9092 9093/(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I 9094Capturing subpattern count = 0 9095Options: bsr_anycrlf 9096Forced newline sequence: CR 9097First char = 'a' 9098Need char = 'b' 9099 9100/(?<a>)(?&)/ 9101Failed: subpattern name expected at offset 9 9102 9103/(?<abc>)(?&a)/ 9104Failed: reference to non-existent subpattern at offset 12 9105 9106/(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/ 9107Failed: reference to non-existent subpattern at offset 32 9108 9109/(?+-a)/ 9110Failed: digit expected after (?+ at offset 3 9111 9112/(?-+a)/ 9113Failed: unrecognized character after (? or (?- at offset 3 9114 9115/(?(-1))/ 9116Failed: reference to non-existent subpattern at offset 6 9117 9118/(?(+10))/ 9119Failed: reference to non-existent subpattern at offset 7 9120 9121/(?(10))/ 9122Failed: reference to non-existent subpattern at offset 6 9123 9124/(?(+2))()()/ 9125 9126/(?(2))()()/ 9127 9128/\k''/ 9129Failed: subpattern name expected at offset 3 9130 9131/\k<>/ 9132Failed: subpattern name expected at offset 3 9133 9134/\k{}/ 9135Failed: subpattern name expected at offset 3 9136 9137/\k/ 9138Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 1 9139 9140/\kabc/ 9141Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 1 9142 9143/(?P=)/ 9144Failed: subpattern name expected at offset 4 9145 9146/(?P>)/ 9147Failed: subpattern name expected at offset 4 9148 9149/(?!\w)(?R)/ 9150Failed: recursive call could loop indefinitely at offset 9 9151 9152/(?=\w)(?R)/ 9153Failed: recursive call could loop indefinitely at offset 9 9154 9155/(?<!\w)(?R)/ 9156Failed: recursive call could loop indefinitely at offset 10 9157 9158/(?<=\w)(?R)/ 9159Failed: recursive call could loop indefinitely at offset 10 9160 9161/[[:foo:]]/ 9162Failed: unknown POSIX class name at offset 3 9163 9164/[[:1234:]]/ 9165Failed: unknown POSIX class name at offset 3 9166 9167/[[:f\oo:]]/ 9168Failed: unknown POSIX class name at offset 3 9169 9170/[[: :]]/ 9171Failed: unknown POSIX class name at offset 3 9172 9173/[[:...:]]/ 9174Failed: unknown POSIX class name at offset 3 9175 9176/[[:l\ower:]]/ 9177Failed: unknown POSIX class name at offset 3 9178 9179/[[:abc\:]]/ 9180Failed: unknown POSIX class name at offset 3 9181 9182/[abc[:x\]pqr:]]/ 9183Failed: unknown POSIX class name at offset 6 9184 9185/[[:a\dz:]]/ 9186Failed: unknown POSIX class name at offset 3 9187 9188/(^(a|b\g<-1'c))/ 9189Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8 9190 9191/^(?+1)(?<a>x|y){0}z/ 9192 xzxx 9193 0: xz 9194 yzyy 9195 0: yz 9196 ** Failers 9197No match 9198 xxz 9199No match 9200 9201/(\3)(\1)(a)/ 9202 cat 9203No match 9204 9205/(\3)(\1)(a)/<JS> 9206 cat 9207 0: a 9208 1: 9209 2: 9210 3: a 9211 9212/TA]/ 9213 The ACTA] comes 9214 0: TA] 9215 9216/TA]/<JS> 9217Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2 9218 9219/(?2)[]a()b](abc)/ 9220Failed: reference to non-existent subpattern at offset 3 9221 9222/(?2)[^]a()b](abc)/ 9223Failed: reference to non-existent subpattern at offset 3 9224 9225/(?1)[]a()b](abc)/ 9226 abcbabc 9227 0: abcbabc 9228 1: abc 9229 ** Failers 9230No match 9231 abcXabc 9232No match 9233 9234/(?1)[^]a()b](abc)/ 9235 abcXabc 9236 0: abcXabc 9237 1: abc 9238 ** Failers 9239No match 9240 abcbabc 9241No match 9242 9243/(?2)[]a()b](abc)(xyz)/ 9244 xyzbabcxyz 9245 0: xyzbabcxyz 9246 1: abc 9247 2: xyz 9248 9249/(?&N)[]a(?<N>)](?<M>abc)/ 9250Failed: reference to non-existent subpattern at offset 4 9251 9252/(?&N)[]a(?<N>)](abc)/ 9253Failed: reference to non-existent subpattern at offset 4 9254 9255/a[]b/ 9256Failed: missing terminating ] for character class at offset 4 9257 9258/a[^]b/ 9259Failed: missing terminating ] for character class at offset 5 9260 9261/a[]b/<JS> 9262 ** Failers 9263No match 9264 ab 9265No match 9266 9267/a[]+b/<JS> 9268 ** Failers 9269No match 9270 ab 9271No match 9272 9273/a[]*+b/<JS> 9274 ** Failers 9275No match 9276 ab 9277No match 9278 9279/a[^]b/<JS> 9280 aXb 9281 0: aXb 9282 a\nb 9283 0: a\x0ab 9284 ** Failers 9285No match 9286 ab 9287No match 9288 9289/a[^]+b/<JS> 9290 aXb 9291 0: aXb 9292 a\nX\nXb 9293 0: a\x0aX\x0aXb 9294 ** Failers 9295No match 9296 ab 9297No match 9298 9299/a(?!)b/BZ 9300------------------------------------------------------------------ 9301 Bra 9302 a 9303 *FAIL 9304 b 9305 Ket 9306 End 9307------------------------------------------------------------------ 9308 9309/(?!)?a/BZ 9310------------------------------------------------------------------ 9311 Bra 9312 Brazero 9313 Assert not 9314 Ket 9315 a 9316 Ket 9317 End 9318------------------------------------------------------------------ 9319 ab 9320 0: a 9321 9322/a(*FAIL)+b/ 9323Failed: nothing to repeat at offset 8 9324 9325/(abc|pqr|123){0}[xyz]/SI 9326Capturing subpattern count = 1 9327No options 9328No first char 9329No need char 9330Subject length lower bound = 1 9331Starting chars: x y z 9332 9333/(?(?=.*b)b|^)/CI 9334Capturing subpattern count = 0 9335May match empty string 9336Options: 9337No first char 9338No need char 9339 adc 9340--->adc 9341 +0 ^ (?(?=.*b)b|^) 9342 +2 ^ (?=.*b) 9343 +5 ^ .* 9344 +7 ^ ^ b 9345 +7 ^ ^ b 9346 +7 ^^ b 9347 +7 ^ b 9348+11 ^ ^ 9349+12 ^ ) 9350+13 ^ 9351 0: 9352 abc 9353--->abc 9354 +0 ^ (?(?=.*b)b|^) 9355 +2 ^ (?=.*b) 9356 +5 ^ .* 9357 +7 ^ ^ b 9358 +7 ^ ^ b 9359 +7 ^^ b 9360 +8 ^ ^ ) 9361 +9 ^ b 9362 +0 ^ (?(?=.*b)b|^) 9363 +2 ^ (?=.*b) 9364 +5 ^ .* 9365 +7 ^ ^ b 9366 +7 ^^ b 9367 +7 ^ b 9368 +8 ^^ ) 9369 +9 ^ b 9370+10 ^^ | 9371+13 ^^ 9372 0: b 9373 9374/(?(?=b).*b|^d)/I 9375Capturing subpattern count = 0 9376No options 9377No first char 9378No need char 9379 9380/(?(?=.*b).*b|^d)/I 9381Capturing subpattern count = 0 9382No options 9383First char at start or follows newline 9384No need char 9385 9386/xyz/C 9387 xyz 9388--->xyz 9389 +0 ^ x 9390 +1 ^^ y 9391 +2 ^ ^ z 9392 +3 ^ ^ 9393 0: xyz 9394 abcxyz 9395--->abcxyz 9396 +0 ^ x 9397 +1 ^^ y 9398 +2 ^ ^ z 9399 +3 ^ ^ 9400 0: xyz 9401 abcxyz\Y 9402--->abcxyz 9403 +0 ^ x 9404 +0 ^ x 9405 +0 ^ x 9406 +0 ^ x 9407 +1 ^^ y 9408 +2 ^ ^ z 9409 +3 ^ ^ 9410 0: xyz 9411 ** Failers 9412No match 9413 abc 9414No match 9415 abc\Y 9416--->abc 9417 +0 ^ x 9418 +0 ^ x 9419 +0 ^ x 9420 +0 ^ x 9421No match 9422 abcxypqr 9423No match 9424 abcxypqr\Y 9425--->abcxypqr 9426 +0 ^ x 9427 +0 ^ x 9428 +0 ^ x 9429 +0 ^ x 9430 +1 ^^ y 9431 +2 ^ ^ z 9432 +0 ^ x 9433 +0 ^ x 9434 +0 ^ x 9435 +0 ^ x 9436 +0 ^ x 9437No match 9438 9439/(*NO_START_OPT)xyz/C 9440 abcxyz 9441--->abcxyz 9442+15 ^ x 9443+15 ^ x 9444+15 ^ x 9445+15 ^ x 9446+16 ^^ y 9447+17 ^ ^ z 9448+18 ^ ^ 9449 0: xyz 9450 9451/(*NO_AUTO_POSSESS)a+b/BZ 9452------------------------------------------------------------------ 9453 Bra 9454 a+ 9455 b 9456 Ket 9457 End 9458------------------------------------------------------------------ 9459 9460/xyz/CY 9461 abcxyz 9462--->abcxyz 9463 +0 ^ x 9464 +0 ^ x 9465 +0 ^ x 9466 +0 ^ x 9467 +1 ^^ y 9468 +2 ^ ^ z 9469 +3 ^ ^ 9470 0: xyz 9471 9472/^"((?(?=[a])[^"])|b)*"$/C 9473 "ab" 9474--->"ab" 9475 +0 ^ ^ 9476 +1 ^ " 9477 +2 ^^ ((?(?=[a])[^"])|b)* 9478 +3 ^^ (?(?=[a])[^"]) 9479 +5 ^^ (?=[a]) 9480 +8 ^^ [a] 9481+11 ^ ^ ) 9482+12 ^^ [^"] 9483+16 ^ ^ ) 9484+17 ^ ^ | 9485 +3 ^ ^ (?(?=[a])[^"]) 9486 +5 ^ ^ (?=[a]) 9487 +8 ^ ^ [a] 9488+17 ^ ^ | 9489+21 ^ ^ " 9490+18 ^ ^ b 9491+19 ^ ^ ) 9492 +3 ^ ^ (?(?=[a])[^"]) 9493 +5 ^ ^ (?=[a]) 9494 +8 ^ ^ [a] 9495+17 ^ ^ | 9496+21 ^ ^ " 9497+22 ^ ^ $ 9498+23 ^ ^ 9499 0: "ab" 9500 1: 9501 9502/^"((?(?=[a])[^"])|b)*"$/ 9503 "ab" 9504 0: "ab" 9505 1: 9506 9507/^X(?5)(a)(?|(b)|(q))(c)(d)Y/ 9508Failed: reference to non-existent subpattern at offset 5 9509 9510/^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/ 9511 XYabcdY 9512 0: XYabcdY 9513 1: a 9514 2: b 9515 3: c 9516 4: d 9517 5: Y 9518 9519/Xa{2,4}b/ 9520 X\P 9521Partial match: X 9522 Xa\P 9523Partial match: Xa 9524 Xaa\P 9525Partial match: Xaa 9526 Xaaa\P 9527Partial match: Xaaa 9528 Xaaaa\P 9529Partial match: Xaaaa 9530 9531/Xa{2,4}?b/ 9532 X\P 9533Partial match: X 9534 Xa\P 9535Partial match: Xa 9536 Xaa\P 9537Partial match: Xaa 9538 Xaaa\P 9539Partial match: Xaaa 9540 Xaaaa\P 9541Partial match: Xaaaa 9542 9543/Xa{2,4}+b/ 9544 X\P 9545Partial match: X 9546 Xa\P 9547Partial match: Xa 9548 Xaa\P 9549Partial match: Xaa 9550 Xaaa\P 9551Partial match: Xaaa 9552 Xaaaa\P 9553Partial match: Xaaaa 9554 9555/X\d{2,4}b/ 9556 X\P 9557Partial match: X 9558 X3\P 9559Partial match: X3 9560 X33\P 9561Partial match: X33 9562 X333\P 9563Partial match: X333 9564 X3333\P 9565Partial match: X3333 9566 9567/X\d{2,4}?b/ 9568 X\P 9569Partial match: X 9570 X3\P 9571Partial match: X3 9572 X33\P 9573Partial match: X33 9574 X333\P 9575Partial match: X333 9576 X3333\P 9577Partial match: X3333 9578 9579/X\d{2,4}+b/ 9580 X\P 9581Partial match: X 9582 X3\P 9583Partial match: X3 9584 X33\P 9585Partial match: X33 9586 X333\P 9587Partial match: X333 9588 X3333\P 9589Partial match: X3333 9590 9591/X\D{2,4}b/ 9592 X\P 9593Partial match: X 9594 Xa\P 9595Partial match: Xa 9596 Xaa\P 9597Partial match: Xaa 9598 Xaaa\P 9599Partial match: Xaaa 9600 Xaaaa\P 9601Partial match: Xaaaa 9602 9603/X\D{2,4}?b/ 9604 X\P 9605Partial match: X 9606 Xa\P 9607Partial match: Xa 9608 Xaa\P 9609Partial match: Xaa 9610 Xaaa\P 9611Partial match: Xaaa 9612 Xaaaa\P 9613Partial match: Xaaaa 9614 9615/X\D{2,4}+b/ 9616 X\P 9617Partial match: X 9618 Xa\P 9619Partial match: Xa 9620 Xaa\P 9621Partial match: Xaa 9622 Xaaa\P 9623Partial match: Xaaa 9624 Xaaaa\P 9625Partial match: Xaaaa 9626 9627/X[abc]{2,4}b/ 9628 X\P 9629Partial match: X 9630 Xa\P 9631Partial match: Xa 9632 Xaa\P 9633Partial match: Xaa 9634 Xaaa\P 9635Partial match: Xaaa 9636 Xaaaa\P 9637Partial match: Xaaaa 9638 9639/X[abc]{2,4}?b/ 9640 X\P 9641Partial match: X 9642 Xa\P 9643Partial match: Xa 9644 Xaa\P 9645Partial match: Xaa 9646 Xaaa\P 9647Partial match: Xaaa 9648 Xaaaa\P 9649Partial match: Xaaaa 9650 9651/X[abc]{2,4}+b/ 9652 X\P 9653Partial match: X 9654 Xa\P 9655Partial match: Xa 9656 Xaa\P 9657Partial match: Xaa 9658 Xaaa\P 9659Partial match: Xaaa 9660 Xaaaa\P 9661Partial match: Xaaaa 9662 9663/X[^a]{2,4}b/ 9664 X\P 9665Partial match: X 9666 Xz\P 9667Partial match: Xz 9668 Xzz\P 9669Partial match: Xzz 9670 Xzzz\P 9671Partial match: Xzzz 9672 Xzzzz\P 9673Partial match: Xzzzz 9674 9675/X[^a]{2,4}?b/ 9676 X\P 9677Partial match: X 9678 Xz\P 9679Partial match: Xz 9680 Xzz\P 9681Partial match: Xzz 9682 Xzzz\P 9683Partial match: Xzzz 9684 Xzzzz\P 9685Partial match: Xzzzz 9686 9687/X[^a]{2,4}+b/ 9688 X\P 9689Partial match: X 9690 Xz\P 9691Partial match: Xz 9692 Xzz\P 9693Partial match: Xzz 9694 Xzzz\P 9695Partial match: Xzzz 9696 Xzzzz\P 9697Partial match: Xzzzz 9698 9699/(Y)X\1{2,4}b/ 9700 YX\P 9701Partial match: YX 9702 YXY\P 9703Partial match: YXY 9704 YXYY\P 9705Partial match: YXYY 9706 YXYYY\P 9707Partial match: YXYYY 9708 YXYYYY\P 9709Partial match: YXYYYY 9710 9711/(Y)X\1{2,4}?b/ 9712 YX\P 9713Partial match: YX 9714 YXY\P 9715Partial match: YXY 9716 YXYY\P 9717Partial match: YXYY 9718 YXYYY\P 9719Partial match: YXYYY 9720 YXYYYY\P 9721Partial match: YXYYYY 9722 9723/(Y)X\1{2,4}+b/ 9724 YX\P 9725Partial match: YX 9726 YXY\P 9727Partial match: YXY 9728 YXYY\P 9729Partial match: YXYY 9730 YXYYY\P 9731Partial match: YXYYY 9732 YXYYYY\P 9733Partial match: YXYYYY 9734 9735/\++\KZ|\d+X|9+Y/ 9736 ++++123999\P 9737Partial match: 123999 9738 ++++123999Y\P 9739 0: 999Y 9740 ++++Z1234\P 9741 0: Z 9742 9743/Z(*F)/ 9744 Z\P 9745No match 9746 ZA\P 9747No match 9748 9749/Z(?!)/ 9750 Z\P 9751No match 9752 ZA\P 9753No match 9754 9755/dog(sbody)?/ 9756 dogs\P 9757 0: dog 9758 dogs\P\P 9759Partial match: dogs 9760 9761/dog(sbody)??/ 9762 dogs\P 9763 0: dog 9764 dogs\P\P 9765 0: dog 9766 9767/dog|dogsbody/ 9768 dogs\P 9769 0: dog 9770 dogs\P\P 9771 0: dog 9772 9773/dogsbody|dog/ 9774 dogs\P 9775 0: dog 9776 dogs\P\P 9777Partial match: dogs 9778 9779/\bthe cat\b/ 9780 the cat\P 9781 0: the cat 9782 the cat\P\P 9783Partial match: the cat 9784 9785/abc/ 9786 abc\P 9787 0: abc 9788 abc\P\P 9789 0: abc 9790 9791/abc\K123/ 9792 xyzabc123pqr 9793 0: 123 9794 xyzabc12\P 9795Partial match: abc12 9796 xyzabc12\P\P 9797Partial match: abc12 9798 9799/(?<=abc)123/ 9800 xyzabc123pqr 9801 0: 123 9802 xyzabc12\P 9803Partial match at offset 6: abc12 9804 xyzabc12\P\P 9805Partial match at offset 6: abc12 9806 9807/\babc\b/ 9808 +++abc+++ 9809 0: abc 9810 +++ab\P 9811Partial match at offset 3: +ab 9812 +++ab\P\P 9813Partial match at offset 3: +ab 9814 9815/(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ 9816------------------------------------------------------------------ 9817 Bra 9818 Recurse 9819 Recurse 9820 Cond 9821 Cond def 9822 CBra 1 9823 < 9824 [^m] 9825 [^>] 9826 > 9827 [^<] 9828 Ket 9829 CBra 2 9830 \w*+ 9831 Ket 9832 Ket 9833 Ket 9834 End 9835------------------------------------------------------------------ 9836 9837/(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ 9838------------------------------------------------------------------ 9839 Bra 9840 Recurse 9841 Recurse 9842 Cond 9843 Cond def 9844 CBra 1 9845 < 9846 [\x00-/:-\xff] (neg) 9847 [^>] 9848 > 9849 [^<] 9850 Ket 9851 CBra 2 9852 \w*+ 9853 Ket 9854 Ket 9855 Ket 9856 End 9857------------------------------------------------------------------ 9858 9859/(ab)(x(y)z(cd(*ACCEPT)))pq/BZ 9860------------------------------------------------------------------ 9861 Bra 9862 CBra 1 9863 ab 9864 Ket 9865 CBra 2 9866 x 9867 CBra 3 9868 y 9869 Ket 9870 z 9871 CBra 4 9872 cd 9873 Close 4 9874 Close 2 9875 *ACCEPT 9876 Ket 9877 Ket 9878 pq 9879 Ket 9880 End 9881------------------------------------------------------------------ 9882 9883/abc\K/+ 9884 abcdef 9885 0: 9886 0+ def 9887 abcdef\N\N 9888 0: 9889 0+ def 9890 xyzabcdef\N\N 9891 0: 9892 0+ def 9893 ** Failers 9894No match 9895 abcdef\N 9896No match 9897 xyzabcdef\N 9898No match 9899 9900/^(?:(?=abc)|abc\K)/+ 9901 abcdef 9902 0: 9903 0+ abcdef 9904 abcdef\N\N 9905 0: 9906 0+ def 9907 ** Failers 9908No match 9909 abcdef\N 9910No match 9911 9912/a?b?/+ 9913 xyz 9914 0: 9915 0+ xyz 9916 xyzabc 9917 0: 9918 0+ xyzabc 9919 xyzabc\N 9920 0: ab 9921 0+ c 9922 xyzabc\N\N 9923 0: 9924 0+ yzabc 9925 xyz\N\N 9926 0: 9927 0+ yz 9928 ** Failers 9929 0: 9930 0+ ** Failers 9931 xyz\N 9932No match 9933 9934/^a?b?/+ 9935 xyz 9936 0: 9937 0+ xyz 9938 xyzabc 9939 0: 9940 0+ xyzabc 9941 ** Failers 9942 0: 9943 0+ ** Failers 9944 xyzabc\N 9945No match 9946 xyzabc\N\N 9947No match 9948 xyz\N\N 9949No match 9950 xyz\N 9951No match 9952 9953/^(?<name>a|b\g<name>c)/ 9954 aaaa 9955 0: a 9956 1: a 9957 bacxxx 9958 0: bac 9959 1: bac 9960 bbaccxxx 9961 0: bbacc 9962 1: bbacc 9963 bbbacccxx 9964 0: bbbaccc 9965 1: bbbaccc 9966 9967/^(?<name>a|b\g'name'c)/ 9968 aaaa 9969 0: a 9970 1: a 9971 bacxxx 9972 0: bac 9973 1: bac 9974 bbaccxxx 9975 0: bbacc 9976 1: bbacc 9977 bbbacccxx 9978 0: bbbaccc 9979 1: bbbaccc 9980 9981/^(a|b\g<1>c)/ 9982 aaaa 9983 0: a 9984 1: a 9985 bacxxx 9986 0: bac 9987 1: bac 9988 bbaccxxx 9989 0: bbacc 9990 1: bbacc 9991 bbbacccxx 9992 0: bbbaccc 9993 1: bbbaccc 9994 9995/^(a|b\g'1'c)/ 9996 aaaa 9997 0: a 9998 1: a 9999 bacxxx 10000 0: bac 10001 1: bac 10002 bbaccxxx 10003 0: bbacc 10004 1: bbacc 10005 bbbacccxx 10006 0: bbbaccc 10007 1: bbbaccc 10008 10009/^(a|b\g'-1'c)/ 10010 aaaa 10011 0: a 10012 1: a 10013 bacxxx 10014 0: bac 10015 1: bac 10016 bbaccxxx 10017 0: bbacc 10018 1: bbacc 10019 bbbacccxx 10020 0: bbbaccc 10021 1: bbbaccc 10022 10023/(^(a|b\g<-1>c))/ 10024 aaaa 10025 0: a 10026 1: a 10027 2: a 10028 bacxxx 10029 0: bac 10030 1: bac 10031 2: bac 10032 bbaccxxx 10033 0: bbacc 10034 1: bbacc 10035 2: bbacc 10036 bbbacccxx 10037 0: bbbaccc 10038 1: bbbaccc 10039 2: bbbaccc 10040 10041/(?-i:\g<name>)(?i:(?<name>a))/ 10042 XaaX 10043 0: aa 10044 1: a 10045 XAAX 10046 0: AA 10047 1: A 10048 10049/(?i:\g<name>)(?-i:(?<name>a))/ 10050 XaaX 10051 0: aa 10052 1: a 10053 ** Failers 10054No match 10055 XAAX 10056No match 10057 10058/(?-i:\g<+1>)(?i:(a))/ 10059 XaaX 10060 0: aa 10061 1: a 10062 XAAX 10063 0: AA 10064 1: A 10065 10066/(?=(?<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>\})\}))\{/ 10067 10068/(?<n>a|b|c)\g<n>*/ 10069 abc 10070 0: abc 10071 1: a 10072 accccbbb 10073 0: accccbbb 10074 1: a 10075 10076/^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/ 10077 XYabcdY 10078 0: XYabcdY 10079 1: a 10080 2: b 10081 3: <unset> 10082 4: <unset> 10083 5: c 10084 6: d 10085 7: Y 10086 10087/(?<=b(?1)|zzz)(a)/ 10088 xbaax 10089 0: a 10090 1: a 10091 xzzzax 10092 0: a 10093 1: a 10094 10095/(a)(?<=b\1)/ 10096Failed: lookbehind assertion is not fixed length at offset 10 10097 10098/(a)(?<=b+(?1))/ 10099Failed: lookbehind assertion is not fixed length at offset 13 10100 10101/(a+)(?<=b(?1))/ 10102Failed: lookbehind assertion is not fixed length at offset 14 10103 10104/(a(?<=b(?1)))/ 10105Failed: lookbehind assertion is not fixed length at offset 13 10106 10107/(?<=b(?1))xyz/ 10108Failed: reference to non-existent subpattern at offset 8 10109 10110/(?<=b(?1))xyz(b+)pqrstuvew/ 10111Failed: lookbehind assertion is not fixed length at offset 26 10112 10113/(a|bc)\1/SI 10114Capturing subpattern count = 1 10115Max back reference = 1 10116No options 10117No first char 10118No need char 10119Subject length lower bound = 2 10120Starting chars: a b 10121 10122/(a|bc)\1{2,3}/SI 10123Capturing subpattern count = 1 10124Max back reference = 1 10125No options 10126No first char 10127No need char 10128Subject length lower bound = 3 10129Starting chars: a b 10130 10131/(a|bc)(?1)/SI 10132Capturing subpattern count = 1 10133No options 10134No first char 10135No need char 10136Subject length lower bound = 2 10137Starting chars: a b 10138 10139/(a|b\1)(a|b\1)/SI 10140Capturing subpattern count = 2 10141Max back reference = 1 10142No options 10143No first char 10144No need char 10145Subject length lower bound = 2 10146Starting chars: a b 10147 10148/(a|b\1){2}/SI 10149Capturing subpattern count = 1 10150Max back reference = 1 10151No options 10152No first char 10153No need char 10154Subject length lower bound = 2 10155Starting chars: a b 10156 10157/(a|bbbb\1)(a|bbbb\1)/SI 10158Capturing subpattern count = 2 10159Max back reference = 1 10160No options 10161No first char 10162No need char 10163Subject length lower bound = 2 10164Starting chars: a b 10165 10166/(a|bbbb\1){2}/SI 10167Capturing subpattern count = 1 10168Max back reference = 1 10169No options 10170No first char 10171No need char 10172Subject length lower bound = 2 10173Starting chars: a b 10174 10175/^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 10176Capturing subpattern count = 1 10177Options: anchored 10178No first char 10179Need char = ':' 10180Subject length lower bound = 22 10181No starting char list 10182 10183/<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 10184Capturing subpattern count = 11 10185Options: caseless dotall 10186First char = '<' 10187Need char = '>' 10188Subject length lower bound = 47 10189No starting char list 10190 10191"(?>.*/)foo"SI 10192Capturing subpattern count = 0 10193No options 10194No first char 10195Need char = 'o' 10196Subject length lower bound = 4 10197No starting char list 10198 10199/(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /xSI 10200Capturing subpattern count = 0 10201Options: extended 10202No first char 10203Need char = '-' 10204Subject length lower bound = 8 10205No starting char list 10206 10207/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI 10208Capturing subpattern count = 1 10209Options: caseless 10210No first char 10211No need char 10212Subject length lower bound = 1 10213Starting chars: A B C a b c 10214 10215/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI 10216Capturing subpattern count = 0 10217No options 10218No first char 10219Need char = 'b' 10220Subject length lower bound = 41 10221Starting chars: c d 10222 10223/<a[\s]+href[\s]*=[\s]* # find <a href= 10224 ([\"\'])? # find single or double quote 10225 (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching 10226 # quote, otherwise match up to next space 10227/isxSI 10228Capturing subpattern count = 3 10229Max back reference = 1 10230Options: caseless extended dotall 10231First char = '<' 10232Need char = '=' 10233Subject length lower bound = 9 10234No starting char list 10235 10236/^(?!:) # colon disallowed at start 10237 (?: # start of item 10238 (?: [0-9a-f]{1,4} | # 1-4 hex digits or 10239 (?(1)0 | () ) ) # if null previously matched, fail; else null 10240 : # followed by colon 10241 ){1,7} # end item; 1-7 of them required 10242 [0-9a-f]{1,4} $ # final hex number at end of string 10243 (?(1)|.) # check that there was an empty component 10244 /xiIS 10245Capturing subpattern count = 1 10246Max back reference = 1 10247Options: anchored caseless extended 10248No first char 10249Need char = ':' 10250Subject length lower bound = 2 10251No starting char list 10252 10253/(?|(?<a>A)|(?<a>B))/I 10254Capturing subpattern count = 1 10255Named capturing subpatterns: 10256 a 1 10257No options 10258No first char 10259No need char 10260 AB\Ca 10261 0: A 10262 1: A 10263 C A (1) a 10264 BA\Ca 10265 0: B 10266 1: B 10267 C B (1) a 10268 10269/(?|(?<a>A)|(?<b>B))/ 10270Failed: different names for subpatterns of the same number are not allowed at offset 15 10271 10272/(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) | 10273 b(?<quote> (?<apostrophe>')|(?<realquote>")) ) 10274 (?('quote')[a-z]+|[0-9]+)/JIx 10275Capturing subpattern count = 6 10276Max back reference = 1 10277Named capturing subpatterns: 10278 apostrophe 2 10279 apostrophe 5 10280 quote 1 10281 quote 4 10282 realquote 3 10283 realquote 6 10284Options: extended dupnames 10285No first char 10286No need char 10287 a"aaaaa 10288 0: a"aaaaa 10289 1: " 10290 2: <unset> 10291 3: " 10292 b"aaaaa 10293 0: b"aaaaa 10294 1: <unset> 10295 2: <unset> 10296 3: <unset> 10297 4: " 10298 5: <unset> 10299 6: " 10300 ** Failers 10301No match 10302 b"11111 10303No match 10304 a"11111 10305No match 10306 10307/^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx 10308------------------------------------------------------------------ 10309 Bra 10310 ^ 10311 Bra 10312 CBra 1 10313 a 10314 Ket 10315 CBra 2 10316 b 10317 Ket 10318 CBra 3 10319 c 10320 Ket 10321 CBra 4 10322 d 10323 Ket 10324 Alt 10325 CBra 1 10326 e 10327 Ket 10328 Ket 10329 Cond 10330 Cond ref <D>2 10331 X 10332 Alt 10333 Y 10334 Ket 10335 Ket 10336 End 10337------------------------------------------------------------------ 10338Capturing subpattern count = 4 10339Max back reference = 4 10340Named capturing subpatterns: 10341 D 4 10342 D 1 10343Options: anchored extended dupnames 10344No first char 10345No need char 10346 abcdX 10347 0: abcdX 10348 1: a 10349 2: b 10350 3: c 10351 4: d 10352 eX 10353 0: eX 10354 1: e 10355 ** Failers 10356No match 10357 abcdY 10358No match 10359 ey 10360No match 10361 10362/(?<A>a) (b)(c) (?<A>d (?(R&A)$ | (?4)) )/JDZx 10363------------------------------------------------------------------ 10364 Bra 10365 CBra 1 10366 a 10367 Ket 10368 CBra 2 10369 b 10370 Ket 10371 CBra 3 10372 c 10373 Ket 10374 CBra 4 10375 d 10376 Cond 10377 Cond recurse <A>2 10378 $ 10379 Alt 10380 Recurse 10381 Ket 10382 Ket 10383 Ket 10384 End 10385------------------------------------------------------------------ 10386Capturing subpattern count = 4 10387Max back reference = 1 10388Named capturing subpatterns: 10389 A 1 10390 A 4 10391Options: extended dupnames 10392First char = 'a' 10393Need char = 'd' 10394 abcdd 10395 0: abcdd 10396 1: a 10397 2: b 10398 3: c 10399 4: dd 10400 ** Failers 10401No match 10402 abcdde 10403No match 10404 10405/abcd*/ 10406 xxxxabcd\P 10407 0: abcd 10408 xxxxabcd\P\P 10409Partial match: abcd 10410 10411/abcd*/i 10412 xxxxabcd\P 10413 0: abcd 10414 xxxxabcd\P\P 10415Partial match: abcd 10416 XXXXABCD\P 10417 0: ABCD 10418 XXXXABCD\P\P 10419Partial match: ABCD 10420 10421/abc\d*/ 10422 xxxxabc1\P 10423 0: abc1 10424 xxxxabc1\P\P 10425Partial match: abc1 10426 10427/(a)bc\1*/ 10428 xxxxabca\P 10429 0: abca 10430 1: a 10431 xxxxabca\P\P 10432Partial match: abca 10433 10434/abc[de]*/ 10435 xxxxabcde\P 10436 0: abcde 10437 xxxxabcde\P\P 10438Partial match: abcde 10439 10440/-- This is not in the Perl-compatible test because Perl seems currently to be 10441 broken and not behaving as specified in that it *does* bumpalong after 10442 hitting (*COMMIT). --/ 10443 10444/(?1)(A(*COMMIT)|B)D/ 10445 ABD 10446 0: ABD 10447 1: B 10448 XABD 10449 0: ABD 10450 1: B 10451 BAD 10452 0: BAD 10453 1: A 10454 ABXABD 10455 0: ABD 10456 1: B 10457 ** Failers 10458No match 10459 ABX 10460No match 10461 BAXBAD 10462No match 10463 10464/(\3)(\1)(a)/<JS> 10465 cat 10466 0: a 10467 1: 10468 2: 10469 3: a 10470 10471/(\3)(\1)(a)/SI<JS> 10472Capturing subpattern count = 3 10473Max back reference = 3 10474Options: 10475No first char 10476Need char = 'a' 10477Subject length lower bound = 1 10478No starting char list 10479 cat 10480 0: a 10481 1: 10482 2: 10483 3: a 10484 10485/(\3)(\1)(a)/SI 10486Capturing subpattern count = 3 10487Max back reference = 3 10488No options 10489No first char 10490Need char = 'a' 10491Subject length lower bound = 3 10492No starting char list 10493 cat 10494No match 10495 10496/i(?(DEFINE)(?<s>a))/SI 10497Capturing subpattern count = 1 10498Named capturing subpatterns: 10499 s 1 10500No options 10501First char = 'i' 10502No need char 10503Subject length lower bound = 1 10504No starting char list 10505 i 10506 0: i 10507 10508/()i(?(1)a)/SI 10509Capturing subpattern count = 1 10510Max back reference = 1 10511No options 10512No first char 10513Need char = 'i' 10514Subject length lower bound = 1 10515Starting chars: i 10516 ia 10517 0: ia 10518 1: 10519 10520/(?i)a(?-i)b|c/BZ 10521------------------------------------------------------------------ 10522 Bra 10523 /i a 10524 b 10525 Alt 10526 c 10527 Ket 10528 End 10529------------------------------------------------------------------ 10530 XabX 10531 0: ab 10532 XAbX 10533 0: Ab 10534 CcC 10535 0: c 10536 ** Failers 10537No match 10538 XABX 10539No match 10540 10541/(?i)a(?s)b|c/BZ 10542------------------------------------------------------------------ 10543 Bra 10544 /i ab 10545 Alt 10546 /i c 10547 Ket 10548 End 10549------------------------------------------------------------------ 10550 10551/(?i)a(?s-i)b|c/BZ 10552------------------------------------------------------------------ 10553 Bra 10554 /i a 10555 b 10556 Alt 10557 c 10558 Ket 10559 End 10560------------------------------------------------------------------ 10561 10562/^(ab(c\1)d|x){2}$/BZ 10563------------------------------------------------------------------ 10564 Bra 10565 ^ 10566 Once 10567 CBra 1 10568 ab 10569 CBra 2 10570 c 10571 \1 10572 Ket 10573 d 10574 Alt 10575 x 10576 Ket 10577 Ket 10578 Once 10579 CBra 1 10580 ab 10581 CBra 2 10582 c 10583 \1 10584 Ket 10585 d 10586 Alt 10587 x 10588 Ket 10589 Ket 10590 $ 10591 Ket 10592 End 10593------------------------------------------------------------------ 10594 xabcxd 10595 0: xabcxd 10596 1: abcxd 10597 2: cx 10598 10599/^(?&t)*+(?(DEFINE)(?<t>.))$/BZ 10600------------------------------------------------------------------ 10601 Bra 10602 ^ 10603 Braposzero 10604 SBraPos 10605 Recurse 10606 KetRpos 10607 Cond 10608 Cond def 10609 CBra 1 10610 Any 10611 Ket 10612 Ket 10613 $ 10614 Ket 10615 End 10616------------------------------------------------------------------ 10617 10618/^(?&t)*(?(DEFINE)(?<t>.))$/BZ 10619------------------------------------------------------------------ 10620 Bra 10621 ^ 10622 Brazero 10623 Once 10624 Recurse 10625 KetRmax 10626 Cond 10627 Cond def 10628 CBra 1 10629 Any 10630 Ket 10631 Ket 10632 $ 10633 Ket 10634 End 10635------------------------------------------------------------------ 10636 10637/ -- This one is here because Perl gives the match as "b" rather than "ab". I 10638 believe this to be a Perl bug. --/ 10639 10640/(?>a\Kb)z|(ab)/ 10641 ab 10642 0: ab 10643 1: ab 10644 10645/(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/ 10646Failed: recursive call could loop indefinitely at offset 31 10647 10648/abc(*MARK:)pqr/ 10649Failed: (*MARK) must have an argument at offset 10 10650 10651/abc(*:)pqr/ 10652Failed: (*MARK) must have an argument at offset 6 10653 10654/abc(*FAIL:123)xyz/ 10655Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13 10656 10657/--- This should, and does, fail. In Perl, it does not, which I think is a 10658 bug because replacing the B in the pattern by (B|D) does make it fail. ---/ 10659 10660/A(*COMMIT)B/+K 10661 ACABX 10662No match 10663 10664/--- These should be different, but in Perl they are not, which I think 10665 is a bug in Perl. ---/ 10666 10667/A(*THEN)B|A(*THEN)C/K 10668 AC 10669 0: AC 10670 10671/A(*PRUNE)B|A(*PRUNE)C/K 10672 AC 10673No match 10674 10675/--- Mark names can be duplicated. Perl doesn't give a mark for this one, 10676though PCRE does. ---/ 10677 10678/^A(*:A)B|^X(*:A)Y/K 10679 ** Failers 10680No match 10681 XAQQ 10682No match, mark = A 10683 10684/--- COMMIT at the start of a pattern should be the same as an anchor. Perl 10685optimizations defeat this. So does the PCRE optimization unless we disable it 10686with \Y. ---/ 10687 10688/(*COMMIT)ABC/ 10689 ABCDEFG 10690 0: ABC 10691 ** Failers 10692No match 10693 DEFGABC\Y 10694No match 10695 10696/^(ab (c+(*THEN)cd) | xyz)/x 10697 abcccd 10698No match 10699 10700/^(ab (c+(*PRUNE)cd) | xyz)/x 10701 abcccd 10702No match 10703 10704/^(ab (c+(*FAIL)cd) | xyz)/x 10705 abcccd 10706No match 10707 10708/--- Perl gets some of these wrong ---/ 10709 10710/(?>.(*ACCEPT))*?5/ 10711 abcde 10712 0: a 10713 10714/(.(*ACCEPT))*?5/ 10715 abcde 10716 0: a 10717 1: a 10718 10719/(.(*ACCEPT))5/ 10720 abcde 10721 0: a 10722 1: a 10723 10724/(.(*ACCEPT))*5/ 10725 abcde 10726 0: a 10727 1: a 10728 10729/A\NB./BZ 10730------------------------------------------------------------------ 10731 Bra 10732 A 10733 Any 10734 B 10735 Any 10736 Ket 10737 End 10738------------------------------------------------------------------ 10739 ACBD 10740 0: ACBD 10741 *** Failers 10742No match 10743 A\nB 10744No match 10745 ACB\n 10746No match 10747 10748/A\NB./sBZ 10749------------------------------------------------------------------ 10750 Bra 10751 A 10752 Any 10753 B 10754 AllAny 10755 Ket 10756 End 10757------------------------------------------------------------------ 10758 ACBD 10759 0: ACBD 10760 ACB\n 10761 0: ACB\x0a 10762 *** Failers 10763No match 10764 A\nB 10765No match 10766 10767/A\NB/<crlf> 10768 A\nB 10769 0: A\x0aB 10770 A\rB 10771 0: A\x0dB 10772 ** Failers 10773No match 10774 A\r\nB 10775No match 10776 10777/\R+b/BZ 10778------------------------------------------------------------------ 10779 Bra 10780 \R++ 10781 b 10782 Ket 10783 End 10784------------------------------------------------------------------ 10785 10786/\R+\n/BZ 10787------------------------------------------------------------------ 10788 Bra 10789 \R+ 10790 \x0a 10791 Ket 10792 End 10793------------------------------------------------------------------ 10794 10795/\R+\d/BZ 10796------------------------------------------------------------------ 10797 Bra 10798 \R++ 10799 \d 10800 Ket 10801 End 10802------------------------------------------------------------------ 10803 10804/\d*\R/BZ 10805------------------------------------------------------------------ 10806 Bra 10807 \d*+ 10808 \R 10809 Ket 10810 End 10811------------------------------------------------------------------ 10812 10813/\s*\R/BZ 10814------------------------------------------------------------------ 10815 Bra 10816 \s* 10817 \R 10818 Ket 10819 End 10820------------------------------------------------------------------ 10821 \x20\x0a 10822 0: \x0a 10823 \x20\x0d 10824 0: \x0d 10825 \x20\x0d\x0a 10826 0: \x0d\x0a 10827 10828/\S*\R/BZ 10829------------------------------------------------------------------ 10830 Bra 10831 \S*+ 10832 \R 10833 Ket 10834 End 10835------------------------------------------------------------------ 10836 a\x0a 10837 0: a\x0a 10838 10839/X\h*\R/BZ 10840------------------------------------------------------------------ 10841 Bra 10842 X 10843 \h*+ 10844 \R 10845 Ket 10846 End 10847------------------------------------------------------------------ 10848 X\x20\x0a 10849 0: X \x0a 10850 10851/X\H*\R/BZ 10852------------------------------------------------------------------ 10853 Bra 10854 X 10855 \H* 10856 \R 10857 Ket 10858 End 10859------------------------------------------------------------------ 10860 X\x0d\x0a 10861 0: X\x0d\x0a 10862 10863/X\H+\R/BZ 10864------------------------------------------------------------------ 10865 Bra 10866 X 10867 \H+ 10868 \R 10869 Ket 10870 End 10871------------------------------------------------------------------ 10872 X\x0d\x0a 10873 0: X\x0d\x0a 10874 10875/X\H++\R/BZ 10876------------------------------------------------------------------ 10877 Bra 10878 X 10879 \H++ 10880 \R 10881 Ket 10882 End 10883------------------------------------------------------------------ 10884 X\x0d\x0a 10885No match 10886 10887/(?<=abc)def/ 10888 abc\P\P 10889Partial match at offset 3: abc 10890 10891/abc$/ 10892 abc 10893 0: abc 10894 abc\P 10895 0: abc 10896 abc\P\P 10897Partial match: abc 10898 10899/abc$/m 10900 abc 10901 0: abc 10902 abc\n 10903 0: abc 10904 abc\P\P 10905Partial match: abc 10906 abc\n\P\P 10907 0: abc 10908 abc\P 10909 0: abc 10910 abc\n\P 10911 0: abc 10912 10913/abc\z/ 10914 abc 10915 0: abc 10916 abc\P 10917 0: abc 10918 abc\P\P 10919Partial match: abc 10920 10921/abc\Z/ 10922 abc 10923 0: abc 10924 abc\P 10925 0: abc 10926 abc\P\P 10927Partial match: abc 10928 10929/abc\b/ 10930 abc 10931 0: abc 10932 abc\P 10933 0: abc 10934 abc\P\P 10935Partial match: abc 10936 10937/abc\B/ 10938 abc 10939No match 10940 abc\P 10941Partial match: abc 10942 abc\P\P 10943Partial match: abc 10944 10945/.+/ 10946 abc\>0 10947 0: abc 10948 abc\>1 10949 0: bc 10950 abc\>2 10951 0: c 10952 abc\>3 10953No match 10954 abc\>4 10955Error -24 (bad offset value) 10956 abc\>-4 10957Error -24 (bad offset value) 10958 10959/^\cģ/ 10960Failed: \c must be followed by an ASCII character at offset 3 10961 10962/(?P<abn>(?P=abn)xxx)/BZ 10963------------------------------------------------------------------ 10964 Bra 10965 Once 10966 CBra 1 10967 \1 10968 xxx 10969 Ket 10970 Ket 10971 Ket 10972 End 10973------------------------------------------------------------------ 10974 10975/(a\1z)/BZ 10976------------------------------------------------------------------ 10977 Bra 10978 Once 10979 CBra 1 10980 a 10981 \1 10982 z 10983 Ket 10984 Ket 10985 Ket 10986 End 10987------------------------------------------------------------------ 10988 10989/(?P<abn>(?P=abn)(?<badstufxxx)/BZ 10990Failed: syntax error in subpattern name (missing terminator) at offset 29 10991 10992/(?P<abn>(?P=axn)xxx)/BZ 10993Failed: reference to non-existent subpattern at offset 15 10994 10995/(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ 10996------------------------------------------------------------------ 10997 Bra 10998 CBra 1 10999 \2 11000 xxx 11001 Ket 11002 CBra 2 11003 yy 11004 Ket 11005 Ket 11006 End 11007------------------------------------------------------------------ 11008 11009/-- These tests are here because Perl gets the first one wrong. --/ 11010 11011/(\R*)(.)/s 11012 \r\n 11013 0: \x0d 11014 1: 11015 2: \x0d 11016 \r\r\n\n\r 11017 0: \x0d\x0d\x0a\x0a\x0d 11018 1: \x0d\x0d\x0a\x0a 11019 2: \x0d 11020 \r\r\n\n\r\n 11021 0: \x0d\x0d\x0a\x0a\x0d 11022 1: \x0d\x0d\x0a\x0a 11023 2: \x0d 11024 11025/(\R)*(.)/s 11026 \r\n 11027 0: \x0d 11028 1: <unset> 11029 2: \x0d 11030 \r\r\n\n\r 11031 0: \x0d\x0d\x0a\x0a\x0d 11032 1: \x0a 11033 2: \x0d 11034 \r\r\n\n\r\n 11035 0: \x0d\x0d\x0a\x0a\x0d 11036 1: \x0a 11037 2: \x0d 11038 11039/((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s 11040 \r\n 11041 0: \x0d 11042 1: 11043 2: \x0d 11044 \r\r\n\n\r 11045 0: \x0d\x0d\x0a\x0a\x0d 11046 1: \x0d\x0d\x0a\x0a 11047 2: \x0d 11048 \r\r\n\n\r\n 11049 0: \x0d\x0d\x0a\x0a\x0d 11050 1: \x0d\x0d\x0a\x0a 11051 2: \x0d 11052 11053/-- --/ 11054 11055/^abc$/BZ 11056------------------------------------------------------------------ 11057 Bra 11058 ^ 11059 abc 11060 $ 11061 Ket 11062 End 11063------------------------------------------------------------------ 11064 11065/^abc$/BZm 11066------------------------------------------------------------------ 11067 Bra 11068 /m ^ 11069 abc 11070 /m $ 11071 Ket 11072 End 11073------------------------------------------------------------------ 11074 11075/^(a)*+(\w)/S 11076 aaaaX 11077 0: aaaaX 11078 1: a 11079 2: X 11080 ** Failers 11081No match 11082 aaaa 11083No match 11084 11085/^(?:a)*+(\w)/S 11086 aaaaX 11087 0: aaaaX 11088 1: X 11089 ** Failers 11090No match 11091 aaaa 11092No match 11093 11094/(a)++1234/SDZ 11095------------------------------------------------------------------ 11096 Bra 11097 CBraPos 1 11098 a 11099 KetRpos 11100 1234 11101 Ket 11102 End 11103------------------------------------------------------------------ 11104Capturing subpattern count = 1 11105No options 11106First char = 'a' 11107Need char = '4' 11108Subject length lower bound = 5 11109No starting char list 11110 11111/([abc])++1234/SI 11112Capturing subpattern count = 1 11113No options 11114No first char 11115Need char = '4' 11116Subject length lower bound = 5 11117Starting chars: a b c 11118 11119/(?<=(abc)+)X/ 11120Failed: lookbehind assertion is not fixed length at offset 10 11121 11122/(^ab)/I 11123Capturing subpattern count = 1 11124Options: anchored 11125No first char 11126No need char 11127 11128/(^ab)++/I 11129Capturing subpattern count = 1 11130Options: anchored 11131No first char 11132No need char 11133 11134/(^ab|^)+/I 11135Capturing subpattern count = 1 11136May match empty string 11137Options: anchored 11138No first char 11139No need char 11140 11141/(^ab|^)++/I 11142Capturing subpattern count = 1 11143May match empty string 11144Options: anchored 11145No first char 11146No need char 11147 11148/(?:^ab)/I 11149Capturing subpattern count = 0 11150Options: anchored 11151No first char 11152No need char 11153 11154/(?:^ab)++/I 11155Capturing subpattern count = 0 11156Options: anchored 11157No first char 11158No need char 11159 11160/(?:^ab|^)+/I 11161Capturing subpattern count = 0 11162May match empty string 11163Options: anchored 11164No first char 11165No need char 11166 11167/(?:^ab|^)++/I 11168Capturing subpattern count = 0 11169May match empty string 11170Options: anchored 11171No first char 11172No need char 11173 11174/(.*ab)/I 11175Capturing subpattern count = 1 11176No options 11177First char at start or follows newline 11178Need char = 'b' 11179 11180/(.*ab)++/I 11181Capturing subpattern count = 1 11182No options 11183First char at start or follows newline 11184Need char = 'b' 11185 11186/(.*ab|.*)+/I 11187Capturing subpattern count = 1 11188May match empty string 11189No options 11190First char at start or follows newline 11191No need char 11192 11193/(.*ab|.*)++/I 11194Capturing subpattern count = 1 11195May match empty string 11196No options 11197First char at start or follows newline 11198No need char 11199 11200/(?:.*ab)/I 11201Capturing subpattern count = 0 11202No options 11203First char at start or follows newline 11204Need char = 'b' 11205 11206/(?:.*ab)++/I 11207Capturing subpattern count = 0 11208No options 11209First char at start or follows newline 11210Need char = 'b' 11211 11212/(?:.*ab|.*)+/I 11213Capturing subpattern count = 0 11214May match empty string 11215No options 11216First char at start or follows newline 11217No need char 11218 11219/(?:.*ab|.*)++/I 11220Capturing subpattern count = 0 11221May match empty string 11222No options 11223First char at start or follows newline 11224No need char 11225 11226/(?=a)[bcd]/I 11227Capturing subpattern count = 0 11228No options 11229First char = 'a' 11230No need char 11231 11232/((?=a))[bcd]/I 11233Capturing subpattern count = 1 11234No options 11235First char = 'a' 11236No need char 11237 11238/((?=a))+[bcd]/I 11239Capturing subpattern count = 1 11240No options 11241First char = 'a' 11242No need char 11243 11244/((?=a))++[bcd]/I 11245Capturing subpattern count = 1 11246No options 11247First char = 'a' 11248No need char 11249 11250/(?=a+)[bcd]/iI 11251Capturing subpattern count = 0 11252Options: caseless 11253First char = 'a' (caseless) 11254No need char 11255 11256/(?=a+?)[bcd]/iI 11257Capturing subpattern count = 0 11258Options: caseless 11259First char = 'a' (caseless) 11260No need char 11261 11262/(?=a++)[bcd]/iI 11263Capturing subpattern count = 0 11264Options: caseless 11265First char = 'a' (caseless) 11266No need char 11267 11268/(?=a{3})[bcd]/iI 11269Capturing subpattern count = 0 11270Options: caseless 11271First char = 'a' (caseless) 11272Need char = 'a' (caseless) 11273 11274/(abc)\1+/S 11275 11276/-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/ 11277 11278/(?1)(?:(b(*ACCEPT))){0}/ 11279 b 11280 0: b 11281 11282/(?1)(?:(b(*ACCEPT))){0}c/ 11283 bc 11284 0: bc 11285 ** Failers 11286No match 11287 b 11288No match 11289 11290/(?1)(?:((*ACCEPT))){0}c/ 11291 c 11292 0: c 11293 c\N 11294 0: c 11295 11296/^.*?(?(?=a)a|b(*THEN)c)/ 11297 ba 11298No match 11299 11300/^.*?(?(?=a)a|bc)/ 11301 ba 11302 0: ba 11303 11304/^.*?(?(?=a)a(*THEN)b|c)/ 11305 ac 11306No match 11307 11308/^.*?(?(?=a)a(*THEN)b)c/ 11309 ac 11310No match 11311 11312/^.*?(a(*THEN)b)c/ 11313 aabc 11314No match 11315 11316/^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x 11317 aabc 11318 0: aabc 11319 11320/^.*?(a(*THEN)b|z)c/ 11321 aabc 11322 0: aabc 11323 1: ab 11324 11325/^.*?(z|a(*THEN)b)c/ 11326 aabc 11327 0: aabc 11328 1: ab 11329 11330/-- --/ 11331 11332/-- These studied versions are here because they are not Perl-compatible; the 11333 studying means the mark is not seen. --/ 11334 11335/(*MARK:A)(*SKIP:B)(C|X)/KS 11336 C 11337 0: C 11338 1: C 11339MK: A 11340 D 11341No match, mark = A 11342 11343/(*:A)A+(*SKIP:A)(B|Z)/KS 11344 AAAC 11345No match, mark = A 11346 11347/-- --/ 11348 11349"(?=a*(*ACCEPT)b)c" 11350 c 11351 0: c 11352 c\N 11353 0: c 11354 11355/(?1)c(?(DEFINE)((*ACCEPT)b))/ 11356 c 11357 0: c 11358 c\N 11359 0: c 11360 11361/(?>(*ACCEPT)b)c/ 11362 c 11363 0: 11364 c\N 11365No match 11366 11367/(?:(?>(a)))+a%/++ 11368 %aa% 11369 0: aa% 11370 0+ 11371 1: a 11372 1+ a% 11373 11374/(a)b|ac/++SS 11375 ac\O3 11376 0: ac 11377 0+ 11378 11379/(a)(b)x|abc/++ 11380 abc\O6 11381 0: abc 11382 0+ 11383 11384/(a)bc|(a)(b)\2/ 11385 \O3abc 11386Matched, but too many substrings 11387 0: abc 11388 \O4abc 11389Matched, but too many substrings 11390 0: abc 11391 11392/(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI 11393Capturing subpattern count = 2 11394No options 11395No first char 11396No need char 11397Subject length lower bound = 1 11398No starting char list 11399 11400/(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI 11401Capturing subpattern count = 2 11402No options 11403No first char 11404No need char 11405Subject length lower bound = 3 11406Starting chars: a b 11407 11408/(a(?2)|b)(b(?1)|a)(?1)(?2)/SI 11409Capturing subpattern count = 2 11410No options 11411No first char 11412No need char 11413Subject length lower bound = 4 11414Starting chars: a b 11415 11416/(abc)(?1)/SI 11417Capturing subpattern count = 1 11418No options 11419First char = 'a' 11420Need char = 'c' 11421Subject length lower bound = 6 11422No starting char list 11423 11424/^(?>a)++/ 11425 aa\M 11426Minimum match() limit = 5 11427Minimum match() recursion limit = 2 11428 0: aa 11429 aaaaaaaaa\M 11430Minimum match() limit = 12 11431Minimum match() recursion limit = 2 11432 0: aaaaaaaaa 11433 11434/(a)(?1)++/ 11435 aa\M 11436Minimum match() limit = 7 11437Minimum match() recursion limit = 4 11438 0: aa 11439 1: a 11440 aaaaaaaaa\M 11441Minimum match() limit = 21 11442Minimum match() recursion limit = 4 11443 0: aaaaaaaaa 11444 1: a 11445 11446/(?:(foo)|(bar)|(baz))X/SS= 11447 bazfooX 11448 0: fooX 11449 1: foo 11450 2: <unset> 11451 3: <unset> 11452 foobazbarX 11453 0: barX 11454 1: <unset> 11455 2: bar 11456 3: <unset> 11457 barfooX 11458 0: fooX 11459 1: foo 11460 2: <unset> 11461 3: <unset> 11462 bazX 11463 0: bazX 11464 1: <unset> 11465 2: <unset> 11466 3: baz 11467 foobarbazX 11468 0: bazX 11469 1: <unset> 11470 2: <unset> 11471 3: baz 11472 bazfooX\O0 11473Matched, but too many substrings 11474 bazfooX\O2 11475Matched, but too many substrings 11476 0: fooX 11477 bazfooX\O4 11478Matched, but too many substrings 11479 0: fooX 11480 1: <unset> 11481 bazfooX\O6 11482Matched, but too many substrings 11483 0: fooX 11484 1: foo 11485 2: <unset> 11486 bazfooX\O8 11487Matched, but too many substrings 11488 0: fooX 11489 1: foo 11490 2: <unset> 11491 3: <unset> 11492 bazfooX\O10 11493 0: fooX 11494 1: foo 11495 2: <unset> 11496 3: <unset> 11497 11498/(?=abc){3}abc/BZ 11499------------------------------------------------------------------ 11500 Bra 11501 Assert 11502 abc 11503 Ket 11504 abc 11505 Ket 11506 End 11507------------------------------------------------------------------ 11508 11509/(?=abc)+abc/BZ 11510------------------------------------------------------------------ 11511 Bra 11512 Assert 11513 abc 11514 Ket 11515 abc 11516 Ket 11517 End 11518------------------------------------------------------------------ 11519 11520/(?=abc)++abc/BZ 11521------------------------------------------------------------------ 11522 Bra 11523 Assert 11524 abc 11525 Ket 11526 abc 11527 Ket 11528 End 11529------------------------------------------------------------------ 11530 11531/(?=abc){0}xyz/BZ 11532------------------------------------------------------------------ 11533 Bra 11534 Skip zero 11535 Assert 11536 abc 11537 Ket 11538 xyz 11539 Ket 11540 End 11541------------------------------------------------------------------ 11542 11543/(?=(a))?./BZ 11544------------------------------------------------------------------ 11545 Bra 11546 Brazero 11547 Assert 11548 CBra 1 11549 a 11550 Ket 11551 Ket 11552 Any 11553 Ket 11554 End 11555------------------------------------------------------------------ 11556 11557/(?=(a))??./BZ 11558------------------------------------------------------------------ 11559 Bra 11560 Braminzero 11561 Assert 11562 CBra 1 11563 a 11564 Ket 11565 Ket 11566 Any 11567 Ket 11568 End 11569------------------------------------------------------------------ 11570 11571/^(?=(a)){0}b(?1)/BZ 11572------------------------------------------------------------------ 11573 Bra 11574 ^ 11575 Skip zero 11576 Assert 11577 CBra 1 11578 a 11579 Ket 11580 Ket 11581 b 11582 Recurse 11583 Ket 11584 End 11585------------------------------------------------------------------ 11586 11587/(?(DEFINE)(a))?b(?1)/BZ 11588------------------------------------------------------------------ 11589 Bra 11590 Cond 11591 Cond def 11592 CBra 1 11593 a 11594 Ket 11595 Ket 11596 b 11597 Recurse 11598 Ket 11599 End 11600------------------------------------------------------------------ 11601 11602/^(?=(?1))?[az]([abc])d/BZ 11603------------------------------------------------------------------ 11604 Bra 11605 ^ 11606 Brazero 11607 Assert 11608 Recurse 11609 Ket 11610 [az] 11611 CBra 1 11612 [a-c] 11613 Ket 11614 d 11615 Ket 11616 End 11617------------------------------------------------------------------ 11618 11619/^(?!a){0}\w+/BZ 11620------------------------------------------------------------------ 11621 Bra 11622 ^ 11623 Skip zero 11624 Assert not 11625 a 11626 Ket 11627 \w++ 11628 Ket 11629 End 11630------------------------------------------------------------------ 11631 11632/(?<=(abc))?xyz/BZ 11633------------------------------------------------------------------ 11634 Bra 11635 Brazero 11636 AssertB 11637 Reverse 11638 CBra 1 11639 abc 11640 Ket 11641 Ket 11642 xyz 11643 Ket 11644 End 11645------------------------------------------------------------------ 11646 11647/[:a[:abc]b:]/BZ 11648------------------------------------------------------------------ 11649 Bra 11650 [:[a-c] 11651 b:] 11652 Ket 11653 End 11654------------------------------------------------------------------ 11655 11656/((?2))((?1))/SS 11657 abc 11658Error -26 (nested recursion at the same subject position) 11659 11660/((?(R2)a+|(?1)b))/SS 11661 aaaabcde 11662Error -26 (nested recursion at the same subject position) 11663 11664/(?(R)a*(?1)|((?R))b)/SS 11665 aaaabcde 11666Error -26 (nested recursion at the same subject position) 11667 11668/(a+|(?R)b)/ 11669Failed: recursive call could loop indefinitely at offset 7 11670 11671/^(a(*:A)(d|e(*:B))z|aeq)/C 11672 adz 11673--->adz 11674 +0 ^ ^ 11675 +1 ^ (a(*:A)(d|e(*:B))z|aeq) 11676 +2 ^ a 11677 +3 ^^ (*:A) 11678 +8 ^^ (d|e(*:B)) 11679Latest Mark: A 11680 +9 ^^ d 11681+10 ^ ^ | 11682+18 ^ ^ z 11683+19 ^ ^ | 11684+24 ^ ^ 11685 0: adz 11686 1: adz 11687 2: d 11688 aez 11689--->aez 11690 +0 ^ ^ 11691 +1 ^ (a(*:A)(d|e(*:B))z|aeq) 11692 +2 ^ a 11693 +3 ^^ (*:A) 11694 +8 ^^ (d|e(*:B)) 11695Latest Mark: A 11696 +9 ^^ d 11697+11 ^^ e 11698+12 ^ ^ (*:B) 11699+17 ^ ^ ) 11700Latest Mark: B 11701+18 ^ ^ z 11702+19 ^ ^ | 11703+24 ^ ^ 11704 0: aez 11705 1: aez 11706 2: e 11707 aeqwerty 11708--->aeqwerty 11709 +0 ^ ^ 11710 +1 ^ (a(*:A)(d|e(*:B))z|aeq) 11711 +2 ^ a 11712 +3 ^^ (*:A) 11713 +8 ^^ (d|e(*:B)) 11714Latest Mark: A 11715 +9 ^^ d 11716+11 ^^ e 11717+12 ^ ^ (*:B) 11718+17 ^ ^ ) 11719Latest Mark: B 11720+18 ^ ^ z 11721+20 ^ a 11722+21 ^^ e 11723+22 ^ ^ q 11724+23 ^ ^ ) 11725+24 ^ ^ 11726 0: aeq 11727 1: aeq 11728 11729/.(*F)/ 11730 \P\Pabc 11731No match 11732 11733/\btype\b\W*?\btext\b\W*?\bjavascript\b/IS 11734Capturing subpattern count = 0 11735Max lookbehind = 1 11736No options 11737First char = 't' 11738Need char = 't' 11739Subject length lower bound = 18 11740No starting char list 11741 11742/\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS 11743Capturing subpattern count = 0 11744Max lookbehind = 1 11745No options 11746No first char 11747No need char 11748Subject length lower bound = 8 11749Starting chars: < o t u 11750 11751/a(*SKIP)c|b(*ACCEPT)|/+S!I 11752Capturing subpattern count = 0 11753May match empty string 11754No options 11755No first char 11756No need char 11757Subject length lower bound = -1 11758No starting char list 11759 a 11760 0: 11761 0+ 11762 11763/a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI 11764Capturing subpattern count = 0 11765No options 11766No first char 11767No need char 11768Subject length lower bound = -1 11769Starting chars: a b x 11770 ax 11771 0: x 11772 11773'a*(*ACCEPT)b'+ 11774 \N\N 11775No match 11776 abc\N\N 11777 0: a 11778 0+ bc 11779 bbb\N\N 11780 0: 11781 0+ bb 11782 11783/(*ACCEPT)a/+I 11784Capturing subpattern count = 0 11785No options 11786No first char 11787No need char 11788 bax 11789 0: 11790 0+ bax 11791 11792/z(*ACCEPT)a/+I 11793Capturing subpattern count = 0 11794No options 11795First char = 'z' 11796No need char 11797 baxzbx 11798 0: z 11799 0+ bx 11800 11801/a(?:.)*?a/ims 11802 \Mabbbbbbbbbbbbbbbbbbbbba 11803Minimum match() limit = 65 11804Minimum match() recursion limit = 2 11805 0: abbbbbbbbbbbbbbbbbbbbba 11806 11807/a(?:.(*THEN))*?a/ims 11808 \Mabbbbbbbbbbbbbbbbbbbbba 11809Minimum match() limit = 86 11810Minimum match() recursion limit = 45 11811 0: abbbbbbbbbbbbbbbbbbbbba 11812 11813/a(?:.(*THEN:ABC))*?a/ims 11814 \Mabbbbbbbbbbbbbbbbbbbbba 11815Minimum match() limit = 86 11816Minimum match() recursion limit = 45 11817 0: abbbbbbbbbbbbbbbbbbbbba 11818 11819/^(?>a+)(?>(z+))\w/BZ 11820------------------------------------------------------------------ 11821 Bra 11822 ^ 11823 Once_NC 11824 a++ 11825 Ket 11826 Once 11827 CBra 1 11828 z++ 11829 Ket 11830 Ket 11831 \w 11832 Ket 11833 End 11834------------------------------------------------------------------ 11835 aaaazzzzb 11836 0: aaaazzzzb 11837 1: zzzz 11838 ** Failers 11839No match 11840 aazz 11841No match 11842 11843/(.)(\1|a(?2))/ 11844 bab 11845 0: bab 11846 1: b 11847 2: ab 11848 11849/\1|(.)(?R)\1/ 11850 cbbbc 11851 0: cbbbc 11852 1: c 11853 11854/(.)((?(1)c|a)|a(?2))/ 11855 baa 11856No match 11857 11858/(?P<abn>(?P=abn)xxx)/BZ 11859------------------------------------------------------------------ 11860 Bra 11861 Once 11862 CBra 1 11863 \1 11864 xxx 11865 Ket 11866 Ket 11867 Ket 11868 End 11869------------------------------------------------------------------ 11870 11871/(a\1z)/BZ 11872------------------------------------------------------------------ 11873 Bra 11874 Once 11875 CBra 1 11876 a 11877 \1 11878 z 11879 Ket 11880 Ket 11881 Ket 11882 End 11883------------------------------------------------------------------ 11884 11885/^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/ 11886 \Maabbccddee 11887Minimum match() limit = 7 11888Minimum match() recursion limit = 2 11889 0: aabbccddee 11890 11891/^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/ 11892 \Maabbccddee 11893Minimum match() limit = 17 11894Minimum match() recursion limit = 16 11895 0: aabbccddee 11896 1: aa 11897 2: bb 11898 3: cc 11899 4: dd 11900 5: ee 11901 11902/^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/ 11903 \Maabbccddee 11904Minimum match() limit = 13 11905Minimum match() recursion limit = 10 11906 0: aabbccddee 11907 1: aa 11908 2: cc 11909 3: ee 11910 11911/^a\x41z/<JS> 11912 aAz 11913 0: aAz 11914 *** Failers 11915No match 11916 ax41z 11917No match 11918 11919/^a[m\x41]z/<JS> 11920 aAz 11921 0: aAz 11922 11923/^a\x1z/<JS> 11924 ax1z 11925 0: ax1z 11926 11927/^a\u0041z/<JS> 11928 aAz 11929 0: aAz 11930 *** Failers 11931No match 11932 au0041z 11933No match 11934 11935/^a[m\u0041]z/<JS> 11936 aAz 11937 0: aAz 11938 11939/^a\u041z/<JS> 11940 au041z 11941 0: au041z 11942 *** Failers 11943No match 11944 aAz 11945No match 11946 11947/^a\U0041z/<JS> 11948 aU0041z 11949 0: aU0041z 11950 *** Failers 11951No match 11952 aAz 11953No match 11954 11955/(?(?=c)c|d)++Y/BZ 11956------------------------------------------------------------------ 11957 Bra 11958 BraPos 11959 Cond 11960 Assert 11961 c 11962 Ket 11963 c 11964 Alt 11965 d 11966 Ket 11967 KetRpos 11968 Y 11969 Ket 11970 End 11971------------------------------------------------------------------ 11972 11973/(?(?=c)c|d)*+Y/BZ 11974------------------------------------------------------------------ 11975 Bra 11976 Braposzero 11977 BraPos 11978 Cond 11979 Assert 11980 c 11981 Ket 11982 c 11983 Alt 11984 d 11985 Ket 11986 KetRpos 11987 Y 11988 Ket 11989 End 11990------------------------------------------------------------------ 11991 11992/a[\NB]c/ 11993Failed: \N is not supported in a class at offset 3 11994 11995/a[B-\Nc]/ 11996Failed: invalid range in character class at offset 5 11997 11998/a[B\Nc]/ 11999Failed: \N is not supported in a class at offset 4 12000 12001/(a)(?2){0,1999}?(b)/ 12002 12003/(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/ 12004 12005/--- This test, with something more complicated than individual letters, causes 12006different behaviour in Perl. Perhaps it disables some optimization; no tag is 12007passed back for the failures, whereas in PCRE there is a tag. ---/ 12008 12009/(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK 12010 AABC 12011 0: AB 12012 1: A 12013 2: B 12014MK: A 12015 XXYZ 12016 0: XXY 12017 1: <unset> 12018 2: <unset> 12019 3: X 12020 4: X 12021 5: Y 12022MK: B 12023 ** Failers 12024No match 12025 XAQQ 12026No match, mark = A 12027 XAQQXZZ 12028No match, mark = A 12029 AXQQQ 12030No match, mark = A 12031 AXXQQQ 12032No match, mark = B 12033 12034/-- Perl doesn't give marks for these, though it does if the alternatives are 12035replaced by single letters. --/ 12036 12037/(b|q)(*:m)f|a(*:n)w/K 12038 aw 12039 0: aw 12040MK: n 12041 ** Failers 12042No match, mark = n 12043 abc 12044No match, mark = m 12045 12046/(q|b)(*:m)f|a(*:n)w/K 12047 aw 12048 0: aw 12049MK: n 12050 ** Failers 12051No match, mark = n 12052 abc 12053No match, mark = m 12054 12055/-- After a partial match, the behaviour is as for a failure. --/ 12056 12057/^a(*:X)bcde/K 12058 abc\P 12059Partial match, mark=X: abc 12060 12061/-- These are here because Perl doesn't return a mark, except for the first --/ 12062 12063/(?=(*:x))(q|)/K+ 12064 abc 12065 0: 12066 0+ abc 12067 1: 12068MK: x 12069 12070/(?=(*:x))((*:y)q|)/K+ 12071 abc 12072 0: 12073 0+ abc 12074 1: 12075MK: x 12076 12077/(?=(*:x))(?:(*:y)q|)/K+ 12078 abc 12079 0: 12080 0+ abc 12081MK: x 12082 12083/(?=(*:x))(?>(*:y)q|)/K+ 12084 abc 12085 0: 12086 0+ abc 12087MK: x 12088 12089/(?=a(*:x))(?!a(*:y)c)/K+ 12090 ab 12091 0: 12092 0+ ab 12093MK: x 12094 12095/(?=a(*:x))(?=a(*:y)c|)/K+ 12096 ab 12097 0: 12098 0+ ab 12099MK: x 12100 12101/(..)\1/ 12102 ab\P 12103Partial match: ab 12104 aba\P 12105Partial match: aba 12106 abab\P 12107 0: abab 12108 1: ab 12109 12110/(..)\1/i 12111 ab\P 12112Partial match: ab 12113 abA\P 12114Partial match: abA 12115 aBAb\P 12116 0: aBAb 12117 1: aB 12118 12119/(..)\1{2,}/ 12120 ab\P 12121Partial match: ab 12122 aba\P 12123Partial match: aba 12124 abab\P 12125Partial match: abab 12126 ababa\P 12127Partial match: ababa 12128 ababab\P 12129 0: ababab 12130 1: ab 12131 ababab\P\P 12132Partial match: ababab 12133 abababa\P 12134 0: ababab 12135 1: ab 12136 abababa\P\P 12137Partial match: abababa 12138 12139/(..)\1{2,}/i 12140 ab\P 12141Partial match: ab 12142 aBa\P 12143Partial match: aBa 12144 aBAb\P 12145Partial match: aBAb 12146 AbaBA\P 12147Partial match: AbaBA 12148 abABAb\P 12149 0: abABAb 12150 1: ab 12151 aBAbaB\P\P 12152Partial match: aBAbaB 12153 abABabA\P 12154 0: abABab 12155 1: ab 12156 abaBABa\P\P 12157Partial match: abaBABa 12158 12159/(..)\1{2,}?x/i 12160 ab\P 12161Partial match: ab 12162 abA\P 12163Partial match: abA 12164 aBAb\P 12165Partial match: aBAb 12166 abaBA\P 12167Partial match: abaBA 12168 abAbaB\P 12169Partial match: abAbaB 12170 abaBabA\P 12171Partial match: abaBabA 12172 abAbABaBx\P 12173 0: abAbABaBx 12174 1: ab 12175 12176/^(..)\1/ 12177 aba\P 12178Partial match: aba 12179 12180/^(..)\1{2,3}x/ 12181 aba\P 12182Partial match: aba 12183 ababa\P 12184Partial match: ababa 12185 ababa\P\P 12186Partial match: ababa 12187 abababx 12188 0: abababx 12189 1: ab 12190 ababababx 12191 0: ababababx 12192 1: ab 12193 12194/^(..)\1{2,3}?x/ 12195 aba\P 12196Partial match: aba 12197 ababa\P 12198Partial match: ababa 12199 ababa\P\P 12200Partial match: ababa 12201 abababx 12202 0: abababx 12203 1: ab 12204 ababababx 12205 0: ababababx 12206 1: ab 12207 12208/^(..)(\1{2,3})ab/ 12209 abababab 12210 0: abababab 12211 1: ab 12212 2: abab 12213 12214/^\R/ 12215 \r\P 12216 0: \x0d 12217 \r\P\P 12218Partial match: \x0d 12219 12220/^\R{2,3}x/ 12221 \r\P 12222Partial match: \x0d 12223 \r\P\P 12224Partial match: \x0d 12225 \r\r\P 12226Partial match: \x0d\x0d 12227 \r\r\P\P 12228Partial match: \x0d\x0d 12229 \r\r\r\P 12230Partial match: \x0d\x0d\x0d 12231 \r\r\r\P\P 12232Partial match: \x0d\x0d\x0d 12233 \r\rx 12234 0: \x0d\x0dx 12235 \r\r\rx 12236 0: \x0d\x0d\x0dx 12237 12238/^\R{2,3}?x/ 12239 \r\P 12240Partial match: \x0d 12241 \r\P\P 12242Partial match: \x0d 12243 \r\r\P 12244Partial match: \x0d\x0d 12245 \r\r\P\P 12246Partial match: \x0d\x0d 12247 \r\r\r\P 12248Partial match: \x0d\x0d\x0d 12249 \r\r\r\P\P 12250Partial match: \x0d\x0d\x0d 12251 \r\rx 12252 0: \x0d\x0dx 12253 \r\r\rx 12254 0: \x0d\x0d\x0dx 12255 12256/^\R?x/ 12257 \r\P 12258Partial match: \x0d 12259 \r\P\P 12260Partial match: \x0d 12261 x 12262 0: x 12263 \rx 12264 0: \x0dx 12265 12266/^\R+x/ 12267 \r\P 12268Partial match: \x0d 12269 \r\P\P 12270Partial match: \x0d 12271 \r\n\P 12272Partial match: \x0d\x0a 12273 \r\n\P\P 12274Partial match: \x0d\x0a 12275 \rx 12276 0: \x0dx 12277 12278/^a$/<CRLF> 12279 a\r\P 12280Partial match: a\x0d 12281 a\r\P\P 12282Partial match: a\x0d 12283 12284/^a$/m<CRLF> 12285 a\r\P 12286Partial match: a\x0d 12287 a\r\P\P 12288Partial match: a\x0d 12289 12290/^(a$|a\r)/<CRLF> 12291 a\r\P 12292 0: a\x0d 12293 1: a\x0d 12294 a\r\P\P 12295Partial match: a\x0d 12296 12297/^(a$|a\r)/m<CRLF> 12298 a\r\P 12299 0: a\x0d 12300 1: a\x0d 12301 a\r\P\P 12302Partial match: a\x0d 12303 12304/./<CRLF> 12305 \r\P 12306 0: \x0d 12307 \r\P\P 12308Partial match: \x0d 12309 12310/.{2,3}/<CRLF> 12311 \r\P 12312Partial match: \x0d 12313 \r\P\P 12314Partial match: \x0d 12315 \r\r\P 12316 0: \x0d\x0d 12317 \r\r\P\P 12318Partial match: \x0d\x0d 12319 \r\r\r\P 12320 0: \x0d\x0d\x0d 12321 \r\r\r\P\P 12322Partial match: \x0d\x0d\x0d 12323 12324/.{2,3}?/<CRLF> 12325 \r\P 12326Partial match: \x0d 12327 \r\P\P 12328Partial match: \x0d 12329 \r\r\P 12330 0: \x0d\x0d 12331 \r\r\P\P 12332Partial match: \x0d\x0d 12333 \r\r\r\P 12334 0: \x0d\x0d 12335 \r\r\r\P\P 12336 0: \x0d\x0d 12337 12338"AB(C(D))(E(F))?(?(?=\2)(?=\4))" 12339 ABCDGHI\O03 12340Matched, but too many substrings 12341 0: ABCD 12342 12343/-- These are all run as real matches in test 1; here we are just checking the 12344settings of the anchored and startline bits. --/ 12345 12346/(?>.*?a)(?<=ba)/I 12347Capturing subpattern count = 0 12348Max lookbehind = 2 12349No options 12350No first char 12351Need char = 'a' 12352 12353/(?:.*?a)(?<=ba)/I 12354Capturing subpattern count = 0 12355Max lookbehind = 2 12356No options 12357First char at start or follows newline 12358Need char = 'a' 12359 12360/.*?a(*PRUNE)b/I 12361Capturing subpattern count = 0 12362No options 12363No first char 12364Need char = 'b' 12365 12366/.*?a(*PRUNE)b/sI 12367Capturing subpattern count = 0 12368Options: dotall 12369No first char 12370Need char = 'b' 12371 12372/^a(*PRUNE)b/sI 12373Capturing subpattern count = 0 12374Options: anchored dotall 12375No first char 12376No need char 12377 12378/.*?a(*SKIP)b/I 12379Capturing subpattern count = 0 12380No options 12381No first char 12382Need char = 'b' 12383 12384/(?>.*?a)b/sI 12385Capturing subpattern count = 0 12386Options: dotall 12387No first char 12388Need char = 'b' 12389 12390/(?>.*?a)b/I 12391Capturing subpattern count = 0 12392No options 12393No first char 12394Need char = 'b' 12395 12396/(?>^a)b/sI 12397Capturing subpattern count = 0 12398Options: anchored dotall 12399No first char 12400No need char 12401 12402/(?>.*?)(?<=(abcd)|(wxyz))/I 12403Capturing subpattern count = 2 12404Max lookbehind = 4 12405May match empty string 12406No options 12407No first char 12408No need char 12409 12410/(?>.*)(?<=(abcd)|(wxyz))/I 12411Capturing subpattern count = 2 12412Max lookbehind = 4 12413May match empty string 12414No options 12415No first char 12416No need char 12417 12418"(?>.*)foo"I 12419Capturing subpattern count = 0 12420No options 12421No first char 12422Need char = 'o' 12423 12424"(?>.*?)foo"I 12425Capturing subpattern count = 0 12426No options 12427No first char 12428Need char = 'o' 12429 12430/(?>^abc)/mI 12431Capturing subpattern count = 0 12432Options: multiline 12433First char at start or follows newline 12434Need char = 'c' 12435 12436/(?>.*abc)/mI 12437Capturing subpattern count = 0 12438Options: multiline 12439No first char 12440Need char = 'c' 12441 12442/(?:.*abc)/mI 12443Capturing subpattern count = 0 12444Options: multiline 12445First char at start or follows newline 12446Need char = 'c' 12447 12448/-- Check PCRE_STUDY_EXTRA_NEEDED --/ 12449 12450/.?/S-I 12451Capturing subpattern count = 0 12452May match empty string 12453No options 12454No first char 12455No need char 12456Study returned NULL 12457 12458/.?/S!I 12459Capturing subpattern count = 0 12460May match empty string 12461No options 12462No first char 12463No need char 12464Subject length lower bound = -1 12465No starting char list 12466 12467/(?:(a)+(?C1)bb|aa(?C2)b)/ 12468 aab\C+ 12469Callout 1: last capture = 1 12470 0: <unset> 12471 1: a 12472--->aab 12473 ^ ^ b 12474Callout 1: last capture = 1 12475 0: <unset> 12476 1: a 12477--->aab 12478 ^^ b 12479Callout 2: last capture = -1 12480 0: <unset> 12481--->aab 12482 ^ ^ b 12483 0: aab 12484 12485/(?:(a)++(?C1)bb|aa(?C2)b)/ 12486 aab\C+ 12487Callout 1: last capture = 1 12488 0: <unset> 12489 1: a 12490--->aab 12491 ^ ^ b 12492Callout 2: last capture = -1 12493 0: <unset> 12494--->aab 12495 ^ ^ b 12496 0: aab 12497 12498/(?:(?>(a))(?C1)bb|aa(?C2)b)/ 12499 aab\C+ 12500Callout 1: last capture = 1 12501 0: <unset> 12502 1: a 12503--->aab 12504 ^^ b 12505Callout 2: last capture = -1 12506 0: <unset> 12507--->aab 12508 ^ ^ b 12509 0: aab 12510 12511/(?:(?1)(?C1)x|ab(?C2))((a)){0}/ 12512 aab\C+ 12513Callout 1: last capture = -1 12514 0: <unset> 12515--->aab 12516 ^^ x 12517Callout 1: last capture = -1 12518 0: <unset> 12519--->aab 12520 ^^ x 12521Callout 2: last capture = -1 12522 0: <unset> 12523--->aab 12524 ^ ^ ) 12525 0: ab 12526 12527/(?1)(?C1)((a)(?C2)){0}/ 12528 aab\C+ 12529Callout 2: last capture = 2 12530 0: <unset> 12531 1: <unset> 12532 2: a 12533--->aab 12534 ^^ ) 12535Callout 1: last capture = -1 12536 0: <unset> 12537--->aab 12538 ^^ ((a)(?C2)){0} 12539 0: a 12540 12541/(?:(a)+(?C1)bb|aa(?C2)b)++/ 12542 aab\C+ 12543Callout 1: last capture = 1 12544 0: <unset> 12545 1: a 12546--->aab 12547 ^ ^ b 12548Callout 1: last capture = 1 12549 0: <unset> 12550 1: a 12551--->aab 12552 ^^ b 12553Callout 2: last capture = -1 12554 0: <unset> 12555--->aab 12556 ^ ^ b 12557 0: aab 12558 aab\C+\O2 12559Callout 1: last capture = 1 12560 0: <unset> 12561--->aab 12562 ^ ^ b 12563Callout 1: last capture = 1 12564 0: <unset> 12565--->aab 12566 ^^ b 12567Callout 2: last capture = -1 12568 0: <unset> 12569--->aab 12570 ^ ^ b 12571 0: aab 12572 12573/(ab)x|ab/ 12574 ab\O3 12575 0: ab 12576 ab\O2 12577 0: ab 12578 12579/(ab)/ 12580 ab\O3 12581Matched, but too many substrings 12582 0: ab 12583 ab\O2 12584Matched, but too many substrings 12585 0: ab 12586 12587/(?<=123)(*MARK:xx)abc/K 12588 xxxx123a\P\P 12589Partial match at offset 7, mark=xx: 123a 12590 xxxx123a\P 12591Partial match at offset 7, mark=xx: 123a 12592 12593/123\Kabc/ 12594 xxxx123a\P\P 12595Partial match: 123a 12596 xxxx123a\P 12597Partial match: 123a 12598 12599/^(?(?=a)aa|bb)/C 12600 bb 12601--->bb 12602 +0 ^ ^ 12603 +1 ^ (?(?=a)aa|bb) 12604 +3 ^ (?=a) 12605 +6 ^ a 12606+11 ^ b 12607+12 ^^ b 12608+13 ^ ^ ) 12609+14 ^ ^ 12610 0: bb 12611 12612/(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/ 12613 bb 12614--->bb 12615 1 ^ ^ 12616 2 ^ (?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10)) 12617 99 ^ (?=(?C3)a(?C4)) 12618 3 ^ a 12619 8 ^ b 12620 9 ^^ b 12621 10 ^ ^ ) 12622 11 ^ ^ 12623 0: bb 12624 12625/-- Perl seems to have a bug with this one --/ 12626 12627/aaaaa(*COMMIT)(*PRUNE)b|a+c/ 12628 aaaaaac 12629 0: aaaac 12630 12631/-- Here are some that Perl treats differently because of the way it handles 12632backtracking verbs. --/ 12633 12634 /(?!a(*COMMIT)b)ac|ad/ 12635 ac 12636 0: ac 12637 ad 12638 0: ad 12639 12640/^(?!a(*THEN)b|ac)../ 12641 ac 12642No match 12643 ad 12644 0: ad 12645 12646/^(?=a(*THEN)b|ac)/ 12647 ac 12648 0: 12649 12650/\A.*?(?:a|b(*THEN)c)/ 12651 ba 12652 0: ba 12653 12654/\A.*?(?:a|b(*THEN)c)++/ 12655 ba 12656 0: ba 12657 12658/\A.*?(?:a|b(*THEN)c|d)/ 12659 ba 12660 0: ba 12661 12662/(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/ 12663 aac 12664 0: aac 12665 12666/\A.*?(a|b(*THEN)c)/ 12667 ba 12668 0: ba 12669 1: a 12670 12671/^(A(*THEN)B|A(*THEN)D)/ 12672 AD 12673 0: AD 12674 1: AD 12675 12676/(?!b(*THEN)a)bn|bnn/ 12677 bnn 12678 0: bn 12679 12680/(?(?=b(*SKIP)a)bn|bnn)/ 12681 bnn 12682No match 12683 12684/(?=b(*THEN)a|)bn|bnn/ 12685 bnn 12686 0: bn 12687 12688/-------------------------/ 12689 12690/(*LIMIT_MATCH=12bc)abc/ 12691Failed: (*VERB) not recognized or malformed at offset 7 12692 12693/(*LIMIT_MATCH=4294967290)abc/ 12694Failed: (*VERB) not recognized or malformed at offset 7 12695 12696/(*LIMIT_RECURSION=4294967280)abc/I 12697Capturing subpattern count = 0 12698Recursion limit = 4294967280 12699No options 12700First char = 'a' 12701Need char = 'c' 12702 12703/(a+)*zz/ 12704 aaaaaaaaaaaaaz 12705No match 12706 aaaaaaaaaaaaaz\q3000 12707Error -8 (match limit exceeded) 12708 12709/(a+)*zz/S- 12710 aaaaaaaaaaaaaz\Q10 12711Error -21 (recursion limit exceeded) 12712 12713/(*LIMIT_MATCH=3000)(a+)*zz/I 12714Capturing subpattern count = 1 12715Match limit = 3000 12716No options 12717No first char 12718Need char = 'z' 12719 aaaaaaaaaaaaaz 12720Error -8 (match limit exceeded) 12721 aaaaaaaaaaaaaz\q60000 12722Error -8 (match limit exceeded) 12723 12724/(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I 12725Capturing subpattern count = 1 12726Match limit = 3000 12727No options 12728No first char 12729Need char = 'z' 12730 aaaaaaaaaaaaaz 12731Error -8 (match limit exceeded) 12732 12733/(*LIMIT_MATCH=60000)(a+)*zz/I 12734Capturing subpattern count = 1 12735Match limit = 60000 12736No options 12737No first char 12738Need char = 'z' 12739 aaaaaaaaaaaaaz 12740No match 12741 aaaaaaaaaaaaaz\q3000 12742Error -8 (match limit exceeded) 12743 12744/(*LIMIT_RECURSION=10)(a+)*zz/IS- 12745Capturing subpattern count = 1 12746Recursion limit = 10 12747No options 12748No first char 12749Need char = 'z' 12750Subject length lower bound = 2 12751Starting chars: a z 12752 aaaaaaaaaaaaaz 12753Error -21 (recursion limit exceeded) 12754 aaaaaaaaaaaaaz\Q1000 12755Error -21 (recursion limit exceeded) 12756 12757/(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS- 12758Capturing subpattern count = 1 12759Recursion limit = 10 12760No options 12761No first char 12762Need char = 'z' 12763Subject length lower bound = 2 12764Starting chars: a z 12765 aaaaaaaaaaaaaz 12766Error -21 (recursion limit exceeded) 12767 12768/(*LIMIT_RECURSION=1000)(a+)*zz/IS- 12769Capturing subpattern count = 1 12770Recursion limit = 1000 12771No options 12772No first char 12773Need char = 'z' 12774Subject length lower bound = 2 12775Starting chars: a z 12776 aaaaaaaaaaaaaz 12777No match 12778 aaaaaaaaaaaaaz\Q10 12779Error -21 (recursion limit exceeded) 12780 12781/-- This test causes a segfault with Perl 5.18.0 --/ 12782 12783/^(?=(a)){0}b(?1)/ 12784 backgammon 12785 0: ba 12786 12787/(?|(?<n>f)|(?<n>b))/JI 12788Capturing subpattern count = 1 12789Named capturing subpatterns: 12790 n 1 12791Options: dupnames 12792No first char 12793No need char 12794 12795/(?<a>abc)(?<a>z)\k<a>()/JDZS 12796------------------------------------------------------------------ 12797 Bra 12798 CBra 1 12799 abc 12800 Ket 12801 CBra 2 12802 z 12803 Ket 12804 \k<a>2 12805 CBra 3 12806 Ket 12807 Ket 12808 End 12809------------------------------------------------------------------ 12810Capturing subpattern count = 3 12811Max back reference = 2 12812Named capturing subpatterns: 12813 a 1 12814 a 2 12815Options: dupnames 12816First char = 'a' 12817Need char = 'z' 12818Subject length lower bound = 5 12819No starting char list 12820 12821/a*[bcd]/BZ 12822------------------------------------------------------------------ 12823 Bra 12824 a*+ 12825 [b-d] 12826 Ket 12827 End 12828------------------------------------------------------------------ 12829 12830/[bcd]*a/BZ 12831------------------------------------------------------------------ 12832 Bra 12833 [b-d]*+ 12834 a 12835 Ket 12836 End 12837------------------------------------------------------------------ 12838 12839/-- A complete set of tests for auto-possessification of character types --/ 12840 12841/\D+\D \D+\d \D+\S \D+\s \D+\W \D+\w \D+. \D+\C \D+\R \D+\H \D+\h \D+\V \D+\v \D+\Z \D+\z \D+$/BZx 12842------------------------------------------------------------------ 12843 Bra 12844 \D+ 12845 \D 12846 \D++ 12847 \d 12848 \D+ 12849 \S 12850 \D+ 12851 \s 12852 \D+ 12853 \W 12854 \D+ 12855 \w 12856 \D+ 12857 Any 12858 \D+ 12859 AllAny 12860 \D+ 12861 \R 12862 \D+ 12863 \H 12864 \D+ 12865 \h 12866 \D+ 12867 \V 12868 \D+ 12869 \v 12870 \D+ 12871 \Z 12872 \D++ 12873 \z 12874 \D+ 12875 $ 12876 Ket 12877 End 12878------------------------------------------------------------------ 12879 12880/\d+\D \d+\d \d+\S \d+\s \d+\W \d+\w \d+. \d+\C \d+\R \d+\H \d+\h \d+\V \d+\v \d+\Z \d+\z \d+$/BZx 12881------------------------------------------------------------------ 12882 Bra 12883 \d++ 12884 \D 12885 \d+ 12886 \d 12887 \d+ 12888 \S 12889 \d++ 12890 \s 12891 \d++ 12892 \W 12893 \d+ 12894 \w 12895 \d+ 12896 Any 12897 \d+ 12898 AllAny 12899 \d++ 12900 \R 12901 \d+ 12902 \H 12903 \d++ 12904 \h 12905 \d+ 12906 \V 12907 \d++ 12908 \v 12909 \d++ 12910 \Z 12911 \d++ 12912 \z 12913 \d++ 12914 $ 12915 Ket 12916 End 12917------------------------------------------------------------------ 12918 12919/\S+\D \S+\d \S+\S \S+\s \S+\W \S+\w \S+. \S+\C \S+\R \S+\H \S+\h \S+\V \S+\v \S+\Z \S+\z \S+$/BZx 12920------------------------------------------------------------------ 12921 Bra 12922 \S+ 12923 \D 12924 \S+ 12925 \d 12926 \S+ 12927 \S 12928 \S++ 12929 \s 12930 \S+ 12931 \W 12932 \S+ 12933 \w 12934 \S+ 12935 Any 12936 \S+ 12937 AllAny 12938 \S++ 12939 \R 12940 \S+ 12941 \H 12942 \S++ 12943 \h 12944 \S+ 12945 \V 12946 \S++ 12947 \v 12948 \S++ 12949 \Z 12950 \S++ 12951 \z 12952 \S++ 12953 $ 12954 Ket 12955 End 12956------------------------------------------------------------------ 12957 12958/\s+\D \s+\d \s+\S \s+\s \s+\W \s+\w \s+. \s+\C \s+\R \s+\H \s+\h \s+\V \s+\v \s+\Z \s+\z \s+$/BZx 12959------------------------------------------------------------------ 12960 Bra 12961 \s+ 12962 \D 12963 \s++ 12964 \d 12965 \s++ 12966 \S 12967 \s+ 12968 \s 12969 \s+ 12970 \W 12971 \s++ 12972 \w 12973 \s+ 12974 Any 12975 \s+ 12976 AllAny 12977 \s+ 12978 \R 12979 \s+ 12980 \H 12981 \s+ 12982 \h 12983 \s+ 12984 \V 12985 \s+ 12986 \v 12987 \s+ 12988 \Z 12989 \s++ 12990 \z 12991 \s+ 12992 $ 12993 Ket 12994 End 12995------------------------------------------------------------------ 12996 12997/\W+\D \W+\d \W+\S \W+\s \W+\W \W+\w \W+. \W+\C \W+\R \W+\H \W+\h \W+\V \W+\v \W+\Z \W+\z \W+$/BZx 12998------------------------------------------------------------------ 12999 Bra 13000 \W+ 13001 \D 13002 \W++ 13003 \d 13004 \W+ 13005 \S 13006 \W+ 13007 \s 13008 \W+ 13009 \W 13010 \W++ 13011 \w 13012 \W+ 13013 Any 13014 \W+ 13015 AllAny 13016 \W+ 13017 \R 13018 \W+ 13019 \H 13020 \W+ 13021 \h 13022 \W+ 13023 \V 13024 \W+ 13025 \v 13026 \W+ 13027 \Z 13028 \W++ 13029 \z 13030 \W+ 13031 $ 13032 Ket 13033 End 13034------------------------------------------------------------------ 13035 13036/\w+\D \w+\d \w+\S \w+\s \w+\W \w+\w \w+. \w+\C \w+\R \w+\H \w+\h \w+\V \w+\v \w+\Z \w+\z \w+$/BZx 13037------------------------------------------------------------------ 13038 Bra 13039 \w+ 13040 \D 13041 \w+ 13042 \d 13043 \w+ 13044 \S 13045 \w++ 13046 \s 13047 \w++ 13048 \W 13049 \w+ 13050 \w 13051 \w+ 13052 Any 13053 \w+ 13054 AllAny 13055 \w++ 13056 \R 13057 \w+ 13058 \H 13059 \w++ 13060 \h 13061 \w+ 13062 \V 13063 \w++ 13064 \v 13065 \w++ 13066 \Z 13067 \w++ 13068 \z 13069 \w++ 13070 $ 13071 Ket 13072 End 13073------------------------------------------------------------------ 13074 13075/\C+\D \C+\d \C+\S \C+\s \C+\W \C+\w \C+. \C+\C \C+\R \C+\H \C+\h \C+\V \C+\v \C+\Z \C+\z \C+$/BZx 13076------------------------------------------------------------------ 13077 Bra 13078 AllAny+ 13079 \D 13080 AllAny+ 13081 \d 13082 AllAny+ 13083 \S 13084 AllAny+ 13085 \s 13086 AllAny+ 13087 \W 13088 AllAny+ 13089 \w 13090 AllAny+ 13091 Any 13092 AllAny+ 13093 AllAny 13094 AllAny+ 13095 \R 13096 AllAny+ 13097 \H 13098 AllAny+ 13099 \h 13100 AllAny+ 13101 \V 13102 AllAny+ 13103 \v 13104 AllAny+ 13105 \Z 13106 AllAny++ 13107 \z 13108 AllAny+ 13109 $ 13110 Ket 13111 End 13112------------------------------------------------------------------ 13113 13114/\R+\D \R+\d \R+\S \R+\s \R+\W \R+\w \R+. \R+\C \R+\R \R+\H \R+\h \R+\V \R+\v \R+\Z \R+\z \R+$/BZx 13115------------------------------------------------------------------ 13116 Bra 13117 \R+ 13118 \D 13119 \R++ 13120 \d 13121 \R+ 13122 \S 13123 \R++ 13124 \s 13125 \R+ 13126 \W 13127 \R++ 13128 \w 13129 \R++ 13130 Any 13131 \R+ 13132 AllAny 13133 \R+ 13134 \R 13135 \R+ 13136 \H 13137 \R++ 13138 \h 13139 \R+ 13140 \V 13141 \R+ 13142 \v 13143 \R+ 13144 \Z 13145 \R++ 13146 \z 13147 \R+ 13148 $ 13149 Ket 13150 End 13151------------------------------------------------------------------ 13152 13153/\H+\D \H+\d \H+\S \H+\s \H+\W \H+\w \H+. \H+\C \H+\R \H+\H \H+\h \H+\V \H+\v \H+\Z \H+\z \H+$/BZx 13154------------------------------------------------------------------ 13155 Bra 13156 \H+ 13157 \D 13158 \H+ 13159 \d 13160 \H+ 13161 \S 13162 \H+ 13163 \s 13164 \H+ 13165 \W 13166 \H+ 13167 \w 13168 \H+ 13169 Any 13170 \H+ 13171 AllAny 13172 \H+ 13173 \R 13174 \H+ 13175 \H 13176 \H++ 13177 \h 13178 \H+ 13179 \V 13180 \H+ 13181 \v 13182 \H+ 13183 \Z 13184 \H++ 13185 \z 13186 \H+ 13187 $ 13188 Ket 13189 End 13190------------------------------------------------------------------ 13191 13192/\h+\D \h+\d \h+\S \h+\s \h+\W \h+\w \h+. \h+\C \h+\R \h+\H \h+\h \h+\V \h+\v \h+\Z \h+\z \h+$/BZx 13193------------------------------------------------------------------ 13194 Bra 13195 \h+ 13196 \D 13197 \h++ 13198 \d 13199 \h++ 13200 \S 13201 \h+ 13202 \s 13203 \h+ 13204 \W 13205 \h++ 13206 \w 13207 \h+ 13208 Any 13209 \h+ 13210 AllAny 13211 \h++ 13212 \R 13213 \h++ 13214 \H 13215 \h+ 13216 \h 13217 \h+ 13218 \V 13219 \h++ 13220 \v 13221 \h+ 13222 \Z 13223 \h++ 13224 \z 13225 \h+ 13226 $ 13227 Ket 13228 End 13229------------------------------------------------------------------ 13230 13231/\V+\D \V+\d \V+\S \V+\s \V+\W \V+\w \V+. \V+\C \V+\R \V+\H \V+\h \V+\V \V+\v \V+\Z \V+\z \V+$/BZx 13232------------------------------------------------------------------ 13233 Bra 13234 \V+ 13235 \D 13236 \V+ 13237 \d 13238 \V+ 13239 \S 13240 \V+ 13241 \s 13242 \V+ 13243 \W 13244 \V+ 13245 \w 13246 \V+ 13247 Any 13248 \V+ 13249 AllAny 13250 \V++ 13251 \R 13252 \V+ 13253 \H 13254 \V+ 13255 \h 13256 \V+ 13257 \V 13258 \V++ 13259 \v 13260 \V+ 13261 \Z 13262 \V++ 13263 \z 13264 \V+ 13265 $ 13266 Ket 13267 End 13268------------------------------------------------------------------ 13269 13270/\v+\D \v+\d \v+\S \v+\s \v+\W \v+\w \v+. \v+\C \v+\R \v+\H \v+\h \v+\V \v+\v \v+\Z \v+\z \v+$/BZx 13271------------------------------------------------------------------ 13272 Bra 13273 \v+ 13274 \D 13275 \v++ 13276 \d 13277 \v++ 13278 \S 13279 \v+ 13280 \s 13281 \v+ 13282 \W 13283 \v++ 13284 \w 13285 \v+ 13286 Any 13287 \v+ 13288 AllAny 13289 \v+ 13290 \R 13291 \v+ 13292 \H 13293 \v++ 13294 \h 13295 \v++ 13296 \V 13297 \v+ 13298 \v 13299 \v+ 13300 \Z 13301 \v++ 13302 \z 13303 \v+ 13304 $ 13305 Ket 13306 End 13307------------------------------------------------------------------ 13308 13309/ a+\D a+\d a+\S a+\s a+\W a+\w a+. a+\C a+\R a+\H a+\h a+\V a+\v a+\Z a+\z a+$/BZx 13310------------------------------------------------------------------ 13311 Bra 13312 a+ 13313 \D 13314 a++ 13315 \d 13316 a+ 13317 \S 13318 a++ 13319 \s 13320 a++ 13321 \W 13322 a+ 13323 \w 13324 a+ 13325 Any 13326 a+ 13327 AllAny 13328 a++ 13329 \R 13330 a+ 13331 \H 13332 a++ 13333 \h 13334 a+ 13335 \V 13336 a++ 13337 \v 13338 a++ 13339 \Z 13340 a++ 13341 \z 13342 a++ 13343 $ 13344 Ket 13345 End 13346------------------------------------------------------------------ 13347 13348/\n+\D \n+\d \n+\S \n+\s \n+\W \n+\w \n+. \n+\C \n+\R \n+\H \n+\h \n+\V \n+\v \n+\Z \n+\z \n+$/BZx 13349------------------------------------------------------------------ 13350 Bra 13351 \x0a+ 13352 \D 13353 \x0a++ 13354 \d 13355 \x0a++ 13356 \S 13357 \x0a+ 13358 \s 13359 \x0a+ 13360 \W 13361 \x0a++ 13362 \w 13363 \x0a+ 13364 Any 13365 \x0a+ 13366 AllAny 13367 \x0a+ 13368 \R 13369 \x0a+ 13370 \H 13371 \x0a++ 13372 \h 13373 \x0a++ 13374 \V 13375 \x0a+ 13376 \v 13377 \x0a+ 13378 \Z 13379 \x0a++ 13380 \z 13381 \x0a+ 13382 $ 13383 Ket 13384 End 13385------------------------------------------------------------------ 13386 13387/ .+\D .+\d .+\S .+\s .+\W .+\w .+. .+\C .+\R .+\H .+\h .+\V .+\v .+\Z .+\z .+$/BZx 13388------------------------------------------------------------------ 13389 Bra 13390 Any+ 13391 \D 13392 Any+ 13393 \d 13394 Any+ 13395 \S 13396 Any+ 13397 \s 13398 Any+ 13399 \W 13400 Any+ 13401 \w 13402 Any+ 13403 Any 13404 Any+ 13405 AllAny 13406 Any++ 13407 \R 13408 Any+ 13409 \H 13410 Any+ 13411 \h 13412 Any+ 13413 \V 13414 Any+ 13415 \v 13416 Any+ 13417 \Z 13418 Any++ 13419 \z 13420 Any+ 13421 $ 13422 Ket 13423 End 13424------------------------------------------------------------------ 13425 13426/ .+\D .+\d .+\S .+\s .+\W .+\w .+. .+\C .+\R .+\H .+\h .+\V .+\v .+\Z .+\z .+$/BZxs 13427------------------------------------------------------------------ 13428 Bra 13429 AllAny+ 13430 \D 13431 AllAny+ 13432 \d 13433 AllAny+ 13434 \S 13435 AllAny+ 13436 \s 13437 AllAny+ 13438 \W 13439 AllAny+ 13440 \w 13441 AllAny+ 13442 AllAny 13443 AllAny+ 13444 AllAny 13445 AllAny+ 13446 \R 13447 AllAny+ 13448 \H 13449 AllAny+ 13450 \h 13451 AllAny+ 13452 \V 13453 AllAny+ 13454 \v 13455 AllAny+ 13456 \Z 13457 AllAny++ 13458 \z 13459 AllAny+ 13460 $ 13461 Ket 13462 End 13463------------------------------------------------------------------ 13464 13465/\D+$ \d+$ \S+$ \s+$ \W+$ \w+$ \C+$ \R+$ \H+$ \h+$ \V+$ \v+$ a+$ \n+$ .+$ .+$/BZxm 13466------------------------------------------------------------------ 13467 Bra 13468 \D+ 13469 /m $ 13470 \d++ 13471 /m $ 13472 \S++ 13473 /m $ 13474 \s+ 13475 /m $ 13476 \W+ 13477 /m $ 13478 \w++ 13479 /m $ 13480 AllAny+ 13481 /m $ 13482 \R+ 13483 /m $ 13484 \H+ 13485 /m $ 13486 \h+ 13487 /m $ 13488 \V+ 13489 /m $ 13490 \v+ 13491 /m $ 13492 a+ 13493 /m $ 13494 \x0a+ 13495 /m $ 13496 Any+ 13497 /m $ 13498 Any+ 13499 /m $ 13500 Ket 13501 End 13502------------------------------------------------------------------ 13503 13504/(?=a+)a(a+)++a/BZ 13505------------------------------------------------------------------ 13506 Bra 13507 Assert 13508 a++ 13509 Ket 13510 a 13511 CBraPos 1 13512 a++ 13513 KetRpos 13514 a 13515 Ket 13516 End 13517------------------------------------------------------------------ 13518 13519/a+(bb|cc)a+(?:bb|cc)a+(?>bb|cc)a+(?:bb|cc)+a+(aa)a+(?:bb|aa)/BZ 13520------------------------------------------------------------------ 13521 Bra 13522 a++ 13523 CBra 1 13524 bb 13525 Alt 13526 cc 13527 Ket 13528 a++ 13529 Bra 13530 bb 13531 Alt 13532 cc 13533 Ket 13534 a++ 13535 Once_NC 13536 bb 13537 Alt 13538 cc 13539 Ket 13540 a++ 13541 Bra 13542 bb 13543 Alt 13544 cc 13545 KetRmax 13546 a+ 13547 CBra 2 13548 aa 13549 Ket 13550 a+ 13551 Bra 13552 bb 13553 Alt 13554 aa 13555 Ket 13556 Ket 13557 End 13558------------------------------------------------------------------ 13559 13560/a+(bb|cc)?#a+(?:bb|cc)??#a+(?:bb|cc)?+#a+(?:bb|cc)*#a+(bb|cc)?a#a+(?:aa)?/BZ 13561------------------------------------------------------------------ 13562 Bra 13563 a++ 13564 Brazero 13565 CBra 1 13566 bb 13567 Alt 13568 cc 13569 Ket 13570 # 13571 a++ 13572 Braminzero 13573 Bra 13574 bb 13575 Alt 13576 cc 13577 Ket 13578 # 13579 a++ 13580 Once 13581 Brazero 13582 Bra 13583 bb 13584 Alt 13585 cc 13586 Ket 13587 Ket 13588 # 13589 a++ 13590 Brazero 13591 Bra 13592 bb 13593 Alt 13594 cc 13595 KetRmax 13596 # 13597 a+ 13598 Brazero 13599 CBra 2 13600 bb 13601 Alt 13602 cc 13603 Ket 13604 a# 13605 a+ 13606 Brazero 13607 Bra 13608 aa 13609 Ket 13610 Ket 13611 End 13612------------------------------------------------------------------ 13613 13614/a+(?:bb)?a#a+(?:|||)#a+(?:|b)a#a+(?:|||)?a/BZ 13615------------------------------------------------------------------ 13616 Bra 13617 a+ 13618 Brazero 13619 Bra 13620 bb 13621 Ket 13622 a# 13623 a++ 13624 Bra 13625 Alt 13626 Alt 13627 Alt 13628 Ket 13629 # 13630 a+ 13631 Bra 13632 Alt 13633 b 13634 Ket 13635 a# 13636 a+ 13637 Brazero 13638 Bra 13639 Alt 13640 Alt 13641 Alt 13642 Ket 13643 a 13644 Ket 13645 End 13646------------------------------------------------------------------ 13647 13648/[ab]*/BZ 13649------------------------------------------------------------------ 13650 Bra 13651 [ab]*+ 13652 Ket 13653 End 13654------------------------------------------------------------------ 13655 aaaa 13656 0: aaaa 13657 13658/[ab]*?/BZ 13659------------------------------------------------------------------ 13660 Bra 13661 [ab]*? 13662 Ket 13663 End 13664------------------------------------------------------------------ 13665 aaaa 13666 0: 13667 13668/[ab]?/BZ 13669------------------------------------------------------------------ 13670 Bra 13671 [ab]?+ 13672 Ket 13673 End 13674------------------------------------------------------------------ 13675 aaaa 13676 0: a 13677 13678/[ab]??/BZ 13679------------------------------------------------------------------ 13680 Bra 13681 [ab]?? 13682 Ket 13683 End 13684------------------------------------------------------------------ 13685 aaaa 13686 0: 13687 13688/[ab]+/BZ 13689------------------------------------------------------------------ 13690 Bra 13691 [ab]++ 13692 Ket 13693 End 13694------------------------------------------------------------------ 13695 aaaa 13696 0: aaaa 13697 13698/[ab]+?/BZ 13699------------------------------------------------------------------ 13700 Bra 13701 [ab]+? 13702 Ket 13703 End 13704------------------------------------------------------------------ 13705 aaaa 13706 0: a 13707 13708/[ab]{2,3}/BZ 13709------------------------------------------------------------------ 13710 Bra 13711 [ab]{2,3}+ 13712 Ket 13713 End 13714------------------------------------------------------------------ 13715 aaaa 13716 0: aaa 13717 13718/[ab]{2,3}?/BZ 13719------------------------------------------------------------------ 13720 Bra 13721 [ab]{2,3}? 13722 Ket 13723 End 13724------------------------------------------------------------------ 13725 aaaa 13726 0: aa 13727 13728/[ab]{2,}/BZ 13729------------------------------------------------------------------ 13730 Bra 13731 [ab]{2,}+ 13732 Ket 13733 End 13734------------------------------------------------------------------ 13735 aaaa 13736 0: aaaa 13737 13738/[ab]{2,}?/BZ 13739------------------------------------------------------------------ 13740 Bra 13741 [ab]{2,}? 13742 Ket 13743 End 13744------------------------------------------------------------------ 13745 aaaa 13746 0: aa 13747 13748/\d+\s{0,5}=\s*\S?=\w{0,4}\W*/BZ 13749------------------------------------------------------------------ 13750 Bra 13751 \d++ 13752 \s{0,5}+ 13753 = 13754 \s*+ 13755 \S? 13756 = 13757 \w{0,4}+ 13758 \W*+ 13759 Ket 13760 End 13761------------------------------------------------------------------ 13762 13763/[a-d]{5,12}[e-z0-9]*#[^a-z]+[b-y]*a[2-7]?[^0-9a-z]+/BZ 13764------------------------------------------------------------------ 13765 Bra 13766 [a-d]{5,12}+ 13767 [0-9e-z]*+ 13768 # 13769 [\x00-`{-\xff] (neg)++ 13770 [b-y]*+ 13771 a 13772 [2-7]?+ 13773 [\x00-/:-`{-\xff] (neg)++ 13774 Ket 13775 End 13776------------------------------------------------------------------ 13777 13778/[a-z]*\s#[ \t]?\S#[a-c]*\S#[C-G]+?\d#[4-8]*\D#[4-9,]*\D#[!$]{0,5}\w#[M-Xf-l]+\W#[a-c,]?\W/BZ 13779------------------------------------------------------------------ 13780 Bra 13781 [a-z]*+ 13782 \s 13783 # 13784 [\x09 ]?+ 13785 \S 13786 # 13787 [a-c]* 13788 \S 13789 # 13790 [C-G]++ 13791 \d 13792 # 13793 [4-8]*+ 13794 \D 13795 # 13796 [,4-9]* 13797 \D 13798 # 13799 [!$]{0,5}+ 13800 \w 13801 # 13802 [M-Xf-l]++ 13803 \W 13804 # 13805 [,a-c]? 13806 \W 13807 Ket 13808 End 13809------------------------------------------------------------------ 13810 13811/a+(aa|bb)*c#a*(bb|cc)*a#a?(bb|cc)*d#[a-f]*(g|hh)*f/BZ 13812------------------------------------------------------------------ 13813 Bra 13814 a+ 13815 Brazero 13816 CBra 1 13817 aa 13818 Alt 13819 bb 13820 KetRmax 13821 c# 13822 a* 13823 Brazero 13824 CBra 2 13825 bb 13826 Alt 13827 cc 13828 KetRmax 13829 a# 13830 a?+ 13831 Brazero 13832 CBra 3 13833 bb 13834 Alt 13835 cc 13836 KetRmax 13837 d# 13838 [a-f]* 13839 Brazero 13840 CBra 4 13841 g 13842 Alt 13843 hh 13844 KetRmax 13845 f 13846 Ket 13847 End 13848------------------------------------------------------------------ 13849 13850/[a-f]*(g|hh|i)*i#[a-x]{4,}(y{0,6})*y#[a-k]+(ll|mm)+n/BZ 13851------------------------------------------------------------------ 13852 Bra 13853 [a-f]*+ 13854 Brazero 13855 CBra 1 13856 g 13857 Alt 13858 hh 13859 Alt 13860 i 13861 KetRmax 13862 i# 13863 [a-x]{4,} 13864 Brazero 13865 SCBra 2 13866 y{0,6} 13867 KetRmax 13868 y# 13869 [a-k]++ 13870 CBra 3 13871 ll 13872 Alt 13873 mm 13874 KetRmax 13875 n 13876 Ket 13877 End 13878------------------------------------------------------------------ 13879 13880/[a-f]*(?>gg|hh)+#[a-f]*(?>gg|hh)?#[a-f]*(?>gg|hh)*a#[a-f]*(?>gg|hh)*h/BZ 13881------------------------------------------------------------------ 13882 Bra 13883 [a-f]*+ 13884 Once_NC 13885 gg 13886 Alt 13887 hh 13888 KetRmax 13889 # 13890 [a-f]*+ 13891 Brazero 13892 Once_NC 13893 gg 13894 Alt 13895 hh 13896 Ket 13897 # 13898 [a-f]* 13899 Brazero 13900 Once_NC 13901 gg 13902 Alt 13903 hh 13904 KetRmax 13905 a# 13906 [a-f]*+ 13907 Brazero 13908 Once_NC 13909 gg 13910 Alt 13911 hh 13912 KetRmax 13913 h 13914 Ket 13915 End 13916------------------------------------------------------------------ 13917 13918/[a-c]*d/DZS 13919------------------------------------------------------------------ 13920 Bra 13921 [a-c]*+ 13922 d 13923 Ket 13924 End 13925------------------------------------------------------------------ 13926Capturing subpattern count = 0 13927No options 13928No first char 13929Need char = 'd' 13930Subject length lower bound = 1 13931Starting chars: a b c d 13932 13933/[a-c]+d/DZS 13934------------------------------------------------------------------ 13935 Bra 13936 [a-c]++ 13937 d 13938 Ket 13939 End 13940------------------------------------------------------------------ 13941Capturing subpattern count = 0 13942No options 13943No first char 13944Need char = 'd' 13945Subject length lower bound = 2 13946Starting chars: a b c 13947 13948/[a-c]?d/DZS 13949------------------------------------------------------------------ 13950 Bra 13951 [a-c]?+ 13952 d 13953 Ket 13954 End 13955------------------------------------------------------------------ 13956Capturing subpattern count = 0 13957No options 13958No first char 13959Need char = 'd' 13960Subject length lower bound = 1 13961Starting chars: a b c d 13962 13963/[a-c]{4,6}d/DZS 13964------------------------------------------------------------------ 13965 Bra 13966 [a-c]{4,6}+ 13967 d 13968 Ket 13969 End 13970------------------------------------------------------------------ 13971Capturing subpattern count = 0 13972No options 13973No first char 13974Need char = 'd' 13975Subject length lower bound = 5 13976Starting chars: a b c 13977 13978/[a-c]{0,6}d/DZS 13979------------------------------------------------------------------ 13980 Bra 13981 [a-c]{0,6}+ 13982 d 13983 Ket 13984 End 13985------------------------------------------------------------------ 13986Capturing subpattern count = 0 13987No options 13988No first char 13989Need char = 'd' 13990Subject length lower bound = 1 13991Starting chars: a b c d 13992 13993/-- End of special auto-possessive tests --/ 13994 13995/^A\o{1239}B/ 13996Failed: non-octal character in \o{} (closing brace missing?) at offset 8 13997 13998/^A\oB/ 13999Failed: missing opening brace after \o at offset 3 14000 14001/^A\x{zz}B/ 14002Failed: non-hex character in \x{} (closing brace missing?) at offset 5 14003 14004/^A\x{12Z/ 14005Failed: non-hex character in \x{} (closing brace missing?) at offset 7 14006 14007/^A\x{/ 14008Failed: non-hex character in \x{} (closing brace missing?) at offset 5 14009 14010/[ab]++/BZO 14011------------------------------------------------------------------ 14012 Bra 14013 [ab]++ 14014 Ket 14015 End 14016------------------------------------------------------------------ 14017 14018/[^ab]*+/BZO 14019------------------------------------------------------------------ 14020 Bra 14021 [\x00-`c-\xff] (neg)*+ 14022 Ket 14023 End 14024------------------------------------------------------------------ 14025 14026/a{4}+/BZO 14027------------------------------------------------------------------ 14028 Bra 14029 a{4} 14030 Ket 14031 End 14032------------------------------------------------------------------ 14033 14034/a{4}+/BZOi 14035------------------------------------------------------------------ 14036 Bra 14037 /i a{4} 14038 Ket 14039 End 14040------------------------------------------------------------------ 14041 14042/[a-[:digit:]]+/ 14043Failed: invalid range in character class at offset 3 14044 14045/[A-[:digit:]]+/ 14046Failed: invalid range in character class at offset 3 14047 14048/[a-[.xxx.]]+/ 14049Failed: invalid range in character class at offset 3 14050 14051/[a-[=xxx=]]+/ 14052Failed: invalid range in character class at offset 3 14053 14054/[a-[!xxx!]]+/ 14055Failed: range out of order in character class at offset 3 14056 14057/[A-[!xxx!]]+/ 14058 A]]] 14059 0: A]]] 14060 14061/[a-\d]+/ 14062Failed: invalid range in character class at offset 4 14063 14064/(?<0abc>xx)/ 14065Failed: group name must start with a non-digit at offset 3 14066 14067/(?&1abc)xx(?<1abc>y)/ 14068Failed: group name must start with a non-digit at offset 3 14069 14070/(?<ab-cd>xx)/ 14071Failed: syntax error in subpattern name (missing terminator) at offset 5 14072 14073/(?'0abc'xx)/ 14074Failed: group name must start with a non-digit at offset 3 14075 14076/(?P<0abc>xx)/ 14077Failed: group name must start with a non-digit at offset 4 14078 14079/\k<5ghj>/ 14080Failed: group name must start with a non-digit at offset 3 14081 14082/\k'5ghj'/ 14083Failed: group name must start with a non-digit at offset 3 14084 14085/\k{2fgh}/ 14086Failed: group name must start with a non-digit at offset 3 14087 14088/(?P=8yuki)/ 14089Failed: group name must start with a non-digit at offset 4 14090 14091/\g{4df}/ 14092Failed: group name must start with a non-digit at offset 3 14093 14094/(?&1abc)xx(?<1abc>y)/ 14095Failed: group name must start with a non-digit at offset 3 14096 14097/(?P>1abc)xx(?<1abc>y)/ 14098Failed: group name must start with a non-digit at offset 4 14099 14100/\g'3gh'/ 14101Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 2 14102 14103/\g<5fg>/ 14104Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 2 14105 14106/(?(<4gh>)abc)/ 14107Failed: group name must start with a non-digit at offset 4 14108 14109/(?('4gh')abc)/ 14110Failed: group name must start with a non-digit at offset 4 14111 14112/(?(4gh)abc)/ 14113Failed: malformed number or name after (?( at offset 4 14114 14115/(?(R&6yh)abc)/ 14116Failed: group name must start with a non-digit at offset 5 14117 14118/(((a\2)|(a*)\g<-1>))*a?/BZ 14119------------------------------------------------------------------ 14120 Bra 14121 Brazero 14122 SCBra 1 14123 Once 14124 CBra 2 14125 CBra 3 14126 a 14127 \2 14128 Ket 14129 Alt 14130 CBra 4 14131 a* 14132 Ket 14133 Recurse 14134 Ket 14135 Ket 14136 KetRmax 14137 a?+ 14138 Ket 14139 End 14140------------------------------------------------------------------ 14141 14142/-- Test the ugly "start or end of word" compatibility syntax --/ 14143 14144/[[:<:]]red[[:>:]]/BZ 14145------------------------------------------------------------------ 14146 Bra 14147 \b 14148 Assert 14149 \w 14150 Ket 14151 red 14152 \b 14153 AssertB 14154 Reverse 14155 \w 14156 Ket 14157 Ket 14158 End 14159------------------------------------------------------------------ 14160 little red riding hood 14161 0: red 14162 a /red/ thing 14163 0: red 14164 red is a colour 14165 0: red 14166 put it all on red 14167 0: red 14168 ** Failers 14169No match 14170 no reduction 14171No match 14172 Alfred Winifred 14173No match 14174 14175/[a[:<:]] should give error/ 14176Failed: unknown POSIX class name at offset 4 14177 14178/(?=ab\K)/+ 14179 abcd 14180Start of matched string is beyond its end - displaying from end to start. 14181 0: ab 14182 0+ abcd 14183 14184/abcd/f<lf> 14185 xx\nxabcd 14186No match 14187 14188/ -- Test stack check external calls --/ 14189 14190/(((((a)))))/Q0 14191 14192/(((((a)))))/Q1 14193Failed: parentheses are too deeply nested (stack check) at offset 0 14194 14195/(((((a)))))/Q 14196** Missing 0 or 1 after /Q 14197 14198/^\w+(?>\s*)(?<=\w)/BZ 14199------------------------------------------------------------------ 14200 Bra 14201 ^ 14202 \w+ 14203 Once_NC 14204 \s*+ 14205 Ket 14206 AssertB 14207 Reverse 14208 \w 14209 Ket 14210 Ket 14211 End 14212------------------------------------------------------------------ 14213 14214/\othing/ 14215Failed: missing opening brace after \o at offset 1 14216 14217/\o{}/ 14218Failed: digits missing in \x{} or \o{} at offset 1 14219 14220/\o{whatever}/ 14221Failed: non-octal character in \o{} (closing brace missing?) at offset 3 14222 14223/\xthing/ 14224 14225/\x{}/ 14226Failed: digits missing in \x{} or \o{} at offset 3 14227 14228/\x{whatever}/ 14229Failed: non-hex character in \x{} (closing brace missing?) at offset 3 14230 14231"((?=(?(?=(?(?=(?(?=()))))))))" 14232 a 14233 0: 14234 1: 14235 2: 14236 14237"(?(?=)==)(((((((((?=)))))))))" 14238 a 14239No match 14240 14241/^(?:(a)|b)(?(1)A|B)/I 14242Capturing subpattern count = 1 14243Max back reference = 1 14244Options: anchored 14245No first char 14246No need char 14247 aA123\O3 14248Matched, but too many substrings 14249 0: aA 14250 aA123\O6 14251 0: aA 14252 1: a 14253 14254'^(?:(?<AA>a)|b)(?(<AA>)A|B)' 14255 aA123\O3 14256Matched, but too many substrings 14257 0: aA 14258 aA123\O6 14259 0: aA 14260 1: a 14261 14262'^(?<AA>)(?:(?<AA>a)|b)(?(<AA>)A|B)'J 14263 aA123\O3 14264Matched, but too many substrings 14265 0: aA 14266 aA123\O6 14267Matched, but too many substrings 14268 0: aA 14269 1: 14270 14271'^(?:(?<AA>X)|)(?:(?<AA>a)|b)\k{AA}'J 14272 aa123\O3 14273Matched, but too many substrings 14274 0: aa 14275 aa123\O6 14276Matched, but too many substrings 14277 0: aa 14278 1: <unset> 14279 14280/(?<N111>(?J)(?<N111>1(111111)11|)1|1|)(?(<N111>)1)/ 14281 14282/(?(?=0)?)+/ 14283Failed: nothing to repeat at offset 7 14284 14285/(?(?=0)(?=00)?00765)/ 14286 00765 14287 0: 00765 14288 14289/(?(?=0)(?=00)?00765|(?!3).56)/ 14290 00765 14291 0: 00765 14292 456 14293 0: 456 14294 ** Failers 14295No match 14296 356 14297No match 14298 14299'^(a)*+(\w)' 14300 g 14301 0: g 14302 1: <unset> 14303 2: g 14304 g\O3 14305Matched, but too many substrings 14306 0: g 14307 14308'^(?:a)*+(\w)' 14309 g 14310 0: g 14311 1: g 14312 g\O3 14313Matched, but too many substrings 14314 0: g 14315 14316//C 14317 \O\C+ 14318Callout 255: last capture = -1 14319---> 14320 +0 ^ 14321Matched, but too many substrings 14322 14323"((?2){0,1999}())?" 14324 14325/((?+1)(\1))/BZ 14326------------------------------------------------------------------ 14327 Bra 14328 Once 14329 CBra 1 14330 Recurse 14331 CBra 2 14332 \1 14333 Ket 14334 Ket 14335 Ket 14336 Ket 14337 End 14338------------------------------------------------------------------ 14339 14340/(?(?!)a|b)/ 14341 bbb 14342 0: b 14343 aaa 14344No match 14345 14346"((?2)+)((?1))" 14347 14348"(?(?<E>.*!.*)?)" 14349Failed: assertion expected after (?( at offset 3 14350 14351"X((?2)()*+){2}+"BZ 14352------------------------------------------------------------------ 14353 Bra 14354 X 14355 Once 14356 CBra 1 14357 Recurse 14358 Braposzero 14359 SCBraPos 2 14360 KetRpos 14361 Ket 14362 CBra 1 14363 Recurse 14364 Braposzero 14365 SCBraPos 2 14366 KetRpos 14367 Ket 14368 Ket 14369 Ket 14370 End 14371------------------------------------------------------------------ 14372 14373"X((?2)()*+){2}"BZ 14374------------------------------------------------------------------ 14375 Bra 14376 X 14377 CBra 1 14378 Recurse 14379 Braposzero 14380 SCBraPos 2 14381 KetRpos 14382 Ket 14383 CBra 1 14384 Recurse 14385 Braposzero 14386 SCBraPos 2 14387 KetRpos 14388 Ket 14389 Ket 14390 End 14391------------------------------------------------------------------ 14392 14393"(?<=((?2))((?1)))" 14394Failed: lookbehind assertion is not fixed length at offset 17 14395 14396/(?<=\Ka)/g+ 14397 aaaaa 14398 0: a 14399 0+ aaaa 14400 0: a 14401 0+ aaaa 14402 0: a 14403 0+ aaa 14404 0: a 14405 0+ aa 14406 0: a 14407 0+ a 14408 0: a 14409 0+ 14410 14411/(?<=\Ka)/G+ 14412 aaaaa 14413 0: a 14414 0+ aaaa 14415 0: a 14416 0+ aaa 14417 0: a 14418 0+ aa 14419 0: a 14420 0+ a 14421 0: a 14422 0+ 14423 14424/((?2){73}(?2))((?1))/ 14425 14426/.((?2)(?R)\1)()/BZ 14427------------------------------------------------------------------ 14428 Bra 14429 Any 14430 Once 14431 CBra 1 14432 Recurse 14433 Recurse 14434 \1 14435 Ket 14436 Ket 14437 CBra 2 14438 Ket 14439 Ket 14440 End 14441------------------------------------------------------------------ 14442 14443/(?1)()((((((\1++))\x85)+)|))/ 14444 14445/(\9*+(?2);\3++()2|)++{/ 14446Failed: reference to non-existent subpattern at offset 22 14447 14448/\V\x85\9*+((?2)\3++()2)*:2/ 14449Failed: reference to non-existent subpattern at offset 26 14450 14451/(((?(R)){0,2}) (?''((?'R')((?'R')))))/J 14452 14453/(((?(X)){0,2}) (?''((?'X')((?'X')))))/J 14454 14455/(((?(R)){0,2}) (?''((?'X')((?'R')))))/ 14456 14457"(?J)(?'d'(?'d'\g{d}))" 14458 14459".*?\h.+.\.+\R*?\xd(?i)(?=!(?=b`b`b`\`b\xa9b!)`\a`bbbbbbbbbbbbb`bbbbbbbbbbbb*R\x85bbbbbbb\C?{((?2)(?))(( 14460\H){8(?<=(?1){29}\xa8bbbb\x16\xd\xc6^($(?<! )(\xa9H4){4}h}1)B))\x15')" 14461 14462"(?J:(?|(?'R')(\k'R')|((?'R'))))" 14463 14464/(?<=|(\,\$(?73591620449005828816)\xa8.{7}){6}\x09)/ 14465Failed: number is too big at offset 32 14466 14467// 14468\O1 14469Matched, but too many substrings 14470 14471/^(?:(?(1)x|)+)+$()/BZ 14472------------------------------------------------------------------ 14473 Bra 14474 ^ 14475 SBra 14476 SCond 14477 1 Cond ref 14478 x 14479 Alt 14480 KetRmax 14481 KetRmax 14482 $ 14483 CBra 1 14484 Ket 14485 Ket 14486 End 14487------------------------------------------------------------------ 14488 14489/(?=di(?<=(?1))|(?=(.))))/ 14490Failed: unmatched parentheses at offset 23 14491 14492/(?(R))*+/BZ 14493------------------------------------------------------------------ 14494 Bra 14495 Braposzero 14496 SBraPos 14497 SCond 14498 Cond recurse any 14499 Ket 14500 KetRpos 14501 Ket 14502 End 14503------------------------------------------------------------------ 14504 14505/[[:\\](?'abc')[a:]/ 14506 14507"[[[.\xe8Nq\xffq\xff\xe0\x2|||::Nq\xffq\xff\xe0\x6\x2|||::[[[:[::::::[[[[[::::::::[:[[[:[:::[[[[[[[[[[[[:::::::::::::::::[[.\xe8Nq\xffq\xff\xe0\x2|||::Nq\xffq\xff\xe0\x6\x2|||::[[[:[::::::[[[[[::::::::[:[[[:[:::[[[[[[[[[[[[[[:::E[[[:[:[[:[:::[[:::E[[[:[:[[:'[:::::E[[[:[::::::[[[:[[[[[[[::E[[[:[::::::[[[:[[[[[[[[:[[::[::::[[:::::::[[:[[[[[[[:[[::[:[[:[~" 14508Failed: missing terminating ] for character class at offset 353 14509 14510/()(?(R)0)*+/BZ 14511------------------------------------------------------------------ 14512 Bra 14513 CBra 1 14514 Ket 14515 Braposzero 14516 SBraPos 14517 SCond 14518 Cond recurse any 14519 0 14520 Ket 14521 KetRpos 14522 Ket 14523 End 14524------------------------------------------------------------------ 14525 14526/(?R-:(?</ 14527Failed: (?R or (?[+-]digits must be followed by ) at offset 3 14528 14529/(?1){3918}(((((0(\k'R'))))(?J)(?'R'(?'R'\3){99})))/I 14530Capturing subpattern count = 8 14531Max back reference = 8 14532Named capturing subpatterns: 14533 R 7 14534 R 8 14535No options 14536Duplicate name status changes 14537No first char 14538Need char = '0' 14539 14540/(?J:(?|(:(?|(?'R')(\k'R')|((?'R')))H'Rk'Rf)|s(?'R')))/ 14541 14542/0(?0)|(1)(*THEN)(*SKIP:0)(*FAIL)/ 14543 01 14544No match 14545 14546/((?(R8000000000)))/ 14547Failed: number is too big at offset 16 14548 14549/(?(8000000000/ 14550Failed: number is too big at offset 13 14551 14552/(?:ab)?(?:ab)(?:ab)/ 14553 abab 14554 0: abab 14555 ababab 14556 0: ababab 14557 aba 14558No match 14559 14560/((*MARK:A))++a(*SKIP:B)b/ 14561 aacb 14562No match 14563 14564/(?J:(?|(:(?|(?'R')(\z(?|(?'R')(\k'R')|((?'R')))k'R')|((?'R')))H'Ak'Rf)|s(?'R')))/ 14565 14566/(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?<a>1)/ 14567 14568/a[[:punct:]b]/BZ 14569------------------------------------------------------------------ 14570 Bra 14571 a 14572 [!-/:-@[-`b{-~] 14573 Ket 14574 End 14575------------------------------------------------------------------ 14576 14577/-- End of testinput2 --/ 14578