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: syntax error in subpattern name (missing terminator) at offset 7 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 1569No options 1570First char = 'a' 1571No need char 1572 1573/a(?(1)bag|big)(.)/I 1574Capturing subpattern count = 1 1575No options 1576First char = 'a' 1577Need char = 'g' 1578 1579/a(?(1)bag|big)*(.)/I 1580Capturing subpattern count = 1 1581No options 1582First char = 'a' 1583No need char 1584 1585/a(?(1)bag|big)+(.)/I 1586Capturing subpattern count = 1 1587No options 1588First char = 'a' 1589Need char = 'g' 1590 1591/a(?(1)b..|b..)(.)/I 1592Capturing subpattern count = 1 1593No options 1594First char = 'a' 1595Need char = 'b' 1596 1597/ab\d{0}e/I 1598Capturing subpattern count = 0 1599No options 1600First char = 'a' 1601Need char = 'e' 1602 1603/a?b?/I 1604Capturing subpattern count = 0 1605May match empty string 1606No options 1607No first char 1608No need char 1609 a 1610 0: a 1611 b 1612 0: b 1613 ab 1614 0: ab 1615 \ 1616 0: 1617 *** Failers 1618 0: 1619 \N 1620No match 1621 1622/|-/I 1623Capturing subpattern count = 0 1624May match empty string 1625No options 1626No first char 1627No need char 1628 abcd 1629 0: 1630 -abc 1631 0: 1632 \Nab-c 1633 0: - 1634 *** Failers 1635 0: 1636 \Nabc 1637No match 1638 1639/^.?abcd/IS 1640Capturing subpattern count = 0 1641Options: anchored 1642No first char 1643Need char = 'd' 1644Subject length lower bound = 4 1645No starting char list 1646 1647/\( # ( at start 1648 (?: # Non-capturing bracket 1649 (?>[^()]+) # Either a sequence of non-brackets (no backtracking) 1650 | # Or 1651 (?R) # Recurse - i.e. nested bracketed string 1652 )* # Zero or more contents 1653 \) # Closing ) 1654 /Ix 1655Capturing subpattern count = 0 1656Options: extended 1657First char = '(' 1658Need char = ')' 1659 (abcd) 1660 0: (abcd) 1661 (abcd)xyz 1662 0: (abcd) 1663 xyz(abcd) 1664 0: (abcd) 1665 (ab(xy)cd)pqr 1666 0: (ab(xy)cd) 1667 (ab(xycd)pqr 1668 0: (xycd) 1669 () abc () 1670 0: () 1671 12(abcde(fsh)xyz(foo(bar))lmno)89 1672 0: (abcde(fsh)xyz(foo(bar))lmno) 1673 *** Failers 1674No match 1675 abcd 1676No match 1677 abcd) 1678No match 1679 (abcd 1680No match 1681 1682/\( ( (?>[^()]+) | (?R) )* \) /Ixg 1683Capturing subpattern count = 1 1684Options: extended 1685First char = '(' 1686Need char = ')' 1687 (ab(xy)cd)pqr 1688 0: (ab(xy)cd) 1689 1: cd 1690 1(abcd)(x(y)z)pqr 1691 0: (abcd) 1692 1: abcd 1693 0: (x(y)z) 1694 1: z 1695 1696/\( (?: (?>[^()]+) | (?R) ) \) /Ix 1697Capturing subpattern count = 0 1698Options: extended 1699First char = '(' 1700Need char = ')' 1701 (abcd) 1702 0: (abcd) 1703 (ab(xy)cd) 1704 0: (xy) 1705 (a(b(c)d)e) 1706 0: (c) 1707 ((ab)) 1708 0: ((ab)) 1709 *** Failers 1710No match 1711 () 1712No match 1713 1714/\( (?: (?>[^()]+) | (?R) )? \) /Ix 1715Capturing subpattern count = 0 1716Options: extended 1717First char = '(' 1718Need char = ')' 1719 () 1720 0: () 1721 12(abcde(fsh)xyz(foo(bar))lmno)89 1722 0: (fsh) 1723 1724/\( ( (?>[^()]+) | (?R) )* \) /Ix 1725Capturing subpattern count = 1 1726Options: extended 1727First char = '(' 1728Need char = ')' 1729 (ab(xy)cd) 1730 0: (ab(xy)cd) 1731 1: cd 1732 1733/\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix 1734Capturing subpattern count = 2 1735Options: extended 1736First char = '(' 1737Need char = ')' 1738 (ab(xy)cd) 1739 0: (ab(xy)cd) 1740 1: ab(xy)cd 1741 2: cd 1742 1743/\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix 1744Capturing subpattern count = 3 1745Options: extended 1746First char = '(' 1747Need char = ')' 1748 (ab(xy)cd) 1749 0: (ab(xy)cd) 1750 1: <unset> 1751 2: ab(xy)cd 1752 3: cd 1753 (123ab(xy)cd) 1754 0: (123ab(xy)cd) 1755 1: 123 1756 2: ab(xy)cd 1757 3: cd 1758 1759/\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix 1760Capturing subpattern count = 3 1761Options: extended 1762First char = '(' 1763Need char = ')' 1764 (ab(xy)cd) 1765 0: (ab(xy)cd) 1766 1: ab(xy)cd 1767 2: <unset> 1768 3: cd 1769 (123ab(xy)cd) 1770 0: (123ab(xy)cd) 1771 1: 123ab(xy)cd 1772 2: 123 1773 3: cd 1774 1775/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix 1776Capturing subpattern count = 11 1777Options: extended 1778First char = '(' 1779Need char = ')' 1780 (ab(xy)cd) 1781 0: (ab(xy)cd) 1782 1: ab(xy)cd 1783 2: ab(xy)cd 1784 3: ab(xy)cd 1785 4: ab(xy)cd 1786 5: ab(xy)cd 1787 6: ab(xy)cd 1788 7: ab(xy)cd 1789 8: ab(xy)cd 1790 9: ab(xy)cd 179110: ab(xy)cd 179211: cd 1793 1794/\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix 1795Capturing subpattern count = 3 1796Options: extended 1797First char = '(' 1798Need char = ')' 1799 (abcd(xyz<p>qrs)123) 1800 0: (abcd(xyz<p>qrs)123) 1801 1: abcd(xyz<p>qrs)123 1802 2: 123 1803 1804/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix 1805Capturing subpattern count = 3 1806Options: extended 1807First char = '(' 1808Need char = ')' 1809 (ab(cd)ef) 1810 0: (ab(cd)ef) 1811 1: ab(cd)ef 1812 2: ef 1813 3: (cd) 1814 (ab(cd(ef)gh)ij) 1815 0: (ab(cd(ef)gh)ij) 1816 1: ab(cd(ef)gh)ij 1817 2: ij 1818 3: (cd(ef)gh) 1819 1820/^[[:alnum:]]/DZ 1821------------------------------------------------------------------ 1822 Bra 1823 ^ 1824 [0-9A-Za-z] 1825 Ket 1826 End 1827------------------------------------------------------------------ 1828Capturing subpattern count = 0 1829Options: anchored 1830No first char 1831No need char 1832 1833/^[[:^alnum:]]/DZ 1834------------------------------------------------------------------ 1835 Bra 1836 ^ 1837 [\x00-/:-@[-`{-\xff] (neg) 1838 Ket 1839 End 1840------------------------------------------------------------------ 1841Capturing subpattern count = 0 1842Options: anchored 1843No first char 1844No need char 1845 1846/^[[:alpha:]]/DZ 1847------------------------------------------------------------------ 1848 Bra 1849 ^ 1850 [A-Za-z] 1851 Ket 1852 End 1853------------------------------------------------------------------ 1854Capturing subpattern count = 0 1855Options: anchored 1856No first char 1857No need char 1858 1859/^[[:^alpha:]]/DZ 1860------------------------------------------------------------------ 1861 Bra 1862 ^ 1863 [\x00-@[-`{-\xff] (neg) 1864 Ket 1865 End 1866------------------------------------------------------------------ 1867Capturing subpattern count = 0 1868Options: anchored 1869No first char 1870No need char 1871 1872/[_[:alpha:]]/IS 1873Capturing subpattern count = 0 1874No options 1875No first char 1876No need char 1877Subject length lower bound = 1 1878Starting 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 1879 _ 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 1880 1881/^[[:ascii:]]/DZ 1882------------------------------------------------------------------ 1883 Bra 1884 ^ 1885 [\x00-\x7f] 1886 Ket 1887 End 1888------------------------------------------------------------------ 1889Capturing subpattern count = 0 1890Options: anchored 1891No first char 1892No need char 1893 1894/^[[:^ascii:]]/DZ 1895------------------------------------------------------------------ 1896 Bra 1897 ^ 1898 [\x80-\xff] (neg) 1899 Ket 1900 End 1901------------------------------------------------------------------ 1902Capturing subpattern count = 0 1903Options: anchored 1904No first char 1905No need char 1906 1907/^[[:blank:]]/DZ 1908------------------------------------------------------------------ 1909 Bra 1910 ^ 1911 [\x09 ] 1912 Ket 1913 End 1914------------------------------------------------------------------ 1915Capturing subpattern count = 0 1916Options: anchored 1917No first char 1918No need char 1919 1920/^[[:^blank:]]/DZ 1921------------------------------------------------------------------ 1922 Bra 1923 ^ 1924 [\x00-\x08\x0a-\x1f!-\xff] (neg) 1925 Ket 1926 End 1927------------------------------------------------------------------ 1928Capturing subpattern count = 0 1929Options: anchored 1930No first char 1931No need char 1932 1933/[\n\x0b\x0c\x0d[:blank:]]/IS 1934Capturing subpattern count = 0 1935Contains explicit CR or LF match 1936No options 1937No first char 1938No need char 1939Subject length lower bound = 1 1940Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 1941 1942/^[[:cntrl:]]/DZ 1943------------------------------------------------------------------ 1944 Bra 1945 ^ 1946 [\x00-\x1f\x7f] 1947 Ket 1948 End 1949------------------------------------------------------------------ 1950Capturing subpattern count = 0 1951Options: anchored 1952No first char 1953No need char 1954 1955/^[[:digit:]]/DZ 1956------------------------------------------------------------------ 1957 Bra 1958 ^ 1959 [0-9] 1960 Ket 1961 End 1962------------------------------------------------------------------ 1963Capturing subpattern count = 0 1964Options: anchored 1965No first char 1966No need char 1967 1968/^[[:graph:]]/DZ 1969------------------------------------------------------------------ 1970 Bra 1971 ^ 1972 [!-~] 1973 Ket 1974 End 1975------------------------------------------------------------------ 1976Capturing subpattern count = 0 1977Options: anchored 1978No first char 1979No need char 1980 1981/^[[:lower:]]/DZ 1982------------------------------------------------------------------ 1983 Bra 1984 ^ 1985 [a-z] 1986 Ket 1987 End 1988------------------------------------------------------------------ 1989Capturing subpattern count = 0 1990Options: anchored 1991No first char 1992No need char 1993 1994/^[[:print:]]/DZ 1995------------------------------------------------------------------ 1996 Bra 1997 ^ 1998 [ -~] 1999 Ket 2000 End 2001------------------------------------------------------------------ 2002Capturing subpattern count = 0 2003Options: anchored 2004No first char 2005No need char 2006 2007/^[[:punct:]]/DZ 2008------------------------------------------------------------------ 2009 Bra 2010 ^ 2011 [!-/:-@[-`{-~] 2012 Ket 2013 End 2014------------------------------------------------------------------ 2015Capturing subpattern count = 0 2016Options: anchored 2017No first char 2018No need char 2019 2020/^[[:space:]]/DZ 2021------------------------------------------------------------------ 2022 Bra 2023 ^ 2024 [\x09-\x0d ] 2025 Ket 2026 End 2027------------------------------------------------------------------ 2028Capturing subpattern count = 0 2029Options: anchored 2030No first char 2031No need char 2032 2033/^[[:upper:]]/DZ 2034------------------------------------------------------------------ 2035 Bra 2036 ^ 2037 [A-Z] 2038 Ket 2039 End 2040------------------------------------------------------------------ 2041Capturing subpattern count = 0 2042Options: anchored 2043No first char 2044No need char 2045 2046/^[[:xdigit:]]/DZ 2047------------------------------------------------------------------ 2048 Bra 2049 ^ 2050 [0-9A-Fa-f] 2051 Ket 2052 End 2053------------------------------------------------------------------ 2054Capturing subpattern count = 0 2055Options: anchored 2056No first char 2057No need char 2058 2059/^[[:word:]]/DZ 2060------------------------------------------------------------------ 2061 Bra 2062 ^ 2063 [0-9A-Z_a-z] 2064 Ket 2065 End 2066------------------------------------------------------------------ 2067Capturing subpattern count = 0 2068Options: anchored 2069No first char 2070No need char 2071 2072/^[[:^cntrl:]]/DZ 2073------------------------------------------------------------------ 2074 Bra 2075 ^ 2076 [ -~\x80-\xff] (neg) 2077 Ket 2078 End 2079------------------------------------------------------------------ 2080Capturing subpattern count = 0 2081Options: anchored 2082No first char 2083No need char 2084 2085/^[12[:^digit:]]/DZ 2086------------------------------------------------------------------ 2087 Bra 2088 ^ 2089 [\x00-/12:-\xff] (neg) 2090 Ket 2091 End 2092------------------------------------------------------------------ 2093Capturing subpattern count = 0 2094Options: anchored 2095No first char 2096No need char 2097 2098/^[[:^blank:]]/DZ 2099------------------------------------------------------------------ 2100 Bra 2101 ^ 2102 [\x00-\x08\x0a-\x1f!-\xff] (neg) 2103 Ket 2104 End 2105------------------------------------------------------------------ 2106Capturing subpattern count = 0 2107Options: anchored 2108No first char 2109No need char 2110 2111/[01[:alpha:]%]/DZ 2112------------------------------------------------------------------ 2113 Bra 2114 [%01A-Za-z] 2115 Ket 2116 End 2117------------------------------------------------------------------ 2118Capturing subpattern count = 0 2119No options 2120No first char 2121No need char 2122 2123/[[.ch.]]/I 2124Failed: POSIX collating elements are not supported at offset 1 2125 2126/[[=ch=]]/I 2127Failed: POSIX collating elements are not supported at offset 1 2128 2129/[[:rhubarb:]]/I 2130Failed: unknown POSIX class name at offset 3 2131 2132/[[:upper:]]/Ii 2133Capturing subpattern count = 0 2134Options: caseless 2135No first char 2136No need char 2137 A 2138 0: A 2139 a 2140 0: a 2141 2142/[[:lower:]]/Ii 2143Capturing subpattern count = 0 2144Options: caseless 2145No first char 2146No need char 2147 A 2148 0: A 2149 a 2150 0: a 2151 2152/((?-i)[[:lower:]])[[:lower:]]/Ii 2153Capturing subpattern count = 1 2154Options: caseless 2155No first char 2156No need char 2157 ab 2158 0: ab 2159 1: a 2160 aB 2161 0: aB 2162 1: a 2163 *** Failers 2164 0: ai 2165 1: a 2166 Ab 2167No match 2168 AB 2169No match 2170 2171/[\200-\110]/I 2172Failed: range out of order in character class at offset 9 2173 2174/^(?(0)f|b)oo/I 2175Failed: invalid condition (?(0) at offset 6 2176 2177/This one's here because of the large output vector needed/I 2178Capturing subpattern count = 0 2179No options 2180First char = 'T' 2181Need char = 'd' 2182 2183/(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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 2184Capturing subpattern count = 271 2185Max back reference = 270 2186No options 2187No first char 2188No need char 2189 \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 2190 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 2191 1: 1 2192 2: 2 2193 3: 3 2194 4: 4 2195 5: 5 2196 6: 6 2197 7: 7 2198 8: 8 2199 9: 9 220010: 10 220111: 11 220212: 12 220313: 13 220414: 14 220515: 15 220616: 16 220717: 17 220818: 18 220919: 19 221020: 20 221121: 21 221222: 22 221323: 23 221424: 24 221525: 25 221626: 26 221727: 27 221828: 28 221929: 29 222030: 30 222131: 31 222232: 32 222333: 33 222434: 34 222535: 35 222636: 36 222737: 37 222838: 38 222939: 39 223040: 40 223141: 41 223242: 42 223343: 43 223444: 44 223545: 45 223646: 46 223747: 47 223848: 48 223949: 49 224050: 50 224151: 51 224252: 52 224353: 53 224454: 54 224555: 55 224656: 56 224757: 57 224858: 58 224959: 59 225060: 60 225161: 61 225262: 62 225363: 63 225464: 64 225565: 65 225666: 66 225767: 67 225868: 68 225969: 69 226070: 70 226171: 71 226272: 72 226373: 73 226474: 74 226575: 75 226676: 76 226777: 77 226878: 78 226979: 79 227080: 80 227181: 81 227282: 82 227383: 83 227484: 84 227585: 85 227686: 86 227787: 87 227888: 88 227989: 89 228090: 90 228191: 91 228292: 92 228393: 93 228494: 94 228595: 95 228696: 96 228797: 97 228898: 98 228999: 99 2290100: 100 2291101: 101 2292102: 102 2293103: 103 2294104: 104 2295105: 105 2296106: 106 2297107: 107 2298108: 108 2299109: 109 2300110: 110 2301111: 111 2302112: 112 2303113: 113 2304114: 114 2305115: 115 2306116: 116 2307117: 117 2308118: 118 2309119: 119 2310120: 120 2311121: 121 2312122: 122 2313123: 123 2314124: 124 2315125: 125 2316126: 126 2317127: 127 2318128: 128 2319129: 129 2320130: 130 2321131: 131 2322132: 132 2323133: 133 2324134: 134 2325135: 135 2326136: 136 2327137: 137 2328138: 138 2329139: 139 2330140: 140 2331141: 141 2332142: 142 2333143: 143 2334144: 144 2335145: 145 2336146: 146 2337147: 147 2338148: 148 2339149: 149 2340150: 150 2341151: 151 2342152: 152 2343153: 153 2344154: 154 2345155: 155 2346156: 156 2347157: 157 2348158: 158 2349159: 159 2350160: 160 2351161: 161 2352162: 162 2353163: 163 2354164: 164 2355165: 165 2356166: 166 2357167: 167 2358168: 168 2359169: 169 2360170: 170 2361171: 171 2362172: 172 2363173: 173 2364174: 174 2365175: 175 2366176: 176 2367177: 177 2368178: 178 2369179: 179 2370180: 180 2371181: 181 2372182: 182 2373183: 183 2374184: 184 2375185: 185 2376186: 186 2377187: 187 2378188: 188 2379189: 189 2380190: 190 2381191: 191 2382192: 192 2383193: 193 2384194: 194 2385195: 195 2386196: 196 2387197: 197 2388198: 198 2389199: 199 2390200: 200 2391201: 201 2392202: 202 2393203: 203 2394204: 204 2395205: 205 2396206: 206 2397207: 207 2398208: 208 2399209: 209 2400210: 210 2401211: 211 2402212: 212 2403213: 213 2404214: 214 2405215: 215 2406216: 216 2407217: 217 2408218: 218 2409219: 219 2410220: 220 2411221: 221 2412222: 222 2413223: 223 2414224: 224 2415225: 225 2416226: 226 2417227: 227 2418228: 228 2419229: 229 2420230: 230 2421231: 231 2422232: 232 2423233: 233 2424234: 234 2425235: 235 2426236: 236 2427237: 237 2428238: 238 2429239: 239 2430240: 240 2431241: 241 2432242: 242 2433243: 243 2434244: 244 2435245: 245 2436246: 246 2437247: 247 2438248: 248 2439249: 249 2440250: 250 2441251: 251 2442252: 252 2443253: 253 2444254: 254 2445255: 255 2446256: 256 2447257: 257 2448258: 258 2449259: 259 2450260: 260 2451261: 261 2452262: 262 2453263: 263 2454264: 264 2455265: 265 2456266: 266 2457267: 267 2458268: 268 2459269: 269 2460270: ABC 2461271: ABC 2462 2463/This one's here because Perl does this differently and PCRE can't at present/I 2464Capturing subpattern count = 0 2465No options 2466First char = 'T' 2467Need char = 't' 2468 2469/(main(O)?)+/I 2470Capturing subpattern count = 2 2471No options 2472First char = 'm' 2473Need char = 'n' 2474 mainmain 2475 0: mainmain 2476 1: main 2477 mainOmain 2478 0: mainOmain 2479 1: main 2480 2: O 2481 2482/These are all cases where Perl does it differently (nested captures)/I 2483Capturing subpattern count = 1 2484No options 2485First char = 'T' 2486Need char = 's' 2487 2488/^(a(b)?)+$/I 2489Capturing subpattern count = 2 2490Options: anchored 2491No first char 2492No need char 2493 aba 2494 0: aba 2495 1: a 2496 2: b 2497 2498/^(aa(bb)?)+$/I 2499Capturing subpattern count = 2 2500Options: anchored 2501No first char 2502No need char 2503 aabbaa 2504 0: aabbaa 2505 1: aa 2506 2: bb 2507 2508/^(aa|aa(bb))+$/I 2509Capturing subpattern count = 2 2510Options: anchored 2511No first char 2512No need char 2513 aabbaa 2514 0: aabbaa 2515 1: aa 2516 2: bb 2517 2518/^(aa(bb)??)+$/I 2519Capturing subpattern count = 2 2520Options: anchored 2521No first char 2522No need char 2523 aabbaa 2524 0: aabbaa 2525 1: aa 2526 2: bb 2527 2528/^(?:aa(bb)?)+$/I 2529Capturing subpattern count = 1 2530Options: anchored 2531No first char 2532No need char 2533 aabbaa 2534 0: aabbaa 2535 1: bb 2536 2537/^(aa(b(b))?)+$/I 2538Capturing subpattern count = 3 2539Options: anchored 2540No first char 2541No need char 2542 aabbaa 2543 0: aabbaa 2544 1: aa 2545 2: bb 2546 3: b 2547 2548/^(?:aa(b(b))?)+$/I 2549Capturing subpattern count = 2 2550Options: anchored 2551No first char 2552No need char 2553 aabbaa 2554 0: aabbaa 2555 1: bb 2556 2: b 2557 2558/^(?:aa(b(?:b))?)+$/I 2559Capturing subpattern count = 1 2560Options: anchored 2561No first char 2562No need char 2563 aabbaa 2564 0: aabbaa 2565 1: bb 2566 2567/^(?:aa(bb(?:b))?)+$/I 2568Capturing subpattern count = 1 2569Options: anchored 2570No first char 2571No need char 2572 aabbbaa 2573 0: aabbbaa 2574 1: bbb 2575 2576/^(?:aa(b(?:bb))?)+$/I 2577Capturing subpattern count = 1 2578Options: anchored 2579No first char 2580No need char 2581 aabbbaa 2582 0: aabbbaa 2583 1: bbb 2584 2585/^(?:aa(?:b(b))?)+$/I 2586Capturing subpattern count = 1 2587Options: anchored 2588No first char 2589No need char 2590 aabbaa 2591 0: aabbaa 2592 1: b 2593 2594/^(?:aa(?:b(bb))?)+$/I 2595Capturing subpattern count = 1 2596Options: anchored 2597No first char 2598No need char 2599 aabbbaa 2600 0: aabbbaa 2601 1: bb 2602 2603/^(aa(b(bb))?)+$/I 2604Capturing subpattern count = 3 2605Options: anchored 2606No first char 2607No need char 2608 aabbbaa 2609 0: aabbbaa 2610 1: aa 2611 2: bbb 2612 3: bb 2613 2614/^(aa(bb(bb))?)+$/I 2615Capturing subpattern count = 3 2616Options: anchored 2617No first char 2618No need char 2619 aabbbbaa 2620 0: aabbbbaa 2621 1: aa 2622 2: bbbb 2623 3: bb 2624 2625/--------------------------------------------------------------------/I 2626Capturing subpattern count = 0 2627No options 2628First char = '-' 2629Need char = '-' 2630 2631/#/IxDZ 2632------------------------------------------------------------------ 2633 Bra 2634 Ket 2635 End 2636------------------------------------------------------------------ 2637Capturing subpattern count = 0 2638May match empty string 2639Options: extended 2640No first char 2641No need char 2642 2643/a#/IxDZ 2644------------------------------------------------------------------ 2645 Bra 2646 a 2647 Ket 2648 End 2649------------------------------------------------------------------ 2650Capturing subpattern count = 0 2651Options: extended 2652First char = 'a' 2653No need char 2654 2655/[\s]/DZ 2656------------------------------------------------------------------ 2657 Bra 2658 [\x09-\x0d ] 2659 Ket 2660 End 2661------------------------------------------------------------------ 2662Capturing subpattern count = 0 2663No options 2664No first char 2665No need char 2666 2667/[\S]/DZ 2668------------------------------------------------------------------ 2669 Bra 2670 [\x00-\x08\x0e-\x1f!-\xff] (neg) 2671 Ket 2672 End 2673------------------------------------------------------------------ 2674Capturing subpattern count = 0 2675No options 2676No first char 2677No need char 2678 2679/a(?i)b/DZ 2680------------------------------------------------------------------ 2681 Bra 2682 a 2683 /i b 2684 Ket 2685 End 2686------------------------------------------------------------------ 2687Capturing subpattern count = 0 2688No options 2689First char = 'a' 2690Need char = 'b' (caseless) 2691 ab 2692 0: ab 2693 aB 2694 0: aB 2695 *** Failers 2696No match 2697 AB 2698No match 2699 2700/(a(?i)b)/DZ 2701------------------------------------------------------------------ 2702 Bra 2703 CBra 1 2704 a 2705 /i b 2706 Ket 2707 Ket 2708 End 2709------------------------------------------------------------------ 2710Capturing subpattern count = 1 2711No options 2712First char = 'a' 2713Need char = 'b' (caseless) 2714 ab 2715 0: ab 2716 1: ab 2717 aB 2718 0: aB 2719 1: aB 2720 *** Failers 2721No match 2722 AB 2723No match 2724 2725/ (?i)abc/IxDZ 2726------------------------------------------------------------------ 2727 Bra 2728 /i abc 2729 Ket 2730 End 2731------------------------------------------------------------------ 2732Capturing subpattern count = 0 2733Options: caseless extended 2734First char = 'a' (caseless) 2735Need char = 'c' (caseless) 2736 2737/#this is a comment 2738 (?i)abc/IxDZ 2739------------------------------------------------------------------ 2740 Bra 2741 /i abc 2742 Ket 2743 End 2744------------------------------------------------------------------ 2745Capturing subpattern count = 0 2746Options: caseless extended 2747First char = 'a' (caseless) 2748Need char = 'c' (caseless) 2749 2750/123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ 2751------------------------------------------------------------------ 2752 Bra 2753 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 2754 Ket 2755 End 2756------------------------------------------------------------------ 2757Capturing subpattern count = 0 2758No options 2759First char = '1' 2760Need char = '0' 2761 2762/\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ 2763------------------------------------------------------------------ 2764 Bra 2765 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 2766 Ket 2767 End 2768------------------------------------------------------------------ 2769Capturing subpattern count = 0 2770No options 2771First char = '1' 2772Need char = '0' 2773 2774/\Q\E/DZ 2775------------------------------------------------------------------ 2776 Bra 2777 Ket 2778 End 2779------------------------------------------------------------------ 2780Capturing subpattern count = 0 2781May match empty string 2782No options 2783No first char 2784No need char 2785 \ 2786 0: 2787 2788/\Q\Ex/DZ 2789------------------------------------------------------------------ 2790 Bra 2791 x 2792 Ket 2793 End 2794------------------------------------------------------------------ 2795Capturing subpattern count = 0 2796No options 2797First char = 'x' 2798No need char 2799 2800/ \Q\E/DZ 2801------------------------------------------------------------------ 2802 Bra 2803 2804 Ket 2805 End 2806------------------------------------------------------------------ 2807Capturing subpattern count = 0 2808No options 2809First char = ' ' 2810No need char 2811 2812/a\Q\E/DZ 2813------------------------------------------------------------------ 2814 Bra 2815 a 2816 Ket 2817 End 2818------------------------------------------------------------------ 2819Capturing subpattern count = 0 2820No options 2821First char = 'a' 2822No need char 2823 abc 2824 0: a 2825 bca 2826 0: a 2827 bac 2828 0: a 2829 2830/a\Q\Eb/DZ 2831------------------------------------------------------------------ 2832 Bra 2833 ab 2834 Ket 2835 End 2836------------------------------------------------------------------ 2837Capturing subpattern count = 0 2838No options 2839First char = 'a' 2840Need char = 'b' 2841 abc 2842 0: ab 2843 2844/\Q\Eabc/DZ 2845------------------------------------------------------------------ 2846 Bra 2847 abc 2848 Ket 2849 End 2850------------------------------------------------------------------ 2851Capturing subpattern count = 0 2852No options 2853First char = 'a' 2854Need char = 'c' 2855 2856/x*+\w/DZ 2857------------------------------------------------------------------ 2858 Bra 2859 x*+ 2860 \w 2861 Ket 2862 End 2863------------------------------------------------------------------ 2864Capturing subpattern count = 0 2865No options 2866No first char 2867No need char 2868 *** Failers 2869 0: F 2870 xxxxx 2871No match 2872 2873/x?+/DZ 2874------------------------------------------------------------------ 2875 Bra 2876 x?+ 2877 Ket 2878 End 2879------------------------------------------------------------------ 2880Capturing subpattern count = 0 2881May match empty string 2882No options 2883No first char 2884No need char 2885 2886/x++/DZ 2887------------------------------------------------------------------ 2888 Bra 2889 x++ 2890 Ket 2891 End 2892------------------------------------------------------------------ 2893Capturing subpattern count = 0 2894No options 2895First char = 'x' 2896No need char 2897 2898/x{1,3}+/BZO 2899------------------------------------------------------------------ 2900 Bra 2901 x 2902 x{0,2}+ 2903 Ket 2904 End 2905------------------------------------------------------------------ 2906 2907/x{1,3}+/BZOi 2908------------------------------------------------------------------ 2909 Bra 2910 /i x 2911 /i x{0,2}+ 2912 Ket 2913 End 2914------------------------------------------------------------------ 2915 2916/[^x]{1,3}+/BZO 2917------------------------------------------------------------------ 2918 Bra 2919 [^x] 2920 [^x]{0,2}+ 2921 Ket 2922 End 2923------------------------------------------------------------------ 2924 2925/[^x]{1,3}+/BZOi 2926------------------------------------------------------------------ 2927 Bra 2928 /i [^x] 2929 /i [^x]{0,2}+ 2930 Ket 2931 End 2932------------------------------------------------------------------ 2933 2934/(x)*+/DZ 2935------------------------------------------------------------------ 2936 Bra 2937 Braposzero 2938 CBraPos 1 2939 x 2940 KetRpos 2941 Ket 2942 End 2943------------------------------------------------------------------ 2944Capturing subpattern count = 1 2945May match empty string 2946No options 2947No first char 2948No need char 2949 2950/^(\w++|\s++)*$/I 2951Capturing subpattern count = 1 2952May match empty string 2953Options: anchored 2954No first char 2955No need char 2956 now is the time for all good men to come to the aid of the party 2957 0: now is the time for all good men to come to the aid of the party 2958 1: party 2959 *** Failers 2960No match 2961 this is not a line with only words and spaces! 2962No match 2963 2964/(\d++)(\w)/I 2965Capturing subpattern count = 2 2966No options 2967No first char 2968No need char 2969 12345a 2970 0: 12345a 2971 1: 12345 2972 2: a 2973 *** Failers 2974No match 2975 12345+ 2976No match 2977 2978/a++b/I 2979Capturing subpattern count = 0 2980No options 2981First char = 'a' 2982Need char = 'b' 2983 aaab 2984 0: aaab 2985 2986/(a++b)/I 2987Capturing subpattern count = 1 2988No options 2989First char = 'a' 2990Need char = 'b' 2991 aaab 2992 0: aaab 2993 1: aaab 2994 2995/(a++)b/I 2996Capturing subpattern count = 1 2997No options 2998First char = 'a' 2999Need char = 'b' 3000 aaab 3001 0: aaab 3002 1: aaa 3003 3004/([^()]++|\([^()]*\))+/I 3005Capturing subpattern count = 1 3006No options 3007No first char 3008No need char 3009 ((abc(ade)ufh()()x 3010 0: abc(ade)ufh()()x 3011 1: x 3012 3013/\(([^()]++|\([^()]+\))+\)/I 3014Capturing subpattern count = 1 3015No options 3016First char = '(' 3017Need char = ')' 3018 (abc) 3019 0: (abc) 3020 1: abc 3021 (abc(def)xyz) 3022 0: (abc(def)xyz) 3023 1: xyz 3024 *** Failers 3025No match 3026 ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 3027No match 3028 3029/(abc){1,3}+/DZ 3030------------------------------------------------------------------ 3031 Bra 3032 Once 3033 CBra 1 3034 abc 3035 Ket 3036 Brazero 3037 Bra 3038 CBra 1 3039 abc 3040 Ket 3041 Brazero 3042 CBra 1 3043 abc 3044 Ket 3045 Ket 3046 Ket 3047 Ket 3048 End 3049------------------------------------------------------------------ 3050Capturing subpattern count = 1 3051No options 3052First char = 'a' 3053Need char = 'c' 3054 3055/a+?+/I 3056Failed: nothing to repeat at offset 3 3057 3058/a{2,3}?+b/I 3059Failed: nothing to repeat at offset 7 3060 3061/(?U)a+?+/I 3062Failed: nothing to repeat at offset 7 3063 3064/a{2,3}?+b/IU 3065Failed: nothing to repeat at offset 7 3066 3067/x(?U)a++b/DZ 3068------------------------------------------------------------------ 3069 Bra 3070 x 3071 a++ 3072 b 3073 Ket 3074 End 3075------------------------------------------------------------------ 3076Capturing subpattern count = 0 3077No options 3078First char = 'x' 3079Need char = 'b' 3080 xaaaab 3081 0: xaaaab 3082 3083/(?U)xa++b/DZ 3084------------------------------------------------------------------ 3085 Bra 3086 x 3087 a++ 3088 b 3089 Ket 3090 End 3091------------------------------------------------------------------ 3092Capturing subpattern count = 0 3093Options: ungreedy 3094First char = 'x' 3095Need char = 'b' 3096 xaaaab 3097 0: xaaaab 3098 3099/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ 3100------------------------------------------------------------------ 3101 Bra 3102 ^ 3103 CBra 1 3104 CBra 2 3105 a+ 3106 Ket 3107 CBra 3 3108 [ab]+? 3109 Ket 3110 CBra 4 3111 [bc]+ 3112 Ket 3113 CBra 5 3114 \w*+ 3115 Ket 3116 Ket 3117 Ket 3118 End 3119------------------------------------------------------------------ 3120Capturing subpattern count = 5 3121Options: anchored 3122No first char 3123No need char 3124 3125/^x(?U)a+b/DZ 3126------------------------------------------------------------------ 3127 Bra 3128 ^ 3129 x 3130 a++ 3131 b 3132 Ket 3133 End 3134------------------------------------------------------------------ 3135Capturing subpattern count = 0 3136Options: anchored 3137No first char 3138Need char = 'b' 3139 3140/^x(?U)(a+)b/DZ 3141------------------------------------------------------------------ 3142 Bra 3143 ^ 3144 x 3145 CBra 1 3146 a+? 3147 Ket 3148 b 3149 Ket 3150 End 3151------------------------------------------------------------------ 3152Capturing subpattern count = 1 3153Options: anchored 3154No first char 3155Need char = 'b' 3156 3157/[.x.]/I 3158Failed: POSIX collating elements are not supported at offset 0 3159 3160/[=x=]/I 3161Failed: POSIX collating elements are not supported at offset 0 3162 3163/[:x:]/I 3164Failed: POSIX named classes are supported only within a class at offset 0 3165 3166/\l/I 3167Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 3168 3169/\L/I 3170Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 3171 3172/\N{name}/I 3173Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 3174 3175/\u/I 3176Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 3177 3178/\U/I 3179Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 3180 3181/a{1,3}b/U 3182 ab 3183 0: ab 3184 3185/[/I 3186Failed: missing terminating ] for character class at offset 1 3187 3188/[a-/I 3189Failed: missing terminating ] for character class at offset 3 3190 3191/[[:space:]/I 3192Failed: missing terminating ] for character class at offset 10 3193 3194/[\s]/IDZ 3195------------------------------------------------------------------ 3196 Bra 3197 [\x09-\x0d ] 3198 Ket 3199 End 3200------------------------------------------------------------------ 3201Capturing subpattern count = 0 3202No options 3203No first char 3204No need char 3205 3206/[[:space:]]/IDZ 3207------------------------------------------------------------------ 3208 Bra 3209 [\x09-\x0d ] 3210 Ket 3211 End 3212------------------------------------------------------------------ 3213Capturing subpattern count = 0 3214No options 3215No first char 3216No need char 3217 3218/[[:space:]abcde]/IDZ 3219------------------------------------------------------------------ 3220 Bra 3221 [\x09-\x0d a-e] 3222 Ket 3223 End 3224------------------------------------------------------------------ 3225Capturing subpattern count = 0 3226No options 3227No first char 3228No need char 3229 3230/< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix 3231Capturing subpattern count = 0 3232Options: extended 3233First char = '<' 3234Need char = '>' 3235 <> 3236 0: <> 3237 <abcd> 3238 0: <abcd> 3239 <abc <123> hij> 3240 0: <abc <123> hij> 3241 <abc <def> hij> 3242 0: <def> 3243 <abc<>def> 3244 0: <abc<>def> 3245 <abc<> 3246 0: <> 3247 *** Failers 3248No match 3249 <abc 3250No match 3251 3252|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 3253------------------------------------------------------------------ 3254 Bra 3255 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 3256 \b 3257 Ket 3258 End 3259------------------------------------------------------------------ 3260Capturing subpattern count = 0 3261Max lookbehind = 1 3262No options 3263First char = '8' 3264Need char = 'X' 3265 3266|\$\<\.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 3267------------------------------------------------------------------ 3268 Bra 3269 $<.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 3270 \b 3271 Ket 3272 End 3273------------------------------------------------------------------ 3274Capturing subpattern count = 0 3275Max lookbehind = 1 3276No options 3277First char = '$' 3278Need char = 'X' 3279 3280/(.*)\d+\1/I 3281Capturing subpattern count = 1 3282Max back reference = 1 3283No options 3284No first char 3285No need char 3286 3287/(.*)\d+/I 3288Capturing subpattern count = 1 3289No options 3290First char at start or follows newline 3291No need char 3292 3293/(.*)\d+\1/Is 3294Capturing subpattern count = 1 3295Max back reference = 1 3296Options: dotall 3297No first char 3298No need char 3299 3300/(.*)\d+/Is 3301Capturing subpattern count = 1 3302Options: anchored dotall 3303No first char 3304No need char 3305 3306/(.*(xyz))\d+\2/I 3307Capturing subpattern count = 2 3308Max back reference = 2 3309No options 3310First char at start or follows newline 3311Need char = 'z' 3312 3313/((.*))\d+\1/I 3314Capturing subpattern count = 2 3315Max back reference = 1 3316No options 3317No first char 3318No need char 3319 abc123bc 3320 0: bc123bc 3321 1: bc 3322 2: bc 3323 3324/a[b]/I 3325Capturing subpattern count = 0 3326No options 3327First char = 'a' 3328Need char = 'b' 3329 3330/(?=a).*/I 3331Capturing subpattern count = 0 3332May match empty string 3333No options 3334First char = 'a' 3335No need char 3336 3337/(?=abc).xyz/IiI 3338Capturing subpattern count = 0 3339Options: caseless 3340First char = 'a' (caseless) 3341Need char = 'z' (caseless) 3342 3343/(?=abc)(?i).xyz/I 3344Capturing subpattern count = 0 3345No options 3346First char = 'a' 3347Need char = 'z' (caseless) 3348 3349/(?=a)(?=b)/I 3350Capturing subpattern count = 0 3351May match empty string 3352No options 3353First char = 'a' 3354No need char 3355 3356/(?=.)a/I 3357Capturing subpattern count = 0 3358No options 3359First char = 'a' 3360No need char 3361 3362/((?=abcda)a)/I 3363Capturing subpattern count = 1 3364No options 3365First char = 'a' 3366Need char = 'a' 3367 3368/((?=abcda)ab)/I 3369Capturing subpattern count = 1 3370No options 3371First char = 'a' 3372Need char = 'b' 3373 3374/()a/I 3375Capturing subpattern count = 1 3376No options 3377No first char 3378Need char = 'a' 3379 3380/(?(1)ab|ac)(.)/I 3381Capturing subpattern count = 1 3382No options 3383First char = 'a' 3384No need char 3385 3386/(?(1)abz|acz)(.)/I 3387Capturing subpattern count = 1 3388No options 3389First char = 'a' 3390Need char = 'z' 3391 3392/(?(1)abz)(.)/I 3393Capturing subpattern count = 1 3394No options 3395No first char 3396No need char 3397 3398/(?(1)abz)(1)23/I 3399Capturing subpattern count = 1 3400No options 3401No first char 3402Need char = '3' 3403 3404/(a)+/I 3405Capturing subpattern count = 1 3406No options 3407First char = 'a' 3408No need char 3409 3410/(a){2,3}/I 3411Capturing subpattern count = 1 3412No options 3413First char = 'a' 3414Need char = 'a' 3415 3416/(a)*/I 3417Capturing subpattern count = 1 3418May match empty string 3419No options 3420No first char 3421No need char 3422 3423/[a]/I 3424Capturing subpattern count = 0 3425No options 3426First char = 'a' 3427No need char 3428 3429/[ab]/I 3430Capturing subpattern count = 0 3431No options 3432No first char 3433No need char 3434 3435/[ab]/IS 3436Capturing subpattern count = 0 3437No options 3438No first char 3439No need char 3440Subject length lower bound = 1 3441Starting chars: a b 3442 3443/[^a]/I 3444Capturing subpattern count = 0 3445No options 3446No first char 3447No need char 3448 3449/\d456/I 3450Capturing subpattern count = 0 3451No options 3452No first char 3453Need char = '6' 3454 3455/\d456/IS 3456Capturing subpattern count = 0 3457No options 3458No first char 3459Need char = '6' 3460Subject length lower bound = 4 3461Starting chars: 0 1 2 3 4 5 6 7 8 9 3462 3463/a^b/I 3464Capturing subpattern count = 0 3465No options 3466First char = 'a' 3467Need char = 'b' 3468 3469/^a/Im 3470Capturing subpattern count = 0 3471Options: multiline 3472First char at start or follows newline 3473Need char = 'a' 3474 abcde 3475 0: a 3476 xy\nabc 3477 0: a 3478 *** Failers 3479No match 3480 xyabc 3481No match 3482 3483/c|abc/I 3484Capturing subpattern count = 0 3485No options 3486No first char 3487Need char = 'c' 3488 3489/(?i)[ab]/IS 3490Capturing subpattern count = 0 3491Options: caseless 3492No first char 3493No need char 3494Subject length lower bound = 1 3495Starting chars: A B a b 3496 3497/[ab](?i)cd/IS 3498Capturing subpattern count = 0 3499No options 3500No first char 3501Need char = 'd' (caseless) 3502Subject length lower bound = 3 3503Starting chars: a b 3504 3505/abc(?C)def/I 3506Capturing subpattern count = 0 3507No options 3508First char = 'a' 3509Need char = 'f' 3510 abcdef 3511--->abcdef 3512 0 ^ ^ d 3513 0: abcdef 3514 1234abcdef 3515--->1234abcdef 3516 0 ^ ^ d 3517 0: abcdef 3518 *** Failers 3519No match 3520 abcxyz 3521No match 3522 abcxyzf 3523--->abcxyzf 3524 0 ^ ^ d 3525No match 3526 3527/abc(?C)de(?C1)f/I 3528Capturing subpattern count = 0 3529No options 3530First char = 'a' 3531Need char = 'f' 3532 123abcdef 3533--->123abcdef 3534 0 ^ ^ d 3535 1 ^ ^ f 3536 0: abcdef 3537 3538/(?C1)\dabc(?C2)def/IS 3539Capturing subpattern count = 0 3540No options 3541No first char 3542Need char = 'f' 3543Subject length lower bound = 7 3544Starting chars: 0 1 2 3 4 5 6 7 8 9 3545 1234abcdef 3546--->1234abcdef 3547 1 ^ \d 3548 1 ^ \d 3549 1 ^ \d 3550 1 ^ \d 3551 2 ^ ^ d 3552 0: 4abcdef 3553 *** Failers 3554No match 3555 abcdef 3556No match 3557 3558/(?C1)\dabc(?C2)def/ISS 3559Capturing subpattern count = 0 3560No options 3561No first char 3562Need char = 'f' 3563 1234abcdef 3564--->1234abcdef 3565 1 ^ \d 3566 1 ^ \d 3567 1 ^ \d 3568 1 ^ \d 3569 2 ^ ^ d 3570 0: 4abcdef 3571 *** Failers 3572No match 3573 abcdef 3574--->abcdef 3575 1 ^ \d 3576 1 ^ \d 3577 1 ^ \d 3578 1 ^ \d 3579 1 ^ \d 3580 1 ^ \d 3581No match 3582 3583/(?C255)ab/I 3584Capturing subpattern count = 0 3585No options 3586First char = 'a' 3587Need char = 'b' 3588 3589/(?C256)ab/I 3590Failed: number after (?C is > 255 at offset 6 3591 3592/(?Cab)xx/I 3593Failed: closing ) for (?C expected at offset 3 3594 3595/(?C12vr)x/I 3596Failed: closing ) for (?C expected at offset 5 3597 3598/abc(?C)def/I 3599Capturing subpattern count = 0 3600No options 3601First char = 'a' 3602Need char = 'f' 3603 *** Failers 3604No match 3605 \x83\x0\x61bcdef 3606--->\x83\x00abcdef 3607 0 ^ ^ d 3608 0: abcdef 3609 3610/(abc)(?C)de(?C1)f/I 3611Capturing subpattern count = 1 3612No options 3613First char = 'a' 3614Need char = 'f' 3615 123abcdef 3616--->123abcdef 3617 0 ^ ^ d 3618 1 ^ ^ f 3619 0: abcdef 3620 1: abc 3621 123abcdef\C+ 3622Callout 0: last capture = 1 3623 0: <unset> 3624 1: abc 3625--->123abcdef 3626 ^ ^ d 3627Callout 1: last capture = 1 3628 0: <unset> 3629 1: abc 3630--->123abcdef 3631 ^ ^ f 3632 0: abcdef 3633 1: abc 3634 123abcdef\C- 3635 0: abcdef 3636 1: abc 3637 *** Failers 3638No match 3639 123abcdef\C!1 3640--->123abcdef 3641 0 ^ ^ d 3642 1 ^ ^ f 3643No match 3644 3645/(?C0)(abc(?C1))*/I 3646Capturing subpattern count = 1 3647May match empty string 3648No options 3649No first char 3650No need char 3651 abcabcabc 3652--->abcabcabc 3653 0 ^ (abc(?C1))* 3654 1 ^ ^ ) 3655 1 ^ ^ ) 3656 1 ^ ^ ) 3657 0: abcabcabc 3658 1: abc 3659 abcabc\C!1!3 3660--->abcabc 3661 0 ^ (abc(?C1))* 3662 1 ^ ^ ) 3663 1 ^ ^ ) 3664 0: abcabc 3665 1: abc 3666 *** Failers 3667--->*** Failers 3668 0 ^ (abc(?C1))* 3669 0: 3670 abcabcabc\C!1!3 3671--->abcabcabc 3672 0 ^ (abc(?C1))* 3673 1 ^ ^ ) 3674 1 ^ ^ ) 3675 1 ^ ^ ) 3676 0: abcabc 3677 1: abc 3678 3679/(\d{3}(?C))*/I 3680Capturing subpattern count = 1 3681May match empty string 3682No options 3683No first char 3684No need char 3685 123\C+ 3686Callout 0: last capture = -1 3687 0: <unset> 3688--->123 3689 ^ ^ ) 3690 0: 123 3691 1: 123 3692 123456\C+ 3693Callout 0: last capture = -1 3694 0: <unset> 3695--->123456 3696 ^ ^ ) 3697Callout 0: last capture = 1 3698 0: <unset> 3699 1: 123 3700--->123456 3701 ^ ^ ) 3702 0: 123456 3703 1: 456 3704 123456789\C+ 3705Callout 0: last capture = -1 3706 0: <unset> 3707--->123456789 3708 ^ ^ ) 3709Callout 0: last capture = 1 3710 0: <unset> 3711 1: 123 3712--->123456789 3713 ^ ^ ) 3714Callout 0: last capture = 1 3715 0: <unset> 3716 1: 456 3717--->123456789 3718 ^ ^ ) 3719 0: 123456789 3720 1: 789 3721 3722/((xyz)(?C)p|(?C1)xyzabc)/I 3723Capturing subpattern count = 2 3724No options 3725First char = 'x' 3726No need char 3727 xyzabc\C+ 3728Callout 0: last capture = 2 3729 0: <unset> 3730 1: <unset> 3731 2: xyz 3732--->xyzabc 3733 ^ ^ p 3734Callout 1: last capture = -1 3735 0: <unset> 3736--->xyzabc 3737 ^ x 3738 0: xyzabc 3739 1: xyzabc 3740 3741/(X)((xyz)(?C)p|(?C1)xyzabc)/I 3742Capturing subpattern count = 3 3743No options 3744First char = 'X' 3745Need char = 'x' 3746 Xxyzabc\C+ 3747Callout 0: last capture = 3 3748 0: <unset> 3749 1: X 3750 2: <unset> 3751 3: xyz 3752--->Xxyzabc 3753 ^ ^ p 3754Callout 1: last capture = 1 3755 0: <unset> 3756 1: X 3757--->Xxyzabc 3758 ^^ x 3759 0: Xxyzabc 3760 1: X 3761 2: xyzabc 3762 3763/(?=(abc))(?C)abcdef/I 3764Capturing subpattern count = 1 3765No options 3766First char = 'a' 3767Need char = 'f' 3768 abcdef\C+ 3769Callout 0: last capture = 1 3770 0: <unset> 3771 1: abc 3772--->abcdef 3773 ^ a 3774 0: abcdef 3775 1: abc 3776 3777/(?!(abc)(?C1)d)(?C2)abcxyz/I 3778Capturing subpattern count = 1 3779No options 3780First char = 'a' 3781Need char = 'z' 3782 abcxyz\C+ 3783Callout 1: last capture = 1 3784 0: <unset> 3785 1: abc 3786--->abcxyz 3787 ^ ^ d 3788Callout 2: last capture = -1 3789 0: <unset> 3790--->abcxyz 3791 ^ a 3792 0: abcxyz 3793 3794/(?<=(abc)(?C))xyz/I 3795Capturing subpattern count = 1 3796Max lookbehind = 3 3797No options 3798First char = 'x' 3799Need char = 'z' 3800 abcxyz\C+ 3801Callout 0: last capture = 1 3802 0: <unset> 3803 1: abc 3804--->abcxyz 3805 ^ ) 3806 0: xyz 3807 1: abc 3808 3809/a(b+)(c*)(?C1)/I 3810Capturing subpattern count = 2 3811No options 3812First char = 'a' 3813Need char = 'b' 3814 abbbbbccc\C*1 3815--->abbbbbccc 3816 1 ^ ^ 3817Callout data = 1 3818No match 3819 3820/a(b+?)(c*?)(?C1)/I 3821Capturing subpattern count = 2 3822No options 3823First char = 'a' 3824Need char = 'b' 3825 abbbbbccc\C*1 3826--->abbbbbccc 3827 1 ^ ^ 3828Callout data = 1 3829 1 ^ ^ 3830Callout data = 1 3831 1 ^ ^ 3832Callout data = 1 3833 1 ^ ^ 3834Callout data = 1 3835 1 ^ ^ 3836Callout data = 1 3837 1 ^ ^ 3838Callout data = 1 3839 1 ^ ^ 3840Callout data = 1 3841 1 ^ ^ 3842Callout data = 1 3843No match 3844 3845/(?C)abc/I 3846Capturing subpattern count = 0 3847No options 3848First char = 'a' 3849Need char = 'c' 3850 3851/(?C)^abc/I 3852Capturing subpattern count = 0 3853Options: anchored 3854No first char 3855No need char 3856 3857/(?C)a|b/IS 3858Capturing subpattern count = 0 3859No options 3860No first char 3861No need char 3862Subject length lower bound = 1 3863Starting chars: a b 3864 3865/(?R)/I 3866Failed: recursive call could loop indefinitely at offset 3 3867 3868/(a|(?R))/I 3869Failed: recursive call could loop indefinitely at offset 6 3870 3871/(ab|(bc|(de|(?R))))/I 3872Failed: recursive call could loop indefinitely at offset 15 3873 3874/x(ab|(bc|(de|(?R))))/I 3875Capturing subpattern count = 3 3876No options 3877First char = 'x' 3878No need char 3879 xab 3880 0: xab 3881 1: ab 3882 xbc 3883 0: xbc 3884 1: bc 3885 2: bc 3886 xde 3887 0: xde 3888 1: de 3889 2: de 3890 3: de 3891 xxab 3892 0: xxab 3893 1: xab 3894 2: xab 3895 3: xab 3896 xxxab 3897 0: xxxab 3898 1: xxab 3899 2: xxab 3900 3: xxab 3901 *** Failers 3902No match 3903 xyab 3904No match 3905 3906/(ab|(bc|(de|(?1))))/I 3907Failed: recursive call could loop indefinitely at offset 15 3908 3909/x(ab|(bc|(de|(?1)x)x)x)/I 3910Failed: recursive call could loop indefinitely at offset 16 3911 3912/^([^()]|\((?1)*\))*$/I 3913Capturing subpattern count = 1 3914May match empty string 3915Options: anchored 3916No first char 3917No need char 3918 abc 3919 0: abc 3920 1: c 3921 a(b)c 3922 0: a(b)c 3923 1: c 3924 a(b(c))d 3925 0: a(b(c))d 3926 1: d 3927 *** Failers) 3928No match 3929 a(b(c)d 3930No match 3931 3932/^>abc>([^()]|\((?1)*\))*<xyz<$/I 3933Capturing subpattern count = 1 3934Options: anchored 3935No first char 3936Need char = '<' 3937 >abc>123<xyz< 3938 0: >abc>123<xyz< 3939 1: 3 3940 >abc>1(2)3<xyz< 3941 0: >abc>1(2)3<xyz< 3942 1: 3 3943 >abc>(1(2)3)<xyz< 3944 0: >abc>(1(2)3)<xyz< 3945 1: (1(2)3) 3946 3947/(a(?1)b)/DZ 3948------------------------------------------------------------------ 3949 Bra 3950 CBra 1 3951 a 3952 Recurse 3953 b 3954 Ket 3955 Ket 3956 End 3957------------------------------------------------------------------ 3958Capturing subpattern count = 1 3959No options 3960First char = 'a' 3961Need char = 'b' 3962 3963/(a(?1)+b)/DZ 3964------------------------------------------------------------------ 3965 Bra 3966 CBra 1 3967 a 3968 Once 3969 Recurse 3970 KetRmax 3971 b 3972 Ket 3973 Ket 3974 End 3975------------------------------------------------------------------ 3976Capturing subpattern count = 1 3977No options 3978First char = 'a' 3979Need char = 'b' 3980 3981/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I 3982Capturing subpattern count = 2 3983Options: anchored 3984No first char 3985No need char 3986 12 3987 0: 12 3988 1: 12 3989 (((2+2)*-3)-7) 3990 0: (((2+2)*-3)-7) 3991 1: (((2+2)*-3)-7) 3992 2: - 3993 -12 3994 0: -12 3995 1: -12 3996 *** Failers 3997No match 3998 ((2+2)*-3)-7) 3999No match 4000 4001/^(x(y|(?1){2})z)/I 4002Capturing subpattern count = 2 4003Options: anchored 4004No first char 4005No need char 4006 xyz 4007 0: xyz 4008 1: xyz 4009 2: y 4010 xxyzxyzz 4011 0: xxyzxyzz 4012 1: xxyzxyzz 4013 2: xyzxyz 4014 *** Failers 4015No match 4016 xxyzz 4017No match 4018 xxyzxyzxyzz 4019No match 4020 4021/((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix 4022Capturing subpattern count = 2 4023Options: extended 4024First char = '<' 4025Need char = '>' 4026 <> 4027 0: <> 4028 1: <> 4029 2: <> 4030 <abcd> 4031 0: <abcd> 4032 1: <abcd> 4033 2: <abcd> 4034 <abc <123> hij> 4035 0: <abc <123> hij> 4036 1: <abc <123> hij> 4037 2: <abc <123> hij> 4038 <abc <def> hij> 4039 0: <def> 4040 1: <def> 4041 2: <def> 4042 <abc<>def> 4043 0: <abc<>def> 4044 1: <abc<>def> 4045 2: <abc<>def> 4046 <abc<> 4047 0: <> 4048 1: <> 4049 2: <> 4050 *** Failers 4051No match 4052 <abc 4053No match 4054 4055/(?1)/I 4056Failed: reference to non-existent subpattern at offset 3 4057 4058/((?2)(abc)/I 4059Failed: missing ) at offset 10 4060 4061/^(abc)def(?1)/I 4062Capturing subpattern count = 1 4063Options: anchored 4064No first char 4065No need char 4066 abcdefabc 4067 0: abcdefabc 4068 1: abc 4069 4070/^(a|b|c)=(?1)+/I 4071Capturing subpattern count = 1 4072Options: anchored 4073No first char 4074No need char 4075 a=a 4076 0: a=a 4077 1: a 4078 a=b 4079 0: a=b 4080 1: a 4081 a=bc 4082 0: a=bc 4083 1: a 4084 4085/^(a|b|c)=((?1))+/I 4086Capturing subpattern count = 2 4087Options: anchored 4088No first char 4089No need char 4090 a=a 4091 0: a=a 4092 1: a 4093 2: a 4094 a=b 4095 0: a=b 4096 1: a 4097 2: b 4098 a=bc 4099 0: a=bc 4100 1: a 4101 2: c 4102 4103/a(?P<name1>b|c)d(?P<longername2>e)/DZ 4104------------------------------------------------------------------ 4105 Bra 4106 a 4107 CBra 1 4108 b 4109 Alt 4110 c 4111 Ket 4112 d 4113 CBra 2 4114 e 4115 Ket 4116 Ket 4117 End 4118------------------------------------------------------------------ 4119Capturing subpattern count = 2 4120Named capturing subpatterns: 4121 longername2 2 4122 name1 1 4123No options 4124First char = 'a' 4125Need char = 'e' 4126 abde 4127 0: abde 4128 1: b 4129 2: e 4130 acde 4131 0: acde 4132 1: c 4133 2: e 4134 4135/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ 4136------------------------------------------------------------------ 4137 Bra 4138 Bra 4139 a 4140 CBra 1 4141 c 4142 CBra 2 4143 d 4144 Ket 4145 Ket 4146 Ket 4147 CBra 3 4148 a 4149 Ket 4150 Ket 4151 End 4152------------------------------------------------------------------ 4153Capturing subpattern count = 3 4154Named capturing subpatterns: 4155 a 3 4156 c 1 4157 d 2 4158No options 4159First char = 'a' 4160Need char = 'a' 4161 4162/(?P<a>a)...(?P=a)bbb(?P>a)d/DZ 4163------------------------------------------------------------------ 4164 Bra 4165 CBra 1 4166 a 4167 Ket 4168 Any 4169 Any 4170 Any 4171 \1 4172 bbb 4173 Recurse 4174 d 4175 Ket 4176 End 4177------------------------------------------------------------------ 4178Capturing subpattern count = 1 4179Max back reference = 1 4180Named capturing subpatterns: 4181 a 1 4182No options 4183First char = 'a' 4184Need char = 'd' 4185 4186/^\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 4187Capturing subpattern count = 4 4188Max back reference = 4 4189Named capturing subpatterns: 4190 four 4 4191 one 1 4192 three 3 4193 two 2 4194May match empty string 4195Options: anchored caseless 4196No first char 4197No need char 4198 1221 4199 0: 1221 4200 1: 1221 4201 2: 1 4202 Satan, oscillate my metallic sonatas! 4203 0: Satan, oscillate my metallic sonatas! 4204 1: <unset> 4205 2: <unset> 4206 3: Satan, oscillate my metallic sonatas 4207 4: S 4208 A man, a plan, a canal: Panama! 4209 0: A man, a plan, a canal: Panama! 4210 1: <unset> 4211 2: <unset> 4212 3: A man, a plan, a canal: Panama 4213 4: A 4214 Able was I ere I saw Elba. 4215 0: Able was I ere I saw Elba. 4216 1: <unset> 4217 2: <unset> 4218 3: Able was I ere I saw Elba 4219 4: A 4220 *** Failers 4221No match 4222 The quick brown fox 4223No match 4224 4225/((?(R)a|b))\1(?1)?/I 4226Capturing subpattern count = 1 4227Max back reference = 1 4228No options 4229No first char 4230No need char 4231 bb 4232 0: bb 4233 1: b 4234 bbaa 4235 0: bba 4236 1: b 4237 4238/(.*)a/Is 4239Capturing subpattern count = 1 4240Options: anchored dotall 4241No first char 4242Need char = 'a' 4243 4244/(.*)a\1/Is 4245Capturing subpattern count = 1 4246Max back reference = 1 4247Options: dotall 4248No first char 4249Need char = 'a' 4250 4251/(.*)a(b)\2/Is 4252Capturing subpattern count = 2 4253Max back reference = 2 4254Options: anchored dotall 4255No first char 4256Need char = 'b' 4257 4258/((.*)a|(.*)b)z/Is 4259Capturing subpattern count = 3 4260Options: anchored dotall 4261No first char 4262Need char = 'z' 4263 4264/((.*)a|(.*)b)z\1/Is 4265Capturing subpattern count = 3 4266Max back reference = 1 4267Options: dotall 4268No first char 4269Need char = 'z' 4270 4271/((.*)a|(.*)b)z\2/Is 4272Capturing subpattern count = 3 4273Max back reference = 2 4274Options: dotall 4275No first char 4276Need char = 'z' 4277 4278/((.*)a|(.*)b)z\3/Is 4279Capturing subpattern count = 3 4280Max back reference = 3 4281Options: dotall 4282No first char 4283Need char = 'z' 4284 4285/((.*)a|^(.*)b)z\3/Is 4286Capturing subpattern count = 3 4287Max back reference = 3 4288Options: anchored dotall 4289No first char 4290Need char = 'z' 4291 4292/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is 4293Capturing subpattern count = 31 4294May match empty string 4295Options: anchored dotall 4296No first char 4297No need char 4298 4299/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is 4300Capturing subpattern count = 31 4301Max back reference = 31 4302May match empty string 4303Options: dotall 4304No first char 4305No need char 4306 4307/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is 4308Capturing subpattern count = 32 4309Max back reference = 32 4310May match empty string 4311Options: dotall 4312No first char 4313No need char 4314 4315/(a)(bc)/INDZ 4316------------------------------------------------------------------ 4317 Bra 4318 Bra 4319 a 4320 Ket 4321 Bra 4322 bc 4323 Ket 4324 Ket 4325 End 4326------------------------------------------------------------------ 4327Capturing subpattern count = 0 4328Options: no_auto_capture 4329First char = 'a' 4330Need char = 'c' 4331 abc 4332 0: abc 4333 4334/(?P<one>a)(bc)/INDZ 4335------------------------------------------------------------------ 4336 Bra 4337 CBra 1 4338 a 4339 Ket 4340 Bra 4341 bc 4342 Ket 4343 Ket 4344 End 4345------------------------------------------------------------------ 4346Capturing subpattern count = 1 4347Named capturing subpatterns: 4348 one 1 4349Options: no_auto_capture 4350First char = 'a' 4351Need char = 'c' 4352 abc 4353 0: abc 4354 1: a 4355 4356/(a)(?P<named>bc)/INDZ 4357------------------------------------------------------------------ 4358 Bra 4359 Bra 4360 a 4361 Ket 4362 CBra 1 4363 bc 4364 Ket 4365 Ket 4366 End 4367------------------------------------------------------------------ 4368Capturing subpattern count = 1 4369Named capturing subpatterns: 4370 named 1 4371Options: no_auto_capture 4372First char = 'a' 4373Need char = 'c' 4374 4375/(a+)*zz/I 4376Capturing subpattern count = 1 4377No options 4378No first char 4379Need char = 'z' 4380 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M 4381Minimum match() limit = 8 4382Minimum match() recursion limit = 6 4383 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz 4384 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 4385 aaaaaaaaaaaaaz\M 4386Minimum match() limit = 32768 4387Minimum match() recursion limit = 29 4388No match 4389 4390/(aaa(?C1)bbb|ab)/I 4391Capturing subpattern count = 1 4392No options 4393First char = 'a' 4394Need char = 'b' 4395 aaabbb 4396--->aaabbb 4397 1 ^ ^ b 4398 0: aaabbb 4399 1: aaabbb 4400 aaabbb\C*0 4401--->aaabbb 4402 1 ^ ^ b 4403 0: aaabbb 4404 1: aaabbb 4405 aaabbb\C*1 4406--->aaabbb 4407 1 ^ ^ b 4408Callout data = 1 4409 0: ab 4410 1: ab 4411 aaabbb\C*-1 4412--->aaabbb 4413 1 ^ ^ b 4414Callout data = -1 4415No match 4416 4417/ab(?P<one>cd)ef(?P<two>gh)/I 4418Capturing subpattern count = 2 4419Named capturing subpatterns: 4420 one 1 4421 two 2 4422No options 4423First char = 'a' 4424Need char = 'h' 4425 abcdefgh 4426 0: abcdefgh 4427 1: cd 4428 2: gh 4429 abcdefgh\C1\Gtwo 4430 0: abcdefgh 4431 1: cd 4432 2: gh 4433 1C cd (2) 4434 G gh (2) two 4435 abcdefgh\Cone\Ctwo 4436 0: abcdefgh 4437 1: cd 4438 2: gh 4439 C cd (2) one 4440 C gh (2) two 4441 abcdefgh\Cthree 4442no parentheses with name "three" 4443 0: abcdefgh 4444 1: cd 4445 2: gh 4446copy substring three failed -7 4447 4448/(?P<Tes>)(?P<Test>)/DZ 4449------------------------------------------------------------------ 4450 Bra 4451 CBra 1 4452 Ket 4453 CBra 2 4454 Ket 4455 Ket 4456 End 4457------------------------------------------------------------------ 4458Capturing subpattern count = 2 4459Named capturing subpatterns: 4460 Tes 1 4461 Test 2 4462May match empty string 4463No options 4464No first char 4465No need char 4466 4467/(?P<Test>)(?P<Tes>)/DZ 4468------------------------------------------------------------------ 4469 Bra 4470 CBra 1 4471 Ket 4472 CBra 2 4473 Ket 4474 Ket 4475 End 4476------------------------------------------------------------------ 4477Capturing subpattern count = 2 4478Named capturing subpatterns: 4479 Tes 2 4480 Test 1 4481May match empty string 4482No options 4483No first char 4484No need char 4485 4486/(?P<Z>zz)(?P<A>aa)/I 4487Capturing subpattern count = 2 4488Named capturing subpatterns: 4489 A 2 4490 Z 1 4491No options 4492First char = 'z' 4493Need char = 'a' 4494 zzaa\CZ 4495 0: zzaa 4496 1: zz 4497 2: aa 4498 C zz (2) Z 4499 zzaa\CA 4500 0: zzaa 4501 1: zz 4502 2: aa 4503 C aa (2) A 4504 4505/(?P<x>eks)(?P<x>eccs)/I 4506Failed: two named subpatterns have the same name at offset 15 4507 4508/(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I 4509Failed: two named subpatterns have the same name at offset 30 4510 4511"\[((?P<elem>\d+)(,(?P>elem))*)\]"I 4512Capturing subpattern count = 3 4513Named capturing subpatterns: 4514 elem 2 4515No options 4516First char = '[' 4517Need char = ']' 4518 [10,20,30,5,5,4,4,2,43,23,4234] 4519 0: [10,20,30,5,5,4,4,2,43,23,4234] 4520 1: 10,20,30,5,5,4,4,2,43,23,4234 4521 2: 10 4522 3: ,4234 4523 *** Failers 4524No match 4525 [] 4526No match 4527 4528"\[((?P<elem>\d+)(,(?P>elem))*)?\]"I 4529Capturing subpattern count = 3 4530Named capturing subpatterns: 4531 elem 2 4532No options 4533First char = '[' 4534Need char = ']' 4535 [10,20,30,5,5,4,4,2,43,23,4234] 4536 0: [10,20,30,5,5,4,4,2,43,23,4234] 4537 1: 10,20,30,5,5,4,4,2,43,23,4234 4538 2: 10 4539 3: ,4234 4540 [] 4541 0: [] 4542 4543/(a(b(?2)c))?/DZ 4544------------------------------------------------------------------ 4545 Bra 4546 Brazero 4547 CBra 1 4548 a 4549 CBra 2 4550 b 4551 Recurse 4552 c 4553 Ket 4554 Ket 4555 Ket 4556 End 4557------------------------------------------------------------------ 4558Capturing subpattern count = 2 4559May match empty string 4560No options 4561No first char 4562No need char 4563 4564/(a(b(?2)c))*/DZ 4565------------------------------------------------------------------ 4566 Bra 4567 Brazero 4568 CBra 1 4569 a 4570 CBra 2 4571 b 4572 Recurse 4573 c 4574 Ket 4575 KetRmax 4576 Ket 4577 End 4578------------------------------------------------------------------ 4579Capturing subpattern count = 2 4580May match empty string 4581No options 4582No first char 4583No need char 4584 4585/(a(b(?2)c)){0,2}/DZ 4586------------------------------------------------------------------ 4587 Bra 4588 Brazero 4589 Bra 4590 CBra 1 4591 a 4592 CBra 2 4593 b 4594 Recurse 4595 c 4596 Ket 4597 Ket 4598 Brazero 4599 CBra 1 4600 a 4601 CBra 2 4602 b 4603 Recurse 4604 c 4605 Ket 4606 Ket 4607 Ket 4608 Ket 4609 End 4610------------------------------------------------------------------ 4611Capturing subpattern count = 2 4612May match empty string 4613No options 4614No first char 4615No need char 4616 4617/[ab]{1}+/DZ 4618------------------------------------------------------------------ 4619 Bra 4620 [ab]{1,1}+ 4621 Ket 4622 End 4623------------------------------------------------------------------ 4624Capturing subpattern count = 0 4625No options 4626No first char 4627No need char 4628 4629/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii 4630Capturing subpattern count = 3 4631Options: caseless 4632No first char 4633Need char = 'g' (caseless) 4634 Baby Bjorn Active Carrier - With free SHIPPING!! 4635 0: Baby Bjorn Active Carrier - With free SHIPPING!! 4636 1: Baby Bjorn Active Carrier - With free SHIPPING!! 4637 4638/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS 4639Capturing subpattern count = 3 4640Options: caseless 4641No first char 4642Need char = 'g' (caseless) 4643Subject length lower bound = 8 4644No starting char list 4645 Baby Bjorn Active Carrier - With free SHIPPING!! 4646 0: Baby Bjorn Active Carrier - With free SHIPPING!! 4647 1: Baby Bjorn Active Carrier - With free SHIPPING!! 4648 4649/a*.*b/ISDZ 4650------------------------------------------------------------------ 4651 Bra 4652 a* 4653 Any* 4654 b 4655 Ket 4656 End 4657------------------------------------------------------------------ 4658Capturing subpattern count = 0 4659No options 4660No first char 4661Need char = 'b' 4662Subject length lower bound = 1 4663No starting char list 4664 4665/(a|b)*.?c/ISDZ 4666------------------------------------------------------------------ 4667 Bra 4668 Brazero 4669 CBra 1 4670 a 4671 Alt 4672 b 4673 KetRmax 4674 Any? 4675 c 4676 Ket 4677 End 4678------------------------------------------------------------------ 4679Capturing subpattern count = 1 4680No options 4681No first char 4682Need char = 'c' 4683Subject length lower bound = 1 4684No starting char list 4685 4686/abc(?C255)de(?C)f/DZ 4687------------------------------------------------------------------ 4688 Bra 4689 abc 4690 Callout 255 10 1 4691 de 4692 Callout 0 16 1 4693 f 4694 Ket 4695 End 4696------------------------------------------------------------------ 4697Capturing subpattern count = 0 4698No options 4699First char = 'a' 4700Need char = 'f' 4701 4702/abcde/ICDZ 4703------------------------------------------------------------------ 4704 Bra 4705 Callout 255 0 1 4706 a 4707 Callout 255 1 1 4708 b 4709 Callout 255 2 1 4710 c 4711 Callout 255 3 1 4712 d 4713 Callout 255 4 1 4714 e 4715 Callout 255 5 0 4716 Ket 4717 End 4718------------------------------------------------------------------ 4719Capturing subpattern count = 0 4720Options: 4721First char = 'a' 4722Need char = 'e' 4723 abcde 4724--->abcde 4725 +0 ^ a 4726 +1 ^^ b 4727 +2 ^ ^ c 4728 +3 ^ ^ d 4729 +4 ^ ^ e 4730 +5 ^ ^ 4731 0: abcde 4732 abcdfe 4733--->abcdfe 4734 +0 ^ a 4735 +1 ^^ b 4736 +2 ^ ^ c 4737 +3 ^ ^ d 4738 +4 ^ ^ e 4739No match 4740 4741/a*b/ICDZS 4742------------------------------------------------------------------ 4743 Bra 4744 Callout 255 0 2 4745 a*+ 4746 Callout 255 2 1 4747 b 4748 Callout 255 3 0 4749 Ket 4750 End 4751------------------------------------------------------------------ 4752Capturing subpattern count = 0 4753Options: 4754No first char 4755Need char = 'b' 4756Subject length lower bound = 1 4757Starting chars: a b 4758 ab 4759--->ab 4760 +0 ^ a* 4761 +2 ^^ b 4762 +3 ^ ^ 4763 0: ab 4764 aaaab 4765--->aaaab 4766 +0 ^ a* 4767 +2 ^ ^ b 4768 +3 ^ ^ 4769 0: aaaab 4770 aaaacb 4771--->aaaacb 4772 +0 ^ a* 4773 +2 ^ ^ b 4774 +0 ^ a* 4775 +2 ^ ^ b 4776 +0 ^ a* 4777 +2 ^ ^ b 4778 +0 ^ a* 4779 +2 ^^ b 4780 +0 ^ a* 4781 +2 ^ b 4782 +3 ^^ 4783 0: b 4784 4785/a*b/ICDZSS 4786------------------------------------------------------------------ 4787 Bra 4788 Callout 255 0 2 4789 a*+ 4790 Callout 255 2 1 4791 b 4792 Callout 255 3 0 4793 Ket 4794 End 4795------------------------------------------------------------------ 4796Capturing subpattern count = 0 4797Options: 4798No first char 4799Need char = 'b' 4800 ab 4801--->ab 4802 +0 ^ a* 4803 +2 ^^ b 4804 +3 ^ ^ 4805 0: ab 4806 aaaab 4807--->aaaab 4808 +0 ^ a* 4809 +2 ^ ^ b 4810 +3 ^ ^ 4811 0: aaaab 4812 aaaacb 4813--->aaaacb 4814 +0 ^ a* 4815 +2 ^ ^ b 4816 +0 ^ a* 4817 +2 ^ ^ b 4818 +0 ^ a* 4819 +2 ^ ^ b 4820 +0 ^ a* 4821 +2 ^^ b 4822 +0 ^ a* 4823 +2 ^ b 4824 +0 ^ a* 4825 +2 ^ b 4826 +3 ^^ 4827 0: b 4828 4829/a+b/ICDZ 4830------------------------------------------------------------------ 4831 Bra 4832 Callout 255 0 2 4833 a++ 4834 Callout 255 2 1 4835 b 4836 Callout 255 3 0 4837 Ket 4838 End 4839------------------------------------------------------------------ 4840Capturing subpattern count = 0 4841Options: 4842First char = 'a' 4843Need char = 'b' 4844 ab 4845--->ab 4846 +0 ^ a+ 4847 +2 ^^ b 4848 +3 ^ ^ 4849 0: ab 4850 aaaab 4851--->aaaab 4852 +0 ^ a+ 4853 +2 ^ ^ b 4854 +3 ^ ^ 4855 0: aaaab 4856 aaaacb 4857--->aaaacb 4858 +0 ^ a+ 4859 +2 ^ ^ b 4860 +0 ^ a+ 4861 +2 ^ ^ b 4862 +0 ^ a+ 4863 +2 ^ ^ b 4864 +0 ^ a+ 4865 +2 ^^ b 4866No match 4867 4868/(abc|def)x/ICDZS 4869------------------------------------------------------------------ 4870 Bra 4871 Callout 255 0 9 4872 CBra 1 4873 Callout 255 1 1 4874 a 4875 Callout 255 2 1 4876 b 4877 Callout 255 3 1 4878 c 4879 Callout 255 4 0 4880 Alt 4881 Callout 255 5 1 4882 d 4883 Callout 255 6 1 4884 e 4885 Callout 255 7 1 4886 f 4887 Callout 255 8 0 4888 Ket 4889 Callout 255 9 1 4890 x 4891 Callout 255 10 0 4892 Ket 4893 End 4894------------------------------------------------------------------ 4895Capturing subpattern count = 1 4896Options: 4897No first char 4898Need char = 'x' 4899Subject length lower bound = 4 4900Starting chars: a d 4901 abcx 4902--->abcx 4903 +0 ^ (abc|def) 4904 +1 ^ a 4905 +2 ^^ b 4906 +3 ^ ^ c 4907 +4 ^ ^ | 4908 +9 ^ ^ x 4909+10 ^ ^ 4910 0: abcx 4911 1: abc 4912 defx 4913--->defx 4914 +0 ^ (abc|def) 4915 +1 ^ a 4916 +5 ^ d 4917 +6 ^^ e 4918 +7 ^ ^ f 4919 +8 ^ ^ ) 4920 +9 ^ ^ x 4921+10 ^ ^ 4922 0: defx 4923 1: def 4924 ** Failers 4925No match 4926 abcdefzx 4927--->abcdefzx 4928 +0 ^ (abc|def) 4929 +1 ^ a 4930 +2 ^^ b 4931 +3 ^ ^ c 4932 +4 ^ ^ | 4933 +9 ^ ^ x 4934 +5 ^ d 4935 +0 ^ (abc|def) 4936 +1 ^ a 4937 +5 ^ d 4938 +6 ^^ e 4939 +7 ^ ^ f 4940 +8 ^ ^ ) 4941 +9 ^ ^ x 4942No match 4943 4944/(abc|def)x/ICDZSS 4945------------------------------------------------------------------ 4946 Bra 4947 Callout 255 0 9 4948 CBra 1 4949 Callout 255 1 1 4950 a 4951 Callout 255 2 1 4952 b 4953 Callout 255 3 1 4954 c 4955 Callout 255 4 0 4956 Alt 4957 Callout 255 5 1 4958 d 4959 Callout 255 6 1 4960 e 4961 Callout 255 7 1 4962 f 4963 Callout 255 8 0 4964 Ket 4965 Callout 255 9 1 4966 x 4967 Callout 255 10 0 4968 Ket 4969 End 4970------------------------------------------------------------------ 4971Capturing subpattern count = 1 4972Options: 4973No first char 4974Need char = 'x' 4975 abcx 4976--->abcx 4977 +0 ^ (abc|def) 4978 +1 ^ a 4979 +2 ^^ b 4980 +3 ^ ^ c 4981 +4 ^ ^ | 4982 +9 ^ ^ x 4983+10 ^ ^ 4984 0: abcx 4985 1: abc 4986 defx 4987--->defx 4988 +0 ^ (abc|def) 4989 +1 ^ a 4990 +5 ^ d 4991 +6 ^^ e 4992 +7 ^ ^ f 4993 +8 ^ ^ ) 4994 +9 ^ ^ x 4995+10 ^ ^ 4996 0: defx 4997 1: def 4998 ** Failers 4999No match 5000 abcdefzx 5001--->abcdefzx 5002 +0 ^ (abc|def) 5003 +1 ^ a 5004 +2 ^^ b 5005 +3 ^ ^ c 5006 +4 ^ ^ | 5007 +9 ^ ^ x 5008 +5 ^ d 5009 +0 ^ (abc|def) 5010 +1 ^ a 5011 +5 ^ d 5012 +0 ^ (abc|def) 5013 +1 ^ a 5014 +5 ^ d 5015 +0 ^ (abc|def) 5016 +1 ^ a 5017 +5 ^ d 5018 +6 ^^ e 5019 +7 ^ ^ f 5020 +8 ^ ^ ) 5021 +9 ^ ^ x 5022 +0 ^ (abc|def) 5023 +1 ^ a 5024 +5 ^ d 5025 +0 ^ (abc|def) 5026 +1 ^ a 5027 +5 ^ d 5028 +0 ^ (abc|def) 5029 +1 ^ a 5030 +5 ^ d 5031 +0 ^ (abc|def) 5032 +1 ^ a 5033 +5 ^ d 5034No match 5035 5036/(ab|cd){3,4}/IC 5037Capturing subpattern count = 1 5038Options: 5039No first char 5040No need char 5041 ababab 5042--->ababab 5043 +0 ^ (ab|cd){3,4} 5044 +1 ^ a 5045 +2 ^^ b 5046 +3 ^ ^ | 5047 +1 ^ ^ a 5048 +2 ^ ^ b 5049 +3 ^ ^ | 5050 +1 ^ ^ a 5051 +2 ^ ^ b 5052 +3 ^ ^ | 5053 +1 ^ ^ a 5054 +4 ^ ^ c 5055+12 ^ ^ 5056 0: ababab 5057 1: ab 5058 abcdabcd 5059--->abcdabcd 5060 +0 ^ (ab|cd){3,4} 5061 +1 ^ a 5062 +2 ^^ b 5063 +3 ^ ^ | 5064 +1 ^ ^ a 5065 +4 ^ ^ c 5066 +5 ^ ^ d 5067 +6 ^ ^ ) 5068 +1 ^ ^ a 5069 +2 ^ ^ b 5070 +3 ^ ^ | 5071 +1 ^ ^ a 5072 +4 ^ ^ c 5073 +5 ^ ^ d 5074 +6 ^ ^ ) 5075+12 ^ ^ 5076 0: abcdabcd 5077 1: cd 5078 abcdcdcdcdcd 5079--->abcdcdcdcdcd 5080 +0 ^ (ab|cd){3,4} 5081 +1 ^ a 5082 +2 ^^ b 5083 +3 ^ ^ | 5084 +1 ^ ^ a 5085 +4 ^ ^ c 5086 +5 ^ ^ d 5087 +6 ^ ^ ) 5088 +1 ^ ^ a 5089 +4 ^ ^ c 5090 +5 ^ ^ d 5091 +6 ^ ^ ) 5092 +1 ^ ^ a 5093 +4 ^ ^ c 5094 +5 ^ ^ d 5095 +6 ^ ^ ) 5096+12 ^ ^ 5097 0: abcdcdcd 5098 1: cd 5099 5100/([ab]{,4}c|xy)/ICDZS 5101------------------------------------------------------------------ 5102 Bra 5103 Callout 255 0 14 5104 CBra 1 5105 Callout 255 1 4 5106 [ab] 5107 Callout 255 5 1 5108 { 5109 Callout 255 6 1 5110 , 5111 Callout 255 7 1 5112 4 5113 Callout 255 8 1 5114 } 5115 Callout 255 9 1 5116 c 5117 Callout 255 10 0 5118 Alt 5119 Callout 255 11 1 5120 x 5121 Callout 255 12 1 5122 y 5123 Callout 255 13 0 5124 Ket 5125 Callout 255 14 0 5126 Ket 5127 End 5128------------------------------------------------------------------ 5129Capturing subpattern count = 1 5130Options: 5131No first char 5132No need char 5133Subject length lower bound = 2 5134Starting chars: a b x 5135 Note: that { does NOT introduce a quantifier 5136--->Note: that { does NOT introduce a quantifier 5137 +0 ^ ([ab]{,4}c|xy) 5138 +1 ^ [ab] 5139 +5 ^^ { 5140+11 ^ x 5141 +0 ^ ([ab]{,4}c|xy) 5142 +1 ^ [ab] 5143 +5 ^^ { 5144+11 ^ x 5145 +0 ^ ([ab]{,4}c|xy) 5146 +1 ^ [ab] 5147 +5 ^^ { 5148+11 ^ x 5149No match 5150 5151/([ab]{,4}c|xy)/ICDZSS 5152------------------------------------------------------------------ 5153 Bra 5154 Callout 255 0 14 5155 CBra 1 5156 Callout 255 1 4 5157 [ab] 5158 Callout 255 5 1 5159 { 5160 Callout 255 6 1 5161 , 5162 Callout 255 7 1 5163 4 5164 Callout 255 8 1 5165 } 5166 Callout 255 9 1 5167 c 5168 Callout 255 10 0 5169 Alt 5170 Callout 255 11 1 5171 x 5172 Callout 255 12 1 5173 y 5174 Callout 255 13 0 5175 Ket 5176 Callout 255 14 0 5177 Ket 5178 End 5179------------------------------------------------------------------ 5180Capturing subpattern count = 1 5181Options: 5182No first char 5183No need char 5184 Note: that { does NOT introduce a quantifier 5185--->Note: that { does NOT introduce a quantifier 5186 +0 ^ ([ab]{,4}c|xy) 5187 +1 ^ [ab] 5188+11 ^ x 5189 +0 ^ ([ab]{,4}c|xy) 5190 +1 ^ [ab] 5191+11 ^ x 5192 +0 ^ ([ab]{,4}c|xy) 5193 +1 ^ [ab] 5194+11 ^ x 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 +5 ^^ { 5213+11 ^ x 5214 +0 ^ ([ab]{,4}c|xy) 5215 +1 ^ [ab] 5216+11 ^ x 5217 +0 ^ ([ab]{,4}c|xy) 5218 +1 ^ [ab] 5219+11 ^ x 5220 +0 ^ ([ab]{,4}c|xy) 5221 +1 ^ [ab] 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 +5 ^^ { 5286+11 ^ x 5287 +0 ^ ([ab]{,4}c|xy) 5288 +1 ^ [ab] 5289+11 ^ x 5290 +0 ^ ([ab]{,4}c|xy) 5291 +1 ^ [ab] 5292+11 ^ x 5293 +0 ^ ([ab]{,4}c|xy) 5294 +1 ^ [ab] 5295+11 ^ x 5296 +0 ^ ([ab]{,4}c|xy) 5297 +1 ^ [ab] 5298 +5 ^^ { 5299+11 ^ x 5300 +0 ^ ([ab]{,4}c|xy) 5301 +1 ^ [ab] 5302+11 ^ x 5303 +0 ^ ([ab]{,4}c|xy) 5304 +1 ^ [ab] 5305+11 ^ x 5306 +0 ^ ([ab]{,4}c|xy) 5307 +1 ^ [ab] 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 5324No match 5325 5326/([ab]{1,4}c|xy){4,5}?123/ICDZ 5327------------------------------------------------------------------ 5328 Bra 5329 Callout 255 0 21 5330 CBra 1 5331 Callout 255 1 9 5332 [ab]{1,4}+ 5333 Callout 255 10 1 5334 c 5335 Callout 255 11 0 5336 Alt 5337 Callout 255 12 1 5338 x 5339 Callout 255 13 1 5340 y 5341 Callout 255 14 0 5342 Ket 5343 CBra 1 5344 Callout 255 1 9 5345 [ab]{1,4}+ 5346 Callout 255 10 1 5347 c 5348 Callout 255 11 0 5349 Alt 5350 Callout 255 12 1 5351 x 5352 Callout 255 13 1 5353 y 5354 Callout 255 14 0 5355 Ket 5356 CBra 1 5357 Callout 255 1 9 5358 [ab]{1,4}+ 5359 Callout 255 10 1 5360 c 5361 Callout 255 11 0 5362 Alt 5363 Callout 255 12 1 5364 x 5365 Callout 255 13 1 5366 y 5367 Callout 255 14 0 5368 Ket 5369 CBra 1 5370 Callout 255 1 9 5371 [ab]{1,4}+ 5372 Callout 255 10 1 5373 c 5374 Callout 255 11 0 5375 Alt 5376 Callout 255 12 1 5377 x 5378 Callout 255 13 1 5379 y 5380 Callout 255 14 0 5381 Ket 5382 Braminzero 5383 CBra 1 5384 Callout 255 1 9 5385 [ab]{1,4}+ 5386 Callout 255 10 1 5387 c 5388 Callout 255 11 0 5389 Alt 5390 Callout 255 12 1 5391 x 5392 Callout 255 13 1 5393 y 5394 Callout 255 14 0 5395 Ket 5396 Callout 255 21 1 5397 1 5398 Callout 255 22 1 5399 2 5400 Callout 255 23 1 5401 3 5402 Callout 255 24 0 5403 Ket 5404 End 5405------------------------------------------------------------------ 5406Capturing subpattern count = 1 5407Options: 5408No first char 5409Need char = '3' 5410 aacaacaacaacaac123 5411--->aacaacaacaacaac123 5412 +0 ^ ([ab]{1,4}c|xy){4,5}? 5413 +1 ^ [ab]{1,4} 5414+10 ^ ^ c 5415+11 ^ ^ | 5416 +1 ^ ^ [ab]{1,4} 5417+10 ^ ^ c 5418+11 ^ ^ | 5419 +1 ^ ^ [ab]{1,4} 5420+10 ^ ^ c 5421+11 ^ ^ | 5422 +1 ^ ^ [ab]{1,4} 5423+10 ^ ^ c 5424+11 ^ ^ | 5425+21 ^ ^ 1 5426 +1 ^ ^ [ab]{1,4} 5427+10 ^ ^ c 5428+11 ^ ^ | 5429+21 ^ ^ 1 5430+22 ^ ^ 2 5431+23 ^ ^ 3 5432+24 ^ ^ 5433 0: aacaacaacaacaac123 5434 1: aac 5435 5436/\b.*/I 5437Capturing subpattern count = 0 5438Max lookbehind = 1 5439May match empty string 5440No options 5441No first char 5442No need char 5443 ab cd\>1 5444 0: cd 5445 5446/\b.*/Is 5447Capturing subpattern count = 0 5448Max lookbehind = 1 5449May match empty string 5450Options: dotall 5451No first char 5452No need char 5453 ab cd\>1 5454 0: cd 5455 5456/(?!.bcd).*/I 5457Capturing subpattern count = 0 5458May match empty string 5459No options 5460No first char 5461No need char 5462 Xbcd12345 5463 0: bcd12345 5464 5465/abcde/I 5466Capturing subpattern count = 0 5467No options 5468First char = 'a' 5469Need char = 'e' 5470 ab\P 5471Partial match: ab 5472 abc\P 5473Partial match: abc 5474 abcd\P 5475Partial match: abcd 5476 abcde\P 5477 0: abcde 5478 the quick brown abc\P 5479Partial match: abc 5480 ** Failers\P 5481No match 5482 the quick brown abxyz fox\P 5483No match 5484 5485"^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I 5486Capturing subpattern count = 3 5487Options: anchored 5488No first char 5489Need char = '/' 5490 13/05/04\P 5491 0: 13/05/04 5492 1: 13 5493 2: 05 5494 13/5/2004\P 5495 0: 13/5/2004 5496 1: 13 5497 2: 5 5498 3: 20 5499 02/05/09\P 5500 0: 02/05/09 5501 1: 02 5502 2: 05 5503 1\P 5504Partial match: 1 5505 1/2\P 5506Partial match: 1/2 5507 1/2/0\P 5508Partial match: 1/2/0 5509 1/2/04\P 5510 0: 1/2/04 5511 1: 1 5512 2: 2 5513 0\P 5514Partial match: 0 5515 02/\P 5516Partial match: 02/ 5517 02/0\P 5518Partial match: 02/0 5519 02/1\P 5520Partial match: 02/1 5521 ** Failers\P 5522No match 5523 \P 5524No match 5525 123\P 5526No match 5527 33/4/04\P 5528No match 5529 3/13/04\P 5530No match 5531 0/1/2003\P 5532No match 5533 0/\P 5534No match 5535 02/0/\P 5536No match 5537 02/13\P 5538No match 5539 5540/0{0,2}ABC/I 5541Capturing subpattern count = 0 5542No options 5543No first char 5544Need char = 'C' 5545 5546/\d{3,}ABC/I 5547Capturing subpattern count = 0 5548No options 5549No first char 5550Need char = 'C' 5551 5552/\d*ABC/I 5553Capturing subpattern count = 0 5554No options 5555No first char 5556Need char = 'C' 5557 5558/[abc]+DE/I 5559Capturing subpattern count = 0 5560No options 5561No first char 5562Need char = 'E' 5563 5564/[abc]?123/I 5565Capturing subpattern count = 0 5566No options 5567No first char 5568Need char = '3' 5569 123\P 5570 0: 123 5571 a\P 5572Partial match: a 5573 b\P 5574Partial match: b 5575 c\P 5576Partial match: c 5577 c12\P 5578Partial match: c12 5579 c123\P 5580 0: c123 5581 5582/^(?:\d){3,5}X/I 5583Capturing subpattern count = 0 5584Options: anchored 5585No first char 5586Need char = 'X' 5587 1\P 5588Partial match: 1 5589 123\P 5590Partial match: 123 5591 123X 5592 0: 123X 5593 1234\P 5594Partial match: 1234 5595 1234X 5596 0: 1234X 5597 12345\P 5598Partial match: 12345 5599 12345X 5600 0: 12345X 5601 *** Failers 5602No match 5603 1X 5604No match 5605 123456\P 5606No match 5607 5608/abc/IS>testsavedregex 5609Capturing subpattern count = 0 5610No options 5611First char = 'a' 5612Need char = 'c' 5613Subject length lower bound = 3 5614No starting char list 5615Compiled pattern written to testsavedregex 5616Study data written to testsavedregex 5617<testsavedregex 5618Compiled pattern loaded from testsavedregex 5619Study data loaded from testsavedregex 5620 abc 5621 0: abc 5622 ** Failers 5623No match 5624 bca 5625No match 5626 5627/abc/ISS>testsavedregex 5628Capturing subpattern count = 0 5629No options 5630First char = 'a' 5631Need char = 'c' 5632Compiled pattern written to testsavedregex 5633<testsavedregex 5634Compiled pattern loaded from testsavedregex 5635No study data 5636 abc 5637 0: abc 5638 ** Failers 5639No match 5640 bca 5641No match 5642 5643/abc/IFS>testsavedregex 5644Capturing subpattern count = 0 5645No options 5646First char = 'a' 5647Need char = 'c' 5648Subject length lower bound = 3 5649No starting char list 5650Compiled pattern written to testsavedregex 5651Study data written to testsavedregex 5652<testsavedregex 5653Compiled pattern (byte-inverted) loaded from testsavedregex 5654Study data loaded from testsavedregex 5655 abc 5656 0: abc 5657 ** Failers 5658No match 5659 bca 5660No match 5661 5662/abc/IFSS>testsavedregex 5663Capturing subpattern count = 0 5664No options 5665First char = 'a' 5666Need char = 'c' 5667Compiled pattern written to testsavedregex 5668<testsavedregex 5669Compiled pattern (byte-inverted) loaded from testsavedregex 5670No study data 5671 abc 5672 0: abc 5673 ** Failers 5674No match 5675 bca 5676No match 5677 5678/(a|b)/IS>testsavedregex 5679Capturing subpattern count = 1 5680No options 5681No first char 5682No need char 5683Subject length lower bound = 1 5684Starting chars: a b 5685Compiled pattern written to testsavedregex 5686Study data written to testsavedregex 5687<testsavedregex 5688Compiled pattern loaded from testsavedregex 5689Study data loaded from testsavedregex 5690 abc 5691 0: a 5692 1: a 5693 ** Failers 5694 0: a 5695 1: a 5696 def 5697No match 5698 5699/(a|b)/ISS>testsavedregex 5700Capturing subpattern count = 1 5701No options 5702No first char 5703No need char 5704Compiled pattern written to testsavedregex 5705<testsavedregex 5706Compiled pattern loaded from testsavedregex 5707No study data 5708 abc 5709 0: a 5710 1: a 5711 ** Failers 5712 0: a 5713 1: a 5714 def 5715No match 5716 5717/(a|b)/ISF>testsavedregex 5718Capturing subpattern count = 1 5719No options 5720No first char 5721No need char 5722Subject length lower bound = 1 5723Starting chars: a b 5724Compiled pattern written to testsavedregex 5725Study data written to testsavedregex 5726<testsavedregex 5727Compiled pattern (byte-inverted) loaded from testsavedregex 5728Study data loaded from testsavedregex 5729 abc 5730 0: a 5731 1: a 5732 ** Failers 5733 0: a 5734 1: a 5735 def 5736No match 5737 5738/(a|b)/ISSF>testsavedregex 5739Capturing subpattern count = 1 5740No options 5741No first char 5742No need char 5743Compiled pattern written to testsavedregex 5744<testsavedregex 5745Compiled pattern (byte-inverted) loaded from testsavedregex 5746No study data 5747 abc 5748 0: a 5749 1: a 5750 ** Failers 5751 0: a 5752 1: a 5753 def 5754No match 5755 5756~<(\w+)/?>(.)*</(\1)>~smgI 5757Capturing subpattern count = 3 5758Max back reference = 1 5759Options: multiline dotall 5760First char = '<' 5761Need char = '>' 5762 \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> 5763 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> 5764 1: seite 5765 2: \x0a 5766 3: seite 5767 5768/^a/IF 5769Capturing subpattern count = 0 5770Options: anchored 5771No first char 5772No need char 5773 5774/line\nbreak/I 5775Capturing subpattern count = 0 5776Contains explicit CR or LF match 5777No options 5778First char = 'l' 5779Need char = 'k' 5780 this is a line\nbreak 5781 0: line\x0abreak 5782 line one\nthis is a line\nbreak in the second line 5783 0: line\x0abreak 5784 5785/line\nbreak/If 5786Capturing subpattern count = 0 5787Contains explicit CR or LF match 5788Options: firstline 5789First char = 'l' 5790Need char = 'k' 5791 this is a line\nbreak 5792 0: line\x0abreak 5793 ** Failers 5794No match 5795 line one\nthis is a line\nbreak in the second line 5796No match 5797 5798/line\nbreak/Imf 5799Capturing subpattern count = 0 5800Contains explicit CR or LF match 5801Options: multiline 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/(?i)(?-i)AbCd/I 5812Capturing subpattern count = 0 5813No options 5814First char = 'A' 5815Need char = 'd' 5816 AbCd 5817 0: AbCd 5818 ** Failers 5819No match 5820 abcd 5821No match 5822 5823/a{11111111111111111111}/I 5824Failed: number too big in {} quantifier at offset 8 5825 5826/(){64294967295}/I 5827Failed: number too big in {} quantifier at offset 9 5828 5829/(){2,4294967295}/I 5830Failed: number too big in {} quantifier at offset 11 5831 5832"(?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 5833Capturing subpattern count = 1 5834Max back reference = 1 5835No options 5836First char = 'a' (caseless) 5837Need char = 'B' 5838 abcdefghijklAkB 5839 0: abcdefghijklAkB 5840 1: k 5841 5842"(?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 5843Capturing subpattern count = 12 5844Max back reference = 11 5845Named capturing subpatterns: 5846 n0 1 5847 n1 2 5848 n10 11 5849 n11 12 5850 n2 3 5851 n3 4 5852 n4 5 5853 n5 6 5854 n6 7 5855 n7 8 5856 n8 9 5857 n9 10 5858No options 5859First char = 'a' 5860Need char = 'B' 5861 abcdefghijklAkB 5862 0: abcdefghijklAkB 5863 1: a 5864 2: b 5865 3: c 5866 4: d 5867 5: e 5868 6: f 5869 7: g 5870 8: h 5871 9: i 587210: j 587311: k 587412: l 5875 5876"(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I 5877Capturing subpattern count = 12 5878Max back reference = 11 5879No options 5880First char = 'a' 5881Need char = 'B' 5882 abcdefghijklAkB 5883 0: abcdefghijklAkB 5884 1: a 5885 2: b 5886 3: c 5887 4: d 5888 5: e 5889 6: f 5890 7: g 5891 8: h 5892 9: i 589310: j 589411: k 589512: l 5896 5897"(?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 5898Capturing subpattern count = 101 5899Named capturing subpatterns: 5900 name0 1 5901 name1 2 5902 name10 11 5903 name100 101 5904 name11 12 5905 name12 13 5906 name13 14 5907 name14 15 5908 name15 16 5909 name16 17 5910 name17 18 5911 name18 19 5912 name19 20 5913 name2 3 5914 name20 21 5915 name21 22 5916 name22 23 5917 name23 24 5918 name24 25 5919 name25 26 5920 name26 27 5921 name27 28 5922 name28 29 5923 name29 30 5924 name3 4 5925 name30 31 5926 name31 32 5927 name32 33 5928 name33 34 5929 name34 35 5930 name35 36 5931 name36 37 5932 name37 38 5933 name38 39 5934 name39 40 5935 name4 5 5936 name40 41 5937 name41 42 5938 name42 43 5939 name43 44 5940 name44 45 5941 name45 46 5942 name46 47 5943 name47 48 5944 name48 49 5945 name49 50 5946 name5 6 5947 name50 51 5948 name51 52 5949 name52 53 5950 name53 54 5951 name54 55 5952 name55 56 5953 name56 57 5954 name57 58 5955 name58 59 5956 name59 60 5957 name6 7 5958 name60 61 5959 name61 62 5960 name62 63 5961 name63 64 5962 name64 65 5963 name65 66 5964 name66 67 5965 name67 68 5966 name68 69 5967 name69 70 5968 name7 8 5969 name70 71 5970 name71 72 5971 name72 73 5972 name73 74 5973 name74 75 5974 name75 76 5975 name76 77 5976 name77 78 5977 name78 79 5978 name79 80 5979 name8 9 5980 name80 81 5981 name81 82 5982 name82 83 5983 name83 84 5984 name84 85 5985 name85 86 5986 name86 87 5987 name87 88 5988 name88 89 5989 name89 90 5990 name9 10 5991 name90 91 5992 name91 92 5993 name92 93 5994 name93 94 5995 name94 95 5996 name95 96 5997 name96 97 5998 name97 98 5999 name98 99 6000 name99 100 6001No options 6002First char = 'a' 6003Need char = 'a' 6004 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6005Matched, but too many substrings 6006 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6007 1: a 6008 2: a 6009 3: a 6010 4: a 6011 5: a 6012 6: a 6013 7: a 6014 8: a 6015 9: a 601610: a 601711: a 601812: a 601913: a 602014: a 6021 6022"(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(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 6023Capturing subpattern count = 101 6024No options 6025First char = 'a' 6026Need char = 'a' 6027 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6028Matched, but too many substrings 6029 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6030 1: a 6031 2: a 6032 3: a 6033 4: a 6034 5: a 6035 6: a 6036 7: a 6037 8: a 6038 9: a 603910: a 604011: a 604112: a 604213: a 604314: a 6044 6045/[^()]*(?:\((?R)\)[^()]*)*/I 6046Capturing subpattern count = 0 6047May match empty string 6048No options 6049No first char 6050No need char 6051 (this(and)that 6052 0: 6053 (this(and)that) 6054 0: (this(and)that) 6055 (this(and)that)stuff 6056 0: (this(and)that)stuff 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 6069/[^()]*(?:\((?R)\))*[^()]*/I 6070Capturing subpattern count = 0 6071May match empty string 6072No options 6073No first char 6074No need char 6075 (this(and)that 6076 0: 6077 (this(and)that) 6078 0: (this(and)that) 6079 6080/(?:\((?R)\))*[^()]*/I 6081Capturing subpattern count = 0 6082May match empty string 6083No options 6084No first char 6085No need char 6086 (this(and)that 6087 0: 6088 (this(and)that) 6089 0: 6090 ((this)) 6091 0: ((this)) 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 ((this)) 6106 0: ((this)) 6107 6108/\x{0000ff}/I 6109Capturing subpattern count = 0 6110No options 6111First char = \xff 6112No need char 6113 6114/^((?P<A>a1)|(?P<A>a2)b)/I 6115Failed: two named subpatterns have the same name at offset 17 6116 6117/^((?P<A>a1)|(?P<A>a2)b)/IJ 6118Capturing subpattern count = 3 6119Named capturing subpatterns: 6120 A 2 6121 A 3 6122Options: anchored dupnames 6123No first char 6124No need char 6125 a1b\CA 6126 0: a1 6127 1: a1 6128 2: a1 6129 C a1 (2) A 6130 a2b\CA 6131 0: a2b 6132 1: a2b 6133 2: <unset> 6134 3: a2 6135 C a2 (2) A 6136 ** Failers 6137No match 6138 a1b\CZ\CA 6139no parentheses with name "Z" 6140 0: a1 6141 1: a1 6142 2: a1 6143copy substring Z failed -7 6144 C a1 (2) A 6145 6146/(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ 6147Capturing subpattern count = 3 6148Named capturing subpatterns: 6149 a 1 6150 a 3 6151 b 2 6152May match empty string 6153Options: dupnames 6154No first char 6155No need char 6156 6157/^(?P<A>a)(?P<A>b)/IJ 6158Capturing subpattern count = 2 6159Named capturing subpatterns: 6160 A 1 6161 A 2 6162Options: anchored dupnames 6163No first char 6164No need char 6165 ab\CA 6166 0: ab 6167 1: a 6168 2: b 6169 C a (1) A 6170 6171/^(?P<A>a)(?P<A>b)|cd/IJ 6172Capturing subpattern count = 2 6173Named capturing subpatterns: 6174 A 1 6175 A 2 6176Options: dupnames 6177No first char 6178No need char 6179 ab\CA 6180 0: ab 6181 1: a 6182 2: b 6183 C a (1) A 6184 cd\CA 6185 0: cd 6186copy substring A failed -7 6187 6188/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ 6189Capturing subpattern count = 4 6190Named capturing subpatterns: 6191 A 1 6192 A 2 6193 A 3 6194 A 4 6195Options: dupnames 6196No first char 6197No need char 6198 cdefgh\CA 6199 0: cdefgh 6200 1: <unset> 6201 2: <unset> 6202 3: ef 6203 4: gh 6204 C ef (2) A 6205 6206/^((?P<A>a1)|(?P<A>a2)b)/IJ 6207Capturing subpattern count = 3 6208Named capturing subpatterns: 6209 A 2 6210 A 3 6211Options: anchored dupnames 6212No first char 6213No need char 6214 a1b\GA 6215 0: a1 6216 1: a1 6217 2: a1 6218 G a1 (2) A 6219 a2b\GA 6220 0: a2b 6221 1: a2b 6222 2: <unset> 6223 3: a2 6224 G a2 (2) A 6225 ** Failers 6226No match 6227 a1b\GZ\GA 6228no parentheses with name "Z" 6229 0: a1 6230 1: a1 6231 2: a1 6232get substring Z failed -7 6233 G a1 (2) A 6234 6235/^(?P<A>a)(?P<A>b)/IJ 6236Capturing subpattern count = 2 6237Named capturing subpatterns: 6238 A 1 6239 A 2 6240Options: anchored dupnames 6241No first char 6242No need char 6243 ab\GA 6244 0: ab 6245 1: a 6246 2: b 6247 G a (1) A 6248 6249/^(?P<A>a)(?P<A>b)|cd/IJ 6250Capturing subpattern count = 2 6251Named capturing subpatterns: 6252 A 1 6253 A 2 6254Options: dupnames 6255No first char 6256No need char 6257 ab\GA 6258 0: ab 6259 1: a 6260 2: b 6261 G a (1) A 6262 cd\GA 6263 0: cd 6264get substring A failed -7 6265 6266/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ 6267Capturing subpattern count = 4 6268Named capturing subpatterns: 6269 A 1 6270 A 2 6271 A 3 6272 A 4 6273Options: dupnames 6274No first char 6275No need char 6276 cdefgh\GA 6277 0: cdefgh 6278 1: <unset> 6279 2: <unset> 6280 3: ef 6281 4: gh 6282 G ef (2) A 6283 6284/(?J)^((?P<A>a1)|(?P<A>a2)b)/I 6285Capturing subpattern count = 3 6286Named capturing subpatterns: 6287 A 2 6288 A 3 6289Options: anchored dupnames 6290Duplicate name status changes 6291No first char 6292No need char 6293 a1b\CA 6294 0: a1 6295 1: a1 6296 2: a1 6297 C a1 (2) A 6298 a2b\CA 6299 0: a2b 6300 1: a2b 6301 2: <unset> 6302 3: a2 6303 C a2 (2) A 6304 6305/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I 6306Failed: two named subpatterns have the same name at offset 37 6307 6308/ In this next test, J is not set at the outer level; consequently it isn't 6309set in the pattern's options; consequently pcre_get_named_substring() produces 6310a random value. /Ix 6311Capturing subpattern count = 1 6312Options: extended 6313First char = 'I' 6314Need char = 'e' 6315 6316/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I 6317Capturing subpattern count = 4 6318Named capturing subpatterns: 6319 A 1 6320 B 2 6321 B 3 6322 C 4 6323Options: anchored 6324Duplicate name status changes 6325No first char 6326No need char 6327 a bc d\CA\CB\CC 6328 0: a bc d 6329 1: a 6330 2: b 6331 3: c 6332 4: d 6333 C a (1) A 6334 C b (1) B 6335 C d (1) C 6336 6337/^(?P<A>a)?(?(A)a|b)/I 6338Capturing subpattern count = 1 6339Named capturing subpatterns: 6340 A 1 6341Options: anchored 6342No first char 6343No need char 6344 aabc 6345 0: aa 6346 1: a 6347 bc 6348 0: b 6349 ** Failers 6350No match 6351 abc 6352No match 6353 6354/(?:(?(ZZ)a|b)(?P<ZZ>X))+/I 6355Capturing subpattern count = 1 6356Named capturing subpatterns: 6357 ZZ 1 6358No options 6359No first char 6360Need char = 'X' 6361 bXaX 6362 0: bXaX 6363 1: X 6364 6365/(?:(?(2y)a|b)(X))+/I 6366Failed: malformed number or name after (?( at offset 7 6367 6368/(?:(?(ZA)a|b)(?P<ZZ>X))+/I 6369Failed: reference to non-existent subpattern at offset 9 6370 6371/(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I 6372Capturing subpattern count = 1 6373Named capturing subpatterns: 6374 ZZ 1 6375No options 6376No first char 6377Need char = 'X' 6378 bbXaaX 6379 0: bbXaaX 6380 1: X 6381 6382/(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I 6383Capturing subpattern count = 1 6384Named capturing subpatterns: 6385 ZZ 1 6386No options 6387No first char 6388Need char = 'X' 6389 (b)\\Xa\\X 6390 0: (b)\Xa\X 6391 1: X 6392 6393/(?P<ABC/I 6394Failed: syntax error in subpattern name (missing terminator) at offset 7 6395 6396/(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I 6397Capturing subpattern count = 1 6398Max back reference = 1 6399Named capturing subpatterns: 6400 A 1 6401No options 6402No first char 6403No need char 6404 bXXaYYaY 6405 0: bXXaYYaY 6406 1: Y 6407 bXYaXXaX 6408 0: bX 6409 1: X 6410 6411/()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I 6412Capturing subpattern count = 10 6413Max back reference = 10 6414Named capturing subpatterns: 6415 A 10 6416No options 6417No first char 6418No need char 6419 bXXaYYaY 6420 0: bXXaYYaY 6421 1: 6422 2: 6423 3: 6424 4: 6425 5: 6426 6: 6427 7: 6428 8: 6429 9: 643010: Y 6431 6432/\s*,\s*/IS 6433Capturing subpattern count = 0 6434No options 6435No first char 6436Need char = ',' 6437Subject length lower bound = 1 6438Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 , 6439 \x0b,\x0b 6440 0: \x0b,\x0b 6441 \x0c,\x0d 6442 0: \x0c,\x0d 6443 6444/^abc/Im 6445Capturing subpattern count = 0 6446Options: multiline 6447First char at start or follows newline 6448Need char = 'c' 6449 xyz\nabc 6450 0: abc 6451 xyz\nabc\<lf> 6452 0: abc 6453 xyz\r\nabc\<lf> 6454 0: abc 6455 xyz\rabc\<cr> 6456 0: abc 6457 xyz\r\nabc\<crlf> 6458 0: abc 6459 ** Failers 6460No match 6461 xyz\nabc\<cr> 6462No match 6463 xyz\r\nabc\<cr> 6464No match 6465 xyz\nabc\<crlf> 6466No match 6467 xyz\rabc\<crlf> 6468No match 6469 xyz\rabc\<lf> 6470No match 6471 6472/abc$/Im<lf> 6473Capturing subpattern count = 0 6474Options: multiline 6475Forced newline sequence: LF 6476First char = 'a' 6477Need char = 'c' 6478 xyzabc 6479 0: abc 6480 xyzabc\n 6481 0: abc 6482 xyzabc\npqr 6483 0: abc 6484 xyzabc\r\<cr> 6485 0: abc 6486 xyzabc\rpqr\<cr> 6487 0: abc 6488 xyzabc\r\n\<crlf> 6489 0: abc 6490 xyzabc\r\npqr\<crlf> 6491 0: abc 6492 ** Failers 6493No match 6494 xyzabc\r 6495No match 6496 xyzabc\rpqr 6497No match 6498 xyzabc\r\n 6499No match 6500 xyzabc\r\npqr 6501No match 6502 6503/^abc/Im<cr> 6504Capturing subpattern count = 0 6505Options: multiline 6506Forced newline sequence: CR 6507First char at start or follows newline 6508Need char = 'c' 6509 xyz\rabcdef 6510 0: abc 6511 xyz\nabcdef\<lf> 6512 0: abc 6513 ** Failers 6514No match 6515 xyz\nabcdef 6516No match 6517 6518/^abc/Im<lf> 6519Capturing subpattern count = 0 6520Options: multiline 6521Forced newline sequence: LF 6522First char at start or follows newline 6523Need char = 'c' 6524 xyz\nabcdef 6525 0: abc 6526 xyz\rabcdef\<cr> 6527 0: abc 6528 ** Failers 6529No match 6530 xyz\rabcdef 6531No match 6532 6533/^abc/Im<crlf> 6534Capturing subpattern count = 0 6535Options: multiline 6536Forced newline sequence: CRLF 6537First char at start or follows newline 6538Need char = 'c' 6539 xyz\r\nabcdef 6540 0: abc 6541 xyz\rabcdef\<cr> 6542 0: abc 6543 ** Failers 6544No match 6545 xyz\rabcdef 6546No match 6547 6548/^abc/Im<bad> 6549Unknown modifier at: <bad> 6550 6551 6552/abc/I 6553Capturing subpattern count = 0 6554No options 6555First char = 'a' 6556Need char = 'c' 6557 xyz\rabc\<bad> 6558Unknown escape sequence at: <bad> 6559 abc 6560 0: abc 6561 6562/.*/I<lf> 6563Capturing subpattern count = 0 6564May match empty string 6565Options: 6566Forced newline sequence: LF 6567First char at start or follows newline 6568No need char 6569 abc\ndef 6570 0: abc 6571 abc\rdef 6572 0: abc\x0ddef 6573 abc\r\ndef 6574 0: abc\x0d 6575 \<cr>abc\ndef 6576 0: abc\x0adef 6577 \<cr>abc\rdef 6578 0: abc 6579 \<cr>abc\r\ndef 6580 0: abc 6581 \<crlf>abc\ndef 6582 0: abc\x0adef 6583 \<crlf>abc\rdef 6584 0: abc\x0ddef 6585 \<crlf>abc\r\ndef 6586 0: abc 6587 6588/\w+(.)(.)?def/Is 6589Capturing subpattern count = 2 6590Options: dotall 6591No first char 6592Need char = 'f' 6593 abc\ndef 6594 0: abc\x0adef 6595 1: \x0a 6596 abc\rdef 6597 0: abc\x0ddef 6598 1: \x0d 6599 abc\r\ndef 6600 0: abc\x0d\x0adef 6601 1: \x0d 6602 2: \x0a 6603 6604+((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I 6605Capturing subpattern count = 1 6606May match empty string 6607No options 6608No first char 6609No need char 6610 /* this is a C style comment */\M 6611Minimum match() limit = 120 6612Minimum match() recursion limit = 6 6613 0: /* this is a C style comment */ 6614 1: /* this is a C style comment */ 6615 6616/(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I 6617Capturing subpattern count = 1 6618Named capturing subpatterns: 6619 B 1 6620No options 6621No first char 6622Need char = '.' 6623 6624/()()()()()()()()()()()()()()()()()()()() 6625 ()()()()()()()()()()()()()()()()()()()() 6626 ()()()()()()()()()()()()()()()()()()()() 6627 ()()()()()()()()()()()()()()()()()()()() 6628 ()()()()()()()()()()()()()()()()()()()() 6629 (.(.))/Ix 6630Capturing subpattern count = 102 6631Options: extended 6632No first char 6633No need char 6634 XY\O400 6635 0: XY 6636 1: 6637 2: 6638 3: 6639 4: 6640 5: 6641 6: 6642 7: 6643 8: 6644 9: 664510: 664611: 664712: 664813: 664914: 665015: 665116: 665217: 665318: 665419: 665520: 665621: 665722: 665823: 665924: 666025: 666126: 666227: 666328: 666429: 666530: 666631: 666732: 666833: 666934: 667035: 667136: 667237: 667338: 667439: 667540: 667641: 667742: 667843: 667944: 668045: 668146: 668247: 668348: 668449: 668550: 668651: 668752: 668853: 668954: 669055: 669156: 669257: 669358: 669459: 669560: 669661: 669762: 669863: 669964: 670065: 670166: 670267: 670368: 670469: 670570: 670671: 670772: 670873: 670974: 671075: 671176: 671277: 671378: 671479: 671580: 671681: 671782: 671883: 671984: 672085: 672186: 672287: 672388: 672489: 672590: 672691: 672792: 672893: 672994: 673095: 673196: 673297: 673398: 673499: 6735100: 6736101: XY 6737102: Y 6738 6739/(a*b|(?i:c*(?-i)d))/IS 6740Capturing subpattern count = 1 6741No options 6742No first char 6743No need char 6744Subject length lower bound = 1 6745Starting chars: C a b c d 6746 6747/()[ab]xyz/IS 6748Capturing subpattern count = 1 6749No options 6750No first char 6751Need char = 'z' 6752Subject length lower bound = 4 6753Starting chars: a b 6754 6755/(|)[ab]xyz/IS 6756Capturing subpattern count = 1 6757No options 6758No first char 6759Need char = 'z' 6760Subject length lower bound = 4 6761Starting chars: a b 6762 6763/(|c)[ab]xyz/IS 6764Capturing subpattern count = 1 6765No options 6766No first char 6767Need char = 'z' 6768Subject length lower bound = 4 6769Starting chars: a b c 6770 6771/(|c?)[ab]xyz/IS 6772Capturing subpattern count = 1 6773No options 6774No first char 6775Need char = 'z' 6776Subject length lower bound = 4 6777Starting chars: a b c 6778 6779/(d?|c?)[ab]xyz/IS 6780Capturing subpattern count = 1 6781No options 6782No first char 6783Need char = 'z' 6784Subject length lower bound = 4 6785Starting chars: a b c d 6786 6787/(d?|c)[ab]xyz/IS 6788Capturing subpattern count = 1 6789No options 6790No first char 6791Need char = 'z' 6792Subject length lower bound = 4 6793Starting chars: a b c d 6794 6795/^a*b\d/DZ 6796------------------------------------------------------------------ 6797 Bra 6798 ^ 6799 a*+ 6800 b 6801 \d 6802 Ket 6803 End 6804------------------------------------------------------------------ 6805Capturing subpattern count = 0 6806Options: anchored 6807No first char 6808Need char = 'b' 6809 6810/^a*+b\d/DZ 6811------------------------------------------------------------------ 6812 Bra 6813 ^ 6814 a*+ 6815 b 6816 \d 6817 Ket 6818 End 6819------------------------------------------------------------------ 6820Capturing subpattern count = 0 6821Options: anchored 6822No first char 6823Need char = 'b' 6824 6825/^a*?b\d/DZ 6826------------------------------------------------------------------ 6827 Bra 6828 ^ 6829 a*+ 6830 b 6831 \d 6832 Ket 6833 End 6834------------------------------------------------------------------ 6835Capturing subpattern count = 0 6836Options: anchored 6837No first char 6838Need char = 'b' 6839 6840/^a+A\d/DZ 6841------------------------------------------------------------------ 6842 Bra 6843 ^ 6844 a++ 6845 A 6846 \d 6847 Ket 6848 End 6849------------------------------------------------------------------ 6850Capturing subpattern count = 0 6851Options: anchored 6852No first char 6853Need char = 'A' 6854 aaaA5 6855 0: aaaA5 6856 ** Failers 6857No match 6858 aaaa5 6859No match 6860 6861/^a*A\d/IiDZ 6862------------------------------------------------------------------ 6863 Bra 6864 ^ 6865 /i a* 6866 /i A 6867 \d 6868 Ket 6869 End 6870------------------------------------------------------------------ 6871Capturing subpattern count = 0 6872Options: anchored caseless 6873No first char 6874Need char = 'A' (caseless) 6875 aaaA5 6876 0: aaaA5 6877 aaaa5 6878 0: aaaa5 6879 6880/(a*|b*)[cd]/IS 6881Capturing subpattern count = 1 6882No options 6883No first char 6884No need char 6885Subject length lower bound = 1 6886Starting chars: a b c d 6887 6888/(a+|b*)[cd]/IS 6889Capturing subpattern count = 1 6890No options 6891No first char 6892No need char 6893Subject length lower bound = 1 6894Starting chars: a b c d 6895 6896/(a*|b+)[cd]/IS 6897Capturing subpattern count = 1 6898No options 6899No first char 6900No need char 6901Subject length lower bound = 1 6902Starting chars: a b c d 6903 6904/(a+|b+)[cd]/IS 6905Capturing subpattern count = 1 6906No options 6907No first char 6908No need char 6909Subject length lower bound = 2 6910Starting chars: a b 6911 6912/(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( 6913 (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( 6914 ((( 6915 a 6916 )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 6917 )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 6918 ))) 6919/Ix 6920Capturing subpattern count = 203 6921Options: extended 6922First char = 'a' 6923No need char 6924 large nest 6925Matched, but too many substrings 6926 0: a 6927 1: a 6928 2: a 6929 3: a 6930 4: a 6931 5: a 6932 6: a 6933 7: a 6934 8: a 6935 9: a 693610: a 693711: a 693812: a 693913: a 694014: a 6941 6942/a*\d/BZ 6943------------------------------------------------------------------ 6944 Bra 6945 a*+ 6946 \d 6947 Ket 6948 End 6949------------------------------------------------------------------ 6950 6951/a*\D/BZ 6952------------------------------------------------------------------ 6953 Bra 6954 a* 6955 \D 6956 Ket 6957 End 6958------------------------------------------------------------------ 6959 6960/0*\d/BZ 6961------------------------------------------------------------------ 6962 Bra 6963 0* 6964 \d 6965 Ket 6966 End 6967------------------------------------------------------------------ 6968 6969/0*\D/BZ 6970------------------------------------------------------------------ 6971 Bra 6972 0*+ 6973 \D 6974 Ket 6975 End 6976------------------------------------------------------------------ 6977 6978/a*\s/BZ 6979------------------------------------------------------------------ 6980 Bra 6981 a*+ 6982 \s 6983 Ket 6984 End 6985------------------------------------------------------------------ 6986 6987/a*\S/BZ 6988------------------------------------------------------------------ 6989 Bra 6990 a* 6991 \S 6992 Ket 6993 End 6994------------------------------------------------------------------ 6995 6996/ *\s/BZ 6997------------------------------------------------------------------ 6998 Bra 6999 * 7000 \s 7001 Ket 7002 End 7003------------------------------------------------------------------ 7004 7005/ *\S/BZ 7006------------------------------------------------------------------ 7007 Bra 7008 *+ 7009 \S 7010 Ket 7011 End 7012------------------------------------------------------------------ 7013 7014/a*\w/BZ 7015------------------------------------------------------------------ 7016 Bra 7017 a* 7018 \w 7019 Ket 7020 End 7021------------------------------------------------------------------ 7022 7023/a*\W/BZ 7024------------------------------------------------------------------ 7025 Bra 7026 a*+ 7027 \W 7028 Ket 7029 End 7030------------------------------------------------------------------ 7031 7032/=*\w/BZ 7033------------------------------------------------------------------ 7034 Bra 7035 =*+ 7036 \w 7037 Ket 7038 End 7039------------------------------------------------------------------ 7040 7041/=*\W/BZ 7042------------------------------------------------------------------ 7043 Bra 7044 =* 7045 \W 7046 Ket 7047 End 7048------------------------------------------------------------------ 7049 7050/\d*a/BZ 7051------------------------------------------------------------------ 7052 Bra 7053 \d*+ 7054 a 7055 Ket 7056 End 7057------------------------------------------------------------------ 7058 7059/\d*2/BZ 7060------------------------------------------------------------------ 7061 Bra 7062 \d* 7063 2 7064 Ket 7065 End 7066------------------------------------------------------------------ 7067 7068/\d*\d/BZ 7069------------------------------------------------------------------ 7070 Bra 7071 \d* 7072 \d 7073 Ket 7074 End 7075------------------------------------------------------------------ 7076 7077/\d*\D/BZ 7078------------------------------------------------------------------ 7079 Bra 7080 \d*+ 7081 \D 7082 Ket 7083 End 7084------------------------------------------------------------------ 7085 7086/\d*\s/BZ 7087------------------------------------------------------------------ 7088 Bra 7089 \d*+ 7090 \s 7091 Ket 7092 End 7093------------------------------------------------------------------ 7094 7095/\d*\S/BZ 7096------------------------------------------------------------------ 7097 Bra 7098 \d* 7099 \S 7100 Ket 7101 End 7102------------------------------------------------------------------ 7103 7104/\d*\w/BZ 7105------------------------------------------------------------------ 7106 Bra 7107 \d* 7108 \w 7109 Ket 7110 End 7111------------------------------------------------------------------ 7112 7113/\d*\W/BZ 7114------------------------------------------------------------------ 7115 Bra 7116 \d*+ 7117 \W 7118 Ket 7119 End 7120------------------------------------------------------------------ 7121 7122/\D*a/BZ 7123------------------------------------------------------------------ 7124 Bra 7125 \D* 7126 a 7127 Ket 7128 End 7129------------------------------------------------------------------ 7130 7131/\D*2/BZ 7132------------------------------------------------------------------ 7133 Bra 7134 \D*+ 7135 2 7136 Ket 7137 End 7138------------------------------------------------------------------ 7139 7140/\D*\d/BZ 7141------------------------------------------------------------------ 7142 Bra 7143 \D*+ 7144 \d 7145 Ket 7146 End 7147------------------------------------------------------------------ 7148 7149/\D*\D/BZ 7150------------------------------------------------------------------ 7151 Bra 7152 \D* 7153 \D 7154 Ket 7155 End 7156------------------------------------------------------------------ 7157 7158/\D*\s/BZ 7159------------------------------------------------------------------ 7160 Bra 7161 \D* 7162 \s 7163 Ket 7164 End 7165------------------------------------------------------------------ 7166 7167/\D*\S/BZ 7168------------------------------------------------------------------ 7169 Bra 7170 \D* 7171 \S 7172 Ket 7173 End 7174------------------------------------------------------------------ 7175 7176/\D*\w/BZ 7177------------------------------------------------------------------ 7178 Bra 7179 \D* 7180 \w 7181 Ket 7182 End 7183------------------------------------------------------------------ 7184 7185/\D*\W/BZ 7186------------------------------------------------------------------ 7187 Bra 7188 \D* 7189 \W 7190 Ket 7191 End 7192------------------------------------------------------------------ 7193 7194/\s*a/BZ 7195------------------------------------------------------------------ 7196 Bra 7197 \s*+ 7198 a 7199 Ket 7200 End 7201------------------------------------------------------------------ 7202 7203/\s*2/BZ 7204------------------------------------------------------------------ 7205 Bra 7206 \s*+ 7207 2 7208 Ket 7209 End 7210------------------------------------------------------------------ 7211 7212/\s*\d/BZ 7213------------------------------------------------------------------ 7214 Bra 7215 \s*+ 7216 \d 7217 Ket 7218 End 7219------------------------------------------------------------------ 7220 7221/\s*\D/BZ 7222------------------------------------------------------------------ 7223 Bra 7224 \s* 7225 \D 7226 Ket 7227 End 7228------------------------------------------------------------------ 7229 7230/\s*\s/BZ 7231------------------------------------------------------------------ 7232 Bra 7233 \s* 7234 \s 7235 Ket 7236 End 7237------------------------------------------------------------------ 7238 7239/\s*\S/BZ 7240------------------------------------------------------------------ 7241 Bra 7242 \s*+ 7243 \S 7244 Ket 7245 End 7246------------------------------------------------------------------ 7247 7248/\s*\w/BZ 7249------------------------------------------------------------------ 7250 Bra 7251 \s*+ 7252 \w 7253 Ket 7254 End 7255------------------------------------------------------------------ 7256 7257/\s*\W/BZ 7258------------------------------------------------------------------ 7259 Bra 7260 \s* 7261 \W 7262 Ket 7263 End 7264------------------------------------------------------------------ 7265 7266/\S*a/BZ 7267------------------------------------------------------------------ 7268 Bra 7269 \S* 7270 a 7271 Ket 7272 End 7273------------------------------------------------------------------ 7274 7275/\S*2/BZ 7276------------------------------------------------------------------ 7277 Bra 7278 \S* 7279 2 7280 Ket 7281 End 7282------------------------------------------------------------------ 7283 7284/\S*\d/BZ 7285------------------------------------------------------------------ 7286 Bra 7287 \S* 7288 \d 7289 Ket 7290 End 7291------------------------------------------------------------------ 7292 7293/\S*\D/BZ 7294------------------------------------------------------------------ 7295 Bra 7296 \S* 7297 \D 7298 Ket 7299 End 7300------------------------------------------------------------------ 7301 7302/\S*\s/BZ 7303------------------------------------------------------------------ 7304 Bra 7305 \S*+ 7306 \s 7307 Ket 7308 End 7309------------------------------------------------------------------ 7310 7311/\S*\S/BZ 7312------------------------------------------------------------------ 7313 Bra 7314 \S* 7315 \S 7316 Ket 7317 End 7318------------------------------------------------------------------ 7319 7320/\S*\w/BZ 7321------------------------------------------------------------------ 7322 Bra 7323 \S* 7324 \w 7325 Ket 7326 End 7327------------------------------------------------------------------ 7328 7329/\S*\W/BZ 7330------------------------------------------------------------------ 7331 Bra 7332 \S* 7333 \W 7334 Ket 7335 End 7336------------------------------------------------------------------ 7337 7338/\w*a/BZ 7339------------------------------------------------------------------ 7340 Bra 7341 \w* 7342 a 7343 Ket 7344 End 7345------------------------------------------------------------------ 7346 7347/\w*2/BZ 7348------------------------------------------------------------------ 7349 Bra 7350 \w* 7351 2 7352 Ket 7353 End 7354------------------------------------------------------------------ 7355 7356/\w*\d/BZ 7357------------------------------------------------------------------ 7358 Bra 7359 \w* 7360 \d 7361 Ket 7362 End 7363------------------------------------------------------------------ 7364 7365/\w*\D/BZ 7366------------------------------------------------------------------ 7367 Bra 7368 \w* 7369 \D 7370 Ket 7371 End 7372------------------------------------------------------------------ 7373 7374/\w*\s/BZ 7375------------------------------------------------------------------ 7376 Bra 7377 \w*+ 7378 \s 7379 Ket 7380 End 7381------------------------------------------------------------------ 7382 7383/\w*\S/BZ 7384------------------------------------------------------------------ 7385 Bra 7386 \w* 7387 \S 7388 Ket 7389 End 7390------------------------------------------------------------------ 7391 7392/\w*\w/BZ 7393------------------------------------------------------------------ 7394 Bra 7395 \w* 7396 \w 7397 Ket 7398 End 7399------------------------------------------------------------------ 7400 7401/\w*\W/BZ 7402------------------------------------------------------------------ 7403 Bra 7404 \w*+ 7405 \W 7406 Ket 7407 End 7408------------------------------------------------------------------ 7409 7410/\W*a/BZ 7411------------------------------------------------------------------ 7412 Bra 7413 \W*+ 7414 a 7415 Ket 7416 End 7417------------------------------------------------------------------ 7418 7419/\W*2/BZ 7420------------------------------------------------------------------ 7421 Bra 7422 \W*+ 7423 2 7424 Ket 7425 End 7426------------------------------------------------------------------ 7427 7428/\W*\d/BZ 7429------------------------------------------------------------------ 7430 Bra 7431 \W*+ 7432 \d 7433 Ket 7434 End 7435------------------------------------------------------------------ 7436 7437/\W*\D/BZ 7438------------------------------------------------------------------ 7439 Bra 7440 \W* 7441 \D 7442 Ket 7443 End 7444------------------------------------------------------------------ 7445 7446/\W*\s/BZ 7447------------------------------------------------------------------ 7448 Bra 7449 \W* 7450 \s 7451 Ket 7452 End 7453------------------------------------------------------------------ 7454 7455/\W*\S/BZ 7456------------------------------------------------------------------ 7457 Bra 7458 \W* 7459 \S 7460 Ket 7461 End 7462------------------------------------------------------------------ 7463 7464/\W*\w/BZ 7465------------------------------------------------------------------ 7466 Bra 7467 \W*+ 7468 \w 7469 Ket 7470 End 7471------------------------------------------------------------------ 7472 7473/\W*\W/BZ 7474------------------------------------------------------------------ 7475 Bra 7476 \W* 7477 \W 7478 Ket 7479 End 7480------------------------------------------------------------------ 7481 7482/[^a]+a/BZ 7483------------------------------------------------------------------ 7484 Bra 7485 [^a]++ 7486 a 7487 Ket 7488 End 7489------------------------------------------------------------------ 7490 7491/[^a]+a/BZi 7492------------------------------------------------------------------ 7493 Bra 7494 /i [^a]++ 7495 /i a 7496 Ket 7497 End 7498------------------------------------------------------------------ 7499 7500/[^a]+A/BZi 7501------------------------------------------------------------------ 7502 Bra 7503 /i [^a]++ 7504 /i A 7505 Ket 7506 End 7507------------------------------------------------------------------ 7508 7509/[^a]+b/BZ 7510------------------------------------------------------------------ 7511 Bra 7512 [^a]+ 7513 b 7514 Ket 7515 End 7516------------------------------------------------------------------ 7517 7518/[^a]+\d/BZ 7519------------------------------------------------------------------ 7520 Bra 7521 [^a]+ 7522 \d 7523 Ket 7524 End 7525------------------------------------------------------------------ 7526 7527/a*[^a]/BZ 7528------------------------------------------------------------------ 7529 Bra 7530 a*+ 7531 [^a] 7532 Ket 7533 End 7534------------------------------------------------------------------ 7535 7536/(?P<abc>x)(?P<xyz>y)/I 7537Capturing subpattern count = 2 7538Named capturing subpatterns: 7539 abc 1 7540 xyz 2 7541No options 7542First char = 'x' 7543Need char = 'y' 7544 xy\Cabc\Cxyz 7545 0: xy 7546 1: x 7547 2: y 7548 C x (1) abc 7549 C y (1) xyz 7550 7551/(?<abc>x)(?'xyz'y)/I 7552Capturing subpattern count = 2 7553Named capturing subpatterns: 7554 abc 1 7555 xyz 2 7556No options 7557First char = 'x' 7558Need char = 'y' 7559 xy\Cabc\Cxyz 7560 0: xy 7561 1: x 7562 2: y 7563 C x (1) abc 7564 C y (1) xyz 7565 7566/(?<abc'x)(?'xyz'y)/I 7567Failed: syntax error in subpattern name (missing terminator) at offset 6 7568 7569/(?<abc>x)(?'xyz>y)/I 7570Failed: syntax error in subpattern name (missing terminator) at offset 15 7571 7572/(?P'abc'x)(?P<xyz>y)/I 7573Failed: unrecognized character after (?P at offset 3 7574 7575/^(?:(?(ZZ)a|b)(?<ZZ>X))+/ 7576 bXaX 7577 0: bXaX 7578 1: X 7579 bXbX 7580 0: bX 7581 1: X 7582 ** Failers 7583No match 7584 aXaX 7585No match 7586 aXbX 7587No match 7588 7589/^(?P>abc)(?<abcd>xxx)/ 7590Failed: reference to non-existent subpattern at offset 8 7591 7592/^(?P>abc)(?<abc>x|y)/ 7593 xx 7594 0: xx 7595 1: x 7596 xy 7597 0: xy 7598 1: y 7599 yy 7600 0: yy 7601 1: y 7602 yx 7603 0: yx 7604 1: x 7605 7606/^(?P>abc)(?P<abc>x|y)/ 7607 xx 7608 0: xx 7609 1: x 7610 xy 7611 0: xy 7612 1: y 7613 yy 7614 0: yy 7615 1: y 7616 yx 7617 0: yx 7618 1: x 7619 7620/^((?(abc)a|b)(?<abc>x|y))+/ 7621 bxay 7622 0: bxay 7623 1: ay 7624 2: y 7625 bxby 7626 0: bx 7627 1: bx 7628 2: x 7629 ** Failers 7630No match 7631 axby 7632No match 7633 7634/^(((?P=abc)|X)(?<abc>x|y))+/ 7635 XxXxxx 7636 0: XxXxxx 7637 1: xx 7638 2: x 7639 3: x 7640 XxXyyx 7641 0: XxXyyx 7642 1: yx 7643 2: y 7644 3: x 7645 XxXyxx 7646 0: XxXy 7647 1: Xy 7648 2: X 7649 3: y 7650 ** Failers 7651No match 7652 x 7653No match 7654 7655/^(?1)(abc)/ 7656 abcabc 7657 0: abcabc 7658 1: abc 7659 7660/^(?:(?:\1|X)(a|b))+/ 7661 Xaaa 7662 0: Xaaa 7663 1: a 7664 Xaba 7665 0: Xa 7666 1: a 7667 7668/^[\E\Qa\E-\Qz\E]+/BZ 7669------------------------------------------------------------------ 7670 Bra 7671 ^ 7672 [a-z]++ 7673 Ket 7674 End 7675------------------------------------------------------------------ 7676 7677/^[a\Q]bc\E]/BZ 7678------------------------------------------------------------------ 7679 Bra 7680 ^ 7681 [\]a-c] 7682 Ket 7683 End 7684------------------------------------------------------------------ 7685 7686/^[a-\Q\E]/BZ 7687------------------------------------------------------------------ 7688 Bra 7689 ^ 7690 [\-a] 7691 Ket 7692 End 7693------------------------------------------------------------------ 7694 7695/^(?P>abc)[()](?<abc>)/BZ 7696------------------------------------------------------------------ 7697 Bra 7698 ^ 7699 Recurse 7700 [()] 7701 CBra 1 7702 Ket 7703 Ket 7704 End 7705------------------------------------------------------------------ 7706 7707/^((?(abc)y)[()](?P<abc>x))+/BZ 7708------------------------------------------------------------------ 7709 Bra 7710 ^ 7711 CBra 1 7712 Cond 7713 2 Cond ref 7714 y 7715 Ket 7716 [()] 7717 CBra 2 7718 x 7719 Ket 7720 KetRmax 7721 Ket 7722 End 7723------------------------------------------------------------------ 7724 (xy)x 7725 0: (xy)x 7726 1: y)x 7727 2: x 7728 7729/^(?P>abc)\Q()\E(?<abc>)/BZ 7730------------------------------------------------------------------ 7731 Bra 7732 ^ 7733 Recurse 7734 () 7735 CBra 1 7736 Ket 7737 Ket 7738 End 7739------------------------------------------------------------------ 7740 7741/^(?P>abc)[a\Q(]\E(](?<abc>)/BZ 7742------------------------------------------------------------------ 7743 Bra 7744 ^ 7745 Recurse 7746 [(\]a] 7747 CBra 1 7748 Ket 7749 Ket 7750 End 7751------------------------------------------------------------------ 7752 7753/^(?P>abc) # this is (a comment) 7754 (?<abc>)/BZx 7755------------------------------------------------------------------ 7756 Bra 7757 ^ 7758 Recurse 7759 CBra 1 7760 Ket 7761 Ket 7762 End 7763------------------------------------------------------------------ 7764 7765/^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii 7766Capturing subpattern count = 4 7767Max back reference = 4 7768Named capturing subpatterns: 7769 four 4 7770 one 1 7771 three 3 7772 two 2 7773May match empty string 7774Options: anchored caseless 7775No first char 7776No need char 7777 1221 7778 0: 1221 7779 1: 1221 7780 2: 1 7781 Satan, oscillate my metallic sonatas! 7782 0: Satan, oscillate my metallic sonatas! 7783 1: <unset> 7784 2: <unset> 7785 3: Satan, oscillate my metallic sonatas 7786 4: S 7787 A man, a plan, a canal: Panama! 7788 0: A man, a plan, a canal: Panama! 7789 1: <unset> 7790 2: <unset> 7791 3: A man, a plan, a canal: Panama 7792 4: A 7793 Able was I ere I saw Elba. 7794 0: Able was I ere I saw Elba. 7795 1: <unset> 7796 2: <unset> 7797 3: Able was I ere I saw Elba 7798 4: A 7799 *** Failers 7800No match 7801 The quick brown fox 7802No match 7803 7804/(?=(\w+))\1:/I 7805Capturing subpattern count = 1 7806Max back reference = 1 7807No options 7808No first char 7809Need char = ':' 7810 abcd: 7811 0: abcd: 7812 1: abcd 7813 7814/(?=(?'abc'\w+))\k<abc>:/I 7815Capturing subpattern count = 1 7816Max back reference = 1 7817Named capturing subpatterns: 7818 abc 1 7819No options 7820No first char 7821Need char = ':' 7822 abcd: 7823 0: abcd: 7824 1: abcd 7825 7826/(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J 7827 adaa 7828 0: adaa 7829 1: a 7830 2: d 7831 ** Failers 7832No match 7833 addd 7834No match 7835 adbb 7836No match 7837 7838/(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J 7839 bdaa 7840 0: bdaa 7841 1: b 7842 2: d 7843 bdab 7844 0: bdab 7845 1: b 7846 2: d 7847 ** Failers 7848No match 7849 bddd 7850No match 7851 7852/(?(<bc))/ 7853Failed: malformed number or name after (?( at offset 6 7854 7855/(?(''))/ 7856Failed: assertion expected after (?( at offset 4 7857 7858/(?('R')stuff)/ 7859Failed: reference to non-existent subpattern at offset 7 7860 7861/((abc (?(R) (?(R1)1) (?(R2)2) X | (?1) (?2) (?R) ))) /x 7862 abcabc1Xabc2XabcXabcabc 7863 0: abcabc1Xabc2XabcX 7864 1: abcabc1Xabc2XabcX 7865 2: abcabc1Xabc2XabcX 7866 7867/(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x 7868 abcabc1Xabc2XabcXabcabc 7869 0: abcabc1Xabc2XabcX 7870 1: abcabc1Xabc2XabcX 7871 2: abcabc1Xabc2XabcX 7872 7873/(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x 7874Failed: reference to non-existent subpattern at offset 29 7875 7876/^(?(DEFINE) abc | xyz ) /x 7877Failed: DEFINE group contains more than one branch at offset 22 7878 7879/(?(DEFINE) abc) xyz/xI 7880Capturing subpattern count = 0 7881Options: extended 7882First char = 'x' 7883Need char = 'z' 7884 7885/(a|)*\d/ 7886 \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 7887No match 7888 \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 7889Matched, but too many substrings 7890 7891/^a.b/<lf> 7892 a\rb 7893 0: a\x0db 7894 a\nb\<cr> 7895 0: a\x0ab 7896 a\x85b\<anycrlf> 7897 0: a\x85b 7898 ** Failers 7899No match 7900 a\nb 7901No match 7902 a\nb\<any> 7903No match 7904 a\rb\<cr> 7905No match 7906 a\rb\<any> 7907No match 7908 a\x85b\<any> 7909No match 7910 a\rb\<anycrlf> 7911No match 7912 7913/^abc./mgx<any> 7914 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK 7915 0: abc1 7916 0: abc2 7917 0: abc3 7918 0: abc4 7919 0: abc5 7920 0: abc6 7921 0: abc7 7922 7923/abc.$/mgx<any> 7924 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9 7925 0: abc1 7926 0: abc2 7927 0: abc3 7928 0: abc4 7929 0: abc5 7930 0: abc6 7931 0: abc9 7932 7933/a/<cr><any> 7934 7935/a/<any><crlf> 7936Failed: inconsistent NEWLINE options at offset 0 7937 7938/^a\Rb/<bsr_unicode> 7939 a\nb 7940 0: a\x0ab 7941 a\rb 7942 0: a\x0db 7943 a\r\nb 7944 0: a\x0d\x0ab 7945 a\x0bb 7946 0: a\x0bb 7947 a\x0cb 7948 0: a\x0cb 7949 a\x85b 7950 0: a\x85b 7951 ** Failers 7952No match 7953 a\n\rb 7954No match 7955 7956/^a\R*b/<bsr_unicode> 7957 ab 7958 0: ab 7959 a\nb 7960 0: a\x0ab 7961 a\rb 7962 0: a\x0db 7963 a\r\nb 7964 0: a\x0d\x0ab 7965 a\x0bb 7966 0: a\x0bb 7967 a\x0cb 7968 0: a\x0cb 7969 a\x85b 7970 0: a\x85b 7971 a\n\rb 7972 0: a\x0a\x0db 7973 a\n\r\x85\x0cb 7974 0: a\x0a\x0d\x85\x0cb 7975 7976/^a\R+b/<bsr_unicode> 7977 a\nb 7978 0: a\x0ab 7979 a\rb 7980 0: a\x0db 7981 a\r\nb 7982 0: a\x0d\x0ab 7983 a\x0bb 7984 0: a\x0bb 7985 a\x0cb 7986 0: a\x0cb 7987 a\x85b 7988 0: a\x85b 7989 a\n\rb 7990 0: a\x0a\x0db 7991 a\n\r\x85\x0cb 7992 0: a\x0a\x0d\x85\x0cb 7993 ** Failers 7994No match 7995 ab 7996No match 7997 7998/^a\R{1,3}b/<bsr_unicode> 7999 a\nb 8000 0: a\x0ab 8001 a\n\rb 8002 0: a\x0a\x0db 8003 a\n\r\x85b 8004 0: a\x0a\x0d\x85b 8005 a\r\n\r\nb 8006 0: a\x0d\x0a\x0d\x0ab 8007 a\r\n\r\n\r\nb 8008 0: a\x0d\x0a\x0d\x0a\x0d\x0ab 8009 a\n\r\n\rb 8010 0: a\x0a\x0d\x0a\x0db 8011 a\n\n\r\nb 8012 0: a\x0a\x0a\x0d\x0ab 8013 ** Failers 8014No match 8015 a\n\n\n\rb 8016No match 8017 a\r 8018No match 8019 8020/^a[\R]b/<bsr_unicode> 8021 aRb 8022 0: aRb 8023 ** Failers 8024No match 8025 a\nb 8026No match 8027 8028/(?&abc)X(?<abc>P)/I 8029Capturing subpattern count = 1 8030Named capturing subpatterns: 8031 abc 1 8032No options 8033No first char 8034Need char = 'P' 8035 abcPXP123 8036 0: PXP 8037 1: P 8038 8039/(?1)X(?<abc>P)/I 8040Capturing subpattern count = 1 8041Named capturing subpatterns: 8042 abc 1 8043No options 8044No first char 8045Need char = 'P' 8046 abcPXP123 8047 0: PXP 8048 1: P 8049 8050/(?:a(?&abc)b)*(?<abc>x)/ 8051 123axbaxbaxbx456 8052 0: axbaxbaxbx 8053 1: x 8054 123axbaxbaxb456 8055 0: x 8056 1: x 8057 8058/(?:a(?&abc)b){1,5}(?<abc>x)/ 8059 123axbaxbaxbx456 8060 0: axbaxbaxbx 8061 1: x 8062 8063/(?:a(?&abc)b){2,5}(?<abc>x)/ 8064 123axbaxbaxbx456 8065 0: axbaxbaxbx 8066 1: x 8067 8068/(?:a(?&abc)b){2,}(?<abc>x)/ 8069 123axbaxbaxbx456 8070 0: axbaxbaxbx 8071 1: x 8072 8073/(abc)(?i:(?1))/ 8074 defabcabcxyz 8075 0: abcabc 8076 1: abc 8077 DEFabcABCXYZ 8078No match 8079 8080/(abc)(?:(?i)(?1))/ 8081 defabcabcxyz 8082 0: abcabc 8083 1: abc 8084 DEFabcABCXYZ 8085No match 8086 8087/^(a)\g-2/ 8088Failed: reference to non-existent subpattern at offset 7 8089 8090/^(a)\g/ 8091Failed: a numbered reference must not be zero at offset 5 8092 8093/^(a)\g{0}/ 8094Failed: a numbered reference must not be zero at offset 8 8095 8096/^(a)\g{3/ 8097Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8 8098 8099/^(a)\g{aa}/ 8100Failed: reference to non-existent subpattern at offset 9 8101 8102/^a.b/<lf> 8103 a\rb 8104 0: a\x0db 8105 *** Failers 8106No match 8107 a\nb 8108No match 8109 8110/.+foo/ 8111 afoo 8112 0: afoo 8113 ** Failers 8114No match 8115 \r\nfoo 8116No match 8117 \nfoo 8118No match 8119 8120/.+foo/<crlf> 8121 afoo 8122 0: afoo 8123 \nfoo 8124 0: \x0afoo 8125 ** Failers 8126No match 8127 \r\nfoo 8128No match 8129 8130/.+foo/<any> 8131 afoo 8132 0: afoo 8133 ** Failers 8134No match 8135 \nfoo 8136No match 8137 \r\nfoo 8138No match 8139 8140/.+foo/s 8141 afoo 8142 0: afoo 8143 \r\nfoo 8144 0: \x0d\x0afoo 8145 \nfoo 8146 0: \x0afoo 8147 8148/^$/mg<any> 8149 abc\r\rxyz 8150 0: 8151 abc\n\rxyz 8152 0: 8153 ** Failers 8154No match 8155 abc\r\nxyz 8156No match 8157 8158/(?m)^$/<any>g+ 8159 abc\r\n\r\n 8160 0: 8161 0+ \x0d\x0a 8162 8163/(?m)^$|^\r\n/<any>g+ 8164 abc\r\n\r\n 8165 0: 8166 0+ \x0d\x0a 8167 0: \x0d\x0a 8168 0+ 8169 8170/(?m)$/<any>g+ 8171 abc\r\n\r\n 8172 0: 8173 0+ \x0d\x0a\x0d\x0a 8174 0: 8175 0+ \x0d\x0a 8176 0: 8177 0+ 8178 8179/abc.$/mgx<anycrlf> 8180 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9 8181 0: abc1 8182 0: abc4 8183 0: abc5 8184 0: abc9 8185 8186/^X/m 8187 XABC 8188 0: X 8189 ** Failers 8190No match 8191 XABC\B 8192No match 8193 8194/(ab|c)(?-1)/BZ 8195------------------------------------------------------------------ 8196 Bra 8197 CBra 1 8198 ab 8199 Alt 8200 c 8201 Ket 8202 Recurse 8203 Ket 8204 End 8205------------------------------------------------------------------ 8206 abc 8207 0: abc 8208 1: ab 8209 8210/xy(?+1)(abc)/BZ 8211------------------------------------------------------------------ 8212 Bra 8213 xy 8214 Recurse 8215 CBra 1 8216 abc 8217 Ket 8218 Ket 8219 End 8220------------------------------------------------------------------ 8221 xyabcabc 8222 0: xyabcabc 8223 1: abc 8224 ** Failers 8225No match 8226 xyabc 8227No match 8228 8229/x(?-0)y/ 8230Failed: a numbered reference must not be zero at offset 5 8231 8232/x(?-1)y/ 8233Failed: reference to non-existent subpattern at offset 5 8234 8235/x(?+0)y/ 8236Failed: a numbered reference must not be zero at offset 5 8237 8238/x(?+1)y/ 8239Failed: reference to non-existent subpattern at offset 5 8240 8241/^(abc)?(?(-1)X|Y)/BZ 8242------------------------------------------------------------------ 8243 Bra 8244 ^ 8245 Brazero 8246 CBra 1 8247 abc 8248 Ket 8249 Cond 8250 1 Cond ref 8251 X 8252 Alt 8253 Y 8254 Ket 8255 Ket 8256 End 8257------------------------------------------------------------------ 8258 abcX 8259 0: abcX 8260 1: abc 8261 Y 8262 0: Y 8263 ** Failers 8264No match 8265 abcY 8266No match 8267 8268/^((?(+1)X|Y)(abc))+/BZ 8269------------------------------------------------------------------ 8270 Bra 8271 ^ 8272 CBra 1 8273 Cond 8274 2 Cond ref 8275 X 8276 Alt 8277 Y 8278 Ket 8279 CBra 2 8280 abc 8281 Ket 8282 KetRmax 8283 Ket 8284 End 8285------------------------------------------------------------------ 8286 YabcXabc 8287 0: YabcXabc 8288 1: Xabc 8289 2: abc 8290 YabcXabcXabc 8291 0: YabcXabcXabc 8292 1: Xabc 8293 2: abc 8294 ** Failers 8295No match 8296 XabcXabc 8297No match 8298 8299/(?(-1)a)/BZ 8300Failed: reference to non-existent subpattern at offset 6 8301 8302/((?(-1)a))/BZ 8303------------------------------------------------------------------ 8304 Bra 8305 CBra 1 8306 Cond 8307 1 Cond ref 8308 a 8309 Ket 8310 Ket 8311 Ket 8312 End 8313------------------------------------------------------------------ 8314 8315/((?(-2)a))/BZ 8316Failed: reference to non-existent subpattern at offset 7 8317 8318/^(?(+1)X|Y)(.)/BZ 8319------------------------------------------------------------------ 8320 Bra 8321 ^ 8322 Cond 8323 1 Cond ref 8324 X 8325 Alt 8326 Y 8327 Ket 8328 CBra 1 8329 Any 8330 Ket 8331 Ket 8332 End 8333------------------------------------------------------------------ 8334 Y! 8335 0: Y! 8336 1: ! 8337 8338/(?<A>tom|bon)-\k{A}/ 8339 tom-tom 8340 0: tom-tom 8341 1: tom 8342 bon-bon 8343 0: bon-bon 8344 1: bon 8345 ** Failers 8346No match 8347 tom-bon 8348No match 8349 8350/\g{A/ 8351Failed: syntax error in subpattern name (missing terminator) at offset 4 8352 8353/(?|(abc)|(xyz))/BZ 8354------------------------------------------------------------------ 8355 Bra 8356 Bra 8357 CBra 1 8358 abc 8359 Ket 8360 Alt 8361 CBra 1 8362 xyz 8363 Ket 8364 Ket 8365 Ket 8366 End 8367------------------------------------------------------------------ 8368 >abc< 8369 0: abc 8370 1: abc 8371 >xyz< 8372 0: xyz 8373 1: xyz 8374 8375/(x)(?|(abc)|(xyz))(x)/BZ 8376------------------------------------------------------------------ 8377 Bra 8378 CBra 1 8379 x 8380 Ket 8381 Bra 8382 CBra 2 8383 abc 8384 Ket 8385 Alt 8386 CBra 2 8387 xyz 8388 Ket 8389 Ket 8390 CBra 3 8391 x 8392 Ket 8393 Ket 8394 End 8395------------------------------------------------------------------ 8396 xabcx 8397 0: xabcx 8398 1: x 8399 2: abc 8400 3: x 8401 xxyzx 8402 0: xxyzx 8403 1: x 8404 2: xyz 8405 3: x 8406 8407/(x)(?|(abc)(pqr)|(xyz))(x)/BZ 8408------------------------------------------------------------------ 8409 Bra 8410 CBra 1 8411 x 8412 Ket 8413 Bra 8414 CBra 2 8415 abc 8416 Ket 8417 CBra 3 8418 pqr 8419 Ket 8420 Alt 8421 CBra 2 8422 xyz 8423 Ket 8424 Ket 8425 CBra 4 8426 x 8427 Ket 8428 Ket 8429 End 8430------------------------------------------------------------------ 8431 xabcpqrx 8432 0: xabcpqrx 8433 1: x 8434 2: abc 8435 3: pqr 8436 4: x 8437 xxyzx 8438 0: xxyzx 8439 1: x 8440 2: xyz 8441 3: <unset> 8442 4: x 8443 8444/\H++X/BZ 8445------------------------------------------------------------------ 8446 Bra 8447 \H++ 8448 X 8449 Ket 8450 End 8451------------------------------------------------------------------ 8452 ** Failers 8453No match 8454 XXXX 8455No match 8456 8457/\H+\hY/BZ 8458------------------------------------------------------------------ 8459 Bra 8460 \H++ 8461 \h 8462 Y 8463 Ket 8464 End 8465------------------------------------------------------------------ 8466 XXXX Y 8467 0: XXXX Y 8468 8469/\H+ Y/BZ 8470------------------------------------------------------------------ 8471 Bra 8472 \H++ 8473 Y 8474 Ket 8475 End 8476------------------------------------------------------------------ 8477 8478/\h+A/BZ 8479------------------------------------------------------------------ 8480 Bra 8481 \h++ 8482 A 8483 Ket 8484 End 8485------------------------------------------------------------------ 8486 8487/\v*B/BZ 8488------------------------------------------------------------------ 8489 Bra 8490 \v*+ 8491 B 8492 Ket 8493 End 8494------------------------------------------------------------------ 8495 8496/\V+\x0a/BZ 8497------------------------------------------------------------------ 8498 Bra 8499 \V++ 8500 \x0a 8501 Ket 8502 End 8503------------------------------------------------------------------ 8504 8505/A+\h/BZ 8506------------------------------------------------------------------ 8507 Bra 8508 A++ 8509 \h 8510 Ket 8511 End 8512------------------------------------------------------------------ 8513 8514/ *\H/BZ 8515------------------------------------------------------------------ 8516 Bra 8517 *+ 8518 \H 8519 Ket 8520 End 8521------------------------------------------------------------------ 8522 8523/A*\v/BZ 8524------------------------------------------------------------------ 8525 Bra 8526 A*+ 8527 \v 8528 Ket 8529 End 8530------------------------------------------------------------------ 8531 8532/\x0b*\V/BZ 8533------------------------------------------------------------------ 8534 Bra 8535 \x0b*+ 8536 \V 8537 Ket 8538 End 8539------------------------------------------------------------------ 8540 8541/\d+\h/BZ 8542------------------------------------------------------------------ 8543 Bra 8544 \d++ 8545 \h 8546 Ket 8547 End 8548------------------------------------------------------------------ 8549 8550/\d*\v/BZ 8551------------------------------------------------------------------ 8552 Bra 8553 \d*+ 8554 \v 8555 Ket 8556 End 8557------------------------------------------------------------------ 8558 8559/S+\h\S+\v/BZ 8560------------------------------------------------------------------ 8561 Bra 8562 S++ 8563 \h 8564 \S++ 8565 \v 8566 Ket 8567 End 8568------------------------------------------------------------------ 8569 8570/\w{3,}\h\w+\v/BZ 8571------------------------------------------------------------------ 8572 Bra 8573 \w{3} 8574 \w*+ 8575 \h 8576 \w++ 8577 \v 8578 Ket 8579 End 8580------------------------------------------------------------------ 8581 8582/\h+\d\h+\w\h+\S\h+\H/BZ 8583------------------------------------------------------------------ 8584 Bra 8585 \h++ 8586 \d 8587 \h++ 8588 \w 8589 \h++ 8590 \S 8591 \h++ 8592 \H 8593 Ket 8594 End 8595------------------------------------------------------------------ 8596 8597/\v+\d\v+\w\v+\S\v+\V/BZ 8598------------------------------------------------------------------ 8599 Bra 8600 \v++ 8601 \d 8602 \v++ 8603 \w 8604 \v++ 8605 \S 8606 \v++ 8607 \V 8608 Ket 8609 End 8610------------------------------------------------------------------ 8611 8612/\H+\h\H+\d/BZ 8613------------------------------------------------------------------ 8614 Bra 8615 \H++ 8616 \h 8617 \H+ 8618 \d 8619 Ket 8620 End 8621------------------------------------------------------------------ 8622 8623/\V+\v\V+\w/BZ 8624------------------------------------------------------------------ 8625 Bra 8626 \V++ 8627 \v 8628 \V+ 8629 \w 8630 Ket 8631 End 8632------------------------------------------------------------------ 8633 8634/\( (?: [^()]* | (?R) )* \)/x 8635\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) 8636 0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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) 8637 8638/[\E]AAA/ 8639Failed: missing terminating ] for character class at offset 7 8640 8641/[\Q\E]AAA/ 8642Failed: missing terminating ] for character class at offset 9 8643 8644/[^\E]AAA/ 8645Failed: missing terminating ] for character class at offset 8 8646 8647/[^\Q\E]AAA/ 8648Failed: missing terminating ] for character class at offset 10 8649 8650/[\E^]AAA/ 8651Failed: missing terminating ] for character class at offset 8 8652 8653/[\Q\E^]AAA/ 8654Failed: missing terminating ] for character class at offset 10 8655 8656/A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ 8657------------------------------------------------------------------ 8658 Bra 8659 A 8660 *PRUNE 8661 B 8662 *SKIP 8663 C 8664 *THEN 8665 D 8666 *COMMIT 8667 E 8668 *FAIL 8669 F 8670 *FAIL 8671 G 8672 *FAIL 8673 H 8674 *ACCEPT 8675 I 8676 Ket 8677 End 8678------------------------------------------------------------------ 8679 8680/^a+(*FAIL)/C 8681 aaaaaa 8682--->aaaaaa 8683 +0 ^ ^ 8684 +1 ^ a+ 8685 +3 ^ ^ (*FAIL) 8686 +3 ^ ^ (*FAIL) 8687 +3 ^ ^ (*FAIL) 8688 +3 ^ ^ (*FAIL) 8689 +3 ^ ^ (*FAIL) 8690 +3 ^^ (*FAIL) 8691No match 8692 8693/a+b?c+(*FAIL)/C 8694 aaabccc 8695--->aaabccc 8696 +0 ^ a+ 8697 +2 ^ ^ b? 8698 +4 ^ ^ c+ 8699 +6 ^ ^ (*FAIL) 8700 +6 ^ ^ (*FAIL) 8701 +6 ^ ^ (*FAIL) 8702 +0 ^ a+ 8703 +2 ^ ^ b? 8704 +4 ^ ^ c+ 8705 +6 ^ ^ (*FAIL) 8706 +6 ^ ^ (*FAIL) 8707 +6 ^ ^ (*FAIL) 8708 +0 ^ a+ 8709 +2 ^^ b? 8710 +4 ^ ^ c+ 8711 +6 ^ ^ (*FAIL) 8712 +6 ^ ^ (*FAIL) 8713 +6 ^ ^ (*FAIL) 8714No match 8715 8716/a+b?(*PRUNE)c+(*FAIL)/C 8717 aaabccc 8718--->aaabccc 8719 +0 ^ a+ 8720 +2 ^ ^ b? 8721 +4 ^ ^ (*PRUNE) 8722+12 ^ ^ c+ 8723+14 ^ ^ (*FAIL) 8724+14 ^ ^ (*FAIL) 8725+14 ^ ^ (*FAIL) 8726 +0 ^ a+ 8727 +2 ^ ^ b? 8728 +4 ^ ^ (*PRUNE) 8729+12 ^ ^ c+ 8730+14 ^ ^ (*FAIL) 8731+14 ^ ^ (*FAIL) 8732+14 ^ ^ (*FAIL) 8733 +0 ^ a+ 8734 +2 ^^ b? 8735 +4 ^ ^ (*PRUNE) 8736+12 ^ ^ c+ 8737+14 ^ ^ (*FAIL) 8738+14 ^ ^ (*FAIL) 8739+14 ^ ^ (*FAIL) 8740No match 8741 8742/a+b?(*COMMIT)c+(*FAIL)/C 8743 aaabccc 8744--->aaabccc 8745 +0 ^ a+ 8746 +2 ^ ^ b? 8747 +4 ^ ^ (*COMMIT) 8748+13 ^ ^ c+ 8749+15 ^ ^ (*FAIL) 8750+15 ^ ^ (*FAIL) 8751+15 ^ ^ (*FAIL) 8752No match 8753 8754/a+b?(*SKIP)c+(*FAIL)/C 8755 aaabcccaaabccc 8756--->aaabcccaaabccc 8757 +0 ^ a+ 8758 +2 ^ ^ b? 8759 +4 ^ ^ (*SKIP) 8760+11 ^ ^ c+ 8761+13 ^ ^ (*FAIL) 8762+13 ^ ^ (*FAIL) 8763+13 ^ ^ (*FAIL) 8764 +0 ^ a+ 8765 +2 ^ ^ b? 8766 +4 ^ ^ (*SKIP) 8767+11 ^ ^ c+ 8768+13 ^ ^ (*FAIL) 8769+13 ^ ^ (*FAIL) 8770+13 ^ ^ (*FAIL) 8771No match 8772 8773/a+b?(*THEN)c+(*FAIL)/C 8774 aaabccc 8775--->aaabccc 8776 +0 ^ a+ 8777 +2 ^ ^ b? 8778 +4 ^ ^ (*THEN) 8779+11 ^ ^ c+ 8780+13 ^ ^ (*FAIL) 8781+13 ^ ^ (*FAIL) 8782+13 ^ ^ (*FAIL) 8783 +0 ^ a+ 8784 +2 ^ ^ b? 8785 +4 ^ ^ (*THEN) 8786+11 ^ ^ c+ 8787+13 ^ ^ (*FAIL) 8788+13 ^ ^ (*FAIL) 8789+13 ^ ^ (*FAIL) 8790 +0 ^ a+ 8791 +2 ^^ b? 8792 +4 ^ ^ (*THEN) 8793+11 ^ ^ c+ 8794+13 ^ ^ (*FAIL) 8795+13 ^ ^ (*FAIL) 8796+13 ^ ^ (*FAIL) 8797No match 8798 8799/a(*MARK)b/ 8800Failed: (*MARK) must have an argument at offset 7 8801 8802/(?i:A{1,}\6666666666)/ 8803Failed: number is too big at offset 19 8804 8805/\g6666666666/ 8806Failed: number is too big at offset 11 8807 8808/[\g6666666666]/BZ 8809------------------------------------------------------------------ 8810 Bra 8811 [6g] 8812 Ket 8813 End 8814------------------------------------------------------------------ 8815 8816/(?1)\c[/ 8817Failed: reference to non-existent subpattern at offset 3 8818 8819/.+A/<crlf> 8820 \r\nA 8821No match 8822 8823/\nA/<crlf> 8824 \r\nA 8825 0: \x0aA 8826 8827/[\r\n]A/<crlf> 8828 \r\nA 8829 0: \x0aA 8830 8831/(\r|\n)A/<crlf> 8832 \r\nA 8833 0: \x0aA 8834 1: \x0a 8835 8836/a(*CR)b/ 8837Failed: (*VERB) not recognized or malformed at offset 5 8838 8839/(*CR)a.b/ 8840 a\nb 8841 0: a\x0ab 8842 ** Failers 8843No match 8844 a\rb 8845No match 8846 8847/(*CR)a.b/<lf> 8848 a\nb 8849 0: a\x0ab 8850 ** Failers 8851No match 8852 a\rb 8853No match 8854 8855/(*LF)a.b/<CRLF> 8856 a\rb 8857 0: a\x0db 8858 ** Failers 8859No match 8860 a\nb 8861No match 8862 8863/(*CRLF)a.b/ 8864 a\rb 8865 0: a\x0db 8866 a\nb 8867 0: a\x0ab 8868 ** Failers 8869No match 8870 a\r\nb 8871No match 8872 8873/(*ANYCRLF)a.b/<CR> 8874 ** Failers 8875No match 8876 a\rb 8877No match 8878 a\nb 8879No match 8880 a\r\nb 8881No match 8882 8883/(*ANY)a.b/<cr> 8884 ** Failers 8885No match 8886 a\rb 8887No match 8888 a\nb 8889No match 8890 a\r\nb 8891No match 8892 a\x85b 8893No match 8894 8895/(*ANY).*/g 8896 abc\r\ndef 8897 0: abc 8898 0: 8899 0: def 8900 0: 8901 8902/(*ANYCRLF).*/g 8903 abc\r\ndef 8904 0: abc 8905 0: 8906 0: def 8907 0: 8908 8909/(*CRLF).*/g 8910 abc\r\ndef 8911 0: abc 8912 0: 8913 0: def 8914 0: 8915 8916/a\Rb/I<bsr_anycrlf> 8917Capturing subpattern count = 0 8918Options: bsr_anycrlf 8919First char = 'a' 8920Need char = 'b' 8921 a\rb 8922 0: a\x0db 8923 a\nb 8924 0: a\x0ab 8925 a\r\nb 8926 0: a\x0d\x0ab 8927 ** Failers 8928No match 8929 a\x85b 8930No match 8931 a\x0bb 8932No match 8933 8934/a\Rb/I<bsr_unicode> 8935Capturing subpattern count = 0 8936Options: bsr_unicode 8937First char = 'a' 8938Need char = 'b' 8939 a\rb 8940 0: a\x0db 8941 a\nb 8942 0: a\x0ab 8943 a\r\nb 8944 0: a\x0d\x0ab 8945 a\x85b 8946 0: a\x85b 8947 a\x0bb 8948 0: a\x0bb 8949 ** Failers 8950No match 8951 a\x85b\<bsr_anycrlf> 8952No match 8953 a\x0bb\<bsr_anycrlf> 8954No match 8955 8956/a\R?b/I<bsr_anycrlf> 8957Capturing subpattern count = 0 8958Options: bsr_anycrlf 8959First char = 'a' 8960Need char = 'b' 8961 a\rb 8962 0: a\x0db 8963 a\nb 8964 0: a\x0ab 8965 a\r\nb 8966 0: a\x0d\x0ab 8967 ** Failers 8968No match 8969 a\x85b 8970No match 8971 a\x0bb 8972No match 8973 8974/a\R?b/I<bsr_unicode> 8975Capturing subpattern count = 0 8976Options: bsr_unicode 8977First char = 'a' 8978Need char = 'b' 8979 a\rb 8980 0: a\x0db 8981 a\nb 8982 0: a\x0ab 8983 a\r\nb 8984 0: a\x0d\x0ab 8985 a\x85b 8986 0: a\x85b 8987 a\x0bb 8988 0: a\x0bb 8989 ** Failers 8990No match 8991 a\x85b\<bsr_anycrlf> 8992No match 8993 a\x0bb\<bsr_anycrlf> 8994No match 8995 8996/a\R{2,4}b/I<bsr_anycrlf> 8997Capturing subpattern count = 0 8998Options: bsr_anycrlf 8999First char = 'a' 9000Need char = 'b' 9001 a\r\n\nb 9002 0: a\x0d\x0a\x0ab 9003 a\n\r\rb 9004 0: a\x0a\x0d\x0db 9005 a\r\n\r\n\r\n\r\nb 9006 0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab 9007 ** Failers 9008No match 9009 a\x85\85b 9010No match 9011 a\x0b\0bb 9012No match 9013 9014/a\R{2,4}b/I<bsr_unicode> 9015Capturing subpattern count = 0 9016Options: bsr_unicode 9017First char = 'a' 9018Need char = 'b' 9019 a\r\rb 9020 0: a\x0d\x0db 9021 a\n\n\nb 9022 0: a\x0a\x0a\x0ab 9023 a\r\n\n\r\rb 9024 0: a\x0d\x0a\x0a\x0d\x0db 9025 a\x85\85b 9026No match 9027 a\x0b\0bb 9028No match 9029 ** Failers 9030No match 9031 a\r\r\r\r\rb 9032No match 9033 a\x85\85b\<bsr_anycrlf> 9034No match 9035 a\x0b\0bb\<bsr_anycrlf> 9036No match 9037 9038/(*BSR_ANYCRLF)a\Rb/I 9039Capturing subpattern count = 0 9040Options: bsr_anycrlf 9041First char = 'a' 9042Need char = 'b' 9043 a\nb 9044 0: a\x0ab 9045 a\rb 9046 0: a\x0db 9047 9048/(*BSR_UNICODE)a\Rb/I 9049Capturing subpattern count = 0 9050Options: bsr_unicode 9051First char = 'a' 9052Need char = 'b' 9053 a\x85b 9054 0: a\x85b 9055 9056/(*BSR_ANYCRLF)(*CRLF)a\Rb/I 9057Capturing subpattern count = 0 9058Options: bsr_anycrlf 9059Forced newline sequence: CRLF 9060First char = 'a' 9061Need char = 'b' 9062 a\nb 9063 0: a\x0ab 9064 a\rb 9065 0: a\x0db 9066 9067/(*CRLF)(*BSR_UNICODE)a\Rb/I 9068Capturing subpattern count = 0 9069Options: bsr_unicode 9070Forced newline sequence: CRLF 9071First char = 'a' 9072Need char = 'b' 9073 a\x85b 9074 0: a\x85b 9075 9076/(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I 9077Capturing subpattern count = 0 9078Options: bsr_anycrlf 9079Forced newline sequence: CR 9080First char = 'a' 9081Need char = 'b' 9082 9083/(?<a>)(?&)/ 9084Failed: subpattern name expected at offset 9 9085 9086/(?<abc>)(?&a)/ 9087Failed: reference to non-existent subpattern at offset 12 9088 9089/(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/ 9090Failed: reference to non-existent subpattern at offset 32 9091 9092/(?+-a)/ 9093Failed: digit expected after (?+ at offset 3 9094 9095/(?-+a)/ 9096Failed: unrecognized character after (? or (?- at offset 3 9097 9098/(?(-1))/ 9099Failed: reference to non-existent subpattern at offset 6 9100 9101/(?(+10))/ 9102Failed: reference to non-existent subpattern at offset 7 9103 9104/(?(10))/ 9105Failed: reference to non-existent subpattern at offset 6 9106 9107/(?(+2))()()/ 9108 9109/(?(2))()()/ 9110 9111/\k''/ 9112Failed: subpattern name expected at offset 3 9113 9114/\k<>/ 9115Failed: subpattern name expected at offset 3 9116 9117/\k{}/ 9118Failed: subpattern name expected at offset 3 9119 9120/\k/ 9121Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2 9122 9123/\kabc/ 9124Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5 9125 9126/(?P=)/ 9127Failed: subpattern name expected at offset 4 9128 9129/(?P>)/ 9130Failed: subpattern name expected at offset 4 9131 9132/(?!\w)(?R)/ 9133Failed: recursive call could loop indefinitely at offset 9 9134 9135/(?=\w)(?R)/ 9136Failed: recursive call could loop indefinitely at offset 9 9137 9138/(?<!\w)(?R)/ 9139Failed: recursive call could loop indefinitely at offset 10 9140 9141/(?<=\w)(?R)/ 9142Failed: recursive call could loop indefinitely at offset 10 9143 9144/[[:foo:]]/ 9145Failed: unknown POSIX class name at offset 3 9146 9147/[[:1234:]]/ 9148Failed: unknown POSIX class name at offset 3 9149 9150/[[:f\oo:]]/ 9151Failed: unknown POSIX class name at offset 3 9152 9153/[[: :]]/ 9154Failed: unknown POSIX class name at offset 3 9155 9156/[[:...:]]/ 9157Failed: unknown POSIX class name at offset 3 9158 9159/[[:l\ower:]]/ 9160Failed: unknown POSIX class name at offset 3 9161 9162/[[:abc\:]]/ 9163Failed: unknown POSIX class name at offset 3 9164 9165/[abc[:x\]pqr:]]/ 9166Failed: unknown POSIX class name at offset 6 9167 9168/[[:a\dz:]]/ 9169Failed: unknown POSIX class name at offset 3 9170 9171/(^(a|b\g<-1'c))/ 9172Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15 9173 9174/^(?+1)(?<a>x|y){0}z/ 9175 xzxx 9176 0: xz 9177 yzyy 9178 0: yz 9179 ** Failers 9180No match 9181 xxz 9182No match 9183 9184/(\3)(\1)(a)/ 9185 cat 9186No match 9187 9188/(\3)(\1)(a)/<JS> 9189 cat 9190 0: a 9191 1: 9192 2: 9193 3: a 9194 9195/TA]/ 9196 The ACTA] comes 9197 0: TA] 9198 9199/TA]/<JS> 9200Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2 9201 9202/(?2)[]a()b](abc)/ 9203Failed: reference to non-existent subpattern at offset 3 9204 9205/(?2)[^]a()b](abc)/ 9206Failed: reference to non-existent subpattern at offset 3 9207 9208/(?1)[]a()b](abc)/ 9209 abcbabc 9210 0: abcbabc 9211 1: abc 9212 ** Failers 9213No match 9214 abcXabc 9215No match 9216 9217/(?1)[^]a()b](abc)/ 9218 abcXabc 9219 0: abcXabc 9220 1: abc 9221 ** Failers 9222No match 9223 abcbabc 9224No match 9225 9226/(?2)[]a()b](abc)(xyz)/ 9227 xyzbabcxyz 9228 0: xyzbabcxyz 9229 1: abc 9230 2: xyz 9231 9232/(?&N)[]a(?<N>)](?<M>abc)/ 9233Failed: reference to non-existent subpattern at offset 4 9234 9235/(?&N)[]a(?<N>)](abc)/ 9236Failed: reference to non-existent subpattern at offset 4 9237 9238/a[]b/ 9239Failed: missing terminating ] for character class at offset 4 9240 9241/a[^]b/ 9242Failed: missing terminating ] for character class at offset 5 9243 9244/a[]b/<JS> 9245 ** Failers 9246No match 9247 ab 9248No match 9249 9250/a[]+b/<JS> 9251 ** Failers 9252No match 9253 ab 9254No match 9255 9256/a[]*+b/<JS> 9257 ** Failers 9258No match 9259 ab 9260No match 9261 9262/a[^]b/<JS> 9263 aXb 9264 0: aXb 9265 a\nb 9266 0: a\x0ab 9267 ** Failers 9268No match 9269 ab 9270No match 9271 9272/a[^]+b/<JS> 9273 aXb 9274 0: aXb 9275 a\nX\nXb 9276 0: a\x0aX\x0aXb 9277 ** Failers 9278No match 9279 ab 9280No match 9281 9282/a(?!)b/BZ 9283------------------------------------------------------------------ 9284 Bra 9285 a 9286 *FAIL 9287 b 9288 Ket 9289 End 9290------------------------------------------------------------------ 9291 9292/(?!)?a/BZ 9293------------------------------------------------------------------ 9294 Bra 9295 Brazero 9296 Assert not 9297 Ket 9298 a 9299 Ket 9300 End 9301------------------------------------------------------------------ 9302 ab 9303 0: a 9304 9305/a(*FAIL)+b/ 9306Failed: nothing to repeat at offset 8 9307 9308/(abc|pqr|123){0}[xyz]/SI 9309Capturing subpattern count = 1 9310No options 9311No first char 9312No need char 9313Subject length lower bound = 1 9314Starting chars: x y z 9315 9316/(?(?=.*b)b|^)/CI 9317Capturing subpattern count = 0 9318May match empty string 9319Options: 9320No first char 9321No need char 9322 adc 9323--->adc 9324 +0 ^ (?(?=.*b)b|^) 9325 +2 ^ (?=.*b) 9326 +5 ^ .* 9327 +7 ^ ^ b 9328 +7 ^ ^ b 9329 +7 ^^ b 9330 +7 ^ b 9331+11 ^ ^ 9332+12 ^ ) 9333+13 ^ 9334 0: 9335 abc 9336--->abc 9337 +0 ^ (?(?=.*b)b|^) 9338 +2 ^ (?=.*b) 9339 +5 ^ .* 9340 +7 ^ ^ b 9341 +7 ^ ^ b 9342 +7 ^^ b 9343 +8 ^ ^ ) 9344 +9 ^ b 9345 +0 ^ (?(?=.*b)b|^) 9346 +2 ^ (?=.*b) 9347 +5 ^ .* 9348 +7 ^ ^ b 9349 +7 ^^ b 9350 +7 ^ b 9351 +8 ^^ ) 9352 +9 ^ b 9353+10 ^^ | 9354+13 ^^ 9355 0: b 9356 9357/(?(?=b).*b|^d)/I 9358Capturing subpattern count = 0 9359No options 9360No first char 9361No need char 9362 9363/(?(?=.*b).*b|^d)/I 9364Capturing subpattern count = 0 9365No options 9366First char at start or follows newline 9367No need char 9368 9369/xyz/C 9370 xyz 9371--->xyz 9372 +0 ^ x 9373 +1 ^^ y 9374 +2 ^ ^ z 9375 +3 ^ ^ 9376 0: xyz 9377 abcxyz 9378--->abcxyz 9379 +0 ^ x 9380 +1 ^^ y 9381 +2 ^ ^ z 9382 +3 ^ ^ 9383 0: xyz 9384 abcxyz\Y 9385--->abcxyz 9386 +0 ^ x 9387 +0 ^ x 9388 +0 ^ x 9389 +0 ^ x 9390 +1 ^^ y 9391 +2 ^ ^ z 9392 +3 ^ ^ 9393 0: xyz 9394 ** Failers 9395No match 9396 abc 9397No match 9398 abc\Y 9399--->abc 9400 +0 ^ x 9401 +0 ^ x 9402 +0 ^ x 9403 +0 ^ x 9404No match 9405 abcxypqr 9406No match 9407 abcxypqr\Y 9408--->abcxypqr 9409 +0 ^ x 9410 +0 ^ x 9411 +0 ^ x 9412 +0 ^ x 9413 +1 ^^ y 9414 +2 ^ ^ z 9415 +0 ^ x 9416 +0 ^ x 9417 +0 ^ x 9418 +0 ^ x 9419 +0 ^ x 9420No match 9421 9422/(*NO_START_OPT)xyz/C 9423 abcxyz 9424--->abcxyz 9425+15 ^ x 9426+15 ^ x 9427+15 ^ x 9428+15 ^ x 9429+16 ^^ y 9430+17 ^ ^ z 9431+18 ^ ^ 9432 0: xyz 9433 9434/(*NO_AUTO_POSSESS)a+b/BZ 9435------------------------------------------------------------------ 9436 Bra 9437 a+ 9438 b 9439 Ket 9440 End 9441------------------------------------------------------------------ 9442 9443/xyz/CY 9444 abcxyz 9445--->abcxyz 9446 +0 ^ x 9447 +0 ^ x 9448 +0 ^ x 9449 +0 ^ x 9450 +1 ^^ y 9451 +2 ^ ^ z 9452 +3 ^ ^ 9453 0: xyz 9454 9455/^"((?(?=[a])[^"])|b)*"$/C 9456 "ab" 9457--->"ab" 9458 +0 ^ ^ 9459 +1 ^ " 9460 +2 ^^ ((?(?=[a])[^"])|b)* 9461 +3 ^^ (?(?=[a])[^"]) 9462 +5 ^^ (?=[a]) 9463 +8 ^^ [a] 9464+11 ^ ^ ) 9465+12 ^^ [^"] 9466+16 ^ ^ ) 9467+17 ^ ^ | 9468 +3 ^ ^ (?(?=[a])[^"]) 9469 +5 ^ ^ (?=[a]) 9470 +8 ^ ^ [a] 9471+17 ^ ^ | 9472+21 ^ ^ " 9473+18 ^ ^ b 9474+19 ^ ^ ) 9475 +3 ^ ^ (?(?=[a])[^"]) 9476 +5 ^ ^ (?=[a]) 9477 +8 ^ ^ [a] 9478+17 ^ ^ | 9479+21 ^ ^ " 9480+22 ^ ^ $ 9481+23 ^ ^ 9482 0: "ab" 9483 1: 9484 9485/^"((?(?=[a])[^"])|b)*"$/ 9486 "ab" 9487 0: "ab" 9488 1: 9489 9490/^X(?5)(a)(?|(b)|(q))(c)(d)Y/ 9491Failed: reference to non-existent subpattern at offset 5 9492 9493/^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/ 9494 XYabcdY 9495 0: XYabcdY 9496 1: a 9497 2: b 9498 3: c 9499 4: d 9500 5: Y 9501 9502/Xa{2,4}b/ 9503 X\P 9504Partial match: X 9505 Xa\P 9506Partial match: Xa 9507 Xaa\P 9508Partial match: Xaa 9509 Xaaa\P 9510Partial match: Xaaa 9511 Xaaaa\P 9512Partial match: Xaaaa 9513 9514/Xa{2,4}?b/ 9515 X\P 9516Partial match: X 9517 Xa\P 9518Partial match: Xa 9519 Xaa\P 9520Partial match: Xaa 9521 Xaaa\P 9522Partial match: Xaaa 9523 Xaaaa\P 9524Partial match: Xaaaa 9525 9526/Xa{2,4}+b/ 9527 X\P 9528Partial match: X 9529 Xa\P 9530Partial match: Xa 9531 Xaa\P 9532Partial match: Xaa 9533 Xaaa\P 9534Partial match: Xaaa 9535 Xaaaa\P 9536Partial match: Xaaaa 9537 9538/X\d{2,4}b/ 9539 X\P 9540Partial match: X 9541 X3\P 9542Partial match: X3 9543 X33\P 9544Partial match: X33 9545 X333\P 9546Partial match: X333 9547 X3333\P 9548Partial match: X3333 9549 9550/X\d{2,4}?b/ 9551 X\P 9552Partial match: X 9553 X3\P 9554Partial match: X3 9555 X33\P 9556Partial match: X33 9557 X333\P 9558Partial match: X333 9559 X3333\P 9560Partial match: X3333 9561 9562/X\d{2,4}+b/ 9563 X\P 9564Partial match: X 9565 X3\P 9566Partial match: X3 9567 X33\P 9568Partial match: X33 9569 X333\P 9570Partial match: X333 9571 X3333\P 9572Partial match: X3333 9573 9574/X\D{2,4}b/ 9575 X\P 9576Partial match: X 9577 Xa\P 9578Partial match: Xa 9579 Xaa\P 9580Partial match: Xaa 9581 Xaaa\P 9582Partial match: Xaaa 9583 Xaaaa\P 9584Partial match: Xaaaa 9585 9586/X\D{2,4}?b/ 9587 X\P 9588Partial match: X 9589 Xa\P 9590Partial match: Xa 9591 Xaa\P 9592Partial match: Xaa 9593 Xaaa\P 9594Partial match: Xaaa 9595 Xaaaa\P 9596Partial match: Xaaaa 9597 9598/X\D{2,4}+b/ 9599 X\P 9600Partial match: X 9601 Xa\P 9602Partial match: Xa 9603 Xaa\P 9604Partial match: Xaa 9605 Xaaa\P 9606Partial match: Xaaa 9607 Xaaaa\P 9608Partial match: Xaaaa 9609 9610/X[abc]{2,4}b/ 9611 X\P 9612Partial match: X 9613 Xa\P 9614Partial match: Xa 9615 Xaa\P 9616Partial match: Xaa 9617 Xaaa\P 9618Partial match: Xaaa 9619 Xaaaa\P 9620Partial match: Xaaaa 9621 9622/X[abc]{2,4}?b/ 9623 X\P 9624Partial match: X 9625 Xa\P 9626Partial match: Xa 9627 Xaa\P 9628Partial match: Xaa 9629 Xaaa\P 9630Partial match: Xaaa 9631 Xaaaa\P 9632Partial match: Xaaaa 9633 9634/X[abc]{2,4}+b/ 9635 X\P 9636Partial match: X 9637 Xa\P 9638Partial match: Xa 9639 Xaa\P 9640Partial match: Xaa 9641 Xaaa\P 9642Partial match: Xaaa 9643 Xaaaa\P 9644Partial match: Xaaaa 9645 9646/X[^a]{2,4}b/ 9647 X\P 9648Partial match: X 9649 Xz\P 9650Partial match: Xz 9651 Xzz\P 9652Partial match: Xzz 9653 Xzzz\P 9654Partial match: Xzzz 9655 Xzzzz\P 9656Partial match: Xzzzz 9657 9658/X[^a]{2,4}?b/ 9659 X\P 9660Partial match: X 9661 Xz\P 9662Partial match: Xz 9663 Xzz\P 9664Partial match: Xzz 9665 Xzzz\P 9666Partial match: Xzzz 9667 Xzzzz\P 9668Partial match: Xzzzz 9669 9670/X[^a]{2,4}+b/ 9671 X\P 9672Partial match: X 9673 Xz\P 9674Partial match: Xz 9675 Xzz\P 9676Partial match: Xzz 9677 Xzzz\P 9678Partial match: Xzzz 9679 Xzzzz\P 9680Partial match: Xzzzz 9681 9682/(Y)X\1{2,4}b/ 9683 YX\P 9684Partial match: YX 9685 YXY\P 9686Partial match: YXY 9687 YXYY\P 9688Partial match: YXYY 9689 YXYYY\P 9690Partial match: YXYYY 9691 YXYYYY\P 9692Partial match: YXYYYY 9693 9694/(Y)X\1{2,4}?b/ 9695 YX\P 9696Partial match: YX 9697 YXY\P 9698Partial match: YXY 9699 YXYY\P 9700Partial match: YXYY 9701 YXYYY\P 9702Partial match: YXYYY 9703 YXYYYY\P 9704Partial match: YXYYYY 9705 9706/(Y)X\1{2,4}+b/ 9707 YX\P 9708Partial match: YX 9709 YXY\P 9710Partial match: YXY 9711 YXYY\P 9712Partial match: YXYY 9713 YXYYY\P 9714Partial match: YXYYY 9715 YXYYYY\P 9716Partial match: YXYYYY 9717 9718/\++\KZ|\d+X|9+Y/ 9719 ++++123999\P 9720Partial match: 123999 9721 ++++123999Y\P 9722 0: 999Y 9723 ++++Z1234\P 9724 0: Z 9725 9726/Z(*F)/ 9727 Z\P 9728No match 9729 ZA\P 9730No match 9731 9732/Z(?!)/ 9733 Z\P 9734No match 9735 ZA\P 9736No match 9737 9738/dog(sbody)?/ 9739 dogs\P 9740 0: dog 9741 dogs\P\P 9742Partial match: dogs 9743 9744/dog(sbody)??/ 9745 dogs\P 9746 0: dog 9747 dogs\P\P 9748 0: dog 9749 9750/dog|dogsbody/ 9751 dogs\P 9752 0: dog 9753 dogs\P\P 9754 0: dog 9755 9756/dogsbody|dog/ 9757 dogs\P 9758 0: dog 9759 dogs\P\P 9760Partial match: dogs 9761 9762/\bthe cat\b/ 9763 the cat\P 9764 0: the cat 9765 the cat\P\P 9766Partial match: the cat 9767 9768/abc/ 9769 abc\P 9770 0: abc 9771 abc\P\P 9772 0: abc 9773 9774/abc\K123/ 9775 xyzabc123pqr 9776 0: 123 9777 xyzabc12\P 9778Partial match: abc12 9779 xyzabc12\P\P 9780Partial match: abc12 9781 9782/(?<=abc)123/ 9783 xyzabc123pqr 9784 0: 123 9785 xyzabc12\P 9786Partial match at offset 6: abc12 9787 xyzabc12\P\P 9788Partial match at offset 6: abc12 9789 9790/\babc\b/ 9791 +++abc+++ 9792 0: abc 9793 +++ab\P 9794Partial match at offset 3: +ab 9795 +++ab\P\P 9796Partial match at offset 3: +ab 9797 9798/(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ 9799------------------------------------------------------------------ 9800 Bra 9801 Recurse 9802 Recurse 9803 Cond 9804 Cond def 9805 CBra 1 9806 < 9807 [^m] 9808 [^>] 9809 > 9810 [^<] 9811 Ket 9812 CBra 2 9813 \w*+ 9814 Ket 9815 Ket 9816 Ket 9817 End 9818------------------------------------------------------------------ 9819 9820/(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ 9821------------------------------------------------------------------ 9822 Bra 9823 Recurse 9824 Recurse 9825 Cond 9826 Cond def 9827 CBra 1 9828 < 9829 [\x00-/:-\xff] (neg) 9830 [^>] 9831 > 9832 [^<] 9833 Ket 9834 CBra 2 9835 \w*+ 9836 Ket 9837 Ket 9838 Ket 9839 End 9840------------------------------------------------------------------ 9841 9842/(ab)(x(y)z(cd(*ACCEPT)))pq/BZ 9843------------------------------------------------------------------ 9844 Bra 9845 CBra 1 9846 ab 9847 Ket 9848 CBra 2 9849 x 9850 CBra 3 9851 y 9852 Ket 9853 z 9854 CBra 4 9855 cd 9856 Close 4 9857 Close 2 9858 *ACCEPT 9859 Ket 9860 Ket 9861 pq 9862 Ket 9863 End 9864------------------------------------------------------------------ 9865 9866/abc\K/+ 9867 abcdef 9868 0: 9869 0+ def 9870 abcdef\N\N 9871 0: 9872 0+ def 9873 xyzabcdef\N\N 9874 0: 9875 0+ def 9876 ** Failers 9877No match 9878 abcdef\N 9879No match 9880 xyzabcdef\N 9881No match 9882 9883/^(?:(?=abc)|abc\K)/+ 9884 abcdef 9885 0: 9886 0+ abcdef 9887 abcdef\N\N 9888 0: 9889 0+ def 9890 ** Failers 9891No match 9892 abcdef\N 9893No match 9894 9895/a?b?/+ 9896 xyz 9897 0: 9898 0+ xyz 9899 xyzabc 9900 0: 9901 0+ xyzabc 9902 xyzabc\N 9903 0: ab 9904 0+ c 9905 xyzabc\N\N 9906 0: 9907 0+ yzabc 9908 xyz\N\N 9909 0: 9910 0+ yz 9911 ** Failers 9912 0: 9913 0+ ** Failers 9914 xyz\N 9915No match 9916 9917/^a?b?/+ 9918 xyz 9919 0: 9920 0+ xyz 9921 xyzabc 9922 0: 9923 0+ xyzabc 9924 ** Failers 9925 0: 9926 0+ ** Failers 9927 xyzabc\N 9928No match 9929 xyzabc\N\N 9930No match 9931 xyz\N\N 9932No match 9933 xyz\N 9934No match 9935 9936/^(?<name>a|b\g<name>c)/ 9937 aaaa 9938 0: a 9939 1: a 9940 bacxxx 9941 0: bac 9942 1: bac 9943 bbaccxxx 9944 0: bbacc 9945 1: bbacc 9946 bbbacccxx 9947 0: bbbaccc 9948 1: bbbaccc 9949 9950/^(?<name>a|b\g'name'c)/ 9951 aaaa 9952 0: a 9953 1: a 9954 bacxxx 9955 0: bac 9956 1: bac 9957 bbaccxxx 9958 0: bbacc 9959 1: bbacc 9960 bbbacccxx 9961 0: bbbaccc 9962 1: bbbaccc 9963 9964/^(a|b\g<1>c)/ 9965 aaaa 9966 0: a 9967 1: a 9968 bacxxx 9969 0: bac 9970 1: bac 9971 bbaccxxx 9972 0: bbacc 9973 1: bbacc 9974 bbbacccxx 9975 0: bbbaccc 9976 1: bbbaccc 9977 9978/^(a|b\g'1'c)/ 9979 aaaa 9980 0: a 9981 1: a 9982 bacxxx 9983 0: bac 9984 1: bac 9985 bbaccxxx 9986 0: bbacc 9987 1: bbacc 9988 bbbacccxx 9989 0: bbbaccc 9990 1: bbbaccc 9991 9992/^(a|b\g'-1'c)/ 9993 aaaa 9994 0: a 9995 1: a 9996 bacxxx 9997 0: bac 9998 1: bac 9999 bbaccxxx 10000 0: bbacc 10001 1: bbacc 10002 bbbacccxx 10003 0: bbbaccc 10004 1: bbbaccc 10005 10006/(^(a|b\g<-1>c))/ 10007 aaaa 10008 0: a 10009 1: a 10010 2: a 10011 bacxxx 10012 0: bac 10013 1: bac 10014 2: bac 10015 bbaccxxx 10016 0: bbacc 10017 1: bbacc 10018 2: bbacc 10019 bbbacccxx 10020 0: bbbaccc 10021 1: bbbaccc 10022 2: bbbaccc 10023 10024/(?-i:\g<name>)(?i:(?<name>a))/ 10025 XaaX 10026 0: aa 10027 1: a 10028 XAAX 10029 0: AA 10030 1: A 10031 10032/(?i:\g<name>)(?-i:(?<name>a))/ 10033 XaaX 10034 0: aa 10035 1: a 10036 ** Failers 10037No match 10038 XAAX 10039No match 10040 10041/(?-i:\g<+1>)(?i:(a))/ 10042 XaaX 10043 0: aa 10044 1: a 10045 XAAX 10046 0: AA 10047 1: A 10048 10049/(?=(?<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>\})\}))\{/ 10050 10051/(?<n>a|b|c)\g<n>*/ 10052 abc 10053 0: abc 10054 1: a 10055 accccbbb 10056 0: accccbbb 10057 1: a 10058 10059/^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/ 10060 XYabcdY 10061 0: XYabcdY 10062 1: a 10063 2: b 10064 3: <unset> 10065 4: <unset> 10066 5: c 10067 6: d 10068 7: Y 10069 10070/(?<=b(?1)|zzz)(a)/ 10071 xbaax 10072 0: a 10073 1: a 10074 xzzzax 10075 0: a 10076 1: a 10077 10078/(a)(?<=b\1)/ 10079Failed: lookbehind assertion is not fixed length at offset 10 10080 10081/(a)(?<=b+(?1))/ 10082Failed: lookbehind assertion is not fixed length at offset 13 10083 10084/(a+)(?<=b(?1))/ 10085Failed: lookbehind assertion is not fixed length at offset 14 10086 10087/(a(?<=b(?1)))/ 10088Failed: lookbehind assertion is not fixed length at offset 13 10089 10090/(?<=b(?1))xyz/ 10091Failed: reference to non-existent subpattern at offset 8 10092 10093/(?<=b(?1))xyz(b+)pqrstuvew/ 10094Failed: lookbehind assertion is not fixed length at offset 26 10095 10096/(a|bc)\1/SI 10097Capturing subpattern count = 1 10098Max back reference = 1 10099No options 10100No first char 10101No need char 10102Subject length lower bound = 2 10103Starting chars: a b 10104 10105/(a|bc)\1{2,3}/SI 10106Capturing subpattern count = 1 10107Max back reference = 1 10108No options 10109No first char 10110No need char 10111Subject length lower bound = 3 10112Starting chars: a b 10113 10114/(a|bc)(?1)/SI 10115Capturing subpattern count = 1 10116No options 10117No first char 10118No need char 10119Subject length lower bound = 2 10120Starting chars: a b 10121 10122/(a|b\1)(a|b\1)/SI 10123Capturing subpattern count = 2 10124Max back reference = 1 10125No options 10126No first char 10127No need char 10128Subject length lower bound = 2 10129Starting chars: a b 10130 10131/(a|b\1){2}/SI 10132Capturing subpattern count = 1 10133Max back reference = 1 10134No options 10135No first char 10136No need char 10137Subject length lower bound = 2 10138Starting chars: a b 10139 10140/(a|bbbb\1)(a|bbbb\1)/SI 10141Capturing subpattern count = 2 10142Max back reference = 1 10143No options 10144No first char 10145No need char 10146Subject length lower bound = 2 10147Starting chars: a b 10148 10149/(a|bbbb\1){2}/SI 10150Capturing subpattern count = 1 10151Max back reference = 1 10152No options 10153No first char 10154No need char 10155Subject length lower bound = 2 10156Starting chars: a b 10157 10158/^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 10159Capturing subpattern count = 1 10160Options: anchored 10161No first char 10162Need char = ':' 10163Subject length lower bound = 22 10164No starting char list 10165 10166/<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 10167Capturing subpattern count = 11 10168Options: caseless dotall 10169First char = '<' 10170Need char = '>' 10171Subject length lower bound = 47 10172No starting char list 10173 10174"(?>.*/)foo"SI 10175Capturing subpattern count = 0 10176No options 10177No first char 10178Need char = 'o' 10179Subject length lower bound = 4 10180No starting char list 10181 10182/(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /xSI 10183Capturing subpattern count = 0 10184Options: extended 10185No first char 10186Need char = '-' 10187Subject length lower bound = 8 10188No starting char list 10189 10190/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI 10191Capturing subpattern count = 1 10192Options: caseless 10193No first char 10194No need char 10195Subject length lower bound = 1 10196Starting chars: A B C a b c 10197 10198/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI 10199Capturing subpattern count = 0 10200No options 10201No first char 10202Need char = 'b' 10203Subject length lower bound = 41 10204Starting chars: c d 10205 10206/<a[\s]+href[\s]*=[\s]* # find <a href= 10207 ([\"\'])? # find single or double quote 10208 (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching 10209 # quote, otherwise match up to next space 10210/isxSI 10211Capturing subpattern count = 3 10212Max back reference = 1 10213Options: caseless extended dotall 10214First char = '<' 10215Need char = '=' 10216Subject length lower bound = 9 10217No starting char list 10218 10219/^(?!:) # colon disallowed at start 10220 (?: # start of item 10221 (?: [0-9a-f]{1,4} | # 1-4 hex digits or 10222 (?(1)0 | () ) ) # if null previously matched, fail; else null 10223 : # followed by colon 10224 ){1,7} # end item; 1-7 of them required 10225 [0-9a-f]{1,4} $ # final hex number at end of string 10226 (?(1)|.) # check that there was an empty component 10227 /xiIS 10228Capturing subpattern count = 1 10229Options: anchored caseless extended 10230No first char 10231Need char = ':' 10232Subject length lower bound = 2 10233No starting char list 10234 10235/(?|(?<a>A)|(?<a>B))/I 10236Capturing subpattern count = 1 10237Named capturing subpatterns: 10238 a 1 10239No options 10240No first char 10241No need char 10242 AB\Ca 10243 0: A 10244 1: A 10245 C A (1) a 10246 BA\Ca 10247 0: B 10248 1: B 10249 C B (1) a 10250 10251/(?|(?<a>A)|(?<b>B))/ 10252Failed: different names for subpatterns of the same number are not allowed at offset 15 10253 10254/(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) | 10255 b(?<quote> (?<apostrophe>')|(?<realquote>")) ) 10256 (?('quote')[a-z]+|[0-9]+)/JIx 10257Capturing subpattern count = 6 10258Named capturing subpatterns: 10259 apostrophe 2 10260 apostrophe 5 10261 quote 1 10262 quote 4 10263 realquote 3 10264 realquote 6 10265Options: extended dupnames 10266No first char 10267No need char 10268 a"aaaaa 10269 0: a"aaaaa 10270 1: " 10271 2: <unset> 10272 3: " 10273 b"aaaaa 10274 0: b"aaaaa 10275 1: <unset> 10276 2: <unset> 10277 3: <unset> 10278 4: " 10279 5: <unset> 10280 6: " 10281 ** Failers 10282No match 10283 b"11111 10284No match 10285 a"11111 10286No match 10287 10288/^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx 10289------------------------------------------------------------------ 10290 Bra 10291 ^ 10292 Bra 10293 CBra 1 10294 a 10295 Ket 10296 CBra 2 10297 b 10298 Ket 10299 CBra 3 10300 c 10301 Ket 10302 CBra 4 10303 d 10304 Ket 10305 Alt 10306 CBra 1 10307 e 10308 Ket 10309 Ket 10310 Cond 10311 Cond ref <D>2 10312 X 10313 Alt 10314 Y 10315 Ket 10316 Ket 10317 End 10318------------------------------------------------------------------ 10319Capturing subpattern count = 4 10320Named capturing subpatterns: 10321 D 4 10322 D 1 10323Options: anchored extended dupnames 10324No first char 10325No need char 10326 abcdX 10327 0: abcdX 10328 1: a 10329 2: b 10330 3: c 10331 4: d 10332 eX 10333 0: eX 10334 1: e 10335 ** Failers 10336No match 10337 abcdY 10338No match 10339 ey 10340No match 10341 10342/(?<A>a) (b)(c) (?<A>d (?(R&A)$ | (?4)) )/JDZx 10343------------------------------------------------------------------ 10344 Bra 10345 CBra 1 10346 a 10347 Ket 10348 CBra 2 10349 b 10350 Ket 10351 CBra 3 10352 c 10353 Ket 10354 CBra 4 10355 d 10356 Cond 10357 Cond recurse <A>2 10358 $ 10359 Alt 10360 Recurse 10361 Ket 10362 Ket 10363 Ket 10364 End 10365------------------------------------------------------------------ 10366Capturing subpattern count = 4 10367Named capturing subpatterns: 10368 A 1 10369 A 4 10370Options: extended dupnames 10371First char = 'a' 10372Need char = 'd' 10373 abcdd 10374 0: abcdd 10375 1: a 10376 2: b 10377 3: c 10378 4: dd 10379 ** Failers 10380No match 10381 abcdde 10382No match 10383 10384/abcd*/ 10385 xxxxabcd\P 10386 0: abcd 10387 xxxxabcd\P\P 10388Partial match: abcd 10389 10390/abcd*/i 10391 xxxxabcd\P 10392 0: abcd 10393 xxxxabcd\P\P 10394Partial match: abcd 10395 XXXXABCD\P 10396 0: ABCD 10397 XXXXABCD\P\P 10398Partial match: ABCD 10399 10400/abc\d*/ 10401 xxxxabc1\P 10402 0: abc1 10403 xxxxabc1\P\P 10404Partial match: abc1 10405 10406/(a)bc\1*/ 10407 xxxxabca\P 10408 0: abca 10409 1: a 10410 xxxxabca\P\P 10411Partial match: abca 10412 10413/abc[de]*/ 10414 xxxxabcde\P 10415 0: abcde 10416 xxxxabcde\P\P 10417Partial match: abcde 10418 10419/-- This is not in the Perl-compatible test because Perl seems currently to be 10420 broken and not behaving as specified in that it *does* bumpalong after 10421 hitting (*COMMIT). --/ 10422 10423/(?1)(A(*COMMIT)|B)D/ 10424 ABD 10425 0: ABD 10426 1: B 10427 XABD 10428 0: ABD 10429 1: B 10430 BAD 10431 0: BAD 10432 1: A 10433 ABXABD 10434 0: ABD 10435 1: B 10436 ** Failers 10437No match 10438 ABX 10439No match 10440 BAXBAD 10441No match 10442 10443/(\3)(\1)(a)/<JS> 10444 cat 10445 0: a 10446 1: 10447 2: 10448 3: a 10449 10450/(\3)(\1)(a)/SI<JS> 10451Capturing subpattern count = 3 10452Max back reference = 3 10453Options: 10454No first char 10455Need char = 'a' 10456Subject length lower bound = 1 10457No starting char list 10458 cat 10459 0: a 10460 1: 10461 2: 10462 3: a 10463 10464/(\3)(\1)(a)/SI 10465Capturing subpattern count = 3 10466Max back reference = 3 10467No options 10468No first char 10469Need char = 'a' 10470Subject length lower bound = 3 10471No starting char list 10472 cat 10473No match 10474 10475/i(?(DEFINE)(?<s>a))/SI 10476Capturing subpattern count = 1 10477Named capturing subpatterns: 10478 s 1 10479No options 10480First char = 'i' 10481No need char 10482Subject length lower bound = 1 10483No starting char list 10484 i 10485 0: i 10486 10487/()i(?(1)a)/SI 10488Capturing subpattern count = 1 10489No options 10490No first char 10491Need char = 'i' 10492Subject length lower bound = 1 10493Starting chars: i 10494 ia 10495 0: ia 10496 1: 10497 10498/(?i)a(?-i)b|c/BZ 10499------------------------------------------------------------------ 10500 Bra 10501 /i a 10502 b 10503 Alt 10504 c 10505 Ket 10506 End 10507------------------------------------------------------------------ 10508 XabX 10509 0: ab 10510 XAbX 10511 0: Ab 10512 CcC 10513 0: c 10514 ** Failers 10515No match 10516 XABX 10517No match 10518 10519/(?i)a(?s)b|c/BZ 10520------------------------------------------------------------------ 10521 Bra 10522 /i ab 10523 Alt 10524 /i c 10525 Ket 10526 End 10527------------------------------------------------------------------ 10528 10529/(?i)a(?s-i)b|c/BZ 10530------------------------------------------------------------------ 10531 Bra 10532 /i a 10533 b 10534 Alt 10535 c 10536 Ket 10537 End 10538------------------------------------------------------------------ 10539 10540/^(ab(c\1)d|x){2}$/BZ 10541------------------------------------------------------------------ 10542 Bra 10543 ^ 10544 Once 10545 CBra 1 10546 ab 10547 CBra 2 10548 c 10549 \1 10550 Ket 10551 d 10552 Alt 10553 x 10554 Ket 10555 Ket 10556 Once 10557 CBra 1 10558 ab 10559 CBra 2 10560 c 10561 \1 10562 Ket 10563 d 10564 Alt 10565 x 10566 Ket 10567 Ket 10568 $ 10569 Ket 10570 End 10571------------------------------------------------------------------ 10572 xabcxd 10573 0: xabcxd 10574 1: abcxd 10575 2: cx 10576 10577/^(?&t)*+(?(DEFINE)(?<t>.))$/BZ 10578------------------------------------------------------------------ 10579 Bra 10580 ^ 10581 Braposzero 10582 SBraPos 10583 Recurse 10584 KetRpos 10585 Cond 10586 Cond def 10587 CBra 1 10588 Any 10589 Ket 10590 Ket 10591 $ 10592 Ket 10593 End 10594------------------------------------------------------------------ 10595 10596/^(?&t)*(?(DEFINE)(?<t>.))$/BZ 10597------------------------------------------------------------------ 10598 Bra 10599 ^ 10600 Brazero 10601 Once 10602 Recurse 10603 KetRmax 10604 Cond 10605 Cond def 10606 CBra 1 10607 Any 10608 Ket 10609 Ket 10610 $ 10611 Ket 10612 End 10613------------------------------------------------------------------ 10614 10615/ -- This one is here because Perl gives the match as "b" rather than "ab". I 10616 believe this to be a Perl bug. --/ 10617 10618/(?>a\Kb)z|(ab)/ 10619 ab 10620 0: ab 10621 1: ab 10622 10623/(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/ 10624Failed: recursive call could loop indefinitely at offset 31 10625 10626/abc(*MARK:)pqr/ 10627Failed: (*MARK) must have an argument at offset 10 10628 10629/abc(*:)pqr/ 10630Failed: (*MARK) must have an argument at offset 6 10631 10632/abc(*FAIL:123)xyz/ 10633Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13 10634 10635/--- This should, and does, fail. In Perl, it does not, which I think is a 10636 bug because replacing the B in the pattern by (B|D) does make it fail. ---/ 10637 10638/A(*COMMIT)B/+K 10639 ACABX 10640No match 10641 10642/--- These should be different, but in Perl they are not, which I think 10643 is a bug in Perl. ---/ 10644 10645/A(*THEN)B|A(*THEN)C/K 10646 AC 10647 0: AC 10648 10649/A(*PRUNE)B|A(*PRUNE)C/K 10650 AC 10651No match 10652 10653/--- Mark names can be duplicated. Perl doesn't give a mark for this one, 10654though PCRE does. ---/ 10655 10656/^A(*:A)B|^X(*:A)Y/K 10657 ** Failers 10658No match 10659 XAQQ 10660No match, mark = A 10661 10662/--- COMMIT at the start of a pattern should be the same as an anchor. Perl 10663optimizations defeat this. So does the PCRE optimization unless we disable it 10664with \Y. ---/ 10665 10666/(*COMMIT)ABC/ 10667 ABCDEFG 10668 0: ABC 10669 ** Failers 10670No match 10671 DEFGABC\Y 10672No match 10673 10674/^(ab (c+(*THEN)cd) | xyz)/x 10675 abcccd 10676No match 10677 10678/^(ab (c+(*PRUNE)cd) | xyz)/x 10679 abcccd 10680No match 10681 10682/^(ab (c+(*FAIL)cd) | xyz)/x 10683 abcccd 10684No match 10685 10686/--- Perl gets some of these wrong ---/ 10687 10688/(?>.(*ACCEPT))*?5/ 10689 abcde 10690 0: a 10691 10692/(.(*ACCEPT))*?5/ 10693 abcde 10694 0: a 10695 1: a 10696 10697/(.(*ACCEPT))5/ 10698 abcde 10699 0: a 10700 1: a 10701 10702/(.(*ACCEPT))*5/ 10703 abcde 10704 0: a 10705 1: a 10706 10707/A\NB./BZ 10708------------------------------------------------------------------ 10709 Bra 10710 A 10711 Any 10712 B 10713 Any 10714 Ket 10715 End 10716------------------------------------------------------------------ 10717 ACBD 10718 0: ACBD 10719 *** Failers 10720No match 10721 A\nB 10722No match 10723 ACB\n 10724No match 10725 10726/A\NB./sBZ 10727------------------------------------------------------------------ 10728 Bra 10729 A 10730 Any 10731 B 10732 AllAny 10733 Ket 10734 End 10735------------------------------------------------------------------ 10736 ACBD 10737 0: ACBD 10738 ACB\n 10739 0: ACB\x0a 10740 *** Failers 10741No match 10742 A\nB 10743No match 10744 10745/A\NB/<crlf> 10746 A\nB 10747 0: A\x0aB 10748 A\rB 10749 0: A\x0dB 10750 ** Failers 10751No match 10752 A\r\nB 10753No match 10754 10755/\R+b/BZ 10756------------------------------------------------------------------ 10757 Bra 10758 \R++ 10759 b 10760 Ket 10761 End 10762------------------------------------------------------------------ 10763 10764/\R+\n/BZ 10765------------------------------------------------------------------ 10766 Bra 10767 \R+ 10768 \x0a 10769 Ket 10770 End 10771------------------------------------------------------------------ 10772 10773/\R+\d/BZ 10774------------------------------------------------------------------ 10775 Bra 10776 \R++ 10777 \d 10778 Ket 10779 End 10780------------------------------------------------------------------ 10781 10782/\d*\R/BZ 10783------------------------------------------------------------------ 10784 Bra 10785 \d*+ 10786 \R 10787 Ket 10788 End 10789------------------------------------------------------------------ 10790 10791/\s*\R/BZ 10792------------------------------------------------------------------ 10793 Bra 10794 \s* 10795 \R 10796 Ket 10797 End 10798------------------------------------------------------------------ 10799 \x20\x0a 10800 0: \x0a 10801 \x20\x0d 10802 0: \x0d 10803 \x20\x0d\x0a 10804 0: \x0d\x0a 10805 10806/\S*\R/BZ 10807------------------------------------------------------------------ 10808 Bra 10809 \S*+ 10810 \R 10811 Ket 10812 End 10813------------------------------------------------------------------ 10814 a\x0a 10815 0: a\x0a 10816 10817/X\h*\R/BZ 10818------------------------------------------------------------------ 10819 Bra 10820 X 10821 \h*+ 10822 \R 10823 Ket 10824 End 10825------------------------------------------------------------------ 10826 X\x20\x0a 10827 0: X \x0a 10828 10829/X\H*\R/BZ 10830------------------------------------------------------------------ 10831 Bra 10832 X 10833 \H* 10834 \R 10835 Ket 10836 End 10837------------------------------------------------------------------ 10838 X\x0d\x0a 10839 0: X\x0d\x0a 10840 10841/X\H+\R/BZ 10842------------------------------------------------------------------ 10843 Bra 10844 X 10845 \H+ 10846 \R 10847 Ket 10848 End 10849------------------------------------------------------------------ 10850 X\x0d\x0a 10851 0: X\x0d\x0a 10852 10853/X\H++\R/BZ 10854------------------------------------------------------------------ 10855 Bra 10856 X 10857 \H++ 10858 \R 10859 Ket 10860 End 10861------------------------------------------------------------------ 10862 X\x0d\x0a 10863No match 10864 10865/(?<=abc)def/ 10866 abc\P\P 10867Partial match at offset 3: abc 10868 10869/abc$/ 10870 abc 10871 0: abc 10872 abc\P 10873 0: abc 10874 abc\P\P 10875Partial match: abc 10876 10877/abc$/m 10878 abc 10879 0: abc 10880 abc\n 10881 0: abc 10882 abc\P\P 10883Partial match: abc 10884 abc\n\P\P 10885 0: abc 10886 abc\P 10887 0: abc 10888 abc\n\P 10889 0: abc 10890 10891/abc\z/ 10892 abc 10893 0: abc 10894 abc\P 10895 0: abc 10896 abc\P\P 10897Partial match: abc 10898 10899/abc\Z/ 10900 abc 10901 0: abc 10902 abc\P 10903 0: abc 10904 abc\P\P 10905Partial match: abc 10906 10907/abc\b/ 10908 abc 10909 0: abc 10910 abc\P 10911 0: abc 10912 abc\P\P 10913Partial match: abc 10914 10915/abc\B/ 10916 abc 10917No match 10918 abc\P 10919Partial match: abc 10920 abc\P\P 10921Partial match: abc 10922 10923/.+/ 10924 abc\>0 10925 0: abc 10926 abc\>1 10927 0: bc 10928 abc\>2 10929 0: c 10930 abc\>3 10931No match 10932 abc\>4 10933Error -24 (bad offset value) 10934 abc\>-4 10935Error -24 (bad offset value) 10936 10937/^\cģ/ 10938Failed: \c must be followed by an ASCII character at offset 3 10939 10940/(?P<abn>(?P=abn)xxx)/BZ 10941------------------------------------------------------------------ 10942 Bra 10943 Once 10944 CBra 1 10945 \1 10946 xxx 10947 Ket 10948 Ket 10949 Ket 10950 End 10951------------------------------------------------------------------ 10952 10953/(a\1z)/BZ 10954------------------------------------------------------------------ 10955 Bra 10956 Once 10957 CBra 1 10958 a 10959 \1 10960 z 10961 Ket 10962 Ket 10963 Ket 10964 End 10965------------------------------------------------------------------ 10966 10967/(?P<abn>(?P=abn)(?<badstufxxx)/BZ 10968Failed: syntax error in subpattern name (missing terminator) at offset 29 10969 10970/(?P<abn>(?P=axn)xxx)/BZ 10971Failed: reference to non-existent subpattern at offset 15 10972 10973/(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ 10974------------------------------------------------------------------ 10975 Bra 10976 CBra 1 10977 \2 10978 xxx 10979 Ket 10980 CBra 2 10981 yy 10982 Ket 10983 Ket 10984 End 10985------------------------------------------------------------------ 10986 10987/-- These tests are here because Perl gets the first one wrong. --/ 10988 10989/(\R*)(.)/s 10990 \r\n 10991 0: \x0d 10992 1: 10993 2: \x0d 10994 \r\r\n\n\r 10995 0: \x0d\x0d\x0a\x0a\x0d 10996 1: \x0d\x0d\x0a\x0a 10997 2: \x0d 10998 \r\r\n\n\r\n 10999 0: \x0d\x0d\x0a\x0a\x0d 11000 1: \x0d\x0d\x0a\x0a 11001 2: \x0d 11002 11003/(\R)*(.)/s 11004 \r\n 11005 0: \x0d 11006 1: <unset> 11007 2: \x0d 11008 \r\r\n\n\r 11009 0: \x0d\x0d\x0a\x0a\x0d 11010 1: \x0a 11011 2: \x0d 11012 \r\r\n\n\r\n 11013 0: \x0d\x0d\x0a\x0a\x0d 11014 1: \x0a 11015 2: \x0d 11016 11017/((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s 11018 \r\n 11019 0: \x0d 11020 1: 11021 2: \x0d 11022 \r\r\n\n\r 11023 0: \x0d\x0d\x0a\x0a\x0d 11024 1: \x0d\x0d\x0a\x0a 11025 2: \x0d 11026 \r\r\n\n\r\n 11027 0: \x0d\x0d\x0a\x0a\x0d 11028 1: \x0d\x0d\x0a\x0a 11029 2: \x0d 11030 11031/-- --/ 11032 11033/^abc$/BZ 11034------------------------------------------------------------------ 11035 Bra 11036 ^ 11037 abc 11038 $ 11039 Ket 11040 End 11041------------------------------------------------------------------ 11042 11043/^abc$/BZm 11044------------------------------------------------------------------ 11045 Bra 11046 /m ^ 11047 abc 11048 /m $ 11049 Ket 11050 End 11051------------------------------------------------------------------ 11052 11053/^(a)*+(\w)/S 11054 aaaaX 11055 0: aaaaX 11056 1: a 11057 2: X 11058 ** Failers 11059No match 11060 aaaa 11061No match 11062 11063/^(?:a)*+(\w)/S 11064 aaaaX 11065 0: aaaaX 11066 1: X 11067 ** Failers 11068No match 11069 aaaa 11070No match 11071 11072/(a)++1234/SDZ 11073------------------------------------------------------------------ 11074 Bra 11075 CBraPos 1 11076 a 11077 KetRpos 11078 1234 11079 Ket 11080 End 11081------------------------------------------------------------------ 11082Capturing subpattern count = 1 11083No options 11084First char = 'a' 11085Need char = '4' 11086Subject length lower bound = 5 11087No starting char list 11088 11089/([abc])++1234/SI 11090Capturing subpattern count = 1 11091No options 11092No first char 11093Need char = '4' 11094Subject length lower bound = 5 11095Starting chars: a b c 11096 11097/(?<=(abc)+)X/ 11098Failed: lookbehind assertion is not fixed length at offset 10 11099 11100/(^ab)/I 11101Capturing subpattern count = 1 11102Options: anchored 11103No first char 11104No need char 11105 11106/(^ab)++/I 11107Capturing subpattern count = 1 11108Options: anchored 11109No first char 11110No need char 11111 11112/(^ab|^)+/I 11113Capturing subpattern count = 1 11114May match empty string 11115Options: anchored 11116No first char 11117No need char 11118 11119/(^ab|^)++/I 11120Capturing subpattern count = 1 11121May match empty string 11122Options: anchored 11123No first char 11124No need char 11125 11126/(?:^ab)/I 11127Capturing subpattern count = 0 11128Options: anchored 11129No first char 11130No need char 11131 11132/(?:^ab)++/I 11133Capturing subpattern count = 0 11134Options: anchored 11135No first char 11136No need char 11137 11138/(?:^ab|^)+/I 11139Capturing subpattern count = 0 11140May match empty string 11141Options: anchored 11142No first char 11143No need char 11144 11145/(?:^ab|^)++/I 11146Capturing subpattern count = 0 11147May match empty string 11148Options: anchored 11149No first char 11150No need char 11151 11152/(.*ab)/I 11153Capturing subpattern count = 1 11154No options 11155First char at start or follows newline 11156Need char = 'b' 11157 11158/(.*ab)++/I 11159Capturing subpattern count = 1 11160No options 11161First char at start or follows newline 11162Need char = 'b' 11163 11164/(.*ab|.*)+/I 11165Capturing subpattern count = 1 11166May match empty string 11167No options 11168First char at start or follows newline 11169No need char 11170 11171/(.*ab|.*)++/I 11172Capturing subpattern count = 1 11173May match empty string 11174No options 11175First char at start or follows newline 11176No need char 11177 11178/(?:.*ab)/I 11179Capturing subpattern count = 0 11180No options 11181First char at start or follows newline 11182Need char = 'b' 11183 11184/(?:.*ab)++/I 11185Capturing subpattern count = 0 11186No options 11187First char at start or follows newline 11188Need char = 'b' 11189 11190/(?:.*ab|.*)+/I 11191Capturing subpattern count = 0 11192May match empty string 11193No options 11194First char at start or follows newline 11195No need char 11196 11197/(?:.*ab|.*)++/I 11198Capturing subpattern count = 0 11199May match empty string 11200No options 11201First char at start or follows newline 11202No need char 11203 11204/(?=a)[bcd]/I 11205Capturing subpattern count = 0 11206No options 11207First char = 'a' 11208No need char 11209 11210/((?=a))[bcd]/I 11211Capturing subpattern count = 1 11212No options 11213First char = 'a' 11214No need char 11215 11216/((?=a))+[bcd]/I 11217Capturing subpattern count = 1 11218No options 11219First char = 'a' 11220No need char 11221 11222/((?=a))++[bcd]/I 11223Capturing subpattern count = 1 11224No options 11225First char = 'a' 11226No need char 11227 11228/(?=a+)[bcd]/iI 11229Capturing subpattern count = 0 11230Options: caseless 11231First char = 'a' (caseless) 11232No need char 11233 11234/(?=a+?)[bcd]/iI 11235Capturing subpattern count = 0 11236Options: caseless 11237First char = 'a' (caseless) 11238No need char 11239 11240/(?=a++)[bcd]/iI 11241Capturing subpattern count = 0 11242Options: caseless 11243First char = 'a' (caseless) 11244No need char 11245 11246/(?=a{3})[bcd]/iI 11247Capturing subpattern count = 0 11248Options: caseless 11249First char = 'a' (caseless) 11250Need char = 'a' (caseless) 11251 11252/(abc)\1+/S 11253 11254/-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/ 11255 11256/(?1)(?:(b(*ACCEPT))){0}/ 11257 b 11258 0: b 11259 11260/(?1)(?:(b(*ACCEPT))){0}c/ 11261 bc 11262 0: bc 11263 ** Failers 11264No match 11265 b 11266No match 11267 11268/(?1)(?:((*ACCEPT))){0}c/ 11269 c 11270 0: c 11271 c\N 11272 0: c 11273 11274/^.*?(?(?=a)a|b(*THEN)c)/ 11275 ba 11276No match 11277 11278/^.*?(?(?=a)a|bc)/ 11279 ba 11280 0: ba 11281 11282/^.*?(?(?=a)a(*THEN)b|c)/ 11283 ac 11284No match 11285 11286/^.*?(?(?=a)a(*THEN)b)c/ 11287 ac 11288No match 11289 11290/^.*?(a(*THEN)b)c/ 11291 aabc 11292No match 11293 11294/^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x 11295 aabc 11296 0: aabc 11297 11298/^.*?(a(*THEN)b|z)c/ 11299 aabc 11300 0: aabc 11301 1: ab 11302 11303/^.*?(z|a(*THEN)b)c/ 11304 aabc 11305 0: aabc 11306 1: ab 11307 11308/-- --/ 11309 11310/-- These studied versions are here because they are not Perl-compatible; the 11311 studying means the mark is not seen. --/ 11312 11313/(*MARK:A)(*SKIP:B)(C|X)/KS 11314 C 11315 0: C 11316 1: C 11317MK: A 11318 D 11319No match, mark = A 11320 11321/(*:A)A+(*SKIP:A)(B|Z)/KS 11322 AAAC 11323No match, mark = A 11324 11325/-- --/ 11326 11327"(?=a*(*ACCEPT)b)c" 11328 c 11329 0: c 11330 c\N 11331 0: c 11332 11333/(?1)c(?(DEFINE)((*ACCEPT)b))/ 11334 c 11335 0: c 11336 c\N 11337 0: c 11338 11339/(?>(*ACCEPT)b)c/ 11340 c 11341 0: 11342 c\N 11343No match 11344 11345/(?:(?>(a)))+a%/++ 11346 %aa% 11347 0: aa% 11348 0+ 11349 1: a 11350 1+ a% 11351 11352/(a)b|ac/++SS 11353 ac\O3 11354 0: ac 11355 0+ 11356 11357/(a)(b)x|abc/++ 11358 abc\O6 11359 0: abc 11360 0+ 11361 11362/(a)bc|(a)(b)\2/ 11363 \O3abc 11364Matched, but too many substrings 11365 0: abc 11366 \O4abc 11367Matched, but too many substrings 11368 0: abc 11369 11370/(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI 11371Capturing subpattern count = 2 11372No options 11373No first char 11374No need char 11375Subject length lower bound = 1 11376No starting char list 11377 11378/(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI 11379Capturing subpattern count = 2 11380No options 11381No first char 11382No need char 11383Subject length lower bound = 3 11384Starting chars: a b 11385 11386/(a(?2)|b)(b(?1)|a)(?1)(?2)/SI 11387Capturing subpattern count = 2 11388No options 11389No first char 11390No need char 11391Subject length lower bound = 4 11392Starting chars: a b 11393 11394/(abc)(?1)/SI 11395Capturing subpattern count = 1 11396No options 11397First char = 'a' 11398Need char = 'c' 11399Subject length lower bound = 6 11400No starting char list 11401 11402/^(?>a)++/ 11403 aa\M 11404Minimum match() limit = 5 11405Minimum match() recursion limit = 2 11406 0: aa 11407 aaaaaaaaa\M 11408Minimum match() limit = 12 11409Minimum match() recursion limit = 2 11410 0: aaaaaaaaa 11411 11412/(a)(?1)++/ 11413 aa\M 11414Minimum match() limit = 7 11415Minimum match() recursion limit = 4 11416 0: aa 11417 1: a 11418 aaaaaaaaa\M 11419Minimum match() limit = 21 11420Minimum match() recursion limit = 4 11421 0: aaaaaaaaa 11422 1: a 11423 11424/(?:(foo)|(bar)|(baz))X/SS= 11425 bazfooX 11426 0: fooX 11427 1: foo 11428 2: <unset> 11429 3: <unset> 11430 foobazbarX 11431 0: barX 11432 1: <unset> 11433 2: bar 11434 3: <unset> 11435 barfooX 11436 0: fooX 11437 1: foo 11438 2: <unset> 11439 3: <unset> 11440 bazX 11441 0: bazX 11442 1: <unset> 11443 2: <unset> 11444 3: baz 11445 foobarbazX 11446 0: bazX 11447 1: <unset> 11448 2: <unset> 11449 3: baz 11450 bazfooX\O0 11451Matched, but too many substrings 11452 bazfooX\O2 11453Matched, but too many substrings 11454 0: fooX 11455 bazfooX\O4 11456Matched, but too many substrings 11457 0: fooX 11458 1: <unset> 11459 bazfooX\O6 11460Matched, but too many substrings 11461 0: fooX 11462 1: foo 11463 2: <unset> 11464 bazfooX\O8 11465Matched, but too many substrings 11466 0: fooX 11467 1: foo 11468 2: <unset> 11469 3: <unset> 11470 bazfooX\O10 11471 0: fooX 11472 1: foo 11473 2: <unset> 11474 3: <unset> 11475 11476/(?=abc){3}abc/BZ 11477------------------------------------------------------------------ 11478 Bra 11479 Assert 11480 abc 11481 Ket 11482 abc 11483 Ket 11484 End 11485------------------------------------------------------------------ 11486 11487/(?=abc)+abc/BZ 11488------------------------------------------------------------------ 11489 Bra 11490 Assert 11491 abc 11492 Ket 11493 abc 11494 Ket 11495 End 11496------------------------------------------------------------------ 11497 11498/(?=abc)++abc/BZ 11499------------------------------------------------------------------ 11500 Bra 11501 Assert 11502 abc 11503 Ket 11504 abc 11505 Ket 11506 End 11507------------------------------------------------------------------ 11508 11509/(?=abc){0}xyz/BZ 11510------------------------------------------------------------------ 11511 Bra 11512 Skip zero 11513 Assert 11514 abc 11515 Ket 11516 xyz 11517 Ket 11518 End 11519------------------------------------------------------------------ 11520 11521/(?=(a))?./BZ 11522------------------------------------------------------------------ 11523 Bra 11524 Brazero 11525 Assert 11526 CBra 1 11527 a 11528 Ket 11529 Ket 11530 Any 11531 Ket 11532 End 11533------------------------------------------------------------------ 11534 11535/(?=(a))??./BZ 11536------------------------------------------------------------------ 11537 Bra 11538 Braminzero 11539 Assert 11540 CBra 1 11541 a 11542 Ket 11543 Ket 11544 Any 11545 Ket 11546 End 11547------------------------------------------------------------------ 11548 11549/^(?=(a)){0}b(?1)/BZ 11550------------------------------------------------------------------ 11551 Bra 11552 ^ 11553 Skip zero 11554 Assert 11555 CBra 1 11556 a 11557 Ket 11558 Ket 11559 b 11560 Recurse 11561 Ket 11562 End 11563------------------------------------------------------------------ 11564 11565/(?(DEFINE)(a))?b(?1)/BZ 11566------------------------------------------------------------------ 11567 Bra 11568 Cond 11569 Cond def 11570 CBra 1 11571 a 11572 Ket 11573 Ket 11574 b 11575 Recurse 11576 Ket 11577 End 11578------------------------------------------------------------------ 11579 11580/^(?=(?1))?[az]([abc])d/BZ 11581------------------------------------------------------------------ 11582 Bra 11583 ^ 11584 Brazero 11585 Assert 11586 Recurse 11587 Ket 11588 [az] 11589 CBra 1 11590 [a-c] 11591 Ket 11592 d 11593 Ket 11594 End 11595------------------------------------------------------------------ 11596 11597/^(?!a){0}\w+/BZ 11598------------------------------------------------------------------ 11599 Bra 11600 ^ 11601 Skip zero 11602 Assert not 11603 a 11604 Ket 11605 \w++ 11606 Ket 11607 End 11608------------------------------------------------------------------ 11609 11610/(?<=(abc))?xyz/BZ 11611------------------------------------------------------------------ 11612 Bra 11613 Brazero 11614 AssertB 11615 Reverse 11616 CBra 1 11617 abc 11618 Ket 11619 Ket 11620 xyz 11621 Ket 11622 End 11623------------------------------------------------------------------ 11624 11625/[:a[:abc]b:]/BZ 11626------------------------------------------------------------------ 11627 Bra 11628 [:[a-c] 11629 b:] 11630 Ket 11631 End 11632------------------------------------------------------------------ 11633 11634/((?2))((?1))/SS 11635 abc 11636Error -26 (nested recursion at the same subject position) 11637 11638/((?(R2)a+|(?1)b))/SS 11639 aaaabcde 11640Error -26 (nested recursion at the same subject position) 11641 11642/(?(R)a*(?1)|((?R))b)/SS 11643 aaaabcde 11644Error -26 (nested recursion at the same subject position) 11645 11646/(a+|(?R)b)/ 11647Failed: recursive call could loop indefinitely at offset 7 11648 11649/^(a(*:A)(d|e(*:B))z|aeq)/C 11650 adz 11651--->adz 11652 +0 ^ ^ 11653 +1 ^ (a(*:A)(d|e(*:B))z|aeq) 11654 +2 ^ a 11655 +3 ^^ (*:A) 11656 +8 ^^ (d|e(*:B)) 11657Latest Mark: A 11658 +9 ^^ d 11659+10 ^ ^ | 11660+18 ^ ^ z 11661+19 ^ ^ | 11662+24 ^ ^ 11663 0: adz 11664 1: adz 11665 2: d 11666 aez 11667--->aez 11668 +0 ^ ^ 11669 +1 ^ (a(*:A)(d|e(*:B))z|aeq) 11670 +2 ^ a 11671 +3 ^^ (*:A) 11672 +8 ^^ (d|e(*:B)) 11673Latest Mark: A 11674 +9 ^^ d 11675+11 ^^ e 11676+12 ^ ^ (*:B) 11677+17 ^ ^ ) 11678Latest Mark: B 11679+18 ^ ^ z 11680+19 ^ ^ | 11681+24 ^ ^ 11682 0: aez 11683 1: aez 11684 2: e 11685 aeqwerty 11686--->aeqwerty 11687 +0 ^ ^ 11688 +1 ^ (a(*:A)(d|e(*:B))z|aeq) 11689 +2 ^ a 11690 +3 ^^ (*:A) 11691 +8 ^^ (d|e(*:B)) 11692Latest Mark: A 11693 +9 ^^ d 11694+11 ^^ e 11695+12 ^ ^ (*:B) 11696+17 ^ ^ ) 11697Latest Mark: B 11698+18 ^ ^ z 11699+20 ^ a 11700+21 ^^ e 11701+22 ^ ^ q 11702+23 ^ ^ ) 11703+24 ^ ^ 11704 0: aeq 11705 1: aeq 11706 11707/.(*F)/ 11708 \P\Pabc 11709No match 11710 11711/\btype\b\W*?\btext\b\W*?\bjavascript\b/IS 11712Capturing subpattern count = 0 11713Max lookbehind = 1 11714No options 11715First char = 't' 11716Need char = 't' 11717Subject length lower bound = 18 11718No starting char list 11719 11720/\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS 11721Capturing subpattern count = 0 11722Max lookbehind = 1 11723No options 11724No first char 11725No need char 11726Subject length lower bound = 8 11727Starting chars: < o t u 11728 11729/a(*SKIP)c|b(*ACCEPT)|/+S!I 11730Capturing subpattern count = 0 11731May match empty string 11732No options 11733No first char 11734No need char 11735Subject length lower bound = -1 11736No starting char list 11737 a 11738 0: 11739 0+ 11740 11741/a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI 11742Capturing subpattern count = 0 11743No options 11744No first char 11745No need char 11746Subject length lower bound = -1 11747Starting chars: a b x 11748 ax 11749 0: x 11750 11751'a*(*ACCEPT)b'+ 11752 \N\N 11753No match 11754 abc\N\N 11755 0: a 11756 0+ bc 11757 bbb\N\N 11758 0: 11759 0+ bb 11760 11761/(*ACCEPT)a/+I 11762Capturing subpattern count = 0 11763No options 11764No first char 11765No need char 11766 bax 11767 0: 11768 0+ bax 11769 11770/z(*ACCEPT)a/+I 11771Capturing subpattern count = 0 11772No options 11773First char = 'z' 11774No need char 11775 baxzbx 11776 0: z 11777 0+ bx 11778 11779/a(?:.)*?a/ims 11780 \Mabbbbbbbbbbbbbbbbbbbbba 11781Minimum match() limit = 65 11782Minimum match() recursion limit = 2 11783 0: abbbbbbbbbbbbbbbbbbbbba 11784 11785/a(?:.(*THEN))*?a/ims 11786 \Mabbbbbbbbbbbbbbbbbbbbba 11787Minimum match() limit = 86 11788Minimum match() recursion limit = 45 11789 0: abbbbbbbbbbbbbbbbbbbbba 11790 11791/a(?:.(*THEN:ABC))*?a/ims 11792 \Mabbbbbbbbbbbbbbbbbbbbba 11793Minimum match() limit = 86 11794Minimum match() recursion limit = 45 11795 0: abbbbbbbbbbbbbbbbbbbbba 11796 11797/^(?>a+)(?>(z+))\w/BZ 11798------------------------------------------------------------------ 11799 Bra 11800 ^ 11801 Once_NC 11802 a++ 11803 Ket 11804 Once 11805 CBra 1 11806 z++ 11807 Ket 11808 Ket 11809 \w 11810 Ket 11811 End 11812------------------------------------------------------------------ 11813 aaaazzzzb 11814 0: aaaazzzzb 11815 1: zzzz 11816 ** Failers 11817No match 11818 aazz 11819No match 11820 11821/(.)(\1|a(?2))/ 11822 bab 11823 0: bab 11824 1: b 11825 2: ab 11826 11827/\1|(.)(?R)\1/ 11828 cbbbc 11829 0: cbbbc 11830 1: c 11831 11832/(.)((?(1)c|a)|a(?2))/ 11833 baa 11834No match 11835 11836/(?P<abn>(?P=abn)xxx)/BZ 11837------------------------------------------------------------------ 11838 Bra 11839 Once 11840 CBra 1 11841 \1 11842 xxx 11843 Ket 11844 Ket 11845 Ket 11846 End 11847------------------------------------------------------------------ 11848 11849/(a\1z)/BZ 11850------------------------------------------------------------------ 11851 Bra 11852 Once 11853 CBra 1 11854 a 11855 \1 11856 z 11857 Ket 11858 Ket 11859 Ket 11860 End 11861------------------------------------------------------------------ 11862 11863/^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/ 11864 \Maabbccddee 11865Minimum match() limit = 7 11866Minimum match() recursion limit = 2 11867 0: aabbccddee 11868 11869/^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/ 11870 \Maabbccddee 11871Minimum match() limit = 17 11872Minimum match() recursion limit = 16 11873 0: aabbccddee 11874 1: aa 11875 2: bb 11876 3: cc 11877 4: dd 11878 5: ee 11879 11880/^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/ 11881 \Maabbccddee 11882Minimum match() limit = 13 11883Minimum match() recursion limit = 10 11884 0: aabbccddee 11885 1: aa 11886 2: cc 11887 3: ee 11888 11889/^a\x41z/<JS> 11890 aAz 11891 0: aAz 11892 *** Failers 11893No match 11894 ax41z 11895No match 11896 11897/^a[m\x41]z/<JS> 11898 aAz 11899 0: aAz 11900 11901/^a\x1z/<JS> 11902 ax1z 11903 0: ax1z 11904 11905/^a\u0041z/<JS> 11906 aAz 11907 0: aAz 11908 *** Failers 11909No match 11910 au0041z 11911No match 11912 11913/^a[m\u0041]z/<JS> 11914 aAz 11915 0: aAz 11916 11917/^a\u041z/<JS> 11918 au041z 11919 0: au041z 11920 *** Failers 11921No match 11922 aAz 11923No match 11924 11925/^a\U0041z/<JS> 11926 aU0041z 11927 0: aU0041z 11928 *** Failers 11929No match 11930 aAz 11931No match 11932 11933/(?(?=c)c|d)++Y/BZ 11934------------------------------------------------------------------ 11935 Bra 11936 BraPos 11937 Cond 11938 Assert 11939 c 11940 Ket 11941 c 11942 Alt 11943 d 11944 Ket 11945 KetRpos 11946 Y 11947 Ket 11948 End 11949------------------------------------------------------------------ 11950 11951/(?(?=c)c|d)*+Y/BZ 11952------------------------------------------------------------------ 11953 Bra 11954 Braposzero 11955 BraPos 11956 Cond 11957 Assert 11958 c 11959 Ket 11960 c 11961 Alt 11962 d 11963 Ket 11964 KetRpos 11965 Y 11966 Ket 11967 End 11968------------------------------------------------------------------ 11969 11970/a[\NB]c/ 11971Failed: \N is not supported in a class at offset 3 11972 11973/a[B-\Nc]/ 11974Failed: invalid range in character class at offset 5 11975 11976/a[B\Nc]/ 11977Failed: \N is not supported in a class at offset 4 11978 11979/(a)(?2){0,1999}?(b)/ 11980 11981/(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/ 11982 11983/--- This test, with something more complicated than individual letters, causes 11984different behaviour in Perl. Perhaps it disables some optimization; no tag is 11985passed back for the failures, whereas in PCRE there is a tag. ---/ 11986 11987/(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK 11988 AABC 11989 0: AB 11990 1: A 11991 2: B 11992MK: A 11993 XXYZ 11994 0: XXY 11995 1: <unset> 11996 2: <unset> 11997 3: X 11998 4: X 11999 5: Y 12000MK: B 12001 ** Failers 12002No match 12003 XAQQ 12004No match, mark = A 12005 XAQQXZZ 12006No match, mark = A 12007 AXQQQ 12008No match, mark = A 12009 AXXQQQ 12010No match, mark = B 12011 12012/-- Perl doesn't give marks for these, though it does if the alternatives are 12013replaced by single letters. --/ 12014 12015/(b|q)(*:m)f|a(*:n)w/K 12016 aw 12017 0: aw 12018MK: n 12019 ** Failers 12020No match, mark = n 12021 abc 12022No match, mark = m 12023 12024/(q|b)(*:m)f|a(*:n)w/K 12025 aw 12026 0: aw 12027MK: n 12028 ** Failers 12029No match, mark = n 12030 abc 12031No match, mark = m 12032 12033/-- After a partial match, the behaviour is as for a failure. --/ 12034 12035/^a(*:X)bcde/K 12036 abc\P 12037Partial match, mark=X: abc 12038 12039/-- These are here because Perl doesn't return a mark, except for the first --/ 12040 12041/(?=(*:x))(q|)/K+ 12042 abc 12043 0: 12044 0+ abc 12045 1: 12046MK: x 12047 12048/(?=(*:x))((*:y)q|)/K+ 12049 abc 12050 0: 12051 0+ abc 12052 1: 12053MK: x 12054 12055/(?=(*:x))(?:(*:y)q|)/K+ 12056 abc 12057 0: 12058 0+ abc 12059MK: x 12060 12061/(?=(*:x))(?>(*:y)q|)/K+ 12062 abc 12063 0: 12064 0+ abc 12065MK: x 12066 12067/(?=a(*:x))(?!a(*:y)c)/K+ 12068 ab 12069 0: 12070 0+ ab 12071MK: x 12072 12073/(?=a(*:x))(?=a(*:y)c|)/K+ 12074 ab 12075 0: 12076 0+ ab 12077MK: x 12078 12079/(..)\1/ 12080 ab\P 12081Partial match: ab 12082 aba\P 12083Partial match: aba 12084 abab\P 12085 0: abab 12086 1: ab 12087 12088/(..)\1/i 12089 ab\P 12090Partial match: ab 12091 abA\P 12092Partial match: abA 12093 aBAb\P 12094 0: aBAb 12095 1: aB 12096 12097/(..)\1{2,}/ 12098 ab\P 12099Partial match: ab 12100 aba\P 12101Partial match: aba 12102 abab\P 12103Partial match: abab 12104 ababa\P 12105Partial match: ababa 12106 ababab\P 12107 0: ababab 12108 1: ab 12109 ababab\P\P 12110Partial match: ababab 12111 abababa\P 12112 0: ababab 12113 1: ab 12114 abababa\P\P 12115Partial match: abababa 12116 12117/(..)\1{2,}/i 12118 ab\P 12119Partial match: ab 12120 aBa\P 12121Partial match: aBa 12122 aBAb\P 12123Partial match: aBAb 12124 AbaBA\P 12125Partial match: AbaBA 12126 abABAb\P 12127 0: abABAb 12128 1: ab 12129 aBAbaB\P\P 12130Partial match: aBAbaB 12131 abABabA\P 12132 0: abABab 12133 1: ab 12134 abaBABa\P\P 12135Partial match: abaBABa 12136 12137/(..)\1{2,}?x/i 12138 ab\P 12139Partial match: ab 12140 abA\P 12141Partial match: abA 12142 aBAb\P 12143Partial match: aBAb 12144 abaBA\P 12145Partial match: abaBA 12146 abAbaB\P 12147Partial match: abAbaB 12148 abaBabA\P 12149Partial match: abaBabA 12150 abAbABaBx\P 12151 0: abAbABaBx 12152 1: ab 12153 12154/^(..)\1/ 12155 aba\P 12156Partial match: aba 12157 12158/^(..)\1{2,3}x/ 12159 aba\P 12160Partial match: aba 12161 ababa\P 12162Partial match: ababa 12163 ababa\P\P 12164Partial match: ababa 12165 abababx 12166 0: abababx 12167 1: ab 12168 ababababx 12169 0: ababababx 12170 1: ab 12171 12172/^(..)\1{2,3}?x/ 12173 aba\P 12174Partial match: aba 12175 ababa\P 12176Partial match: ababa 12177 ababa\P\P 12178Partial match: ababa 12179 abababx 12180 0: abababx 12181 1: ab 12182 ababababx 12183 0: ababababx 12184 1: ab 12185 12186/^(..)(\1{2,3})ab/ 12187 abababab 12188 0: abababab 12189 1: ab 12190 2: abab 12191 12192/^\R/ 12193 \r\P 12194 0: \x0d 12195 \r\P\P 12196Partial match: \x0d 12197 12198/^\R{2,3}x/ 12199 \r\P 12200Partial match: \x0d 12201 \r\P\P 12202Partial match: \x0d 12203 \r\r\P 12204Partial match: \x0d\x0d 12205 \r\r\P\P 12206Partial match: \x0d\x0d 12207 \r\r\r\P 12208Partial match: \x0d\x0d\x0d 12209 \r\r\r\P\P 12210Partial match: \x0d\x0d\x0d 12211 \r\rx 12212 0: \x0d\x0dx 12213 \r\r\rx 12214 0: \x0d\x0d\x0dx 12215 12216/^\R{2,3}?x/ 12217 \r\P 12218Partial match: \x0d 12219 \r\P\P 12220Partial match: \x0d 12221 \r\r\P 12222Partial match: \x0d\x0d 12223 \r\r\P\P 12224Partial match: \x0d\x0d 12225 \r\r\r\P 12226Partial match: \x0d\x0d\x0d 12227 \r\r\r\P\P 12228Partial match: \x0d\x0d\x0d 12229 \r\rx 12230 0: \x0d\x0dx 12231 \r\r\rx 12232 0: \x0d\x0d\x0dx 12233 12234/^\R?x/ 12235 \r\P 12236Partial match: \x0d 12237 \r\P\P 12238Partial match: \x0d 12239 x 12240 0: x 12241 \rx 12242 0: \x0dx 12243 12244/^\R+x/ 12245 \r\P 12246Partial match: \x0d 12247 \r\P\P 12248Partial match: \x0d 12249 \r\n\P 12250Partial match: \x0d\x0a 12251 \r\n\P\P 12252Partial match: \x0d\x0a 12253 \rx 12254 0: \x0dx 12255 12256/^a$/<CRLF> 12257 a\r\P 12258Partial match: a\x0d 12259 a\r\P\P 12260Partial match: a\x0d 12261 12262/^a$/m<CRLF> 12263 a\r\P 12264Partial match: a\x0d 12265 a\r\P\P 12266Partial match: a\x0d 12267 12268/^(a$|a\r)/<CRLF> 12269 a\r\P 12270 0: a\x0d 12271 1: a\x0d 12272 a\r\P\P 12273Partial match: a\x0d 12274 12275/^(a$|a\r)/m<CRLF> 12276 a\r\P 12277 0: a\x0d 12278 1: a\x0d 12279 a\r\P\P 12280Partial match: a\x0d 12281 12282/./<CRLF> 12283 \r\P 12284 0: \x0d 12285 \r\P\P 12286Partial match: \x0d 12287 12288/.{2,3}/<CRLF> 12289 \r\P 12290Partial match: \x0d 12291 \r\P\P 12292Partial match: \x0d 12293 \r\r\P 12294 0: \x0d\x0d 12295 \r\r\P\P 12296Partial match: \x0d\x0d 12297 \r\r\r\P 12298 0: \x0d\x0d\x0d 12299 \r\r\r\P\P 12300Partial match: \x0d\x0d\x0d 12301 12302/.{2,3}?/<CRLF> 12303 \r\P 12304Partial match: \x0d 12305 \r\P\P 12306Partial match: \x0d 12307 \r\r\P 12308 0: \x0d\x0d 12309 \r\r\P\P 12310Partial match: \x0d\x0d 12311 \r\r\r\P 12312 0: \x0d\x0d 12313 \r\r\r\P\P 12314 0: \x0d\x0d 12315 12316"AB(C(D))(E(F))?(?(?=\2)(?=\4))" 12317 ABCDGHI\O03 12318Matched, but too many substrings 12319 0: ABCD 12320 12321/-- These are all run as real matches in test 1; here we are just checking the 12322settings of the anchored and startline bits. --/ 12323 12324/(?>.*?a)(?<=ba)/I 12325Capturing subpattern count = 0 12326Max lookbehind = 2 12327No options 12328No first char 12329Need char = 'a' 12330 12331/(?:.*?a)(?<=ba)/I 12332Capturing subpattern count = 0 12333Max lookbehind = 2 12334No options 12335First char at start or follows newline 12336Need char = 'a' 12337 12338/.*?a(*PRUNE)b/I 12339Capturing subpattern count = 0 12340No options 12341No first char 12342Need char = 'b' 12343 12344/.*?a(*PRUNE)b/sI 12345Capturing subpattern count = 0 12346Options: dotall 12347No first char 12348Need char = 'b' 12349 12350/^a(*PRUNE)b/sI 12351Capturing subpattern count = 0 12352Options: anchored dotall 12353No first char 12354No need char 12355 12356/.*?a(*SKIP)b/I 12357Capturing subpattern count = 0 12358No options 12359No first char 12360Need char = 'b' 12361 12362/(?>.*?a)b/sI 12363Capturing subpattern count = 0 12364Options: dotall 12365No first char 12366Need char = 'b' 12367 12368/(?>.*?a)b/I 12369Capturing subpattern count = 0 12370No options 12371No first char 12372Need char = 'b' 12373 12374/(?>^a)b/sI 12375Capturing subpattern count = 0 12376Options: anchored dotall 12377No first char 12378No need char 12379 12380/(?>.*?)(?<=(abcd)|(wxyz))/I 12381Capturing subpattern count = 2 12382Max lookbehind = 4 12383May match empty string 12384No options 12385No first char 12386No need char 12387 12388/(?>.*)(?<=(abcd)|(wxyz))/I 12389Capturing subpattern count = 2 12390Max lookbehind = 4 12391May match empty string 12392No options 12393No first char 12394No need char 12395 12396"(?>.*)foo"I 12397Capturing subpattern count = 0 12398No options 12399No first char 12400Need char = 'o' 12401 12402"(?>.*?)foo"I 12403Capturing subpattern count = 0 12404No options 12405No first char 12406Need char = 'o' 12407 12408/(?>^abc)/mI 12409Capturing subpattern count = 0 12410Options: multiline 12411First char at start or follows newline 12412Need char = 'c' 12413 12414/(?>.*abc)/mI 12415Capturing subpattern count = 0 12416Options: multiline 12417No first char 12418Need char = 'c' 12419 12420/(?:.*abc)/mI 12421Capturing subpattern count = 0 12422Options: multiline 12423First char at start or follows newline 12424Need char = 'c' 12425 12426/-- Check PCRE_STUDY_EXTRA_NEEDED --/ 12427 12428/.?/S-I 12429Capturing subpattern count = 0 12430May match empty string 12431No options 12432No first char 12433No need char 12434Study returned NULL 12435 12436/.?/S!I 12437Capturing subpattern count = 0 12438May match empty string 12439No options 12440No first char 12441No need char 12442Subject length lower bound = -1 12443No starting char list 12444 12445/(?:(a)+(?C1)bb|aa(?C2)b)/ 12446 aab\C+ 12447Callout 1: last capture = 1 12448 0: <unset> 12449 1: a 12450--->aab 12451 ^ ^ b 12452Callout 1: last capture = 1 12453 0: <unset> 12454 1: a 12455--->aab 12456 ^^ b 12457Callout 2: last capture = -1 12458 0: <unset> 12459--->aab 12460 ^ ^ b 12461 0: aab 12462 12463/(?:(a)++(?C1)bb|aa(?C2)b)/ 12464 aab\C+ 12465Callout 1: last capture = 1 12466 0: <unset> 12467 1: a 12468--->aab 12469 ^ ^ b 12470Callout 2: last capture = -1 12471 0: <unset> 12472--->aab 12473 ^ ^ b 12474 0: aab 12475 12476/(?:(?>(a))(?C1)bb|aa(?C2)b)/ 12477 aab\C+ 12478Callout 1: last capture = 1 12479 0: <unset> 12480 1: a 12481--->aab 12482 ^^ b 12483Callout 2: last capture = -1 12484 0: <unset> 12485--->aab 12486 ^ ^ b 12487 0: aab 12488 12489/(?:(?1)(?C1)x|ab(?C2))((a)){0}/ 12490 aab\C+ 12491Callout 1: last capture = -1 12492 0: <unset> 12493--->aab 12494 ^^ x 12495Callout 1: last capture = -1 12496 0: <unset> 12497--->aab 12498 ^^ x 12499Callout 2: last capture = -1 12500 0: <unset> 12501--->aab 12502 ^ ^ ) 12503 0: ab 12504 12505/(?1)(?C1)((a)(?C2)){0}/ 12506 aab\C+ 12507Callout 2: last capture = 2 12508 0: <unset> 12509 1: <unset> 12510 2: a 12511--->aab 12512 ^^ ) 12513Callout 1: last capture = -1 12514 0: <unset> 12515--->aab 12516 ^^ ((a)(?C2)){0} 12517 0: a 12518 12519/(?:(a)+(?C1)bb|aa(?C2)b)++/ 12520 aab\C+ 12521Callout 1: last capture = 1 12522 0: <unset> 12523 1: a 12524--->aab 12525 ^ ^ b 12526Callout 1: last capture = 1 12527 0: <unset> 12528 1: a 12529--->aab 12530 ^^ b 12531Callout 2: last capture = -1 12532 0: <unset> 12533--->aab 12534 ^ ^ b 12535 0: aab 12536 aab\C+\O2 12537Callout 1: last capture = 1 12538 0: <unset> 12539--->aab 12540 ^ ^ b 12541Callout 1: last capture = 1 12542 0: <unset> 12543--->aab 12544 ^^ b 12545Callout 2: last capture = -1 12546 0: <unset> 12547--->aab 12548 ^ ^ b 12549 0: aab 12550 12551/(ab)x|ab/ 12552 ab\O3 12553 0: ab 12554 ab\O2 12555 0: ab 12556 12557/(ab)/ 12558 ab\O3 12559Matched, but too many substrings 12560 0: ab 12561 ab\O2 12562Matched, but too many substrings 12563 0: ab 12564 12565/(?<=123)(*MARK:xx)abc/K 12566 xxxx123a\P\P 12567Partial match at offset 7, mark=xx: 123a 12568 xxxx123a\P 12569Partial match at offset 7, mark=xx: 123a 12570 12571/123\Kabc/ 12572 xxxx123a\P\P 12573Partial match: 123a 12574 xxxx123a\P 12575Partial match: 123a 12576 12577/^(?(?=a)aa|bb)/C 12578 bb 12579--->bb 12580 +0 ^ ^ 12581 +1 ^ (?(?=a)aa|bb) 12582 +3 ^ (?=a) 12583 +6 ^ a 12584+11 ^ b 12585+12 ^^ b 12586+13 ^ ^ ) 12587+14 ^ ^ 12588 0: bb 12589 12590/(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/ 12591 bb 12592--->bb 12593 1 ^ ^ 12594 2 ^ (?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10)) 12595 99 ^ (?=(?C3)a(?C4)) 12596 3 ^ a 12597 8 ^ b 12598 9 ^^ b 12599 10 ^ ^ ) 12600 11 ^ ^ 12601 0: bb 12602 12603/-- Perl seems to have a bug with this one --/ 12604 12605/aaaaa(*COMMIT)(*PRUNE)b|a+c/ 12606 aaaaaac 12607 0: aaaac 12608 12609/-- Here are some that Perl treats differently because of the way it handles 12610backtracking verbs. --/ 12611 12612 /(?!a(*COMMIT)b)ac|ad/ 12613 ac 12614 0: ac 12615 ad 12616 0: ad 12617 12618/^(?!a(*THEN)b|ac)../ 12619 ac 12620No match 12621 ad 12622 0: ad 12623 12624/^(?=a(*THEN)b|ac)/ 12625 ac 12626 0: 12627 12628/\A.*?(?:a|b(*THEN)c)/ 12629 ba 12630 0: ba 12631 12632/\A.*?(?:a|b(*THEN)c)++/ 12633 ba 12634 0: ba 12635 12636/\A.*?(?:a|b(*THEN)c|d)/ 12637 ba 12638 0: ba 12639 12640/(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/ 12641 aac 12642 0: aac 12643 12644/\A.*?(a|b(*THEN)c)/ 12645 ba 12646 0: ba 12647 1: a 12648 12649/^(A(*THEN)B|A(*THEN)D)/ 12650 AD 12651 0: AD 12652 1: AD 12653 12654/(?!b(*THEN)a)bn|bnn/ 12655 bnn 12656 0: bn 12657 12658/(?(?=b(*SKIP)a)bn|bnn)/ 12659 bnn 12660No match 12661 12662/(?=b(*THEN)a|)bn|bnn/ 12663 bnn 12664 0: bn 12665 12666/-------------------------/ 12667 12668/(*LIMIT_MATCH=12bc)abc/ 12669Failed: (*VERB) not recognized or malformed at offset 7 12670 12671/(*LIMIT_MATCH=4294967290)abc/ 12672Failed: (*VERB) not recognized or malformed at offset 7 12673 12674/(*LIMIT_RECURSION=4294967280)abc/I 12675Capturing subpattern count = 0 12676Recursion limit = 4294967280 12677No options 12678First char = 'a' 12679Need char = 'c' 12680 12681/(a+)*zz/ 12682 aaaaaaaaaaaaaz 12683No match 12684 aaaaaaaaaaaaaz\q3000 12685Error -8 (match limit exceeded) 12686 12687/(a+)*zz/S- 12688 aaaaaaaaaaaaaz\Q10 12689Error -21 (recursion limit exceeded) 12690 12691/(*LIMIT_MATCH=3000)(a+)*zz/I 12692Capturing subpattern count = 1 12693Match limit = 3000 12694No options 12695No first char 12696Need char = 'z' 12697 aaaaaaaaaaaaaz 12698Error -8 (match limit exceeded) 12699 aaaaaaaaaaaaaz\q60000 12700Error -8 (match limit exceeded) 12701 12702/(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I 12703Capturing subpattern count = 1 12704Match limit = 3000 12705No options 12706No first char 12707Need char = 'z' 12708 aaaaaaaaaaaaaz 12709Error -8 (match limit exceeded) 12710 12711/(*LIMIT_MATCH=60000)(a+)*zz/I 12712Capturing subpattern count = 1 12713Match limit = 60000 12714No options 12715No first char 12716Need char = 'z' 12717 aaaaaaaaaaaaaz 12718No match 12719 aaaaaaaaaaaaaz\q3000 12720Error -8 (match limit exceeded) 12721 12722/(*LIMIT_RECURSION=10)(a+)*zz/IS- 12723Capturing subpattern count = 1 12724Recursion limit = 10 12725No options 12726No first char 12727Need char = 'z' 12728Subject length lower bound = 2 12729Starting chars: a z 12730 aaaaaaaaaaaaaz 12731Error -21 (recursion limit exceeded) 12732 aaaaaaaaaaaaaz\Q1000 12733Error -21 (recursion limit exceeded) 12734 12735/(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS- 12736Capturing subpattern count = 1 12737Recursion limit = 10 12738No options 12739No first char 12740Need char = 'z' 12741Subject length lower bound = 2 12742Starting chars: a z 12743 aaaaaaaaaaaaaz 12744Error -21 (recursion limit exceeded) 12745 12746/(*LIMIT_RECURSION=1000)(a+)*zz/IS- 12747Capturing subpattern count = 1 12748Recursion limit = 1000 12749No options 12750No first char 12751Need char = 'z' 12752Subject length lower bound = 2 12753Starting chars: a z 12754 aaaaaaaaaaaaaz 12755No match 12756 aaaaaaaaaaaaaz\Q10 12757Error -21 (recursion limit exceeded) 12758 12759/-- This test causes a segfault with Perl 5.18.0 --/ 12760 12761/^(?=(a)){0}b(?1)/ 12762 backgammon 12763 0: ba 12764 12765/(?|(?<n>f)|(?<n>b))/JI 12766Capturing subpattern count = 1 12767Named capturing subpatterns: 12768 n 1 12769Options: dupnames 12770No first char 12771No need char 12772 12773/(?<a>abc)(?<a>z)\k<a>()/JDZS 12774------------------------------------------------------------------ 12775 Bra 12776 CBra 1 12777 abc 12778 Ket 12779 CBra 2 12780 z 12781 Ket 12782 \k<a>2 12783 CBra 3 12784 Ket 12785 Ket 12786 End 12787------------------------------------------------------------------ 12788Capturing subpattern count = 3 12789Max back reference = 2 12790Named capturing subpatterns: 12791 a 1 12792 a 2 12793Options: dupnames 12794First char = 'a' 12795Need char = 'z' 12796Subject length lower bound = 5 12797No starting char list 12798 12799/a*[bcd]/BZ 12800------------------------------------------------------------------ 12801 Bra 12802 a*+ 12803 [b-d] 12804 Ket 12805 End 12806------------------------------------------------------------------ 12807 12808/[bcd]*a/BZ 12809------------------------------------------------------------------ 12810 Bra 12811 [b-d]*+ 12812 a 12813 Ket 12814 End 12815------------------------------------------------------------------ 12816 12817/-- A complete set of tests for auto-possessification of character types --/ 12818 12819/\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 12820------------------------------------------------------------------ 12821 Bra 12822 \D+ 12823 \D 12824 \D++ 12825 \d 12826 \D+ 12827 \S 12828 \D+ 12829 \s 12830 \D+ 12831 \W 12832 \D+ 12833 \w 12834 \D+ 12835 Any 12836 \D+ 12837 AllAny 12838 \D+ 12839 \R 12840 \D+ 12841 \H 12842 \D+ 12843 \h 12844 \D+ 12845 \V 12846 \D+ 12847 \v 12848 \D+ 12849 \Z 12850 \D++ 12851 \z 12852 \D+ 12853 $ 12854 Ket 12855 End 12856------------------------------------------------------------------ 12857 12858/\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 12859------------------------------------------------------------------ 12860 Bra 12861 \d++ 12862 \D 12863 \d+ 12864 \d 12865 \d+ 12866 \S 12867 \d++ 12868 \s 12869 \d++ 12870 \W 12871 \d+ 12872 \w 12873 \d+ 12874 Any 12875 \d+ 12876 AllAny 12877 \d++ 12878 \R 12879 \d+ 12880 \H 12881 \d++ 12882 \h 12883 \d+ 12884 \V 12885 \d++ 12886 \v 12887 \d++ 12888 \Z 12889 \d++ 12890 \z 12891 \d++ 12892 $ 12893 Ket 12894 End 12895------------------------------------------------------------------ 12896 12897/\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 12898------------------------------------------------------------------ 12899 Bra 12900 \S+ 12901 \D 12902 \S+ 12903 \d 12904 \S+ 12905 \S 12906 \S++ 12907 \s 12908 \S+ 12909 \W 12910 \S+ 12911 \w 12912 \S+ 12913 Any 12914 \S+ 12915 AllAny 12916 \S++ 12917 \R 12918 \S+ 12919 \H 12920 \S++ 12921 \h 12922 \S+ 12923 \V 12924 \S++ 12925 \v 12926 \S++ 12927 \Z 12928 \S++ 12929 \z 12930 \S++ 12931 $ 12932 Ket 12933 End 12934------------------------------------------------------------------ 12935 12936/\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 12937------------------------------------------------------------------ 12938 Bra 12939 \s+ 12940 \D 12941 \s++ 12942 \d 12943 \s++ 12944 \S 12945 \s+ 12946 \s 12947 \s+ 12948 \W 12949 \s++ 12950 \w 12951 \s+ 12952 Any 12953 \s+ 12954 AllAny 12955 \s+ 12956 \R 12957 \s+ 12958 \H 12959 \s+ 12960 \h 12961 \s+ 12962 \V 12963 \s+ 12964 \v 12965 \s+ 12966 \Z 12967 \s++ 12968 \z 12969 \s+ 12970 $ 12971 Ket 12972 End 12973------------------------------------------------------------------ 12974 12975/\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 12976------------------------------------------------------------------ 12977 Bra 12978 \W+ 12979 \D 12980 \W++ 12981 \d 12982 \W+ 12983 \S 12984 \W+ 12985 \s 12986 \W+ 12987 \W 12988 \W++ 12989 \w 12990 \W+ 12991 Any 12992 \W+ 12993 AllAny 12994 \W+ 12995 \R 12996 \W+ 12997 \H 12998 \W+ 12999 \h 13000 \W+ 13001 \V 13002 \W+ 13003 \v 13004 \W+ 13005 \Z 13006 \W++ 13007 \z 13008 \W+ 13009 $ 13010 Ket 13011 End 13012------------------------------------------------------------------ 13013 13014/\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 13015------------------------------------------------------------------ 13016 Bra 13017 \w+ 13018 \D 13019 \w+ 13020 \d 13021 \w+ 13022 \S 13023 \w++ 13024 \s 13025 \w++ 13026 \W 13027 \w+ 13028 \w 13029 \w+ 13030 Any 13031 \w+ 13032 AllAny 13033 \w++ 13034 \R 13035 \w+ 13036 \H 13037 \w++ 13038 \h 13039 \w+ 13040 \V 13041 \w++ 13042 \v 13043 \w++ 13044 \Z 13045 \w++ 13046 \z 13047 \w++ 13048 $ 13049 Ket 13050 End 13051------------------------------------------------------------------ 13052 13053/\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 13054------------------------------------------------------------------ 13055 Bra 13056 AllAny+ 13057 \D 13058 AllAny+ 13059 \d 13060 AllAny+ 13061 \S 13062 AllAny+ 13063 \s 13064 AllAny+ 13065 \W 13066 AllAny+ 13067 \w 13068 AllAny+ 13069 Any 13070 AllAny+ 13071 AllAny 13072 AllAny+ 13073 \R 13074 AllAny+ 13075 \H 13076 AllAny+ 13077 \h 13078 AllAny+ 13079 \V 13080 AllAny+ 13081 \v 13082 AllAny+ 13083 \Z 13084 AllAny++ 13085 \z 13086 AllAny+ 13087 $ 13088 Ket 13089 End 13090------------------------------------------------------------------ 13091 13092/\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 13093------------------------------------------------------------------ 13094 Bra 13095 \R+ 13096 \D 13097 \R++ 13098 \d 13099 \R+ 13100 \S 13101 \R++ 13102 \s 13103 \R+ 13104 \W 13105 \R++ 13106 \w 13107 \R++ 13108 Any 13109 \R+ 13110 AllAny 13111 \R+ 13112 \R 13113 \R+ 13114 \H 13115 \R++ 13116 \h 13117 \R+ 13118 \V 13119 \R+ 13120 \v 13121 \R+ 13122 \Z 13123 \R++ 13124 \z 13125 \R+ 13126 $ 13127 Ket 13128 End 13129------------------------------------------------------------------ 13130 13131/\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 13132------------------------------------------------------------------ 13133 Bra 13134 \H+ 13135 \D 13136 \H+ 13137 \d 13138 \H+ 13139 \S 13140 \H+ 13141 \s 13142 \H+ 13143 \W 13144 \H+ 13145 \w 13146 \H+ 13147 Any 13148 \H+ 13149 AllAny 13150 \H+ 13151 \R 13152 \H+ 13153 \H 13154 \H++ 13155 \h 13156 \H+ 13157 \V 13158 \H+ 13159 \v 13160 \H+ 13161 \Z 13162 \H++ 13163 \z 13164 \H+ 13165 $ 13166 Ket 13167 End 13168------------------------------------------------------------------ 13169 13170/\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 13171------------------------------------------------------------------ 13172 Bra 13173 \h+ 13174 \D 13175 \h++ 13176 \d 13177 \h++ 13178 \S 13179 \h+ 13180 \s 13181 \h+ 13182 \W 13183 \h++ 13184 \w 13185 \h+ 13186 Any 13187 \h+ 13188 AllAny 13189 \h++ 13190 \R 13191 \h++ 13192 \H 13193 \h+ 13194 \h 13195 \h+ 13196 \V 13197 \h++ 13198 \v 13199 \h+ 13200 \Z 13201 \h++ 13202 \z 13203 \h+ 13204 $ 13205 Ket 13206 End 13207------------------------------------------------------------------ 13208 13209/\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 13210------------------------------------------------------------------ 13211 Bra 13212 \V+ 13213 \D 13214 \V+ 13215 \d 13216 \V+ 13217 \S 13218 \V+ 13219 \s 13220 \V+ 13221 \W 13222 \V+ 13223 \w 13224 \V+ 13225 Any 13226 \V+ 13227 AllAny 13228 \V++ 13229 \R 13230 \V+ 13231 \H 13232 \V+ 13233 \h 13234 \V+ 13235 \V 13236 \V++ 13237 \v 13238 \V+ 13239 \Z 13240 \V++ 13241 \z 13242 \V+ 13243 $ 13244 Ket 13245 End 13246------------------------------------------------------------------ 13247 13248/\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 13249------------------------------------------------------------------ 13250 Bra 13251 \v+ 13252 \D 13253 \v++ 13254 \d 13255 \v++ 13256 \S 13257 \v+ 13258 \s 13259 \v+ 13260 \W 13261 \v++ 13262 \w 13263 \v+ 13264 Any 13265 \v+ 13266 AllAny 13267 \v+ 13268 \R 13269 \v+ 13270 \H 13271 \v++ 13272 \h 13273 \v++ 13274 \V 13275 \v+ 13276 \v 13277 \v+ 13278 \Z 13279 \v++ 13280 \z 13281 \v+ 13282 $ 13283 Ket 13284 End 13285------------------------------------------------------------------ 13286 13287/ 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 13288------------------------------------------------------------------ 13289 Bra 13290 a+ 13291 \D 13292 a++ 13293 \d 13294 a+ 13295 \S 13296 a++ 13297 \s 13298 a++ 13299 \W 13300 a+ 13301 \w 13302 a+ 13303 Any 13304 a+ 13305 AllAny 13306 a++ 13307 \R 13308 a+ 13309 \H 13310 a++ 13311 \h 13312 a+ 13313 \V 13314 a++ 13315 \v 13316 a++ 13317 \Z 13318 a++ 13319 \z 13320 a++ 13321 $ 13322 Ket 13323 End 13324------------------------------------------------------------------ 13325 13326/\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 13327------------------------------------------------------------------ 13328 Bra 13329 \x0a+ 13330 \D 13331 \x0a++ 13332 \d 13333 \x0a++ 13334 \S 13335 \x0a+ 13336 \s 13337 \x0a+ 13338 \W 13339 \x0a++ 13340 \w 13341 \x0a+ 13342 Any 13343 \x0a+ 13344 AllAny 13345 \x0a+ 13346 \R 13347 \x0a+ 13348 \H 13349 \x0a++ 13350 \h 13351 \x0a++ 13352 \V 13353 \x0a+ 13354 \v 13355 \x0a+ 13356 \Z 13357 \x0a++ 13358 \z 13359 \x0a+ 13360 $ 13361 Ket 13362 End 13363------------------------------------------------------------------ 13364 13365/ .+\D .+\d .+\S .+\s .+\W .+\w .+. .+\C .+\R .+\H .+\h .+\V .+\v .+\Z .+\z .+$/BZx 13366------------------------------------------------------------------ 13367 Bra 13368 Any+ 13369 \D 13370 Any+ 13371 \d 13372 Any+ 13373 \S 13374 Any+ 13375 \s 13376 Any+ 13377 \W 13378 Any+ 13379 \w 13380 Any+ 13381 Any 13382 Any+ 13383 AllAny 13384 Any++ 13385 \R 13386 Any+ 13387 \H 13388 Any+ 13389 \h 13390 Any+ 13391 \V 13392 Any+ 13393 \v 13394 Any+ 13395 \Z 13396 Any++ 13397 \z 13398 Any+ 13399 $ 13400 Ket 13401 End 13402------------------------------------------------------------------ 13403 13404/ .+\D .+\d .+\S .+\s .+\W .+\w .+. .+\C .+\R .+\H .+\h .+\V .+\v .+\Z .+\z .+$/BZxs 13405------------------------------------------------------------------ 13406 Bra 13407 AllAny+ 13408 \D 13409 AllAny+ 13410 \d 13411 AllAny+ 13412 \S 13413 AllAny+ 13414 \s 13415 AllAny+ 13416 \W 13417 AllAny+ 13418 \w 13419 AllAny+ 13420 AllAny 13421 AllAny+ 13422 AllAny 13423 AllAny+ 13424 \R 13425 AllAny+ 13426 \H 13427 AllAny+ 13428 \h 13429 AllAny+ 13430 \V 13431 AllAny+ 13432 \v 13433 AllAny+ 13434 \Z 13435 AllAny++ 13436 \z 13437 AllAny+ 13438 $ 13439 Ket 13440 End 13441------------------------------------------------------------------ 13442 13443/\D+$ \d+$ \S+$ \s+$ \W+$ \w+$ \C+$ \R+$ \H+$ \h+$ \V+$ \v+$ a+$ \n+$ .+$ .+$/BZxm 13444------------------------------------------------------------------ 13445 Bra 13446 \D+ 13447 /m $ 13448 \d++ 13449 /m $ 13450 \S++ 13451 /m $ 13452 \s+ 13453 /m $ 13454 \W+ 13455 /m $ 13456 \w++ 13457 /m $ 13458 AllAny+ 13459 /m $ 13460 \R+ 13461 /m $ 13462 \H+ 13463 /m $ 13464 \h+ 13465 /m $ 13466 \V+ 13467 /m $ 13468 \v+ 13469 /m $ 13470 a+ 13471 /m $ 13472 \x0a+ 13473 /m $ 13474 Any+ 13475 /m $ 13476 Any+ 13477 /m $ 13478 Ket 13479 End 13480------------------------------------------------------------------ 13481 13482/(?=a+)a(a+)++a/BZ 13483------------------------------------------------------------------ 13484 Bra 13485 Assert 13486 a++ 13487 Ket 13488 a 13489 CBraPos 1 13490 a++ 13491 KetRpos 13492 a 13493 Ket 13494 End 13495------------------------------------------------------------------ 13496 13497/a+(bb|cc)a+(?:bb|cc)a+(?>bb|cc)a+(?:bb|cc)+a+(aa)a+(?:bb|aa)/BZ 13498------------------------------------------------------------------ 13499 Bra 13500 a++ 13501 CBra 1 13502 bb 13503 Alt 13504 cc 13505 Ket 13506 a++ 13507 Bra 13508 bb 13509 Alt 13510 cc 13511 Ket 13512 a++ 13513 Once_NC 13514 bb 13515 Alt 13516 cc 13517 Ket 13518 a++ 13519 Bra 13520 bb 13521 Alt 13522 cc 13523 KetRmax 13524 a+ 13525 CBra 2 13526 aa 13527 Ket 13528 a+ 13529 Bra 13530 bb 13531 Alt 13532 aa 13533 Ket 13534 Ket 13535 End 13536------------------------------------------------------------------ 13537 13538/a+(bb|cc)?#a+(?:bb|cc)??#a+(?:bb|cc)?+#a+(?:bb|cc)*#a+(bb|cc)?a#a+(?:aa)?/BZ 13539------------------------------------------------------------------ 13540 Bra 13541 a++ 13542 Brazero 13543 CBra 1 13544 bb 13545 Alt 13546 cc 13547 Ket 13548 # 13549 a++ 13550 Braminzero 13551 Bra 13552 bb 13553 Alt 13554 cc 13555 Ket 13556 # 13557 a++ 13558 Once 13559 Brazero 13560 Bra 13561 bb 13562 Alt 13563 cc 13564 Ket 13565 Ket 13566 # 13567 a++ 13568 Brazero 13569 Bra 13570 bb 13571 Alt 13572 cc 13573 KetRmax 13574 # 13575 a+ 13576 Brazero 13577 CBra 2 13578 bb 13579 Alt 13580 cc 13581 Ket 13582 a# 13583 a+ 13584 Brazero 13585 Bra 13586 aa 13587 Ket 13588 Ket 13589 End 13590------------------------------------------------------------------ 13591 13592/a+(?:bb)?a#a+(?:|||)#a+(?:|b)a#a+(?:|||)?a/BZ 13593------------------------------------------------------------------ 13594 Bra 13595 a+ 13596 Brazero 13597 Bra 13598 bb 13599 Ket 13600 a# 13601 a++ 13602 Bra 13603 Alt 13604 Alt 13605 Alt 13606 Ket 13607 # 13608 a+ 13609 Bra 13610 Alt 13611 b 13612 Ket 13613 a# 13614 a+ 13615 Brazero 13616 Bra 13617 Alt 13618 Alt 13619 Alt 13620 Ket 13621 a 13622 Ket 13623 End 13624------------------------------------------------------------------ 13625 13626/[ab]*/BZ 13627------------------------------------------------------------------ 13628 Bra 13629 [ab]*+ 13630 Ket 13631 End 13632------------------------------------------------------------------ 13633 aaaa 13634 0: aaaa 13635 13636/[ab]*?/BZ 13637------------------------------------------------------------------ 13638 Bra 13639 [ab]*? 13640 Ket 13641 End 13642------------------------------------------------------------------ 13643 aaaa 13644 0: 13645 13646/[ab]?/BZ 13647------------------------------------------------------------------ 13648 Bra 13649 [ab]?+ 13650 Ket 13651 End 13652------------------------------------------------------------------ 13653 aaaa 13654 0: a 13655 13656/[ab]??/BZ 13657------------------------------------------------------------------ 13658 Bra 13659 [ab]?? 13660 Ket 13661 End 13662------------------------------------------------------------------ 13663 aaaa 13664 0: 13665 13666/[ab]+/BZ 13667------------------------------------------------------------------ 13668 Bra 13669 [ab]++ 13670 Ket 13671 End 13672------------------------------------------------------------------ 13673 aaaa 13674 0: aaaa 13675 13676/[ab]+?/BZ 13677------------------------------------------------------------------ 13678 Bra 13679 [ab]+? 13680 Ket 13681 End 13682------------------------------------------------------------------ 13683 aaaa 13684 0: a 13685 13686/[ab]{2,3}/BZ 13687------------------------------------------------------------------ 13688 Bra 13689 [ab]{2,3}+ 13690 Ket 13691 End 13692------------------------------------------------------------------ 13693 aaaa 13694 0: aaa 13695 13696/[ab]{2,3}?/BZ 13697------------------------------------------------------------------ 13698 Bra 13699 [ab]{2,3}? 13700 Ket 13701 End 13702------------------------------------------------------------------ 13703 aaaa 13704 0: aa 13705 13706/[ab]{2,}/BZ 13707------------------------------------------------------------------ 13708 Bra 13709 [ab]{2,}+ 13710 Ket 13711 End 13712------------------------------------------------------------------ 13713 aaaa 13714 0: aaaa 13715 13716/[ab]{2,}?/BZ 13717------------------------------------------------------------------ 13718 Bra 13719 [ab]{2,}? 13720 Ket 13721 End 13722------------------------------------------------------------------ 13723 aaaa 13724 0: aa 13725 13726/\d+\s{0,5}=\s*\S?=\w{0,4}\W*/BZ 13727------------------------------------------------------------------ 13728 Bra 13729 \d++ 13730 \s{0,5}+ 13731 = 13732 \s*+ 13733 \S? 13734 = 13735 \w{0,4}+ 13736 \W*+ 13737 Ket 13738 End 13739------------------------------------------------------------------ 13740 13741/[a-d]{5,12}[e-z0-9]*#[^a-z]+[b-y]*a[2-7]?[^0-9a-z]+/BZ 13742------------------------------------------------------------------ 13743 Bra 13744 [a-d]{5,12}+ 13745 [0-9e-z]*+ 13746 # 13747 [\x00-`{-\xff] (neg)++ 13748 [b-y]*+ 13749 a 13750 [2-7]?+ 13751 [\x00-/:-`{-\xff] (neg)++ 13752 Ket 13753 End 13754------------------------------------------------------------------ 13755 13756/[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 13757------------------------------------------------------------------ 13758 Bra 13759 [a-z]*+ 13760 \s 13761 # 13762 [\x09 ]?+ 13763 \S 13764 # 13765 [a-c]* 13766 \S 13767 # 13768 [C-G]++ 13769 \d 13770 # 13771 [4-8]*+ 13772 \D 13773 # 13774 [,4-9]* 13775 \D 13776 # 13777 [!$]{0,5}+ 13778 \w 13779 # 13780 [M-Xf-l]++ 13781 \W 13782 # 13783 [,a-c]? 13784 \W 13785 Ket 13786 End 13787------------------------------------------------------------------ 13788 13789/a+(aa|bb)*c#a*(bb|cc)*a#a?(bb|cc)*d#[a-f]*(g|hh)*f/BZ 13790------------------------------------------------------------------ 13791 Bra 13792 a+ 13793 Brazero 13794 CBra 1 13795 aa 13796 Alt 13797 bb 13798 KetRmax 13799 c# 13800 a* 13801 Brazero 13802 CBra 2 13803 bb 13804 Alt 13805 cc 13806 KetRmax 13807 a# 13808 a?+ 13809 Brazero 13810 CBra 3 13811 bb 13812 Alt 13813 cc 13814 KetRmax 13815 d# 13816 [a-f]* 13817 Brazero 13818 CBra 4 13819 g 13820 Alt 13821 hh 13822 KetRmax 13823 f 13824 Ket 13825 End 13826------------------------------------------------------------------ 13827 13828/[a-f]*(g|hh|i)*i#[a-x]{4,}(y{0,6})*y#[a-k]+(ll|mm)+n/BZ 13829------------------------------------------------------------------ 13830 Bra 13831 [a-f]*+ 13832 Brazero 13833 CBra 1 13834 g 13835 Alt 13836 hh 13837 Alt 13838 i 13839 KetRmax 13840 i# 13841 [a-x]{4,} 13842 Brazero 13843 SCBra 2 13844 y{0,6} 13845 KetRmax 13846 y# 13847 [a-k]++ 13848 CBra 3 13849 ll 13850 Alt 13851 mm 13852 KetRmax 13853 n 13854 Ket 13855 End 13856------------------------------------------------------------------ 13857 13858/[a-f]*(?>gg|hh)+#[a-f]*(?>gg|hh)?#[a-f]*(?>gg|hh)*a#[a-f]*(?>gg|hh)*h/BZ 13859------------------------------------------------------------------ 13860 Bra 13861 [a-f]*+ 13862 Once_NC 13863 gg 13864 Alt 13865 hh 13866 KetRmax 13867 # 13868 [a-f]*+ 13869 Brazero 13870 Once_NC 13871 gg 13872 Alt 13873 hh 13874 Ket 13875 # 13876 [a-f]* 13877 Brazero 13878 Once_NC 13879 gg 13880 Alt 13881 hh 13882 KetRmax 13883 a# 13884 [a-f]*+ 13885 Brazero 13886 Once_NC 13887 gg 13888 Alt 13889 hh 13890 KetRmax 13891 h 13892 Ket 13893 End 13894------------------------------------------------------------------ 13895 13896/[a-c]*d/DZS 13897------------------------------------------------------------------ 13898 Bra 13899 [a-c]*+ 13900 d 13901 Ket 13902 End 13903------------------------------------------------------------------ 13904Capturing subpattern count = 0 13905No options 13906No first char 13907Need char = 'd' 13908Subject length lower bound = 1 13909Starting chars: a b c d 13910 13911/[a-c]+d/DZS 13912------------------------------------------------------------------ 13913 Bra 13914 [a-c]++ 13915 d 13916 Ket 13917 End 13918------------------------------------------------------------------ 13919Capturing subpattern count = 0 13920No options 13921No first char 13922Need char = 'd' 13923Subject length lower bound = 2 13924Starting chars: a b c 13925 13926/[a-c]?d/DZS 13927------------------------------------------------------------------ 13928 Bra 13929 [a-c]?+ 13930 d 13931 Ket 13932 End 13933------------------------------------------------------------------ 13934Capturing subpattern count = 0 13935No options 13936No first char 13937Need char = 'd' 13938Subject length lower bound = 1 13939Starting chars: a b c d 13940 13941/[a-c]{4,6}d/DZS 13942------------------------------------------------------------------ 13943 Bra 13944 [a-c]{4,6}+ 13945 d 13946 Ket 13947 End 13948------------------------------------------------------------------ 13949Capturing subpattern count = 0 13950No options 13951No first char 13952Need char = 'd' 13953Subject length lower bound = 5 13954Starting chars: a b c 13955 13956/[a-c]{0,6}d/DZS 13957------------------------------------------------------------------ 13958 Bra 13959 [a-c]{0,6}+ 13960 d 13961 Ket 13962 End 13963------------------------------------------------------------------ 13964Capturing subpattern count = 0 13965No options 13966No first char 13967Need char = 'd' 13968Subject length lower bound = 1 13969Starting chars: a b c d 13970 13971/-- End of special auto-possessive tests --/ 13972 13973/^A\o{1239}B/ 13974Failed: non-octal character in \o{} (closing brace missing?) at offset 8 13975 13976/^A\oB/ 13977Failed: missing opening brace after \o at offset 3 13978 13979/^A\x{zz}B/ 13980Failed: non-hex character in \x{} (closing brace missing?) at offset 5 13981 13982/^A\x{12Z/ 13983Failed: non-hex character in \x{} (closing brace missing?) at offset 7 13984 13985/^A\x{/ 13986Failed: non-hex character in \x{} (closing brace missing?) at offset 5 13987 13988/[ab]++/BZO 13989------------------------------------------------------------------ 13990 Bra 13991 [ab]++ 13992 Ket 13993 End 13994------------------------------------------------------------------ 13995 13996/[^ab]*+/BZO 13997------------------------------------------------------------------ 13998 Bra 13999 [\x00-`c-\xff] (neg)*+ 14000 Ket 14001 End 14002------------------------------------------------------------------ 14003 14004/a{4}+/BZO 14005------------------------------------------------------------------ 14006 Bra 14007 a{4} 14008 Ket 14009 End 14010------------------------------------------------------------------ 14011 14012/a{4}+/BZOi 14013------------------------------------------------------------------ 14014 Bra 14015 /i a{4} 14016 Ket 14017 End 14018------------------------------------------------------------------ 14019 14020/[a-[:digit:]]+/ 14021Failed: invalid range in character class at offset 3 14022 14023/[A-[:digit:]]+/ 14024Failed: invalid range in character class at offset 3 14025 14026/[a-[.xxx.]]+/ 14027Failed: invalid range in character class at offset 3 14028 14029/[a-[=xxx=]]+/ 14030Failed: invalid range in character class at offset 3 14031 14032/[a-[!xxx!]]+/ 14033Failed: range out of order in character class at offset 3 14034 14035/[A-[!xxx!]]+/ 14036 A]]] 14037 0: A]]] 14038 14039/[a-\d]+/ 14040Failed: invalid range in character class at offset 4 14041 14042/(?<0abc>xx)/ 14043Failed: group name must start with a non-digit at offset 3 14044 14045/(?&1abc)xx(?<1abc>y)/ 14046Failed: group name must start with a non-digit at offset 3 14047 14048/(?<ab-cd>xx)/ 14049Failed: syntax error in subpattern name (missing terminator) at offset 5 14050 14051/(?'0abc'xx)/ 14052Failed: group name must start with a non-digit at offset 3 14053 14054/(?P<0abc>xx)/ 14055Failed: group name must start with a non-digit at offset 4 14056 14057/\k<5ghj>/ 14058Failed: group name must start with a non-digit at offset 3 14059 14060/\k'5ghj'/ 14061Failed: group name must start with a non-digit at offset 3 14062 14063/\k{2fgh}/ 14064Failed: group name must start with a non-digit at offset 3 14065 14066/(?P=8yuki)/ 14067Failed: group name must start with a non-digit at offset 4 14068 14069/\g{4df}/ 14070Failed: group name must start with a non-digit at offset 3 14071 14072/(?&1abc)xx(?<1abc>y)/ 14073Failed: group name must start with a non-digit at offset 3 14074 14075/(?P>1abc)xx(?<1abc>y)/ 14076Failed: group name must start with a non-digit at offset 4 14077 14078/\g'3gh'/ 14079Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 7 14080 14081/\g<5fg>/ 14082Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 7 14083 14084/(?(<4gh>)abc)/ 14085Failed: group name must start with a non-digit at offset 4 14086 14087/(?('4gh')abc)/ 14088Failed: group name must start with a non-digit at offset 4 14089 14090/(?(4gh)abc)/ 14091Failed: malformed number or name after (?( at offset 4 14092 14093/(?(R&6yh)abc)/ 14094Failed: group name must start with a non-digit at offset 5 14095 14096/(((a\2)|(a*)\g<-1>))*a?/BZ 14097------------------------------------------------------------------ 14098 Bra 14099 Brazero 14100 SCBra 1 14101 Once 14102 CBra 2 14103 CBra 3 14104 a 14105 \2 14106 Ket 14107 Alt 14108 CBra 4 14109 a* 14110 Ket 14111 Recurse 14112 Ket 14113 Ket 14114 KetRmax 14115 a?+ 14116 Ket 14117 End 14118------------------------------------------------------------------ 14119 14120/-- Test the ugly "start or end of word" compatibility syntax --/ 14121 14122/[[:<:]]red[[:>:]]/BZ 14123------------------------------------------------------------------ 14124 Bra 14125 \b 14126 Assert 14127 \w 14128 Ket 14129 red 14130 \b 14131 AssertB 14132 Reverse 14133 \w 14134 Ket 14135 Ket 14136 End 14137------------------------------------------------------------------ 14138 little red riding hood 14139 0: red 14140 a /red/ thing 14141 0: red 14142 red is a colour 14143 0: red 14144 put it all on red 14145 0: red 14146 ** Failers 14147No match 14148 no reduction 14149No match 14150 Alfred Winifred 14151No match 14152 14153/[a[:<:]] should give error/ 14154Failed: unknown POSIX class name at offset 4 14155 14156/(?=ab\K)/+ 14157 abcd 14158Start of matched string is beyond its end - displaying from end to start. 14159 0: ab 14160 0+ abcd 14161 14162/abcd/f<lf> 14163 xx\nxabcd 14164No match 14165 14166/ -- Test stack check external calls --/ 14167 14168/(((((a)))))/Q0 14169 14170/(((((a)))))/Q1 14171Failed: parentheses are too deeply nested (stack check) at offset 0 14172 14173/(((((a)))))/Q 14174** Missing 0 or 1 after /Q 14175 14176/^\w+(?>\s*)(?<=\w)/BZ 14177------------------------------------------------------------------ 14178 Bra 14179 ^ 14180 \w+ 14181 Once_NC 14182 \s*+ 14183 Ket 14184 AssertB 14185 Reverse 14186 \w 14187 Ket 14188 Ket 14189 End 14190------------------------------------------------------------------ 14191 14192/\othing/ 14193Failed: missing opening brace after \o at offset 1 14194 14195/\o{}/ 14196Failed: digits missing in \x{} or \o{} at offset 1 14197 14198/\o{whatever}/ 14199Failed: non-octal character in \o{} (closing brace missing?) at offset 3 14200 14201/\xthing/ 14202 14203/\x{}/ 14204Failed: digits missing in \x{} or \o{} at offset 3 14205 14206/\x{whatever}/ 14207Failed: non-hex character in \x{} (closing brace missing?) at offset 3 14208 14209/-- End of testinput2 --/ 14210