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 422No options 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 446No options 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 480No options 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 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 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 519No options 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 527No options 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: 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 (?( or (?(?C) at offset 3 559 560/(?(abc))/ 561Failed: reference to non-existent subpattern at offset 7 562 563/(?(?<ab))/ 564Failed: assertion expected after (?( or (?(?C) at offset 3 565 566/((?s)blah)\s+\1/I 567Capturing subpattern count = 1 568Max back reference = 1 569No options 570First char = 'b' 571Need char = 'h' 572 573/((?i)blah)\s+\1/I 574Capturing subpattern count = 1 575Max back reference = 1 576No options 577First char = 'b' (caseless) 578Need char = 'h' (caseless) 579 580/((?i)b)/IDZS 581------------------------------------------------------------------ 582 Bra 583 CBra 1 584 /i b 585 Ket 586 Ket 587 End 588------------------------------------------------------------------ 589Capturing subpattern count = 1 590No options 591First char = 'b' (caseless) 592No need char 593Subject length lower bound = 1 594No starting char list 595 596/(a*b|(?i:c*(?-i)d))/IS 597Capturing subpattern count = 1 598No options 599No first char 600No need char 601Subject length lower bound = 1 602Starting chars: C a b c d 603 604/a$/I 605Capturing subpattern count = 0 606No options 607First char = 'a' 608No need char 609 a 610 0: a 611 a\n 612 0: a 613 *** Failers 614No match 615 \Za 616No match 617 \Za\n 618No match 619 620/a$/Im 621Capturing subpattern count = 0 622Options: multiline 623First char = 'a' 624No need char 625 a 626 0: a 627 a\n 628 0: a 629 \Za\n 630 0: a 631 *** Failers 632No match 633 \Za 634No match 635 636/\Aabc/Im 637Capturing subpattern count = 0 638Max lookbehind = 1 639Options: anchored multiline 640No first char 641No need char 642 643/^abc/Im 644Capturing subpattern count = 0 645Options: multiline 646First char at start or follows newline 647Need char = 'c' 648 649/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I 650Capturing subpattern count = 5 651Options: anchored 652No first char 653No need char 654 aaaaabbbbbcccccdef 655 0: aaaaabbbbbcccccdef 656 1: aaaaabbbbbcccccdef 657 2: aaaaa 658 3: b 659 4: bbbbccccc 660 5: def 661 662/(?<=foo)[ab]/IS 663Capturing subpattern count = 0 664Max lookbehind = 3 665No options 666No first char 667No need char 668Subject length lower bound = 1 669Starting chars: a b 670 671/(?<!foo)(alpha|omega)/IS 672Capturing subpattern count = 1 673Max lookbehind = 3 674No options 675No first char 676Need char = 'a' 677Subject length lower bound = 5 678Starting chars: a o 679 680/(?!alphabet)[ab]/IS 681Capturing subpattern count = 0 682No options 683No first char 684No need char 685Subject length lower bound = 1 686Starting chars: a b 687 688/(?<=foo\n)^bar/Im 689Capturing subpattern count = 0 690Max lookbehind = 4 691Contains explicit CR or LF match 692Options: multiline 693No first char 694Need char = 'r' 695 foo\nbarbar 696 0: bar 697 ***Failers 698No match 699 rhubarb 700No match 701 barbell 702No match 703 abc\nbarton 704No match 705 706/^(?<=foo\n)bar/Im 707Capturing subpattern count = 0 708Max lookbehind = 4 709Contains explicit CR or LF match 710Options: multiline 711First char at start or follows newline 712Need char = 'r' 713 foo\nbarbar 714 0: bar 715 ***Failers 716No match 717 rhubarb 718No match 719 barbell 720No match 721 abc\nbarton 722No match 723 724/(?>^abc)/Im 725Capturing subpattern count = 0 726Options: multiline 727First char at start or follows newline 728Need char = 'c' 729 abc 730 0: abc 731 def\nabc 732 0: abc 733 *** Failers 734No match 735 defabc 736No match 737 738/(?<=ab(c+)d)ef/ 739Failed: lookbehind assertion is not fixed length at offset 11 740 741/(?<=ab(?<=c+)d)ef/ 742Failed: lookbehind assertion is not fixed length at offset 12 743 744/(?<=ab(c|de)f)g/ 745Failed: lookbehind assertion is not fixed length at offset 13 746 747/The next three are in testinput2 because they have variable length branches/ 748 749/(?<=bullock|donkey)-cart/I 750Capturing subpattern count = 0 751Max lookbehind = 7 752No options 753First char = '-' 754Need char = 't' 755 the bullock-cart 756 0: -cart 757 a donkey-cart race 758 0: -cart 759 *** Failers 760No match 761 cart 762No match 763 horse-and-cart 764No match 765 766/(?<=ab(?i)x|y|z)/I 767Capturing subpattern count = 0 768Max lookbehind = 3 769May match empty string 770No options 771No first char 772No need char 773 774/(?>.*)(?<=(abcd)|(xyz))/I 775Capturing subpattern count = 2 776Max lookbehind = 4 777May match empty string 778No options 779No first char 780No need char 781 alphabetabcd 782 0: alphabetabcd 783 1: abcd 784 endingxyz 785 0: endingxyz 786 1: <unset> 787 2: xyz 788 789/(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I 790Capturing subpattern count = 0 791Max lookbehind = 4 792No options 793First char = 'Z' 794Need char = 'Z' 795 abxyZZ 796 0: ZZ 797 abXyZZ 798 0: ZZ 799 ZZZ 800 0: ZZ 801 zZZ 802 0: ZZ 803 bZZ 804 0: ZZ 805 BZZ 806 0: ZZ 807 *** Failers 808No match 809 ZZ 810No match 811 abXYZZ 812No match 813 zzz 814No match 815 bzz 816No match 817 818/(?<!(foo)a)bar/I 819Capturing subpattern count = 1 820Max lookbehind = 4 821No options 822First char = 'b' 823Need char = 'r' 824 bar 825 0: bar 826 foobbar 827 0: bar 828 *** Failers 829No match 830 fooabar 831No match 832 833/This one is here because Perl behaves differently; see also the following/I 834Capturing subpattern count = 0 835No options 836First char = 'T' 837Need char = 'g' 838 839/^(a\1?){4}$/I 840Capturing subpattern count = 1 841Max back reference = 1 842Options: anchored 843No first char 844No need char 845 aaaa 846No match 847 aaaaaa 848No match 849 850/Perl does not fail these two for the final subjects. Neither did PCRE until/ 851/release 8.01. The problem is in backtracking into a subpattern that contains/ 852No match 853/a recursive reference to itself. PCRE has now made these into atomic patterns./ 854No match 855 856/^(xa|=?\1a){2}$/ 857 xa=xaa 858 0: xa=xaa 859 1: =xaa 860 ** Failers 861No match 862 xa=xaaa 863No match 864 865/^(xa|=?\1a)+$/ 866 xa=xaa 867 0: xa=xaa 868 1: =xaa 869 ** Failers 870No match 871 xa=xaaa 872No match 873 874/These are syntax tests from Perl 5.005/I 875Capturing subpattern count = 0 876No options 877First char = 'T' 878Need char = '5' 879 880/a[b-a]/ 881Failed: range out of order in character class at offset 4 882 883/a[]b/ 884Failed: missing terminating ] for character class at offset 4 885 886/a[/ 887Failed: missing terminating ] for character class at offset 2 888 889/*a/ 890Failed: nothing to repeat at offset 0 891 892/(*)b/ 893Failed: nothing to repeat at offset 1 894 895/abc)/ 896Failed: unmatched parentheses at offset 3 897 898/(abc/ 899Failed: missing ) at offset 4 900 901/a**/ 902Failed: nothing to repeat at offset 2 903 904/)(/ 905Failed: unmatched parentheses at offset 0 906 907/\1/ 908Failed: reference to non-existent subpattern at offset 2 909 910/\2/ 911Failed: reference to non-existent subpattern at offset 2 912 913/(a)|\2/ 914Failed: reference to non-existent subpattern at offset 6 915 916/a[b-a]/Ii 917Failed: range out of order in character class at offset 4 918 919/a[]b/Ii 920Failed: missing terminating ] for character class at offset 4 921 922/a[/Ii 923Failed: missing terminating ] for character class at offset 2 924 925/*a/Ii 926Failed: nothing to repeat at offset 0 927 928/(*)b/Ii 929Failed: nothing to repeat at offset 1 930 931/abc)/Ii 932Failed: unmatched parentheses at offset 3 933 934/(abc/Ii 935Failed: missing ) at offset 4 936 937/a**/Ii 938Failed: nothing to repeat at offset 2 939 940/)(/Ii 941Failed: unmatched parentheses at offset 0 942 943/:(?:/ 944Failed: missing ) at offset 4 945 946/(?<%)b/ 947Failed: unrecognized character after (?< at offset 3 948 949/a(?{)b/ 950Failed: unrecognized character after (? or (?- at offset 3 951 952/a(?{{})b/ 953Failed: unrecognized character after (? or (?- at offset 3 954 955/a(?{}})b/ 956Failed: unrecognized character after (? or (?- at offset 3 957 958/a(?{"{"})b/ 959Failed: unrecognized character after (? or (?- at offset 3 960 961/a(?{"{"}})b/ 962Failed: unrecognized character after (? or (?- at offset 3 963 964/(?(1?)a|b)/ 965Failed: malformed number or name after (?( at offset 4 966 967/[a[:xyz:/ 968Failed: missing terminating ] for character class at offset 8 969 970/(?<=x+)y/ 971Failed: lookbehind assertion is not fixed length at offset 6 972 973/a{37,17}/ 974Failed: numbers out of order in {} quantifier at offset 7 975 976/abc/\ 977Failed: \ at end of pattern at offset 4 978 979/abc/\i 980Failed: \ at end of pattern at offset 4 981 982/(a)bc(d)/I 983Capturing subpattern count = 2 984No options 985First char = 'a' 986Need char = 'd' 987 abcd 988 0: abcd 989 1: a 990 2: d 991 abcd\C2 992 0: abcd 993 1: a 994 2: d 995 2C d (1) 996 abcd\C5 997 0: abcd 998 1: a 999 2: d 1000copy substring 5 failed -7 1001 1002/(.{20})/I 1003Capturing subpattern count = 1 1004No options 1005No first char 1006No need char 1007 abcdefghijklmnopqrstuvwxyz 1008 0: abcdefghijklmnopqrst 1009 1: abcdefghijklmnopqrst 1010 abcdefghijklmnopqrstuvwxyz\C1 1011 0: abcdefghijklmnopqrst 1012 1: abcdefghijklmnopqrst 1013 1C abcdefghijklmnopqrst (20) 1014 abcdefghijklmnopqrstuvwxyz\G1 1015 0: abcdefghijklmnopqrst 1016 1: abcdefghijklmnopqrst 1017 1G abcdefghijklmnopqrst (20) 1018 1019/(.{15})/I 1020Capturing subpattern count = 1 1021No options 1022No first char 1023No need char 1024 abcdefghijklmnopqrstuvwxyz 1025 0: abcdefghijklmno 1026 1: abcdefghijklmno 1027 abcdefghijklmnopqrstuvwxyz\C1\G1 1028 0: abcdefghijklmno 1029 1: abcdefghijklmno 1030 1C abcdefghijklmno (15) 1031 1G abcdefghijklmno (15) 1032 1033/(.{16})/I 1034Capturing subpattern count = 1 1035No options 1036No first char 1037No need char 1038 abcdefghijklmnopqrstuvwxyz 1039 0: abcdefghijklmnop 1040 1: abcdefghijklmnop 1041 abcdefghijklmnopqrstuvwxyz\C1\G1\L 1042 0: abcdefghijklmnop 1043 1: abcdefghijklmnop 1044 1C abcdefghijklmnop (16) 1045 1G abcdefghijklmnop (16) 1046 0L abcdefghijklmnop 1047 1L abcdefghijklmnop 1048 1049/^(a|(bc))de(f)/I 1050Capturing subpattern count = 3 1051Options: anchored 1052No first char 1053No need char 1054 adef\G1\G2\G3\G4\L 1055 0: adef 1056 1: a 1057 2: <unset> 1058 3: f 1059 1G a (1) 1060 2G (0) 1061 3G f (1) 1062get substring 4 failed -7 1063 0L adef 1064 1L a 1065 2L 1066 3L f 1067 bcdef\G1\G2\G3\G4\L 1068 0: bcdef 1069 1: bc 1070 2: bc 1071 3: f 1072 1G bc (2) 1073 2G bc (2) 1074 3G f (1) 1075get substring 4 failed -7 1076 0L bcdef 1077 1L bc 1078 2L bc 1079 3L f 1080 adefghijk\C0 1081 0: adef 1082 1: a 1083 2: <unset> 1084 3: f 1085 0C adef (4) 1086 1087/^abc\00def/I 1088Capturing subpattern count = 0 1089Options: anchored 1090No first char 1091No need char 1092 abc\00def\L\C0 1093 0: abc\x00def 1094 0C abc\x00def (7) 1095 0L abc 1096 1097/word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ 1098)((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ 1099)?)?)?)?)?)?)?)?)?otherword/I 1100Capturing subpattern count = 8 1101Contains explicit CR or LF match 1102No options 1103First char = 'w' 1104Need char = 'd' 1105 1106/.*X/IDZ 1107------------------------------------------------------------------ 1108 Bra 1109 Any* 1110 X 1111 Ket 1112 End 1113------------------------------------------------------------------ 1114Capturing subpattern count = 0 1115No options 1116First char at start or follows newline 1117Need char = 'X' 1118 1119/.*X/IDZs 1120------------------------------------------------------------------ 1121 Bra 1122 AllAny* 1123 X 1124 Ket 1125 End 1126------------------------------------------------------------------ 1127Capturing subpattern count = 0 1128Options: anchored dotall 1129No first char 1130Need char = 'X' 1131 1132/(.*X|^B)/IDZ 1133------------------------------------------------------------------ 1134 Bra 1135 CBra 1 1136 Any* 1137 X 1138 Alt 1139 ^ 1140 B 1141 Ket 1142 Ket 1143 End 1144------------------------------------------------------------------ 1145Capturing subpattern count = 1 1146No options 1147First char at start or follows newline 1148No need char 1149 1150/(.*X|^B)/IDZs 1151------------------------------------------------------------------ 1152 Bra 1153 CBra 1 1154 AllAny* 1155 X 1156 Alt 1157 ^ 1158 B 1159 Ket 1160 Ket 1161 End 1162------------------------------------------------------------------ 1163Capturing subpattern count = 1 1164Options: anchored dotall 1165No first char 1166No need char 1167 1168/(?s)(.*X|^B)/IDZ 1169------------------------------------------------------------------ 1170 Bra 1171 CBra 1 1172 AllAny* 1173 X 1174 Alt 1175 ^ 1176 B 1177 Ket 1178 Ket 1179 End 1180------------------------------------------------------------------ 1181Capturing subpattern count = 1 1182Options: anchored 1183No first char 1184No need char 1185 1186/(?s:.*X|^B)/IDZ 1187------------------------------------------------------------------ 1188 Bra 1189 Bra 1190 AllAny* 1191 X 1192 Alt 1193 ^ 1194 B 1195 Ket 1196 Ket 1197 End 1198------------------------------------------------------------------ 1199Capturing subpattern count = 0 1200Options: anchored 1201No first char 1202No need char 1203 1204/\Biss\B/I+ 1205Capturing subpattern count = 0 1206Max lookbehind = 1 1207No options 1208First char = 'i' 1209Need char = 's' 1210 Mississippi 1211 0: iss 1212 0+ issippi 1213 1214/iss/IG+ 1215Capturing subpattern count = 0 1216No options 1217First char = 'i' 1218Need char = 's' 1219 Mississippi 1220 0: iss 1221 0+ issippi 1222 0: iss 1223 0+ ippi 1224 1225/\Biss\B/IG+ 1226Capturing subpattern count = 0 1227Max lookbehind = 1 1228No options 1229First char = 'i' 1230Need char = 's' 1231 Mississippi 1232 0: iss 1233 0+ issippi 1234 1235/\Biss\B/Ig+ 1236Capturing subpattern count = 0 1237Max lookbehind = 1 1238No options 1239First char = 'i' 1240Need char = 's' 1241 Mississippi 1242 0: iss 1243 0+ issippi 1244 0: iss 1245 0+ ippi 1246 *** Failers 1247No match 1248 Mississippi\A 1249No match 1250 1251/(?<=[Ms])iss/Ig+ 1252Capturing subpattern count = 0 1253Max lookbehind = 1 1254No options 1255First char = 'i' 1256Need char = 's' 1257 Mississippi 1258 0: iss 1259 0+ issippi 1260 0: iss 1261 0+ ippi 1262 1263/(?<=[Ms])iss/IG+ 1264Capturing subpattern count = 0 1265Max lookbehind = 1 1266No options 1267First char = 'i' 1268Need char = 's' 1269 Mississippi 1270 0: iss 1271 0+ issippi 1272 1273/^iss/Ig+ 1274Capturing subpattern count = 0 1275Options: anchored 1276No first char 1277No need char 1278 ississippi 1279 0: iss 1280 0+ issippi 1281 1282/.*iss/Ig+ 1283Capturing subpattern count = 0 1284No options 1285First char at start or follows newline 1286Need char = 's' 1287 abciss\nxyzisspqr 1288 0: abciss 1289 0+ \x0axyzisspqr 1290 0: xyziss 1291 0+ pqr 1292 1293/.i./I+g 1294Capturing subpattern count = 0 1295No options 1296No first char 1297Need char = 'i' 1298 Mississippi 1299 0: Mis 1300 0+ sissippi 1301 0: sis 1302 0+ sippi 1303 0: sip 1304 0+ pi 1305 Mississippi\A 1306 0: Mis 1307 0+ sissippi 1308 0: sis 1309 0+ sippi 1310 0: sip 1311 0+ pi 1312 Missouri river 1313 0: Mis 1314 0+ souri river 1315 0: ri 1316 0+ river 1317 0: riv 1318 0+ er 1319 Missouri river\A 1320 0: Mis 1321 0+ souri river 1322 1323/^.is/I+g 1324Capturing subpattern count = 0 1325Options: anchored 1326No first char 1327No need char 1328 Mississippi 1329 0: Mis 1330 0+ sissippi 1331 1332/^ab\n/Ig+ 1333Capturing subpattern count = 0 1334Contains explicit CR or LF match 1335Options: anchored 1336No first char 1337No need char 1338 ab\nab\ncd 1339 0: ab\x0a 1340 0+ ab\x0acd 1341 1342/^ab\n/Img+ 1343Capturing subpattern count = 0 1344Contains explicit CR or LF match 1345Options: multiline 1346First char at start or follows newline 1347Need char = \x0a 1348 ab\nab\ncd 1349 0: ab\x0a 1350 0+ ab\x0acd 1351 0: ab\x0a 1352 0+ cd 1353 1354/abc/I 1355Capturing subpattern count = 0 1356No options 1357First char = 'a' 1358Need char = 'c' 1359 1360/abc|bac/I 1361Capturing subpattern count = 0 1362No options 1363No first char 1364Need char = 'c' 1365 1366/(abc|bac)/I 1367Capturing subpattern count = 1 1368No options 1369No first char 1370Need char = 'c' 1371 1372/(abc|(c|dc))/I 1373Capturing subpattern count = 2 1374No options 1375No first char 1376Need char = 'c' 1377 1378/(abc|(d|de)c)/I 1379Capturing subpattern count = 2 1380No options 1381No first char 1382Need char = 'c' 1383 1384/a*/I 1385Capturing subpattern count = 0 1386May match empty string 1387No options 1388No first char 1389No need char 1390 1391/a+/I 1392Capturing subpattern count = 0 1393No options 1394First char = 'a' 1395No need char 1396 1397/(baa|a+)/I 1398Capturing subpattern count = 1 1399No options 1400No first char 1401Need char = 'a' 1402 1403/a{0,3}/I 1404Capturing subpattern count = 0 1405May match empty string 1406No options 1407No first char 1408No need char 1409 1410/baa{3,}/I 1411Capturing subpattern count = 0 1412No options 1413First char = 'b' 1414Need char = 'a' 1415 1416/"([^\\"]+|\\.)*"/I 1417Capturing subpattern count = 1 1418No options 1419First char = '"' 1420Need char = '"' 1421 1422/(abc|ab[cd])/I 1423Capturing subpattern count = 1 1424No options 1425First char = 'a' 1426No need char 1427 1428/(a|.)/I 1429Capturing subpattern count = 1 1430No options 1431No first char 1432No need char 1433 1434/a|ba|\w/I 1435Capturing subpattern count = 0 1436No options 1437No first char 1438No need char 1439 1440/abc(?=pqr)/I 1441Capturing subpattern count = 0 1442No options 1443First char = 'a' 1444Need char = 'r' 1445 1446/...(?<=abc)/I 1447Capturing subpattern count = 0 1448Max lookbehind = 3 1449No options 1450No first char 1451No need char 1452 1453/abc(?!pqr)/I 1454Capturing subpattern count = 0 1455No options 1456First char = 'a' 1457Need char = 'c' 1458 1459/ab./I 1460Capturing subpattern count = 0 1461No options 1462First char = 'a' 1463Need char = 'b' 1464 1465/ab[xyz]/I 1466Capturing subpattern count = 0 1467No options 1468First char = 'a' 1469Need char = 'b' 1470 1471/abc*/I 1472Capturing subpattern count = 0 1473No options 1474First char = 'a' 1475Need char = 'b' 1476 1477/ab.c*/I 1478Capturing subpattern count = 0 1479No options 1480First char = 'a' 1481Need char = 'b' 1482 1483/a.c*/I 1484Capturing subpattern count = 0 1485No options 1486First char = 'a' 1487No need char 1488 1489/.c*/I 1490Capturing subpattern count = 0 1491No options 1492No first char 1493No need char 1494 1495/ac*/I 1496Capturing subpattern count = 0 1497No options 1498First char = 'a' 1499No need char 1500 1501/(a.c*|b.c*)/I 1502Capturing subpattern count = 1 1503No options 1504No first char 1505No need char 1506 1507/a.c*|aba/I 1508Capturing subpattern count = 0 1509No options 1510First char = 'a' 1511No need char 1512 1513/.+a/I 1514Capturing subpattern count = 0 1515No options 1516No first char 1517Need char = 'a' 1518 1519/(?=abcda)a.*/I 1520Capturing subpattern count = 0 1521No options 1522First char = 'a' 1523Need char = 'a' 1524 1525/(?=a)a.*/I 1526Capturing subpattern count = 0 1527No options 1528First char = 'a' 1529No need char 1530 1531/a(b)*/I 1532Capturing subpattern count = 1 1533No options 1534First char = 'a' 1535No need char 1536 1537/a\d*/I 1538Capturing subpattern count = 0 1539No options 1540First char = 'a' 1541No need char 1542 1543/ab\d*/I 1544Capturing subpattern count = 0 1545No options 1546First char = 'a' 1547Need char = 'b' 1548 1549/a(\d)*/I 1550Capturing subpattern count = 1 1551No options 1552First char = 'a' 1553No need char 1554 1555/abcde{0,0}/I 1556Capturing subpattern count = 0 1557No options 1558First char = 'a' 1559Need char = 'd' 1560 1561/ab\d+/I 1562Capturing subpattern count = 0 1563No options 1564First char = 'a' 1565Need char = 'b' 1566 1567/a(?(1)b)(.)/I 1568Capturing subpattern count = 1 1569Max back reference = 1 1570No options 1571First char = 'a' 1572No need char 1573 1574/a(?(1)bag|big)(.)/I 1575Capturing subpattern count = 1 1576Max back reference = 1 1577No options 1578First char = 'a' 1579Need char = 'g' 1580 1581/a(?(1)bag|big)*(.)/I 1582Capturing subpattern count = 1 1583Max back reference = 1 1584No options 1585First char = 'a' 1586No need char 1587 1588/a(?(1)bag|big)+(.)/I 1589Capturing subpattern count = 1 1590Max back reference = 1 1591No options 1592First char = 'a' 1593Need char = 'g' 1594 1595/a(?(1)b..|b..)(.)/I 1596Capturing subpattern count = 1 1597Max back reference = 1 1598No options 1599First char = 'a' 1600Need char = 'b' 1601 1602/ab\d{0}e/I 1603Capturing subpattern count = 0 1604No options 1605First char = 'a' 1606Need char = 'e' 1607 1608/a?b?/I 1609Capturing subpattern count = 0 1610May match empty string 1611No options 1612No first char 1613No need char 1614 a 1615 0: a 1616 b 1617 0: b 1618 ab 1619 0: ab 1620 \ 1621 0: 1622 *** Failers 1623 0: 1624 \N 1625No match 1626 1627/|-/I 1628Capturing subpattern count = 0 1629May match empty string 1630No options 1631No first char 1632No need char 1633 abcd 1634 0: 1635 -abc 1636 0: 1637 \Nab-c 1638 0: - 1639 *** Failers 1640 0: 1641 \Nabc 1642No match 1643 1644/^.?abcd/IS 1645Capturing subpattern count = 0 1646Options: anchored 1647No first char 1648Need char = 'd' 1649Subject length lower bound = 4 1650No starting char list 1651 1652/\( # ( at start 1653 (?: # Non-capturing bracket 1654 (?>[^()]+) # Either a sequence of non-brackets (no backtracking) 1655 | # Or 1656 (?R) # Recurse - i.e. nested bracketed string 1657 )* # Zero or more contents 1658 \) # Closing ) 1659 /Ix 1660Capturing subpattern count = 0 1661Options: extended 1662First char = '(' 1663Need char = ')' 1664 (abcd) 1665 0: (abcd) 1666 (abcd)xyz 1667 0: (abcd) 1668 xyz(abcd) 1669 0: (abcd) 1670 (ab(xy)cd)pqr 1671 0: (ab(xy)cd) 1672 (ab(xycd)pqr 1673 0: (xycd) 1674 () abc () 1675 0: () 1676 12(abcde(fsh)xyz(foo(bar))lmno)89 1677 0: (abcde(fsh)xyz(foo(bar))lmno) 1678 *** Failers 1679No match 1680 abcd 1681No match 1682 abcd) 1683No match 1684 (abcd 1685No match 1686 1687/\( ( (?>[^()]+) | (?R) )* \) /Ixg 1688Capturing subpattern count = 1 1689Options: extended 1690First char = '(' 1691Need char = ')' 1692 (ab(xy)cd)pqr 1693 0: (ab(xy)cd) 1694 1: cd 1695 1(abcd)(x(y)z)pqr 1696 0: (abcd) 1697 1: abcd 1698 0: (x(y)z) 1699 1: z 1700 1701/\( (?: (?>[^()]+) | (?R) ) \) /Ix 1702Capturing subpattern count = 0 1703Options: extended 1704First char = '(' 1705Need char = ')' 1706 (abcd) 1707 0: (abcd) 1708 (ab(xy)cd) 1709 0: (xy) 1710 (a(b(c)d)e) 1711 0: (c) 1712 ((ab)) 1713 0: ((ab)) 1714 *** Failers 1715No match 1716 () 1717No match 1718 1719/\( (?: (?>[^()]+) | (?R) )? \) /Ix 1720Capturing subpattern count = 0 1721Options: extended 1722First char = '(' 1723Need char = ')' 1724 () 1725 0: () 1726 12(abcde(fsh)xyz(foo(bar))lmno)89 1727 0: (fsh) 1728 1729/\( ( (?>[^()]+) | (?R) )* \) /Ix 1730Capturing subpattern count = 1 1731Options: extended 1732First char = '(' 1733Need char = ')' 1734 (ab(xy)cd) 1735 0: (ab(xy)cd) 1736 1: cd 1737 1738/\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix 1739Capturing subpattern count = 2 1740Options: extended 1741First char = '(' 1742Need char = ')' 1743 (ab(xy)cd) 1744 0: (ab(xy)cd) 1745 1: ab(xy)cd 1746 2: cd 1747 1748/\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix 1749Capturing subpattern count = 3 1750Options: extended 1751First char = '(' 1752Need char = ')' 1753 (ab(xy)cd) 1754 0: (ab(xy)cd) 1755 1: <unset> 1756 2: ab(xy)cd 1757 3: cd 1758 (123ab(xy)cd) 1759 0: (123ab(xy)cd) 1760 1: 123 1761 2: ab(xy)cd 1762 3: cd 1763 1764/\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix 1765Capturing subpattern count = 3 1766Options: extended 1767First char = '(' 1768Need char = ')' 1769 (ab(xy)cd) 1770 0: (ab(xy)cd) 1771 1: ab(xy)cd 1772 2: <unset> 1773 3: cd 1774 (123ab(xy)cd) 1775 0: (123ab(xy)cd) 1776 1: 123ab(xy)cd 1777 2: 123 1778 3: cd 1779 1780/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix 1781Capturing subpattern count = 11 1782Options: extended 1783First char = '(' 1784Need char = ')' 1785 (ab(xy)cd) 1786 0: (ab(xy)cd) 1787 1: ab(xy)cd 1788 2: ab(xy)cd 1789 3: ab(xy)cd 1790 4: ab(xy)cd 1791 5: ab(xy)cd 1792 6: ab(xy)cd 1793 7: ab(xy)cd 1794 8: ab(xy)cd 1795 9: ab(xy)cd 179610: ab(xy)cd 179711: cd 1798 1799/\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix 1800Capturing subpattern count = 3 1801Options: extended 1802First char = '(' 1803Need char = ')' 1804 (abcd(xyz<p>qrs)123) 1805 0: (abcd(xyz<p>qrs)123) 1806 1: abcd(xyz<p>qrs)123 1807 2: 123 1808 1809/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix 1810Capturing subpattern count = 3 1811Options: extended 1812First char = '(' 1813Need char = ')' 1814 (ab(cd)ef) 1815 0: (ab(cd)ef) 1816 1: ab(cd)ef 1817 2: ef 1818 3: (cd) 1819 (ab(cd(ef)gh)ij) 1820 0: (ab(cd(ef)gh)ij) 1821 1: ab(cd(ef)gh)ij 1822 2: ij 1823 3: (cd(ef)gh) 1824 1825/^[[:alnum:]]/DZ 1826------------------------------------------------------------------ 1827 Bra 1828 ^ 1829 [0-9A-Za-z] 1830 Ket 1831 End 1832------------------------------------------------------------------ 1833Capturing subpattern count = 0 1834Options: anchored 1835No first char 1836No need char 1837 1838/^[[:^alnum:]]/DZ 1839------------------------------------------------------------------ 1840 Bra 1841 ^ 1842 [\x00-/:-@[-`{-\xff] (neg) 1843 Ket 1844 End 1845------------------------------------------------------------------ 1846Capturing subpattern count = 0 1847Options: anchored 1848No first char 1849No need char 1850 1851/^[[:alpha:]]/DZ 1852------------------------------------------------------------------ 1853 Bra 1854 ^ 1855 [A-Za-z] 1856 Ket 1857 End 1858------------------------------------------------------------------ 1859Capturing subpattern count = 0 1860Options: anchored 1861No first char 1862No need char 1863 1864/^[[:^alpha:]]/DZ 1865------------------------------------------------------------------ 1866 Bra 1867 ^ 1868 [\x00-@[-`{-\xff] (neg) 1869 Ket 1870 End 1871------------------------------------------------------------------ 1872Capturing subpattern count = 0 1873Options: anchored 1874No first char 1875No need char 1876 1877/[_[:alpha:]]/IS 1878Capturing subpattern count = 0 1879No options 1880No first char 1881No need char 1882Subject length lower bound = 1 1883Starting chars: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1884 _ a b c d e f g h i j k l m n o p q r s t u v w x y z 1885 1886/^[[:ascii:]]/DZ 1887------------------------------------------------------------------ 1888 Bra 1889 ^ 1890 [\x00-\x7f] 1891 Ket 1892 End 1893------------------------------------------------------------------ 1894Capturing subpattern count = 0 1895Options: anchored 1896No first char 1897No need char 1898 1899/^[[:^ascii:]]/DZ 1900------------------------------------------------------------------ 1901 Bra 1902 ^ 1903 [\x80-\xff] (neg) 1904 Ket 1905 End 1906------------------------------------------------------------------ 1907Capturing subpattern count = 0 1908Options: anchored 1909No first char 1910No need char 1911 1912/^[[:blank:]]/DZ 1913------------------------------------------------------------------ 1914 Bra 1915 ^ 1916 [\x09 ] 1917 Ket 1918 End 1919------------------------------------------------------------------ 1920Capturing subpattern count = 0 1921Options: anchored 1922No first char 1923No need char 1924 1925/^[[:^blank:]]/DZ 1926------------------------------------------------------------------ 1927 Bra 1928 ^ 1929 [\x00-\x08\x0a-\x1f!-\xff] (neg) 1930 Ket 1931 End 1932------------------------------------------------------------------ 1933Capturing subpattern count = 0 1934Options: anchored 1935No first char 1936No need char 1937 1938/[\n\x0b\x0c\x0d[:blank:]]/IS 1939Capturing subpattern count = 0 1940Contains explicit CR or LF match 1941No options 1942No first char 1943No need char 1944Subject length lower bound = 1 1945Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 1946 1947/^[[:cntrl:]]/DZ 1948------------------------------------------------------------------ 1949 Bra 1950 ^ 1951 [\x00-\x1f\x7f] 1952 Ket 1953 End 1954------------------------------------------------------------------ 1955Capturing subpattern count = 0 1956Options: anchored 1957No first char 1958No need char 1959 1960/^[[:digit:]]/DZ 1961------------------------------------------------------------------ 1962 Bra 1963 ^ 1964 [0-9] 1965 Ket 1966 End 1967------------------------------------------------------------------ 1968Capturing subpattern count = 0 1969Options: anchored 1970No first char 1971No need char 1972 1973/^[[:graph:]]/DZ 1974------------------------------------------------------------------ 1975 Bra 1976 ^ 1977 [!-~] 1978 Ket 1979 End 1980------------------------------------------------------------------ 1981Capturing subpattern count = 0 1982Options: anchored 1983No first char 1984No need char 1985 1986/^[[:lower:]]/DZ 1987------------------------------------------------------------------ 1988 Bra 1989 ^ 1990 [a-z] 1991 Ket 1992 End 1993------------------------------------------------------------------ 1994Capturing subpattern count = 0 1995Options: anchored 1996No first char 1997No need char 1998 1999/^[[:print:]]/DZ 2000------------------------------------------------------------------ 2001 Bra 2002 ^ 2003 [ -~] 2004 Ket 2005 End 2006------------------------------------------------------------------ 2007Capturing subpattern count = 0 2008Options: anchored 2009No first char 2010No need char 2011 2012/^[[:punct:]]/DZ 2013------------------------------------------------------------------ 2014 Bra 2015 ^ 2016 [!-/:-@[-`{-~] 2017 Ket 2018 End 2019------------------------------------------------------------------ 2020Capturing subpattern count = 0 2021Options: anchored 2022No first char 2023No need char 2024 2025/^[[:space:]]/DZ 2026------------------------------------------------------------------ 2027 Bra 2028 ^ 2029 [\x09-\x0d ] 2030 Ket 2031 End 2032------------------------------------------------------------------ 2033Capturing subpattern count = 0 2034Options: anchored 2035No first char 2036No need char 2037 2038/^[[:upper:]]/DZ 2039------------------------------------------------------------------ 2040 Bra 2041 ^ 2042 [A-Z] 2043 Ket 2044 End 2045------------------------------------------------------------------ 2046Capturing subpattern count = 0 2047Options: anchored 2048No first char 2049No need char 2050 2051/^[[:xdigit:]]/DZ 2052------------------------------------------------------------------ 2053 Bra 2054 ^ 2055 [0-9A-Fa-f] 2056 Ket 2057 End 2058------------------------------------------------------------------ 2059Capturing subpattern count = 0 2060Options: anchored 2061No first char 2062No need char 2063 2064/^[[:word:]]/DZ 2065------------------------------------------------------------------ 2066 Bra 2067 ^ 2068 [0-9A-Z_a-z] 2069 Ket 2070 End 2071------------------------------------------------------------------ 2072Capturing subpattern count = 0 2073Options: anchored 2074No first char 2075No need char 2076 2077/^[[:^cntrl:]]/DZ 2078------------------------------------------------------------------ 2079 Bra 2080 ^ 2081 [ -~\x80-\xff] (neg) 2082 Ket 2083 End 2084------------------------------------------------------------------ 2085Capturing subpattern count = 0 2086Options: anchored 2087No first char 2088No need char 2089 2090/^[12[:^digit:]]/DZ 2091------------------------------------------------------------------ 2092 Bra 2093 ^ 2094 [\x00-/12:-\xff] (neg) 2095 Ket 2096 End 2097------------------------------------------------------------------ 2098Capturing subpattern count = 0 2099Options: anchored 2100No first char 2101No need char 2102 2103/^[[:^blank:]]/DZ 2104------------------------------------------------------------------ 2105 Bra 2106 ^ 2107 [\x00-\x08\x0a-\x1f!-\xff] (neg) 2108 Ket 2109 End 2110------------------------------------------------------------------ 2111Capturing subpattern count = 0 2112Options: anchored 2113No first char 2114No need char 2115 2116/[01[:alpha:]%]/DZ 2117------------------------------------------------------------------ 2118 Bra 2119 [%01A-Za-z] 2120 Ket 2121 End 2122------------------------------------------------------------------ 2123Capturing subpattern count = 0 2124No options 2125No first char 2126No need char 2127 2128/[[.ch.]]/I 2129Failed: POSIX collating elements are not supported at offset 1 2130 2131/[[=ch=]]/I 2132Failed: POSIX collating elements are not supported at offset 1 2133 2134/[[:rhubarb:]]/I 2135Failed: unknown POSIX class name at offset 3 2136 2137/[[:upper:]]/Ii 2138Capturing subpattern count = 0 2139Options: caseless 2140No first char 2141No need char 2142 A 2143 0: A 2144 a 2145 0: a 2146 2147/[[:lower:]]/Ii 2148Capturing subpattern count = 0 2149Options: caseless 2150No first char 2151No need char 2152 A 2153 0: A 2154 a 2155 0: a 2156 2157/((?-i)[[:lower:]])[[:lower:]]/Ii 2158Capturing subpattern count = 1 2159Options: caseless 2160No first char 2161No need char 2162 ab 2163 0: ab 2164 1: a 2165 aB 2166 0: aB 2167 1: a 2168 *** Failers 2169 0: ai 2170 1: a 2171 Ab 2172No match 2173 AB 2174No match 2175 2176/[\200-\110]/I 2177Failed: range out of order in character class at offset 9 2178 2179/^(?(0)f|b)oo/I 2180Failed: invalid condition (?(0) at offset 6 2181 2182/This one's here because of the large output vector needed/I 2183Capturing subpattern count = 0 2184No options 2185First char = 'T' 2186Need char = 'd' 2187 2188/(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I 2189Capturing subpattern count = 271 2190Max back reference = 270 2191No options 2192No first char 2193No need char 2194 \O900 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC 2195 0: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC 2196 1: 1 2197 2: 2 2198 3: 3 2199 4: 4 2200 5: 5 2201 6: 6 2202 7: 7 2203 8: 8 2204 9: 9 220510: 10 220611: 11 220712: 12 220813: 13 220914: 14 221015: 15 221116: 16 221217: 17 221318: 18 221419: 19 221520: 20 221621: 21 221722: 22 221823: 23 221924: 24 222025: 25 222126: 26 222227: 27 222328: 28 222429: 29 222530: 30 222631: 31 222732: 32 222833: 33 222934: 34 223035: 35 223136: 36 223237: 37 223338: 38 223439: 39 223540: 40 223641: 41 223742: 42 223843: 43 223944: 44 224045: 45 224146: 46 224247: 47 224348: 48 224449: 49 224550: 50 224651: 51 224752: 52 224853: 53 224954: 54 225055: 55 225156: 56 225257: 57 225358: 58 225459: 59 225560: 60 225661: 61 225762: 62 225863: 63 225964: 64 226065: 65 226166: 66 226267: 67 226368: 68 226469: 69 226570: 70 226671: 71 226772: 72 226873: 73 226974: 74 227075: 75 227176: 76 227277: 77 227378: 78 227479: 79 227580: 80 227681: 81 227782: 82 227883: 83 227984: 84 228085: 85 228186: 86 228287: 87 228388: 88 228489: 89 228590: 90 228691: 91 228792: 92 228893: 93 228994: 94 229095: 95 229196: 96 229297: 97 229398: 98 229499: 99 2295100: 100 2296101: 101 2297102: 102 2298103: 103 2299104: 104 2300105: 105 2301106: 106 2302107: 107 2303108: 108 2304109: 109 2305110: 110 2306111: 111 2307112: 112 2308113: 113 2309114: 114 2310115: 115 2311116: 116 2312117: 117 2313118: 118 2314119: 119 2315120: 120 2316121: 121 2317122: 122 2318123: 123 2319124: 124 2320125: 125 2321126: 126 2322127: 127 2323128: 128 2324129: 129 2325130: 130 2326131: 131 2327132: 132 2328133: 133 2329134: 134 2330135: 135 2331136: 136 2332137: 137 2333138: 138 2334139: 139 2335140: 140 2336141: 141 2337142: 142 2338143: 143 2339144: 144 2340145: 145 2341146: 146 2342147: 147 2343148: 148 2344149: 149 2345150: 150 2346151: 151 2347152: 152 2348153: 153 2349154: 154 2350155: 155 2351156: 156 2352157: 157 2353158: 158 2354159: 159 2355160: 160 2356161: 161 2357162: 162 2358163: 163 2359164: 164 2360165: 165 2361166: 166 2362167: 167 2363168: 168 2364169: 169 2365170: 170 2366171: 171 2367172: 172 2368173: 173 2369174: 174 2370175: 175 2371176: 176 2372177: 177 2373178: 178 2374179: 179 2375180: 180 2376181: 181 2377182: 182 2378183: 183 2379184: 184 2380185: 185 2381186: 186 2382187: 187 2383188: 188 2384189: 189 2385190: 190 2386191: 191 2387192: 192 2388193: 193 2389194: 194 2390195: 195 2391196: 196 2392197: 197 2393198: 198 2394199: 199 2395200: 200 2396201: 201 2397202: 202 2398203: 203 2399204: 204 2400205: 205 2401206: 206 2402207: 207 2403208: 208 2404209: 209 2405210: 210 2406211: 211 2407212: 212 2408213: 213 2409214: 214 2410215: 215 2411216: 216 2412217: 217 2413218: 218 2414219: 219 2415220: 220 2416221: 221 2417222: 222 2418223: 223 2419224: 224 2420225: 225 2421226: 226 2422227: 227 2423228: 228 2424229: 229 2425230: 230 2426231: 231 2427232: 232 2428233: 233 2429234: 234 2430235: 235 2431236: 236 2432237: 237 2433238: 238 2434239: 239 2435240: 240 2436241: 241 2437242: 242 2438243: 243 2439244: 244 2440245: 245 2441246: 246 2442247: 247 2443248: 248 2444249: 249 2445250: 250 2446251: 251 2447252: 252 2448253: 253 2449254: 254 2450255: 255 2451256: 256 2452257: 257 2453258: 258 2454259: 259 2455260: 260 2456261: 261 2457262: 262 2458263: 263 2459264: 264 2460265: 265 2461266: 266 2462267: 267 2463268: 268 2464269: 269 2465270: ABC 2466271: ABC 2467 2468/This one's here because Perl does this differently and PCRE can't at present/I 2469Capturing subpattern count = 0 2470No options 2471First char = 'T' 2472Need char = 't' 2473 2474/(main(O)?)+/I 2475Capturing subpattern count = 2 2476No options 2477First char = 'm' 2478Need char = 'n' 2479 mainmain 2480 0: mainmain 2481 1: main 2482 mainOmain 2483 0: mainOmain 2484 1: main 2485 2: O 2486 2487/These are all cases where Perl does it differently (nested captures)/I 2488Capturing subpattern count = 1 2489No options 2490First char = 'T' 2491Need char = 's' 2492 2493/^(a(b)?)+$/I 2494Capturing subpattern count = 2 2495Options: anchored 2496No first char 2497No need char 2498 aba 2499 0: aba 2500 1: a 2501 2: b 2502 2503/^(aa(bb)?)+$/I 2504Capturing subpattern count = 2 2505Options: anchored 2506No first char 2507No need char 2508 aabbaa 2509 0: aabbaa 2510 1: aa 2511 2: bb 2512 2513/^(aa|aa(bb))+$/I 2514Capturing subpattern count = 2 2515Options: anchored 2516No first char 2517No need char 2518 aabbaa 2519 0: aabbaa 2520 1: aa 2521 2: bb 2522 2523/^(aa(bb)??)+$/I 2524Capturing subpattern count = 2 2525Options: anchored 2526No first char 2527No need char 2528 aabbaa 2529 0: aabbaa 2530 1: aa 2531 2: bb 2532 2533/^(?:aa(bb)?)+$/I 2534Capturing subpattern count = 1 2535Options: anchored 2536No first char 2537No need char 2538 aabbaa 2539 0: aabbaa 2540 1: bb 2541 2542/^(aa(b(b))?)+$/I 2543Capturing subpattern count = 3 2544Options: anchored 2545No first char 2546No need char 2547 aabbaa 2548 0: aabbaa 2549 1: aa 2550 2: bb 2551 3: b 2552 2553/^(?:aa(b(b))?)+$/I 2554Capturing subpattern count = 2 2555Options: anchored 2556No first char 2557No need char 2558 aabbaa 2559 0: aabbaa 2560 1: bb 2561 2: b 2562 2563/^(?:aa(b(?:b))?)+$/I 2564Capturing subpattern count = 1 2565Options: anchored 2566No first char 2567No need char 2568 aabbaa 2569 0: aabbaa 2570 1: bb 2571 2572/^(?:aa(bb(?:b))?)+$/I 2573Capturing subpattern count = 1 2574Options: anchored 2575No first char 2576No need char 2577 aabbbaa 2578 0: aabbbaa 2579 1: bbb 2580 2581/^(?:aa(b(?:bb))?)+$/I 2582Capturing subpattern count = 1 2583Options: anchored 2584No first char 2585No need char 2586 aabbbaa 2587 0: aabbbaa 2588 1: bbb 2589 2590/^(?:aa(?:b(b))?)+$/I 2591Capturing subpattern count = 1 2592Options: anchored 2593No first char 2594No need char 2595 aabbaa 2596 0: aabbaa 2597 1: b 2598 2599/^(?:aa(?:b(bb))?)+$/I 2600Capturing subpattern count = 1 2601Options: anchored 2602No first char 2603No need char 2604 aabbbaa 2605 0: aabbbaa 2606 1: bb 2607 2608/^(aa(b(bb))?)+$/I 2609Capturing subpattern count = 3 2610Options: anchored 2611No first char 2612No need char 2613 aabbbaa 2614 0: aabbbaa 2615 1: aa 2616 2: bbb 2617 3: bb 2618 2619/^(aa(bb(bb))?)+$/I 2620Capturing subpattern count = 3 2621Options: anchored 2622No first char 2623No need char 2624 aabbbbaa 2625 0: aabbbbaa 2626 1: aa 2627 2: bbbb 2628 3: bb 2629 2630/--------------------------------------------------------------------/I 2631Capturing subpattern count = 0 2632No options 2633First char = '-' 2634Need char = '-' 2635 2636/#/IxDZ 2637------------------------------------------------------------------ 2638 Bra 2639 Ket 2640 End 2641------------------------------------------------------------------ 2642Capturing subpattern count = 0 2643May match empty string 2644Options: extended 2645No first char 2646No need char 2647 2648/a#/IxDZ 2649------------------------------------------------------------------ 2650 Bra 2651 a 2652 Ket 2653 End 2654------------------------------------------------------------------ 2655Capturing subpattern count = 0 2656Options: extended 2657First char = 'a' 2658No need char 2659 2660/[\s]/DZ 2661------------------------------------------------------------------ 2662 Bra 2663 [\x09-\x0d ] 2664 Ket 2665 End 2666------------------------------------------------------------------ 2667Capturing subpattern count = 0 2668No options 2669No first char 2670No need char 2671 2672/[\S]/DZ 2673------------------------------------------------------------------ 2674 Bra 2675 [\x00-\x08\x0e-\x1f!-\xff] (neg) 2676 Ket 2677 End 2678------------------------------------------------------------------ 2679Capturing subpattern count = 0 2680No options 2681No first char 2682No need char 2683 2684/a(?i)b/DZ 2685------------------------------------------------------------------ 2686 Bra 2687 a 2688 /i b 2689 Ket 2690 End 2691------------------------------------------------------------------ 2692Capturing subpattern count = 0 2693No options 2694First char = 'a' 2695Need char = 'b' (caseless) 2696 ab 2697 0: ab 2698 aB 2699 0: aB 2700 *** Failers 2701No match 2702 AB 2703No match 2704 2705/(a(?i)b)/DZ 2706------------------------------------------------------------------ 2707 Bra 2708 CBra 1 2709 a 2710 /i b 2711 Ket 2712 Ket 2713 End 2714------------------------------------------------------------------ 2715Capturing subpattern count = 1 2716No options 2717First char = 'a' 2718Need char = 'b' (caseless) 2719 ab 2720 0: ab 2721 1: ab 2722 aB 2723 0: aB 2724 1: aB 2725 *** Failers 2726No match 2727 AB 2728No match 2729 2730/ (?i)abc/IxDZ 2731------------------------------------------------------------------ 2732 Bra 2733 /i abc 2734 Ket 2735 End 2736------------------------------------------------------------------ 2737Capturing subpattern count = 0 2738Options: extended 2739First char = 'a' (caseless) 2740Need char = 'c' (caseless) 2741 2742/#this is a comment 2743 (?i)abc/IxDZ 2744------------------------------------------------------------------ 2745 Bra 2746 /i abc 2747 Ket 2748 End 2749------------------------------------------------------------------ 2750Capturing subpattern count = 0 2751Options: extended 2752First char = 'a' (caseless) 2753Need char = 'c' (caseless) 2754 2755/123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ 2756------------------------------------------------------------------ 2757 Bra 2758 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 2759 Ket 2760 End 2761------------------------------------------------------------------ 2762Capturing subpattern count = 0 2763No options 2764First char = '1' 2765Need char = '0' 2766 2767/\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ 2768------------------------------------------------------------------ 2769 Bra 2770 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 2771 Ket 2772 End 2773------------------------------------------------------------------ 2774Capturing subpattern count = 0 2775No options 2776First char = '1' 2777Need char = '0' 2778 2779/\Q\E/DZ 2780------------------------------------------------------------------ 2781 Bra 2782 Ket 2783 End 2784------------------------------------------------------------------ 2785Capturing subpattern count = 0 2786May match empty string 2787No options 2788No first char 2789No need char 2790 \ 2791 0: 2792 2793/\Q\Ex/DZ 2794------------------------------------------------------------------ 2795 Bra 2796 x 2797 Ket 2798 End 2799------------------------------------------------------------------ 2800Capturing subpattern count = 0 2801No options 2802First char = 'x' 2803No need char 2804 2805/ \Q\E/DZ 2806------------------------------------------------------------------ 2807 Bra 2808 2809 Ket 2810 End 2811------------------------------------------------------------------ 2812Capturing subpattern count = 0 2813No options 2814First char = ' ' 2815No need char 2816 2817/a\Q\E/DZ 2818------------------------------------------------------------------ 2819 Bra 2820 a 2821 Ket 2822 End 2823------------------------------------------------------------------ 2824Capturing subpattern count = 0 2825No options 2826First char = 'a' 2827No need char 2828 abc 2829 0: a 2830 bca 2831 0: a 2832 bac 2833 0: a 2834 2835/a\Q\Eb/DZ 2836------------------------------------------------------------------ 2837 Bra 2838 ab 2839 Ket 2840 End 2841------------------------------------------------------------------ 2842Capturing subpattern count = 0 2843No options 2844First char = 'a' 2845Need char = 'b' 2846 abc 2847 0: ab 2848 2849/\Q\Eabc/DZ 2850------------------------------------------------------------------ 2851 Bra 2852 abc 2853 Ket 2854 End 2855------------------------------------------------------------------ 2856Capturing subpattern count = 0 2857No options 2858First char = 'a' 2859Need char = 'c' 2860 2861/x*+\w/DZ 2862------------------------------------------------------------------ 2863 Bra 2864 x*+ 2865 \w 2866 Ket 2867 End 2868------------------------------------------------------------------ 2869Capturing subpattern count = 0 2870No options 2871No first char 2872No need char 2873 *** Failers 2874 0: F 2875 xxxxx 2876No match 2877 2878/x?+/DZ 2879------------------------------------------------------------------ 2880 Bra 2881 x?+ 2882 Ket 2883 End 2884------------------------------------------------------------------ 2885Capturing subpattern count = 0 2886May match empty string 2887No options 2888No first char 2889No need char 2890 2891/x++/DZ 2892------------------------------------------------------------------ 2893 Bra 2894 x++ 2895 Ket 2896 End 2897------------------------------------------------------------------ 2898Capturing subpattern count = 0 2899No options 2900First char = 'x' 2901No need char 2902 2903/x{1,3}+/BZO 2904------------------------------------------------------------------ 2905 Bra 2906 x 2907 x{0,2}+ 2908 Ket 2909 End 2910------------------------------------------------------------------ 2911 2912/x{1,3}+/BZOi 2913------------------------------------------------------------------ 2914 Bra 2915 /i x 2916 /i x{0,2}+ 2917 Ket 2918 End 2919------------------------------------------------------------------ 2920 2921/[^x]{1,3}+/BZO 2922------------------------------------------------------------------ 2923 Bra 2924 [^x] 2925 [^x]{0,2}+ 2926 Ket 2927 End 2928------------------------------------------------------------------ 2929 2930/[^x]{1,3}+/BZOi 2931------------------------------------------------------------------ 2932 Bra 2933 /i [^x] 2934 /i [^x]{0,2}+ 2935 Ket 2936 End 2937------------------------------------------------------------------ 2938 2939/(x)*+/DZ 2940------------------------------------------------------------------ 2941 Bra 2942 Braposzero 2943 CBraPos 1 2944 x 2945 KetRpos 2946 Ket 2947 End 2948------------------------------------------------------------------ 2949Capturing subpattern count = 1 2950May match empty string 2951No options 2952No first char 2953No need char 2954 2955/^(\w++|\s++)*$/I 2956Capturing subpattern count = 1 2957May match empty string 2958Options: anchored 2959No first char 2960No need char 2961 now is the time for all good men to come to the aid of the party 2962 0: now is the time for all good men to come to the aid of the party 2963 1: party 2964 *** Failers 2965No match 2966 this is not a line with only words and spaces! 2967No match 2968 2969/(\d++)(\w)/I 2970Capturing subpattern count = 2 2971No options 2972No first char 2973No need char 2974 12345a 2975 0: 12345a 2976 1: 12345 2977 2: a 2978 *** Failers 2979No match 2980 12345+ 2981No match 2982 2983/a++b/I 2984Capturing subpattern count = 0 2985No options 2986First char = 'a' 2987Need char = 'b' 2988 aaab 2989 0: aaab 2990 2991/(a++b)/I 2992Capturing subpattern count = 1 2993No options 2994First char = 'a' 2995Need char = 'b' 2996 aaab 2997 0: aaab 2998 1: aaab 2999 3000/(a++)b/I 3001Capturing subpattern count = 1 3002No options 3003First char = 'a' 3004Need char = 'b' 3005 aaab 3006 0: aaab 3007 1: aaa 3008 3009/([^()]++|\([^()]*\))+/I 3010Capturing subpattern count = 1 3011No options 3012No first char 3013No need char 3014 ((abc(ade)ufh()()x 3015 0: abc(ade)ufh()()x 3016 1: x 3017 3018/\(([^()]++|\([^()]+\))+\)/I 3019Capturing subpattern count = 1 3020No options 3021First char = '(' 3022Need char = ')' 3023 (abc) 3024 0: (abc) 3025 1: abc 3026 (abc(def)xyz) 3027 0: (abc(def)xyz) 3028 1: xyz 3029 *** Failers 3030No match 3031 ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 3032No match 3033 3034/(abc){1,3}+/DZ 3035------------------------------------------------------------------ 3036 Bra 3037 Once 3038 CBra 1 3039 abc 3040 Ket 3041 Brazero 3042 Bra 3043 CBra 1 3044 abc 3045 Ket 3046 Brazero 3047 CBra 1 3048 abc 3049 Ket 3050 Ket 3051 Ket 3052 Ket 3053 End 3054------------------------------------------------------------------ 3055Capturing subpattern count = 1 3056No options 3057First char = 'a' 3058Need char = 'c' 3059 3060/a+?+/I 3061Failed: nothing to repeat at offset 3 3062 3063/a{2,3}?+b/I 3064Failed: nothing to repeat at offset 7 3065 3066/(?U)a+?+/I 3067Failed: nothing to repeat at offset 7 3068 3069/a{2,3}?+b/IU 3070Failed: nothing to repeat at offset 7 3071 3072/x(?U)a++b/DZ 3073------------------------------------------------------------------ 3074 Bra 3075 x 3076 a++ 3077 b 3078 Ket 3079 End 3080------------------------------------------------------------------ 3081Capturing subpattern count = 0 3082No options 3083First char = 'x' 3084Need char = 'b' 3085 xaaaab 3086 0: xaaaab 3087 3088/(?U)xa++b/DZ 3089------------------------------------------------------------------ 3090 Bra 3091 x 3092 a++ 3093 b 3094 Ket 3095 End 3096------------------------------------------------------------------ 3097Capturing subpattern count = 0 3098No options 3099First char = 'x' 3100Need char = 'b' 3101 xaaaab 3102 0: xaaaab 3103 3104/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ 3105------------------------------------------------------------------ 3106 Bra 3107 ^ 3108 CBra 1 3109 CBra 2 3110 a+ 3111 Ket 3112 CBra 3 3113 [ab]+? 3114 Ket 3115 CBra 4 3116 [bc]+ 3117 Ket 3118 CBra 5 3119 \w*+ 3120 Ket 3121 Ket 3122 Ket 3123 End 3124------------------------------------------------------------------ 3125Capturing subpattern count = 5 3126Options: anchored 3127No first char 3128No need char 3129 3130/^x(?U)a+b/DZ 3131------------------------------------------------------------------ 3132 Bra 3133 ^ 3134 x 3135 a++ 3136 b 3137 Ket 3138 End 3139------------------------------------------------------------------ 3140Capturing subpattern count = 0 3141Options: anchored 3142No first char 3143Need char = 'b' 3144 3145/^x(?U)(a+)b/DZ 3146------------------------------------------------------------------ 3147 Bra 3148 ^ 3149 x 3150 CBra 1 3151 a+? 3152 Ket 3153 b 3154 Ket 3155 End 3156------------------------------------------------------------------ 3157Capturing subpattern count = 1 3158Options: anchored 3159No first char 3160Need char = 'b' 3161 3162/[.x.]/I 3163Failed: POSIX collating elements are not supported at offset 0 3164 3165/[=x=]/I 3166Failed: POSIX collating elements are not supported at offset 0 3167 3168/[:x:]/I 3169Failed: POSIX named classes are supported only within a class at offset 0 3170 3171/\l/I 3172Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 3173 3174/\L/I 3175Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 3176 3177/\N{name}/I 3178Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 3179 3180/\u/I 3181Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 3182 3183/\U/I 3184Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 3185 3186/a{1,3}b/U 3187 ab 3188 0: ab 3189 3190/[/I 3191Failed: missing terminating ] for character class at offset 1 3192 3193/[a-/I 3194Failed: missing terminating ] for character class at offset 3 3195 3196/[[:space:]/I 3197Failed: missing terminating ] for character class at offset 10 3198 3199/[\s]/IDZ 3200------------------------------------------------------------------ 3201 Bra 3202 [\x09-\x0d ] 3203 Ket 3204 End 3205------------------------------------------------------------------ 3206Capturing subpattern count = 0 3207No options 3208No first char 3209No need char 3210 3211/[[:space:]]/IDZ 3212------------------------------------------------------------------ 3213 Bra 3214 [\x09-\x0d ] 3215 Ket 3216 End 3217------------------------------------------------------------------ 3218Capturing subpattern count = 0 3219No options 3220No first char 3221No need char 3222 3223/[[:space:]abcde]/IDZ 3224------------------------------------------------------------------ 3225 Bra 3226 [\x09-\x0d a-e] 3227 Ket 3228 End 3229------------------------------------------------------------------ 3230Capturing subpattern count = 0 3231No options 3232No first char 3233No need char 3234 3235/< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix 3236Capturing subpattern count = 0 3237Options: extended 3238First char = '<' 3239Need char = '>' 3240 <> 3241 0: <> 3242 <abcd> 3243 0: <abcd> 3244 <abc <123> hij> 3245 0: <abc <123> hij> 3246 <abc <def> hij> 3247 0: <def> 3248 <abc<>def> 3249 0: <abc<>def> 3250 <abc<> 3251 0: <> 3252 *** Failers 3253No match 3254 <abc 3255No match 3256 3257|8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ 3258------------------------------------------------------------------ 3259 Bra 3260 8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X 3261 \b 3262 Ket 3263 End 3264------------------------------------------------------------------ 3265Capturing subpattern count = 0 3266Max lookbehind = 1 3267No options 3268First char = '8' 3269Need char = 'X' 3270 3271|\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ 3272------------------------------------------------------------------ 3273 Bra 3274 $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X 3275 \b 3276 Ket 3277 End 3278------------------------------------------------------------------ 3279Capturing subpattern count = 0 3280Max lookbehind = 1 3281No options 3282First char = '$' 3283Need char = 'X' 3284 3285/(.*)\d+\1/I 3286Capturing subpattern count = 1 3287Max back reference = 1 3288No options 3289No first char 3290No need char 3291 3292/(.*)\d+/I 3293Capturing subpattern count = 1 3294No options 3295First char at start or follows newline 3296No need char 3297 3298/(.*)\d+\1/Is 3299Capturing subpattern count = 1 3300Max back reference = 1 3301Options: dotall 3302No first char 3303No need char 3304 3305/(.*)\d+/Is 3306Capturing subpattern count = 1 3307Options: anchored dotall 3308No first char 3309No need char 3310 3311/(.*(xyz))\d+\2/I 3312Capturing subpattern count = 2 3313Max back reference = 2 3314No options 3315First char at start or follows newline 3316Need char = 'z' 3317 3318/((.*))\d+\1/I 3319Capturing subpattern count = 2 3320Max back reference = 1 3321No options 3322No first char 3323No need char 3324 abc123bc 3325 0: bc123bc 3326 1: bc 3327 2: bc 3328 3329/a[b]/I 3330Capturing subpattern count = 0 3331No options 3332First char = 'a' 3333Need char = 'b' 3334 3335/(?=a).*/I 3336Capturing subpattern count = 0 3337May match empty string 3338No options 3339First char = 'a' 3340No need char 3341 3342/(?=abc).xyz/IiI 3343Capturing subpattern count = 0 3344Options: caseless 3345First char = 'a' (caseless) 3346Need char = 'z' (caseless) 3347 3348/(?=abc)(?i).xyz/I 3349Capturing subpattern count = 0 3350No options 3351First char = 'a' 3352Need char = 'z' (caseless) 3353 3354/(?=a)(?=b)/I 3355Capturing subpattern count = 0 3356May match empty string 3357No options 3358First char = 'a' 3359No need char 3360 3361/(?=.)a/I 3362Capturing subpattern count = 0 3363No options 3364First char = 'a' 3365No need char 3366 3367/((?=abcda)a)/I 3368Capturing subpattern count = 1 3369No options 3370First char = 'a' 3371Need char = 'a' 3372 3373/((?=abcda)ab)/I 3374Capturing subpattern count = 1 3375No options 3376First char = 'a' 3377Need char = 'b' 3378 3379/()a/I 3380Capturing subpattern count = 1 3381No options 3382No first char 3383Need char = 'a' 3384 3385/(?(1)ab|ac)(.)/I 3386Capturing subpattern count = 1 3387Max back reference = 1 3388No options 3389First char = 'a' 3390No need char 3391 3392/(?(1)abz|acz)(.)/I 3393Capturing subpattern count = 1 3394Max back reference = 1 3395No options 3396First char = 'a' 3397Need char = 'z' 3398 3399/(?(1)abz)(.)/I 3400Capturing subpattern count = 1 3401Max back reference = 1 3402No options 3403No first char 3404No need char 3405 3406/(?(1)abz)(1)23/I 3407Capturing subpattern count = 1 3408Max back reference = 1 3409No options 3410No first char 3411Need char = '3' 3412 3413/(a)+/I 3414Capturing subpattern count = 1 3415No options 3416First char = 'a' 3417No need char 3418 3419/(a){2,3}/I 3420Capturing subpattern count = 1 3421No options 3422First char = 'a' 3423Need char = 'a' 3424 3425/(a)*/I 3426Capturing subpattern count = 1 3427May match empty string 3428No options 3429No first char 3430No need char 3431 3432/[a]/I 3433Capturing subpattern count = 0 3434No options 3435First char = 'a' 3436No need char 3437 3438/[ab]/I 3439Capturing subpattern count = 0 3440No options 3441No first char 3442No need char 3443 3444/[ab]/IS 3445Capturing subpattern count = 0 3446No options 3447No first char 3448No need char 3449Subject length lower bound = 1 3450Starting chars: a b 3451 3452/[^a]/I 3453Capturing subpattern count = 0 3454No options 3455No first char 3456No need char 3457 3458/\d456/I 3459Capturing subpattern count = 0 3460No options 3461No first char 3462Need char = '6' 3463 3464/\d456/IS 3465Capturing subpattern count = 0 3466No options 3467No first char 3468Need char = '6' 3469Subject length lower bound = 4 3470Starting chars: 0 1 2 3 4 5 6 7 8 9 3471 3472/a^b/I 3473Capturing subpattern count = 0 3474No options 3475First char = 'a' 3476Need char = 'b' 3477 3478/^a/Im 3479Capturing subpattern count = 0 3480Options: multiline 3481First char at start or follows newline 3482Need char = 'a' 3483 abcde 3484 0: a 3485 xy\nabc 3486 0: a 3487 *** Failers 3488No match 3489 xyabc 3490No match 3491 3492/c|abc/I 3493Capturing subpattern count = 0 3494No options 3495No first char 3496Need char = 'c' 3497 3498/(?i)[ab]/IS 3499Capturing subpattern count = 0 3500No options 3501No first char 3502No need char 3503Subject length lower bound = 1 3504Starting chars: A B a b 3505 3506/[ab](?i)cd/IS 3507Capturing subpattern count = 0 3508No options 3509No first char 3510Need char = 'd' (caseless) 3511Subject length lower bound = 3 3512Starting chars: a b 3513 3514/abc(?C)def/I 3515Capturing subpattern count = 0 3516No options 3517First char = 'a' 3518Need char = 'f' 3519 abcdef 3520--->abcdef 3521 0 ^ ^ d 3522 0: abcdef 3523 1234abcdef 3524--->1234abcdef 3525 0 ^ ^ d 3526 0: abcdef 3527 *** Failers 3528No match 3529 abcxyz 3530No match 3531 abcxyzf 3532--->abcxyzf 3533 0 ^ ^ d 3534No match 3535 3536/abc(?C)de(?C1)f/I 3537Capturing subpattern count = 0 3538No options 3539First char = 'a' 3540Need char = 'f' 3541 123abcdef 3542--->123abcdef 3543 0 ^ ^ d 3544 1 ^ ^ f 3545 0: abcdef 3546 3547/(?C1)\dabc(?C2)def/IS 3548Capturing subpattern count = 0 3549No options 3550No first char 3551Need char = 'f' 3552Subject length lower bound = 7 3553Starting chars: 0 1 2 3 4 5 6 7 8 9 3554 1234abcdef 3555--->1234abcdef 3556 1 ^ \d 3557 1 ^ \d 3558 1 ^ \d 3559 1 ^ \d 3560 2 ^ ^ d 3561 0: 4abcdef 3562 *** Failers 3563No match 3564 abcdef 3565No match 3566 3567/(?C1)\dabc(?C2)def/ISS 3568Capturing subpattern count = 0 3569No options 3570No first char 3571Need char = 'f' 3572 1234abcdef 3573--->1234abcdef 3574 1 ^ \d 3575 1 ^ \d 3576 1 ^ \d 3577 1 ^ \d 3578 2 ^ ^ d 3579 0: 4abcdef 3580 *** Failers 3581No match 3582 abcdef 3583--->abcdef 3584 1 ^ \d 3585 1 ^ \d 3586 1 ^ \d 3587 1 ^ \d 3588 1 ^ \d 3589 1 ^ \d 3590No match 3591 3592/(?C255)ab/I 3593Capturing subpattern count = 0 3594No options 3595First char = 'a' 3596Need char = 'b' 3597 3598/(?C256)ab/I 3599Failed: number after (?C is > 255 at offset 6 3600 3601/(?Cab)xx/I 3602Failed: closing ) for (?C expected at offset 3 3603 3604/(?C12vr)x/I 3605Failed: closing ) for (?C expected at offset 5 3606 3607/abc(?C)def/I 3608Capturing subpattern count = 0 3609No options 3610First char = 'a' 3611Need char = 'f' 3612 *** Failers 3613No match 3614 \x83\x0\x61bcdef 3615--->\x83\x00abcdef 3616 0 ^ ^ d 3617 0: abcdef 3618 3619/(abc)(?C)de(?C1)f/I 3620Capturing subpattern count = 1 3621No options 3622First char = 'a' 3623Need char = 'f' 3624 123abcdef 3625--->123abcdef 3626 0 ^ ^ d 3627 1 ^ ^ f 3628 0: abcdef 3629 1: abc 3630 123abcdef\C+ 3631Callout 0: last capture = 1 3632 0: <unset> 3633 1: abc 3634--->123abcdef 3635 ^ ^ d 3636Callout 1: last capture = 1 3637 0: <unset> 3638 1: abc 3639--->123abcdef 3640 ^ ^ f 3641 0: abcdef 3642 1: abc 3643 123abcdef\C- 3644 0: abcdef 3645 1: abc 3646 *** Failers 3647No match 3648 123abcdef\C!1 3649--->123abcdef 3650 0 ^ ^ d 3651 1 ^ ^ f 3652No match 3653 3654/(?C0)(abc(?C1))*/I 3655Capturing subpattern count = 1 3656May match empty string 3657No options 3658No first char 3659No need char 3660 abcabcabc 3661--->abcabcabc 3662 0 ^ (abc(?C1))* 3663 1 ^ ^ ) 3664 1 ^ ^ ) 3665 1 ^ ^ ) 3666 0: abcabcabc 3667 1: abc 3668 abcabc\C!1!3 3669--->abcabc 3670 0 ^ (abc(?C1))* 3671 1 ^ ^ ) 3672 1 ^ ^ ) 3673 0: abcabc 3674 1: abc 3675 *** Failers 3676--->*** Failers 3677 0 ^ (abc(?C1))* 3678 0: 3679 abcabcabc\C!1!3 3680--->abcabcabc 3681 0 ^ (abc(?C1))* 3682 1 ^ ^ ) 3683 1 ^ ^ ) 3684 1 ^ ^ ) 3685 0: abcabc 3686 1: abc 3687 3688/(\d{3}(?C))*/I 3689Capturing subpattern count = 1 3690May match empty string 3691No options 3692No first char 3693No need char 3694 123\C+ 3695Callout 0: last capture = -1 3696 0: <unset> 3697--->123 3698 ^ ^ ) 3699 0: 123 3700 1: 123 3701 123456\C+ 3702Callout 0: last capture = -1 3703 0: <unset> 3704--->123456 3705 ^ ^ ) 3706Callout 0: last capture = 1 3707 0: <unset> 3708 1: 123 3709--->123456 3710 ^ ^ ) 3711 0: 123456 3712 1: 456 3713 123456789\C+ 3714Callout 0: last capture = -1 3715 0: <unset> 3716--->123456789 3717 ^ ^ ) 3718Callout 0: last capture = 1 3719 0: <unset> 3720 1: 123 3721--->123456789 3722 ^ ^ ) 3723Callout 0: last capture = 1 3724 0: <unset> 3725 1: 456 3726--->123456789 3727 ^ ^ ) 3728 0: 123456789 3729 1: 789 3730 3731/((xyz)(?C)p|(?C1)xyzabc)/I 3732Capturing subpattern count = 2 3733No options 3734First char = 'x' 3735No need char 3736 xyzabc\C+ 3737Callout 0: last capture = 2 3738 0: <unset> 3739 1: <unset> 3740 2: xyz 3741--->xyzabc 3742 ^ ^ p 3743Callout 1: last capture = -1 3744 0: <unset> 3745--->xyzabc 3746 ^ x 3747 0: xyzabc 3748 1: xyzabc 3749 3750/(X)((xyz)(?C)p|(?C1)xyzabc)/I 3751Capturing subpattern count = 3 3752No options 3753First char = 'X' 3754Need char = 'x' 3755 Xxyzabc\C+ 3756Callout 0: last capture = 3 3757 0: <unset> 3758 1: X 3759 2: <unset> 3760 3: xyz 3761--->Xxyzabc 3762 ^ ^ p 3763Callout 1: last capture = 1 3764 0: <unset> 3765 1: X 3766--->Xxyzabc 3767 ^^ x 3768 0: Xxyzabc 3769 1: X 3770 2: xyzabc 3771 3772/(?=(abc))(?C)abcdef/I 3773Capturing subpattern count = 1 3774No options 3775First char = 'a' 3776Need char = 'f' 3777 abcdef\C+ 3778Callout 0: last capture = 1 3779 0: <unset> 3780 1: abc 3781--->abcdef 3782 ^ a 3783 0: abcdef 3784 1: abc 3785 3786/(?!(abc)(?C1)d)(?C2)abcxyz/I 3787Capturing subpattern count = 1 3788No options 3789First char = 'a' 3790Need char = 'z' 3791 abcxyz\C+ 3792Callout 1: last capture = 1 3793 0: <unset> 3794 1: abc 3795--->abcxyz 3796 ^ ^ d 3797Callout 2: last capture = -1 3798 0: <unset> 3799--->abcxyz 3800 ^ a 3801 0: abcxyz 3802 3803/(?<=(abc)(?C))xyz/I 3804Capturing subpattern count = 1 3805Max lookbehind = 3 3806No options 3807First char = 'x' 3808Need char = 'z' 3809 abcxyz\C+ 3810Callout 0: last capture = 1 3811 0: <unset> 3812 1: abc 3813--->abcxyz 3814 ^ ) 3815 0: xyz 3816 1: abc 3817 3818/a(b+)(c*)(?C1)/I 3819Capturing subpattern count = 2 3820No options 3821First char = 'a' 3822Need char = 'b' 3823 abbbbbccc\C*1 3824--->abbbbbccc 3825 1 ^ ^ 3826Callout data = 1 3827No match 3828 3829/a(b+?)(c*?)(?C1)/I 3830Capturing subpattern count = 2 3831No options 3832First char = 'a' 3833Need char = 'b' 3834 abbbbbccc\C*1 3835--->abbbbbccc 3836 1 ^ ^ 3837Callout data = 1 3838 1 ^ ^ 3839Callout data = 1 3840 1 ^ ^ 3841Callout data = 1 3842 1 ^ ^ 3843Callout data = 1 3844 1 ^ ^ 3845Callout data = 1 3846 1 ^ ^ 3847Callout data = 1 3848 1 ^ ^ 3849Callout data = 1 3850 1 ^ ^ 3851Callout data = 1 3852No match 3853 3854/(?C)abc/I 3855Capturing subpattern count = 0 3856No options 3857First char = 'a' 3858Need char = 'c' 3859 3860/(?C)^abc/I 3861Capturing subpattern count = 0 3862Options: anchored 3863No first char 3864No need char 3865 3866/(?C)a|b/IS 3867Capturing subpattern count = 0 3868No options 3869No first char 3870No need char 3871Subject length lower bound = 1 3872Starting chars: a b 3873 3874/(?R)/I 3875Failed: recursive call could loop indefinitely at offset 3 3876 3877/(a|(?R))/I 3878Failed: recursive call could loop indefinitely at offset 6 3879 3880/(ab|(bc|(de|(?R))))/I 3881Failed: recursive call could loop indefinitely at offset 15 3882 3883/x(ab|(bc|(de|(?R))))/I 3884Capturing subpattern count = 3 3885No options 3886First char = 'x' 3887No need char 3888 xab 3889 0: xab 3890 1: ab 3891 xbc 3892 0: xbc 3893 1: bc 3894 2: bc 3895 xde 3896 0: xde 3897 1: de 3898 2: de 3899 3: de 3900 xxab 3901 0: xxab 3902 1: xab 3903 2: xab 3904 3: xab 3905 xxxab 3906 0: xxxab 3907 1: xxab 3908 2: xxab 3909 3: xxab 3910 *** Failers 3911No match 3912 xyab 3913No match 3914 3915/(ab|(bc|(de|(?1))))/I 3916Failed: recursive call could loop indefinitely at offset 15 3917 3918/x(ab|(bc|(de|(?1)x)x)x)/I 3919Failed: recursive call could loop indefinitely at offset 16 3920 3921/^([^()]|\((?1)*\))*$/I 3922Capturing subpattern count = 1 3923May match empty string 3924Options: anchored 3925No first char 3926No need char 3927 abc 3928 0: abc 3929 1: c 3930 a(b)c 3931 0: a(b)c 3932 1: c 3933 a(b(c))d 3934 0: a(b(c))d 3935 1: d 3936 *** Failers) 3937No match 3938 a(b(c)d 3939No match 3940 3941/^>abc>([^()]|\((?1)*\))*<xyz<$/I 3942Capturing subpattern count = 1 3943Options: anchored 3944No first char 3945Need char = '<' 3946 >abc>123<xyz< 3947 0: >abc>123<xyz< 3948 1: 3 3949 >abc>1(2)3<xyz< 3950 0: >abc>1(2)3<xyz< 3951 1: 3 3952 >abc>(1(2)3)<xyz< 3953 0: >abc>(1(2)3)<xyz< 3954 1: (1(2)3) 3955 3956/(a(?1)b)/DZ 3957------------------------------------------------------------------ 3958 Bra 3959 CBra 1 3960 a 3961 Recurse 3962 b 3963 Ket 3964 Ket 3965 End 3966------------------------------------------------------------------ 3967Capturing subpattern count = 1 3968No options 3969First char = 'a' 3970Need char = 'b' 3971 3972/(a(?1)+b)/DZ 3973------------------------------------------------------------------ 3974 Bra 3975 CBra 1 3976 a 3977 Once 3978 Recurse 3979 KetRmax 3980 b 3981 Ket 3982 Ket 3983 End 3984------------------------------------------------------------------ 3985Capturing subpattern count = 1 3986No options 3987First char = 'a' 3988Need char = 'b' 3989 3990/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I 3991Capturing subpattern count = 2 3992Options: anchored 3993No first char 3994No need char 3995 12 3996 0: 12 3997 1: 12 3998 (((2+2)*-3)-7) 3999 0: (((2+2)*-3)-7) 4000 1: (((2+2)*-3)-7) 4001 2: - 4002 -12 4003 0: -12 4004 1: -12 4005 *** Failers 4006No match 4007 ((2+2)*-3)-7) 4008No match 4009 4010/^(x(y|(?1){2})z)/I 4011Capturing subpattern count = 2 4012Options: anchored 4013No first char 4014No need char 4015 xyz 4016 0: xyz 4017 1: xyz 4018 2: y 4019 xxyzxyzz 4020 0: xxyzxyzz 4021 1: xxyzxyzz 4022 2: xyzxyz 4023 *** Failers 4024No match 4025 xxyzz 4026No match 4027 xxyzxyzxyzz 4028No match 4029 4030/((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix 4031Capturing subpattern count = 2 4032Options: extended 4033First char = '<' 4034Need char = '>' 4035 <> 4036 0: <> 4037 1: <> 4038 2: <> 4039 <abcd> 4040 0: <abcd> 4041 1: <abcd> 4042 2: <abcd> 4043 <abc <123> hij> 4044 0: <abc <123> hij> 4045 1: <abc <123> hij> 4046 2: <abc <123> hij> 4047 <abc <def> hij> 4048 0: <def> 4049 1: <def> 4050 2: <def> 4051 <abc<>def> 4052 0: <abc<>def> 4053 1: <abc<>def> 4054 2: <abc<>def> 4055 <abc<> 4056 0: <> 4057 1: <> 4058 2: <> 4059 *** Failers 4060No match 4061 <abc 4062No match 4063 4064/(?1)/I 4065Failed: reference to non-existent subpattern at offset 3 4066 4067/((?2)(abc)/I 4068Failed: missing ) at offset 10 4069 4070/^(abc)def(?1)/I 4071Capturing subpattern count = 1 4072Options: anchored 4073No first char 4074No need char 4075 abcdefabc 4076 0: abcdefabc 4077 1: abc 4078 4079/^(a|b|c)=(?1)+/I 4080Capturing subpattern count = 1 4081Options: anchored 4082No first char 4083No need char 4084 a=a 4085 0: a=a 4086 1: a 4087 a=b 4088 0: a=b 4089 1: a 4090 a=bc 4091 0: a=bc 4092 1: a 4093 4094/^(a|b|c)=((?1))+/I 4095Capturing subpattern count = 2 4096Options: anchored 4097No first char 4098No need char 4099 a=a 4100 0: a=a 4101 1: a 4102 2: a 4103 a=b 4104 0: a=b 4105 1: a 4106 2: b 4107 a=bc 4108 0: a=bc 4109 1: a 4110 2: c 4111 4112/a(?P<name1>b|c)d(?P<longername2>e)/DZ 4113------------------------------------------------------------------ 4114 Bra 4115 a 4116 CBra 1 4117 b 4118 Alt 4119 c 4120 Ket 4121 d 4122 CBra 2 4123 e 4124 Ket 4125 Ket 4126 End 4127------------------------------------------------------------------ 4128Capturing subpattern count = 2 4129Named capturing subpatterns: 4130 longername2 2 4131 name1 1 4132No options 4133First char = 'a' 4134Need char = 'e' 4135 abde 4136 0: abde 4137 1: b 4138 2: e 4139 acde 4140 0: acde 4141 1: c 4142 2: e 4143 4144/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ 4145------------------------------------------------------------------ 4146 Bra 4147 Bra 4148 a 4149 CBra 1 4150 c 4151 CBra 2 4152 d 4153 Ket 4154 Ket 4155 Ket 4156 CBra 3 4157 a 4158 Ket 4159 Ket 4160 End 4161------------------------------------------------------------------ 4162Capturing subpattern count = 3 4163Named capturing subpatterns: 4164 a 3 4165 c 1 4166 d 2 4167No options 4168First char = 'a' 4169Need char = 'a' 4170 4171/(?P<a>a)...(?P=a)bbb(?P>a)d/DZ 4172------------------------------------------------------------------ 4173 Bra 4174 CBra 1 4175 a 4176 Ket 4177 Any 4178 Any 4179 Any 4180 \1 4181 bbb 4182 Recurse 4183 d 4184 Ket 4185 End 4186------------------------------------------------------------------ 4187Capturing subpattern count = 1 4188Max back reference = 1 4189Named capturing subpatterns: 4190 a 1 4191No options 4192First char = 'a' 4193Need char = 'd' 4194 4195/^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii 4196Capturing subpattern count = 4 4197Max back reference = 4 4198Named capturing subpatterns: 4199 four 4 4200 one 1 4201 three 3 4202 two 2 4203May match empty string 4204Options: anchored caseless 4205No first char 4206No need char 4207 1221 4208 0: 1221 4209 1: 1221 4210 2: 1 4211 Satan, oscillate my metallic sonatas! 4212 0: Satan, oscillate my metallic sonatas! 4213 1: <unset> 4214 2: <unset> 4215 3: Satan, oscillate my metallic sonatas 4216 4: S 4217 A man, a plan, a canal: Panama! 4218 0: A man, a plan, a canal: Panama! 4219 1: <unset> 4220 2: <unset> 4221 3: A man, a plan, a canal: Panama 4222 4: A 4223 Able was I ere I saw Elba. 4224 0: Able was I ere I saw Elba. 4225 1: <unset> 4226 2: <unset> 4227 3: Able was I ere I saw Elba 4228 4: A 4229 *** Failers 4230No match 4231 The quick brown fox 4232No match 4233 4234/((?(R)a|b))\1(?1)?/I 4235Capturing subpattern count = 1 4236Max back reference = 1 4237No options 4238No first char 4239No need char 4240 bb 4241 0: bb 4242 1: b 4243 bbaa 4244 0: bba 4245 1: b 4246 4247/(.*)a/Is 4248Capturing subpattern count = 1 4249Options: anchored dotall 4250No first char 4251Need char = 'a' 4252 4253/(.*)a\1/Is 4254Capturing subpattern count = 1 4255Max back reference = 1 4256Options: dotall 4257No first char 4258Need char = 'a' 4259 4260/(.*)a(b)\2/Is 4261Capturing subpattern count = 2 4262Max back reference = 2 4263Options: anchored dotall 4264No first char 4265Need char = 'b' 4266 4267/((.*)a|(.*)b)z/Is 4268Capturing subpattern count = 3 4269Options: anchored dotall 4270No first char 4271Need char = 'z' 4272 4273/((.*)a|(.*)b)z\1/Is 4274Capturing subpattern count = 3 4275Max back reference = 1 4276Options: dotall 4277No first char 4278Need char = 'z' 4279 4280/((.*)a|(.*)b)z\2/Is 4281Capturing subpattern count = 3 4282Max back reference = 2 4283Options: dotall 4284No first char 4285Need char = 'z' 4286 4287/((.*)a|(.*)b)z\3/Is 4288Capturing subpattern count = 3 4289Max back reference = 3 4290Options: dotall 4291No first char 4292Need char = 'z' 4293 4294/((.*)a|^(.*)b)z\3/Is 4295Capturing subpattern count = 3 4296Max back reference = 3 4297Options: anchored dotall 4298No first char 4299Need char = 'z' 4300 4301/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is 4302Capturing subpattern count = 31 4303May match empty string 4304Options: anchored dotall 4305No first char 4306No need char 4307 4308/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is 4309Capturing subpattern count = 31 4310Max back reference = 31 4311May match empty string 4312Options: dotall 4313No first char 4314No need char 4315 4316/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is 4317Capturing subpattern count = 32 4318Max back reference = 32 4319May match empty string 4320Options: dotall 4321No first char 4322No need char 4323 4324/(a)(bc)/INDZ 4325------------------------------------------------------------------ 4326 Bra 4327 Bra 4328 a 4329 Ket 4330 Bra 4331 bc 4332 Ket 4333 Ket 4334 End 4335------------------------------------------------------------------ 4336Capturing subpattern count = 0 4337Options: no_auto_capture 4338First char = 'a' 4339Need char = 'c' 4340 abc 4341 0: abc 4342 4343/(?P<one>a)(bc)/INDZ 4344------------------------------------------------------------------ 4345 Bra 4346 CBra 1 4347 a 4348 Ket 4349 Bra 4350 bc 4351 Ket 4352 Ket 4353 End 4354------------------------------------------------------------------ 4355Capturing subpattern count = 1 4356Named capturing subpatterns: 4357 one 1 4358Options: no_auto_capture 4359First char = 'a' 4360Need char = 'c' 4361 abc 4362 0: abc 4363 1: a 4364 4365/(a)(?P<named>bc)/INDZ 4366------------------------------------------------------------------ 4367 Bra 4368 Bra 4369 a 4370 Ket 4371 CBra 1 4372 bc 4373 Ket 4374 Ket 4375 End 4376------------------------------------------------------------------ 4377Capturing subpattern count = 1 4378Named capturing subpatterns: 4379 named 1 4380Options: no_auto_capture 4381First char = 'a' 4382Need char = 'c' 4383 4384/(a+)*zz/I 4385Capturing subpattern count = 1 4386No options 4387No first char 4388Need char = 'z' 4389 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M 4390Minimum match() limit = 8 4391Minimum match() recursion limit = 6 4392 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz 4393 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 4394 aaaaaaaaaaaaaz\M 4395Minimum match() limit = 32768 4396Minimum match() recursion limit = 29 4397No match 4398 4399/(aaa(?C1)bbb|ab)/I 4400Capturing subpattern count = 1 4401No options 4402First char = 'a' 4403Need char = 'b' 4404 aaabbb 4405--->aaabbb 4406 1 ^ ^ b 4407 0: aaabbb 4408 1: aaabbb 4409 aaabbb\C*0 4410--->aaabbb 4411 1 ^ ^ b 4412 0: aaabbb 4413 1: aaabbb 4414 aaabbb\C*1 4415--->aaabbb 4416 1 ^ ^ b 4417Callout data = 1 4418 0: ab 4419 1: ab 4420 aaabbb\C*-1 4421--->aaabbb 4422 1 ^ ^ b 4423Callout data = -1 4424No match 4425 4426/ab(?P<one>cd)ef(?P<two>gh)/I 4427Capturing subpattern count = 2 4428Named capturing subpatterns: 4429 one 1 4430 two 2 4431No options 4432First char = 'a' 4433Need char = 'h' 4434 abcdefgh 4435 0: abcdefgh 4436 1: cd 4437 2: gh 4438 abcdefgh\C1\Gtwo 4439 0: abcdefgh 4440 1: cd 4441 2: gh 4442 1C cd (2) 4443 G gh (2) two 4444 abcdefgh\Cone\Ctwo 4445 0: abcdefgh 4446 1: cd 4447 2: gh 4448 C cd (2) one 4449 C gh (2) two 4450 abcdefgh\Cthree 4451no parentheses with name "three" 4452 0: abcdefgh 4453 1: cd 4454 2: gh 4455copy substring three failed -7 4456 4457/(?P<Tes>)(?P<Test>)/DZ 4458------------------------------------------------------------------ 4459 Bra 4460 CBra 1 4461 Ket 4462 CBra 2 4463 Ket 4464 Ket 4465 End 4466------------------------------------------------------------------ 4467Capturing subpattern count = 2 4468Named capturing subpatterns: 4469 Tes 1 4470 Test 2 4471May match empty string 4472No options 4473No first char 4474No need char 4475 4476/(?P<Test>)(?P<Tes>)/DZ 4477------------------------------------------------------------------ 4478 Bra 4479 CBra 1 4480 Ket 4481 CBra 2 4482 Ket 4483 Ket 4484 End 4485------------------------------------------------------------------ 4486Capturing subpattern count = 2 4487Named capturing subpatterns: 4488 Tes 2 4489 Test 1 4490May match empty string 4491No options 4492No first char 4493No need char 4494 4495/(?P<Z>zz)(?P<A>aa)/I 4496Capturing subpattern count = 2 4497Named capturing subpatterns: 4498 A 2 4499 Z 1 4500No options 4501First char = 'z' 4502Need char = 'a' 4503 zzaa\CZ 4504 0: zzaa 4505 1: zz 4506 2: aa 4507 C zz (2) Z 4508 zzaa\CA 4509 0: zzaa 4510 1: zz 4511 2: aa 4512 C aa (2) A 4513 4514/(?P<x>eks)(?P<x>eccs)/I 4515Failed: two named subpatterns have the same name at offset 15 4516 4517/(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I 4518Failed: two named subpatterns have the same name at offset 30 4519 4520"\[((?P<elem>\d+)(,(?P>elem))*)\]"I 4521Capturing subpattern count = 3 4522Named capturing subpatterns: 4523 elem 2 4524No options 4525First char = '[' 4526Need char = ']' 4527 [10,20,30,5,5,4,4,2,43,23,4234] 4528 0: [10,20,30,5,5,4,4,2,43,23,4234] 4529 1: 10,20,30,5,5,4,4,2,43,23,4234 4530 2: 10 4531 3: ,4234 4532 *** Failers 4533No match 4534 [] 4535No match 4536 4537"\[((?P<elem>\d+)(,(?P>elem))*)?\]"I 4538Capturing subpattern count = 3 4539Named capturing subpatterns: 4540 elem 2 4541No options 4542First char = '[' 4543Need char = ']' 4544 [10,20,30,5,5,4,4,2,43,23,4234] 4545 0: [10,20,30,5,5,4,4,2,43,23,4234] 4546 1: 10,20,30,5,5,4,4,2,43,23,4234 4547 2: 10 4548 3: ,4234 4549 [] 4550 0: [] 4551 4552/(a(b(?2)c))?/DZ 4553------------------------------------------------------------------ 4554 Bra 4555 Brazero 4556 CBra 1 4557 a 4558 CBra 2 4559 b 4560 Recurse 4561 c 4562 Ket 4563 Ket 4564 Ket 4565 End 4566------------------------------------------------------------------ 4567Capturing subpattern count = 2 4568May match empty string 4569No options 4570No first char 4571No need char 4572 4573/(a(b(?2)c))*/DZ 4574------------------------------------------------------------------ 4575 Bra 4576 Brazero 4577 CBra 1 4578 a 4579 CBra 2 4580 b 4581 Recurse 4582 c 4583 Ket 4584 KetRmax 4585 Ket 4586 End 4587------------------------------------------------------------------ 4588Capturing subpattern count = 2 4589May match empty string 4590No options 4591No first char 4592No need char 4593 4594/(a(b(?2)c)){0,2}/DZ 4595------------------------------------------------------------------ 4596 Bra 4597 Brazero 4598 Bra 4599 CBra 1 4600 a 4601 CBra 2 4602 b 4603 Recurse 4604 c 4605 Ket 4606 Ket 4607 Brazero 4608 CBra 1 4609 a 4610 CBra 2 4611 b 4612 Recurse 4613 c 4614 Ket 4615 Ket 4616 Ket 4617 Ket 4618 End 4619------------------------------------------------------------------ 4620Capturing subpattern count = 2 4621May match empty string 4622No options 4623No first char 4624No need char 4625 4626/[ab]{1}+/DZ 4627------------------------------------------------------------------ 4628 Bra 4629 [ab]{1,1}+ 4630 Ket 4631 End 4632------------------------------------------------------------------ 4633Capturing subpattern count = 0 4634No options 4635No first char 4636No need char 4637 4638/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii 4639Capturing subpattern count = 3 4640Options: caseless 4641No first char 4642Need char = 'g' (caseless) 4643 Baby Bjorn Active Carrier - With free SHIPPING!! 4644 0: Baby Bjorn Active Carrier - With free SHIPPING!! 4645 1: Baby Bjorn Active Carrier - With free SHIPPING!! 4646 4647/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS 4648Capturing subpattern count = 3 4649Options: caseless 4650No first char 4651Need char = 'g' (caseless) 4652Subject length lower bound = 8 4653No starting char list 4654 Baby Bjorn Active Carrier - With free SHIPPING!! 4655 0: Baby Bjorn Active Carrier - With free SHIPPING!! 4656 1: Baby Bjorn Active Carrier - With free SHIPPING!! 4657 4658/a*.*b/ISDZ 4659------------------------------------------------------------------ 4660 Bra 4661 a* 4662 Any* 4663 b 4664 Ket 4665 End 4666------------------------------------------------------------------ 4667Capturing subpattern count = 0 4668No options 4669No first char 4670Need char = 'b' 4671Subject length lower bound = 1 4672No starting char list 4673 4674/(a|b)*.?c/ISDZ 4675------------------------------------------------------------------ 4676 Bra 4677 Brazero 4678 CBra 1 4679 a 4680 Alt 4681 b 4682 KetRmax 4683 Any? 4684 c 4685 Ket 4686 End 4687------------------------------------------------------------------ 4688Capturing subpattern count = 1 4689No options 4690No first char 4691Need char = 'c' 4692Subject length lower bound = 1 4693No starting char list 4694 4695/abc(?C255)de(?C)f/DZ 4696------------------------------------------------------------------ 4697 Bra 4698 abc 4699 Callout 255 10 1 4700 de 4701 Callout 0 16 1 4702 f 4703 Ket 4704 End 4705------------------------------------------------------------------ 4706Capturing subpattern count = 0 4707No options 4708First char = 'a' 4709Need char = 'f' 4710 4711/abcde/ICDZ 4712------------------------------------------------------------------ 4713 Bra 4714 Callout 255 0 1 4715 a 4716 Callout 255 1 1 4717 b 4718 Callout 255 2 1 4719 c 4720 Callout 255 3 1 4721 d 4722 Callout 255 4 1 4723 e 4724 Callout 255 5 0 4725 Ket 4726 End 4727------------------------------------------------------------------ 4728Capturing subpattern count = 0 4729Options: 4730First char = 'a' 4731Need char = 'e' 4732 abcde 4733--->abcde 4734 +0 ^ a 4735 +1 ^^ b 4736 +2 ^ ^ c 4737 +3 ^ ^ d 4738 +4 ^ ^ e 4739 +5 ^ ^ 4740 0: abcde 4741 abcdfe 4742--->abcdfe 4743 +0 ^ a 4744 +1 ^^ b 4745 +2 ^ ^ c 4746 +3 ^ ^ d 4747 +4 ^ ^ e 4748No match 4749 4750/a*b/ICDZS 4751------------------------------------------------------------------ 4752 Bra 4753 Callout 255 0 2 4754 a*+ 4755 Callout 255 2 1 4756 b 4757 Callout 255 3 0 4758 Ket 4759 End 4760------------------------------------------------------------------ 4761Capturing subpattern count = 0 4762Options: 4763No first char 4764Need char = 'b' 4765Subject length lower bound = 1 4766Starting chars: a b 4767 ab 4768--->ab 4769 +0 ^ a* 4770 +2 ^^ b 4771 +3 ^ ^ 4772 0: ab 4773 aaaab 4774--->aaaab 4775 +0 ^ a* 4776 +2 ^ ^ b 4777 +3 ^ ^ 4778 0: aaaab 4779 aaaacb 4780--->aaaacb 4781 +0 ^ a* 4782 +2 ^ ^ b 4783 +0 ^ a* 4784 +2 ^ ^ b 4785 +0 ^ a* 4786 +2 ^ ^ b 4787 +0 ^ a* 4788 +2 ^^ b 4789 +0 ^ a* 4790 +2 ^ b 4791 +3 ^^ 4792 0: b 4793 4794/a*b/ICDZSS 4795------------------------------------------------------------------ 4796 Bra 4797 Callout 255 0 2 4798 a*+ 4799 Callout 255 2 1 4800 b 4801 Callout 255 3 0 4802 Ket 4803 End 4804------------------------------------------------------------------ 4805Capturing subpattern count = 0 4806Options: 4807No first char 4808Need char = 'b' 4809 ab 4810--->ab 4811 +0 ^ a* 4812 +2 ^^ b 4813 +3 ^ ^ 4814 0: ab 4815 aaaab 4816--->aaaab 4817 +0 ^ a* 4818 +2 ^ ^ b 4819 +3 ^ ^ 4820 0: aaaab 4821 aaaacb 4822--->aaaacb 4823 +0 ^ a* 4824 +2 ^ ^ b 4825 +0 ^ a* 4826 +2 ^ ^ b 4827 +0 ^ a* 4828 +2 ^ ^ b 4829 +0 ^ a* 4830 +2 ^^ b 4831 +0 ^ a* 4832 +2 ^ b 4833 +0 ^ a* 4834 +2 ^ b 4835 +3 ^^ 4836 0: b 4837 4838/a+b/ICDZ 4839------------------------------------------------------------------ 4840 Bra 4841 Callout 255 0 2 4842 a++ 4843 Callout 255 2 1 4844 b 4845 Callout 255 3 0 4846 Ket 4847 End 4848------------------------------------------------------------------ 4849Capturing subpattern count = 0 4850Options: 4851First char = 'a' 4852Need char = 'b' 4853 ab 4854--->ab 4855 +0 ^ a+ 4856 +2 ^^ b 4857 +3 ^ ^ 4858 0: ab 4859 aaaab 4860--->aaaab 4861 +0 ^ a+ 4862 +2 ^ ^ b 4863 +3 ^ ^ 4864 0: aaaab 4865 aaaacb 4866--->aaaacb 4867 +0 ^ a+ 4868 +2 ^ ^ b 4869 +0 ^ a+ 4870 +2 ^ ^ b 4871 +0 ^ a+ 4872 +2 ^ ^ b 4873 +0 ^ a+ 4874 +2 ^^ b 4875No match 4876 4877/(abc|def)x/ICDZS 4878------------------------------------------------------------------ 4879 Bra 4880 Callout 255 0 9 4881 CBra 1 4882 Callout 255 1 1 4883 a 4884 Callout 255 2 1 4885 b 4886 Callout 255 3 1 4887 c 4888 Callout 255 4 0 4889 Alt 4890 Callout 255 5 1 4891 d 4892 Callout 255 6 1 4893 e 4894 Callout 255 7 1 4895 f 4896 Callout 255 8 0 4897 Ket 4898 Callout 255 9 1 4899 x 4900 Callout 255 10 0 4901 Ket 4902 End 4903------------------------------------------------------------------ 4904Capturing subpattern count = 1 4905Options: 4906No first char 4907Need char = 'x' 4908Subject length lower bound = 4 4909Starting chars: a d 4910 abcx 4911--->abcx 4912 +0 ^ (abc|def) 4913 +1 ^ a 4914 +2 ^^ b 4915 +3 ^ ^ c 4916 +4 ^ ^ | 4917 +9 ^ ^ x 4918+10 ^ ^ 4919 0: abcx 4920 1: abc 4921 defx 4922--->defx 4923 +0 ^ (abc|def) 4924 +1 ^ a 4925 +5 ^ d 4926 +6 ^^ e 4927 +7 ^ ^ f 4928 +8 ^ ^ ) 4929 +9 ^ ^ x 4930+10 ^ ^ 4931 0: defx 4932 1: def 4933 ** Failers 4934No match 4935 abcdefzx 4936--->abcdefzx 4937 +0 ^ (abc|def) 4938 +1 ^ a 4939 +2 ^^ b 4940 +3 ^ ^ c 4941 +4 ^ ^ | 4942 +9 ^ ^ x 4943 +5 ^ d 4944 +0 ^ (abc|def) 4945 +1 ^ a 4946 +5 ^ d 4947 +6 ^^ e 4948 +7 ^ ^ f 4949 +8 ^ ^ ) 4950 +9 ^ ^ x 4951No match 4952 4953/(abc|def)x/ICDZSS 4954------------------------------------------------------------------ 4955 Bra 4956 Callout 255 0 9 4957 CBra 1 4958 Callout 255 1 1 4959 a 4960 Callout 255 2 1 4961 b 4962 Callout 255 3 1 4963 c 4964 Callout 255 4 0 4965 Alt 4966 Callout 255 5 1 4967 d 4968 Callout 255 6 1 4969 e 4970 Callout 255 7 1 4971 f 4972 Callout 255 8 0 4973 Ket 4974 Callout 255 9 1 4975 x 4976 Callout 255 10 0 4977 Ket 4978 End 4979------------------------------------------------------------------ 4980Capturing subpattern count = 1 4981Options: 4982No first char 4983Need char = 'x' 4984 abcx 4985--->abcx 4986 +0 ^ (abc|def) 4987 +1 ^ a 4988 +2 ^^ b 4989 +3 ^ ^ c 4990 +4 ^ ^ | 4991 +9 ^ ^ x 4992+10 ^ ^ 4993 0: abcx 4994 1: abc 4995 defx 4996--->defx 4997 +0 ^ (abc|def) 4998 +1 ^ a 4999 +5 ^ d 5000 +6 ^^ e 5001 +7 ^ ^ f 5002 +8 ^ ^ ) 5003 +9 ^ ^ x 5004+10 ^ ^ 5005 0: defx 5006 1: def 5007 ** Failers 5008No match 5009 abcdefzx 5010--->abcdefzx 5011 +0 ^ (abc|def) 5012 +1 ^ a 5013 +2 ^^ b 5014 +3 ^ ^ c 5015 +4 ^ ^ | 5016 +9 ^ ^ x 5017 +5 ^ d 5018 +0 ^ (abc|def) 5019 +1 ^ a 5020 +5 ^ d 5021 +0 ^ (abc|def) 5022 +1 ^ a 5023 +5 ^ d 5024 +0 ^ (abc|def) 5025 +1 ^ a 5026 +5 ^ d 5027 +6 ^^ e 5028 +7 ^ ^ f 5029 +8 ^ ^ ) 5030 +9 ^ ^ x 5031 +0 ^ (abc|def) 5032 +1 ^ a 5033 +5 ^ d 5034 +0 ^ (abc|def) 5035 +1 ^ a 5036 +5 ^ d 5037 +0 ^ (abc|def) 5038 +1 ^ a 5039 +5 ^ d 5040 +0 ^ (abc|def) 5041 +1 ^ a 5042 +5 ^ d 5043No match 5044 5045/(ab|cd){3,4}/IC 5046Capturing subpattern count = 1 5047Options: 5048No first char 5049No need char 5050 ababab 5051--->ababab 5052 +0 ^ (ab|cd){3,4} 5053 +1 ^ a 5054 +2 ^^ b 5055 +3 ^ ^ | 5056 +1 ^ ^ a 5057 +2 ^ ^ b 5058 +3 ^ ^ | 5059 +1 ^ ^ a 5060 +2 ^ ^ b 5061 +3 ^ ^ | 5062 +1 ^ ^ a 5063 +4 ^ ^ c 5064+12 ^ ^ 5065 0: ababab 5066 1: ab 5067 abcdabcd 5068--->abcdabcd 5069 +0 ^ (ab|cd){3,4} 5070 +1 ^ a 5071 +2 ^^ b 5072 +3 ^ ^ | 5073 +1 ^ ^ a 5074 +4 ^ ^ c 5075 +5 ^ ^ d 5076 +6 ^ ^ ) 5077 +1 ^ ^ a 5078 +2 ^ ^ b 5079 +3 ^ ^ | 5080 +1 ^ ^ a 5081 +4 ^ ^ c 5082 +5 ^ ^ d 5083 +6 ^ ^ ) 5084+12 ^ ^ 5085 0: abcdabcd 5086 1: cd 5087 abcdcdcdcdcd 5088--->abcdcdcdcdcd 5089 +0 ^ (ab|cd){3,4} 5090 +1 ^ a 5091 +2 ^^ b 5092 +3 ^ ^ | 5093 +1 ^ ^ a 5094 +4 ^ ^ c 5095 +5 ^ ^ d 5096 +6 ^ ^ ) 5097 +1 ^ ^ a 5098 +4 ^ ^ c 5099 +5 ^ ^ d 5100 +6 ^ ^ ) 5101 +1 ^ ^ a 5102 +4 ^ ^ c 5103 +5 ^ ^ d 5104 +6 ^ ^ ) 5105+12 ^ ^ 5106 0: abcdcdcd 5107 1: cd 5108 5109/([ab]{,4}c|xy)/ICDZS 5110------------------------------------------------------------------ 5111 Bra 5112 Callout 255 0 14 5113 CBra 1 5114 Callout 255 1 4 5115 [ab] 5116 Callout 255 5 1 5117 { 5118 Callout 255 6 1 5119 , 5120 Callout 255 7 1 5121 4 5122 Callout 255 8 1 5123 } 5124 Callout 255 9 1 5125 c 5126 Callout 255 10 0 5127 Alt 5128 Callout 255 11 1 5129 x 5130 Callout 255 12 1 5131 y 5132 Callout 255 13 0 5133 Ket 5134 Callout 255 14 0 5135 Ket 5136 End 5137------------------------------------------------------------------ 5138Capturing subpattern count = 1 5139Options: 5140No first char 5141No need char 5142Subject length lower bound = 2 5143Starting chars: a b x 5144 Note: that { does NOT introduce a quantifier 5145--->Note: that { does NOT introduce a quantifier 5146 +0 ^ ([ab]{,4}c|xy) 5147 +1 ^ [ab] 5148 +5 ^^ { 5149+11 ^ x 5150 +0 ^ ([ab]{,4}c|xy) 5151 +1 ^ [ab] 5152 +5 ^^ { 5153+11 ^ x 5154 +0 ^ ([ab]{,4}c|xy) 5155 +1 ^ [ab] 5156 +5 ^^ { 5157+11 ^ x 5158No match 5159 5160/([ab]{,4}c|xy)/ICDZSS 5161------------------------------------------------------------------ 5162 Bra 5163 Callout 255 0 14 5164 CBra 1 5165 Callout 255 1 4 5166 [ab] 5167 Callout 255 5 1 5168 { 5169 Callout 255 6 1 5170 , 5171 Callout 255 7 1 5172 4 5173 Callout 255 8 1 5174 } 5175 Callout 255 9 1 5176 c 5177 Callout 255 10 0 5178 Alt 5179 Callout 255 11 1 5180 x 5181 Callout 255 12 1 5182 y 5183 Callout 255 13 0 5184 Ket 5185 Callout 255 14 0 5186 Ket 5187 End 5188------------------------------------------------------------------ 5189Capturing subpattern count = 1 5190Options: 5191No first char 5192No need char 5193 Note: that { does NOT introduce a quantifier 5194--->Note: that { does NOT introduce a quantifier 5195 +0 ^ ([ab]{,4}c|xy) 5196 +1 ^ [ab] 5197+11 ^ x 5198 +0 ^ ([ab]{,4}c|xy) 5199 +1 ^ [ab] 5200+11 ^ x 5201 +0 ^ ([ab]{,4}c|xy) 5202 +1 ^ [ab] 5203+11 ^ x 5204 +0 ^ ([ab]{,4}c|xy) 5205 +1 ^ [ab] 5206+11 ^ x 5207 +0 ^ ([ab]{,4}c|xy) 5208 +1 ^ [ab] 5209+11 ^ x 5210 +0 ^ ([ab]{,4}c|xy) 5211 +1 ^ [ab] 5212+11 ^ x 5213 +0 ^ ([ab]{,4}c|xy) 5214 +1 ^ [ab] 5215+11 ^ x 5216 +0 ^ ([ab]{,4}c|xy) 5217 +1 ^ [ab] 5218+11 ^ x 5219 +0 ^ ([ab]{,4}c|xy) 5220 +1 ^ [ab] 5221 +5 ^^ { 5222+11 ^ x 5223 +0 ^ ([ab]{,4}c|xy) 5224 +1 ^ [ab] 5225+11 ^ x 5226 +0 ^ ([ab]{,4}c|xy) 5227 +1 ^ [ab] 5228+11 ^ x 5229 +0 ^ ([ab]{,4}c|xy) 5230 +1 ^ [ab] 5231+11 ^ x 5232 +0 ^ ([ab]{,4}c|xy) 5233 +1 ^ [ab] 5234+11 ^ x 5235 +0 ^ ([ab]{,4}c|xy) 5236 +1 ^ [ab] 5237+11 ^ x 5238 +0 ^ ([ab]{,4}c|xy) 5239 +1 ^ [ab] 5240+11 ^ x 5241 +0 ^ ([ab]{,4}c|xy) 5242 +1 ^ [ab] 5243+11 ^ x 5244 +0 ^ ([ab]{,4}c|xy) 5245 +1 ^ [ab] 5246+11 ^ x 5247 +0 ^ ([ab]{,4}c|xy) 5248 +1 ^ [ab] 5249+11 ^ x 5250 +0 ^ ([ab]{,4}c|xy) 5251 +1 ^ [ab] 5252+11 ^ x 5253 +0 ^ ([ab]{,4}c|xy) 5254 +1 ^ [ab] 5255+11 ^ x 5256 +0 ^ ([ab]{,4}c|xy) 5257 +1 ^ [ab] 5258+11 ^ x 5259 +0 ^ ([ab]{,4}c|xy) 5260 +1 ^ [ab] 5261+11 ^ x 5262 +0 ^ ([ab]{,4}c|xy) 5263 +1 ^ [ab] 5264+11 ^ x 5265 +0 ^ ([ab]{,4}c|xy) 5266 +1 ^ [ab] 5267+11 ^ x 5268 +0 ^ ([ab]{,4}c|xy) 5269 +1 ^ [ab] 5270+11 ^ x 5271 +0 ^ ([ab]{,4}c|xy) 5272 +1 ^ [ab] 5273+11 ^ x 5274 +0 ^ ([ab]{,4}c|xy) 5275 +1 ^ [ab] 5276+11 ^ x 5277 +0 ^ ([ab]{,4}c|xy) 5278 +1 ^ [ab] 5279+11 ^ x 5280 +0 ^ ([ab]{,4}c|xy) 5281 +1 ^ [ab] 5282+11 ^ x 5283 +0 ^ ([ab]{,4}c|xy) 5284 +1 ^ [ab] 5285+11 ^ x 5286 +0 ^ ([ab]{,4}c|xy) 5287 +1 ^ [ab] 5288+11 ^ x 5289 +0 ^ ([ab]{,4}c|xy) 5290 +1 ^ [ab] 5291+11 ^ x 5292 +0 ^ ([ab]{,4}c|xy) 5293 +1 ^ [ab] 5294 +5 ^^ { 5295+11 ^ x 5296 +0 ^ ([ab]{,4}c|xy) 5297 +1 ^ [ab] 5298+11 ^ x 5299 +0 ^ ([ab]{,4}c|xy) 5300 +1 ^ [ab] 5301+11 ^ x 5302 +0 ^ ([ab]{,4}c|xy) 5303 +1 ^ [ab] 5304+11 ^ x 5305 +0 ^ ([ab]{,4}c|xy) 5306 +1 ^ [ab] 5307 +5 ^^ { 5308+11 ^ x 5309 +0 ^ ([ab]{,4}c|xy) 5310 +1 ^ [ab] 5311+11 ^ x 5312 +0 ^ ([ab]{,4}c|xy) 5313 +1 ^ [ab] 5314+11 ^ x 5315 +0 ^ ([ab]{,4}c|xy) 5316 +1 ^ [ab] 5317+11 ^ x 5318 +0 ^ ([ab]{,4}c|xy) 5319 +1 ^ [ab] 5320+11 ^ x 5321 +0 ^ ([ab]{,4}c|xy) 5322 +1 ^ [ab] 5323+11 ^ x 5324 +0 ^ ([ab]{,4}c|xy) 5325 +1 ^ [ab] 5326+11 ^ x 5327 +0 ^ ([ab]{,4}c|xy) 5328 +1 ^ [ab] 5329+11 ^ x 5330 +0 ^ ([ab]{,4}c|xy) 5331 +1 ^ [ab] 5332+11 ^ x 5333No match 5334 5335/([ab]{1,4}c|xy){4,5}?123/ICDZ 5336------------------------------------------------------------------ 5337 Bra 5338 Callout 255 0 21 5339 CBra 1 5340 Callout 255 1 9 5341 [ab]{1,4}+ 5342 Callout 255 10 1 5343 c 5344 Callout 255 11 0 5345 Alt 5346 Callout 255 12 1 5347 x 5348 Callout 255 13 1 5349 y 5350 Callout 255 14 0 5351 Ket 5352 CBra 1 5353 Callout 255 1 9 5354 [ab]{1,4}+ 5355 Callout 255 10 1 5356 c 5357 Callout 255 11 0 5358 Alt 5359 Callout 255 12 1 5360 x 5361 Callout 255 13 1 5362 y 5363 Callout 255 14 0 5364 Ket 5365 CBra 1 5366 Callout 255 1 9 5367 [ab]{1,4}+ 5368 Callout 255 10 1 5369 c 5370 Callout 255 11 0 5371 Alt 5372 Callout 255 12 1 5373 x 5374 Callout 255 13 1 5375 y 5376 Callout 255 14 0 5377 Ket 5378 CBra 1 5379 Callout 255 1 9 5380 [ab]{1,4}+ 5381 Callout 255 10 1 5382 c 5383 Callout 255 11 0 5384 Alt 5385 Callout 255 12 1 5386 x 5387 Callout 255 13 1 5388 y 5389 Callout 255 14 0 5390 Ket 5391 Braminzero 5392 CBra 1 5393 Callout 255 1 9 5394 [ab]{1,4}+ 5395 Callout 255 10 1 5396 c 5397 Callout 255 11 0 5398 Alt 5399 Callout 255 12 1 5400 x 5401 Callout 255 13 1 5402 y 5403 Callout 255 14 0 5404 Ket 5405 Callout 255 21 1 5406 1 5407 Callout 255 22 1 5408 2 5409 Callout 255 23 1 5410 3 5411 Callout 255 24 0 5412 Ket 5413 End 5414------------------------------------------------------------------ 5415Capturing subpattern count = 1 5416Options: 5417No first char 5418Need char = '3' 5419 aacaacaacaacaac123 5420--->aacaacaacaacaac123 5421 +0 ^ ([ab]{1,4}c|xy){4,5}? 5422 +1 ^ [ab]{1,4} 5423+10 ^ ^ c 5424+11 ^ ^ | 5425 +1 ^ ^ [ab]{1,4} 5426+10 ^ ^ c 5427+11 ^ ^ | 5428 +1 ^ ^ [ab]{1,4} 5429+10 ^ ^ c 5430+11 ^ ^ | 5431 +1 ^ ^ [ab]{1,4} 5432+10 ^ ^ c 5433+11 ^ ^ | 5434+21 ^ ^ 1 5435 +1 ^ ^ [ab]{1,4} 5436+10 ^ ^ c 5437+11 ^ ^ | 5438+21 ^ ^ 1 5439+22 ^ ^ 2 5440+23 ^ ^ 3 5441+24 ^ ^ 5442 0: aacaacaacaacaac123 5443 1: aac 5444 5445/\b.*/I 5446Capturing subpattern count = 0 5447Max lookbehind = 1 5448May match empty string 5449No options 5450No first char 5451No need char 5452 ab cd\>1 5453 0: cd 5454 5455/\b.*/Is 5456Capturing subpattern count = 0 5457Max lookbehind = 1 5458May match empty string 5459Options: dotall 5460No first char 5461No need char 5462 ab cd\>1 5463 0: cd 5464 5465/(?!.bcd).*/I 5466Capturing subpattern count = 0 5467May match empty string 5468No options 5469No first char 5470No need char 5471 Xbcd12345 5472 0: bcd12345 5473 5474/abcde/I 5475Capturing subpattern count = 0 5476No options 5477First char = 'a' 5478Need char = 'e' 5479 ab\P 5480Partial match: ab 5481 abc\P 5482Partial match: abc 5483 abcd\P 5484Partial match: abcd 5485 abcde\P 5486 0: abcde 5487 the quick brown abc\P 5488Partial match: abc 5489 ** Failers\P 5490No match 5491 the quick brown abxyz fox\P 5492No match 5493 5494"^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I 5495Capturing subpattern count = 3 5496Options: anchored 5497No first char 5498Need char = '/' 5499 13/05/04\P 5500 0: 13/05/04 5501 1: 13 5502 2: 05 5503 13/5/2004\P 5504 0: 13/5/2004 5505 1: 13 5506 2: 5 5507 3: 20 5508 02/05/09\P 5509 0: 02/05/09 5510 1: 02 5511 2: 05 5512 1\P 5513Partial match: 1 5514 1/2\P 5515Partial match: 1/2 5516 1/2/0\P 5517Partial match: 1/2/0 5518 1/2/04\P 5519 0: 1/2/04 5520 1: 1 5521 2: 2 5522 0\P 5523Partial match: 0 5524 02/\P 5525Partial match: 02/ 5526 02/0\P 5527Partial match: 02/0 5528 02/1\P 5529Partial match: 02/1 5530 ** Failers\P 5531No match 5532 \P 5533No match 5534 123\P 5535No match 5536 33/4/04\P 5537No match 5538 3/13/04\P 5539No match 5540 0/1/2003\P 5541No match 5542 0/\P 5543No match 5544 02/0/\P 5545No match 5546 02/13\P 5547No match 5548 5549/0{0,2}ABC/I 5550Capturing subpattern count = 0 5551No options 5552No first char 5553Need char = 'C' 5554 5555/\d{3,}ABC/I 5556Capturing subpattern count = 0 5557No options 5558No first char 5559Need char = 'C' 5560 5561/\d*ABC/I 5562Capturing subpattern count = 0 5563No options 5564No first char 5565Need char = 'C' 5566 5567/[abc]+DE/I 5568Capturing subpattern count = 0 5569No options 5570No first char 5571Need char = 'E' 5572 5573/[abc]?123/I 5574Capturing subpattern count = 0 5575No options 5576No first char 5577Need char = '3' 5578 123\P 5579 0: 123 5580 a\P 5581Partial match: a 5582 b\P 5583Partial match: b 5584 c\P 5585Partial match: c 5586 c12\P 5587Partial match: c12 5588 c123\P 5589 0: c123 5590 5591/^(?:\d){3,5}X/I 5592Capturing subpattern count = 0 5593Options: anchored 5594No first char 5595Need char = 'X' 5596 1\P 5597Partial match: 1 5598 123\P 5599Partial match: 123 5600 123X 5601 0: 123X 5602 1234\P 5603Partial match: 1234 5604 1234X 5605 0: 1234X 5606 12345\P 5607Partial match: 12345 5608 12345X 5609 0: 12345X 5610 *** Failers 5611No match 5612 1X 5613No match 5614 123456\P 5615No match 5616 5617//S-KF>testsavedregex 5618Compiled pattern written to testsavedregex 5619 5620/abc/IS>testsavedregex 5621Capturing subpattern count = 0 5622No options 5623First char = 'a' 5624Need char = 'c' 5625Subject length lower bound = 3 5626No starting char list 5627Compiled pattern written to testsavedregex 5628Study data written to testsavedregex 5629<testsavedregex 5630Compiled pattern loaded from testsavedregex 5631Study data loaded from testsavedregex 5632 abc 5633 0: abc 5634 ** Failers 5635No match 5636 bca 5637No match 5638 5639/abc/ISS>testsavedregex 5640Capturing subpattern count = 0 5641No options 5642First char = 'a' 5643Need char = 'c' 5644Compiled pattern written to testsavedregex 5645<testsavedregex 5646Compiled pattern loaded from testsavedregex 5647No study data 5648 abc 5649 0: abc 5650 ** Failers 5651No match 5652 bca 5653No match 5654 5655/abc/IFS>testsavedregex 5656Capturing subpattern count = 0 5657No options 5658First char = 'a' 5659Need char = 'c' 5660Subject length lower bound = 3 5661No starting char list 5662Compiled pattern written to testsavedregex 5663Study data written to testsavedregex 5664<testsavedregex 5665Compiled pattern (byte-inverted) loaded from testsavedregex 5666Study data loaded from testsavedregex 5667 abc 5668 0: abc 5669 ** Failers 5670No match 5671 bca 5672No match 5673 5674/abc/IFSS>testsavedregex 5675Capturing subpattern count = 0 5676No options 5677First char = 'a' 5678Need char = 'c' 5679Compiled pattern written to testsavedregex 5680<testsavedregex 5681Compiled pattern (byte-inverted) loaded from testsavedregex 5682No study data 5683 abc 5684 0: abc 5685 ** Failers 5686No match 5687 bca 5688No match 5689 5690/(a|b)/IS>testsavedregex 5691Capturing subpattern count = 1 5692No options 5693No first char 5694No need char 5695Subject length lower bound = 1 5696Starting chars: a b 5697Compiled pattern written to testsavedregex 5698Study data written to testsavedregex 5699<testsavedregex 5700Compiled pattern loaded from testsavedregex 5701Study data loaded from testsavedregex 5702 abc 5703 0: a 5704 1: a 5705 ** Failers 5706 0: a 5707 1: a 5708 def 5709No match 5710 5711/(a|b)/ISS>testsavedregex 5712Capturing subpattern count = 1 5713No options 5714No first char 5715No need char 5716Compiled pattern written to testsavedregex 5717<testsavedregex 5718Compiled pattern loaded from testsavedregex 5719No study data 5720 abc 5721 0: a 5722 1: a 5723 ** Failers 5724 0: a 5725 1: a 5726 def 5727No match 5728 5729/(a|b)/ISF>testsavedregex 5730Capturing subpattern count = 1 5731No options 5732No first char 5733No need char 5734Subject length lower bound = 1 5735Starting chars: a b 5736Compiled pattern written to testsavedregex 5737Study data written to testsavedregex 5738<testsavedregex 5739Compiled pattern (byte-inverted) loaded from testsavedregex 5740Study data loaded from testsavedregex 5741 abc 5742 0: a 5743 1: a 5744 ** Failers 5745 0: a 5746 1: a 5747 def 5748No match 5749 5750/(a|b)/ISSF>testsavedregex 5751Capturing subpattern count = 1 5752No options 5753No first char 5754No need char 5755Compiled pattern written to testsavedregex 5756<testsavedregex 5757Compiled pattern (byte-inverted) loaded from testsavedregex 5758No study data 5759 abc 5760 0: a 5761 1: a 5762 ** Failers 5763 0: a 5764 1: a 5765 def 5766No match 5767 5768~<(\w+)/?>(.)*</(\1)>~smgI 5769Capturing subpattern count = 3 5770Max back reference = 1 5771Options: multiline dotall 5772First char = '<' 5773Need char = '>' 5774 \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> 5775 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> 5776 1: seite 5777 2: \x0a 5778 3: seite 5779 5780/^a/IF 5781Capturing subpattern count = 0 5782Options: anchored 5783No first char 5784No need char 5785 5786/line\nbreak/I 5787Capturing subpattern count = 0 5788Contains explicit CR or LF match 5789No options 5790First char = 'l' 5791Need char = 'k' 5792 this is a line\nbreak 5793 0: line\x0abreak 5794 line one\nthis is a line\nbreak in the second line 5795 0: line\x0abreak 5796 5797/line\nbreak/If 5798Capturing subpattern count = 0 5799Contains explicit CR or LF match 5800Options: firstline 5801First char = 'l' 5802Need char = 'k' 5803 this is a line\nbreak 5804 0: line\x0abreak 5805 ** Failers 5806No match 5807 line one\nthis is a line\nbreak in the second line 5808No match 5809 5810/line\nbreak/Imf 5811Capturing subpattern count = 0 5812Contains explicit CR or LF match 5813Options: multiline firstline 5814First char = 'l' 5815Need char = 'k' 5816 this is a line\nbreak 5817 0: line\x0abreak 5818 ** Failers 5819No match 5820 line one\nthis is a line\nbreak in the second line 5821No match 5822 5823/(?i)(?-i)AbCd/I 5824Capturing subpattern count = 0 5825No options 5826First char = 'A' 5827Need char = 'd' 5828 AbCd 5829 0: AbCd 5830 ** Failers 5831No match 5832 abcd 5833No match 5834 5835/a{11111111111111111111}/I 5836Failed: number too big in {} quantifier at offset 8 5837 5838/(){64294967295}/I 5839Failed: number too big in {} quantifier at offset 9 5840 5841/(){2,4294967295}/I 5842Failed: number too big in {} quantifier at offset 11 5843 5844"(?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 5845Capturing subpattern count = 1 5846Max back reference = 1 5847No options 5848First char = 'a' (caseless) 5849Need char = 'B' 5850 abcdefghijklAkB 5851 0: abcdefghijklAkB 5852 1: k 5853 5854"(?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 5855Capturing subpattern count = 12 5856Max back reference = 11 5857Named capturing subpatterns: 5858 n0 1 5859 n1 2 5860 n10 11 5861 n11 12 5862 n2 3 5863 n3 4 5864 n4 5 5865 n5 6 5866 n6 7 5867 n7 8 5868 n8 9 5869 n9 10 5870No options 5871First char = 'a' 5872Need char = 'B' 5873 abcdefghijklAkB 5874 0: abcdefghijklAkB 5875 1: a 5876 2: b 5877 3: c 5878 4: d 5879 5: e 5880 6: f 5881 7: g 5882 8: h 5883 9: i 588410: j 588511: k 588612: l 5887 5888"(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I 5889Capturing subpattern count = 12 5890Max back reference = 11 5891No options 5892First char = 'a' 5893Need char = 'B' 5894 abcdefghijklAkB 5895 0: abcdefghijklAkB 5896 1: a 5897 2: b 5898 3: c 5899 4: d 5900 5: e 5901 6: f 5902 7: g 5903 8: h 5904 9: i 590510: j 590611: k 590712: l 5908 5909"(?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 5910Capturing subpattern count = 101 5911Named capturing subpatterns: 5912 name0 1 5913 name1 2 5914 name10 11 5915 name100 101 5916 name11 12 5917 name12 13 5918 name13 14 5919 name14 15 5920 name15 16 5921 name16 17 5922 name17 18 5923 name18 19 5924 name19 20 5925 name2 3 5926 name20 21 5927 name21 22 5928 name22 23 5929 name23 24 5930 name24 25 5931 name25 26 5932 name26 27 5933 name27 28 5934 name28 29 5935 name29 30 5936 name3 4 5937 name30 31 5938 name31 32 5939 name32 33 5940 name33 34 5941 name34 35 5942 name35 36 5943 name36 37 5944 name37 38 5945 name38 39 5946 name39 40 5947 name4 5 5948 name40 41 5949 name41 42 5950 name42 43 5951 name43 44 5952 name44 45 5953 name45 46 5954 name46 47 5955 name47 48 5956 name48 49 5957 name49 50 5958 name5 6 5959 name50 51 5960 name51 52 5961 name52 53 5962 name53 54 5963 name54 55 5964 name55 56 5965 name56 57 5966 name57 58 5967 name58 59 5968 name59 60 5969 name6 7 5970 name60 61 5971 name61 62 5972 name62 63 5973 name63 64 5974 name64 65 5975 name65 66 5976 name66 67 5977 name67 68 5978 name68 69 5979 name69 70 5980 name7 8 5981 name70 71 5982 name71 72 5983 name72 73 5984 name73 74 5985 name74 75 5986 name75 76 5987 name76 77 5988 name77 78 5989 name78 79 5990 name79 80 5991 name8 9 5992 name80 81 5993 name81 82 5994 name82 83 5995 name83 84 5996 name84 85 5997 name85 86 5998 name86 87 5999 name87 88 6000 name88 89 6001 name89 90 6002 name9 10 6003 name90 91 6004 name91 92 6005 name92 93 6006 name93 94 6007 name94 95 6008 name95 96 6009 name96 97 6010 name97 98 6011 name98 99 6012 name99 100 6013No options 6014First char = 'a' 6015Need char = 'a' 6016 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6017Matched, but too many substrings 6018 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6019 1: a 6020 2: a 6021 3: a 6022 4: a 6023 5: a 6024 6: a 6025 7: a 6026 8: a 6027 9: a 602810: a 602911: a 603012: a 603113: a 603214: a 6033 6034"(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(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 6035Capturing subpattern count = 101 6036No options 6037First char = 'a' 6038Need char = 'a' 6039 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6040Matched, but too many substrings 6041 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6042 1: a 6043 2: a 6044 3: a 6045 4: a 6046 5: a 6047 6: a 6048 7: a 6049 8: a 6050 9: a 605110: a 605211: a 605312: a 605413: a 605514: a 6056 6057/[^()]*(?:\((?R)\)[^()]*)*/I 6058Capturing subpattern count = 0 6059May match empty string 6060No options 6061No first char 6062No need char 6063 (this(and)that 6064 0: 6065 (this(and)that) 6066 0: (this(and)that) 6067 (this(and)that)stuff 6068 0: (this(and)that)stuff 6069 6070/[^()]*(?:\((?>(?R))\)[^()]*)*/I 6071Capturing subpattern count = 0 6072May match empty string 6073No options 6074No first char 6075No need char 6076 (this(and)that 6077 0: 6078 (this(and)that) 6079 0: (this(and)that) 6080 6081/[^()]*(?:\((?R)\))*[^()]*/I 6082Capturing subpattern count = 0 6083May match empty string 6084No options 6085No first char 6086No need char 6087 (this(and)that 6088 0: 6089 (this(and)that) 6090 0: (this(and)that) 6091 6092/(?:\((?R)\))*[^()]*/I 6093Capturing subpattern count = 0 6094May match empty string 6095No options 6096No first char 6097No need char 6098 (this(and)that 6099 0: 6100 (this(and)that) 6101 0: 6102 ((this)) 6103 0: ((this)) 6104 6105/(?:\((?R)\))|[^()]*/I 6106Capturing subpattern count = 0 6107May match empty string 6108No options 6109No first char 6110No need char 6111 (this(and)that 6112 0: 6113 (this(and)that) 6114 0: 6115 (this) 6116 0: (this) 6117 ((this)) 6118 0: ((this)) 6119 6120/\x{0000ff}/I 6121Capturing subpattern count = 0 6122No options 6123First char = \xff 6124No need char 6125 6126/^((?P<A>a1)|(?P<A>a2)b)/I 6127Failed: two named subpatterns have the same name at offset 17 6128 6129/^((?P<A>a1)|(?P<A>a2)b)/IJ 6130Capturing subpattern count = 3 6131Named capturing subpatterns: 6132 A 2 6133 A 3 6134Options: anchored dupnames 6135No first char 6136No need char 6137 a1b\CA 6138 0: a1 6139 1: a1 6140 2: a1 6141 C a1 (2) A 6142 a2b\CA 6143 0: a2b 6144 1: a2b 6145 2: <unset> 6146 3: a2 6147 C a2 (2) A 6148 ** Failers 6149No match 6150 a1b\CZ\CA 6151no parentheses with name "Z" 6152 0: a1 6153 1: a1 6154 2: a1 6155copy substring Z failed -7 6156 C a1 (2) A 6157 6158/(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ 6159Capturing subpattern count = 3 6160Named capturing subpatterns: 6161 a 1 6162 a 3 6163 b 2 6164May match empty string 6165Options: dupnames 6166No first char 6167No need char 6168 6169/^(?P<A>a)(?P<A>b)/IJ 6170Capturing subpattern count = 2 6171Named capturing subpatterns: 6172 A 1 6173 A 2 6174Options: anchored dupnames 6175No first char 6176No need char 6177 ab\CA 6178 0: ab 6179 1: a 6180 2: b 6181 C a (1) A 6182 6183/^(?P<A>a)(?P<A>b)|cd/IJ 6184Capturing subpattern count = 2 6185Named capturing subpatterns: 6186 A 1 6187 A 2 6188Options: dupnames 6189No first char 6190No need char 6191 ab\CA 6192 0: ab 6193 1: a 6194 2: b 6195 C a (1) A 6196 cd\CA 6197 0: cd 6198copy substring A failed -7 6199 6200/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ 6201Capturing subpattern count = 4 6202Named capturing subpatterns: 6203 A 1 6204 A 2 6205 A 3 6206 A 4 6207Options: dupnames 6208No first char 6209No need char 6210 cdefgh\CA 6211 0: cdefgh 6212 1: <unset> 6213 2: <unset> 6214 3: ef 6215 4: gh 6216 C ef (2) A 6217 6218/^((?P<A>a1)|(?P<A>a2)b)/IJ 6219Capturing subpattern count = 3 6220Named capturing subpatterns: 6221 A 2 6222 A 3 6223Options: anchored dupnames 6224No first char 6225No need char 6226 a1b\GA 6227 0: a1 6228 1: a1 6229 2: a1 6230 G a1 (2) A 6231 a2b\GA 6232 0: a2b 6233 1: a2b 6234 2: <unset> 6235 3: a2 6236 G a2 (2) A 6237 ** Failers 6238No match 6239 a1b\GZ\GA 6240no parentheses with name "Z" 6241 0: a1 6242 1: a1 6243 2: a1 6244get substring Z failed -7 6245 G a1 (2) A 6246 6247/^(?P<A>a)(?P<A>b)/IJ 6248Capturing subpattern count = 2 6249Named capturing subpatterns: 6250 A 1 6251 A 2 6252Options: anchored dupnames 6253No first char 6254No need char 6255 ab\GA 6256 0: ab 6257 1: a 6258 2: b 6259 G a (1) A 6260 6261/^(?P<A>a)(?P<A>b)|cd/IJ 6262Capturing subpattern count = 2 6263Named capturing subpatterns: 6264 A 1 6265 A 2 6266Options: dupnames 6267No first char 6268No need char 6269 ab\GA 6270 0: ab 6271 1: a 6272 2: b 6273 G a (1) A 6274 cd\GA 6275 0: cd 6276get substring A failed -7 6277 6278/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ 6279Capturing subpattern count = 4 6280Named capturing subpatterns: 6281 A 1 6282 A 2 6283 A 3 6284 A 4 6285Options: dupnames 6286No first char 6287No need char 6288 cdefgh\GA 6289 0: cdefgh 6290 1: <unset> 6291 2: <unset> 6292 3: ef 6293 4: gh 6294 G ef (2) A 6295 6296/(?J)^((?P<A>a1)|(?P<A>a2)b)/I 6297Capturing subpattern count = 3 6298Named capturing subpatterns: 6299 A 2 6300 A 3 6301Options: anchored 6302Duplicate name status changes 6303No first char 6304No need char 6305 a1b\CA 6306 0: a1 6307 1: a1 6308 2: a1 6309 C a1 (2) A 6310 a2b\CA 6311 0: a2b 6312 1: a2b 6313 2: <unset> 6314 3: a2 6315 C a2 (2) A 6316 6317/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I 6318Failed: two named subpatterns have the same name at offset 37 6319 6320/ In this next test, J is not set at the outer level; consequently it isn't 6321set in the pattern's options; consequently pcre_get_named_substring() produces 6322a random value. /Ix 6323Capturing subpattern count = 1 6324Options: extended 6325First char = 'I' 6326Need char = 'e' 6327 6328/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I 6329Capturing subpattern count = 4 6330Named capturing subpatterns: 6331 A 1 6332 B 2 6333 B 3 6334 C 4 6335Options: anchored 6336Duplicate name status changes 6337No first char 6338No need char 6339 a bc d\CA\CB\CC 6340 0: a bc d 6341 1: a 6342 2: b 6343 3: c 6344 4: d 6345 C a (1) A 6346 C b (1) B 6347 C d (1) C 6348 6349/^(?P<A>a)?(?(A)a|b)/I 6350Capturing subpattern count = 1 6351Max back reference = 1 6352Named capturing subpatterns: 6353 A 1 6354Options: anchored 6355No first char 6356No need char 6357 aabc 6358 0: aa 6359 1: a 6360 bc 6361 0: b 6362 ** Failers 6363No match 6364 abc 6365No match 6366 6367/(?:(?(ZZ)a|b)(?P<ZZ>X))+/I 6368Capturing subpattern count = 1 6369Max back reference = 1 6370Named capturing subpatterns: 6371 ZZ 1 6372No options 6373No first char 6374Need char = 'X' 6375 bXaX 6376 0: bXaX 6377 1: X 6378 6379/(?:(?(2y)a|b)(X))+/I 6380Failed: malformed number or name after (?( at offset 7 6381 6382/(?:(?(ZA)a|b)(?P<ZZ>X))+/I 6383Failed: reference to non-existent subpattern at offset 9 6384 6385/(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I 6386Capturing subpattern count = 1 6387Max back reference = 1 6388Named capturing subpatterns: 6389 ZZ 1 6390No options 6391No first char 6392Need char = 'X' 6393 bbXaaX 6394 0: bbXaaX 6395 1: X 6396 6397/(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I 6398Capturing subpattern count = 1 6399Max back reference = 1 6400Named capturing subpatterns: 6401 ZZ 1 6402No options 6403No first char 6404Need char = 'X' 6405 (b)\\Xa\\X 6406 0: (b)\Xa\X 6407 1: X 6408 6409/(?P<ABC/I 6410Failed: syntax error in subpattern name (missing terminator) at offset 7 6411 6412/(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I 6413Capturing subpattern count = 1 6414Max back reference = 1 6415Named capturing subpatterns: 6416 A 1 6417No options 6418No first char 6419No need char 6420 bXXaYYaY 6421 0: bXXaYYaY 6422 1: Y 6423 bXYaXXaX 6424 0: bX 6425 1: X 6426 6427/()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I 6428Capturing subpattern count = 10 6429Max back reference = 10 6430Named capturing subpatterns: 6431 A 10 6432No options 6433No first char 6434No need char 6435 bXXaYYaY 6436 0: bXXaYYaY 6437 1: 6438 2: 6439 3: 6440 4: 6441 5: 6442 6: 6443 7: 6444 8: 6445 9: 644610: Y 6447 6448/\s*,\s*/IS 6449Capturing subpattern count = 0 6450No options 6451No first char 6452Need char = ',' 6453Subject length lower bound = 1 6454Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 , 6455 \x0b,\x0b 6456 0: \x0b,\x0b 6457 \x0c,\x0d 6458 0: \x0c,\x0d 6459 6460/^abc/Im 6461Capturing subpattern count = 0 6462Options: multiline 6463First char at start or follows newline 6464Need char = 'c' 6465 xyz\nabc 6466 0: abc 6467 xyz\nabc\<lf> 6468 0: abc 6469 xyz\r\nabc\<lf> 6470 0: abc 6471 xyz\rabc\<cr> 6472 0: abc 6473 xyz\r\nabc\<crlf> 6474 0: abc 6475 ** Failers 6476No match 6477 xyz\nabc\<cr> 6478No match 6479 xyz\r\nabc\<cr> 6480No match 6481 xyz\nabc\<crlf> 6482No match 6483 xyz\rabc\<crlf> 6484No match 6485 xyz\rabc\<lf> 6486No match 6487 6488/abc$/Im<lf> 6489Capturing subpattern count = 0 6490Options: multiline 6491Forced newline sequence: LF 6492First char = 'a' 6493Need char = 'c' 6494 xyzabc 6495 0: abc 6496 xyzabc\n 6497 0: abc 6498 xyzabc\npqr 6499 0: abc 6500 xyzabc\r\<cr> 6501 0: abc 6502 xyzabc\rpqr\<cr> 6503 0: abc 6504 xyzabc\r\n\<crlf> 6505 0: abc 6506 xyzabc\r\npqr\<crlf> 6507 0: abc 6508 ** Failers 6509No match 6510 xyzabc\r 6511No match 6512 xyzabc\rpqr 6513No match 6514 xyzabc\r\n 6515No match 6516 xyzabc\r\npqr 6517No match 6518 6519/^abc/Im<cr> 6520Capturing subpattern count = 0 6521Options: multiline 6522Forced newline sequence: CR 6523First char at start or follows newline 6524Need char = 'c' 6525 xyz\rabcdef 6526 0: abc 6527 xyz\nabcdef\<lf> 6528 0: abc 6529 ** Failers 6530No match 6531 xyz\nabcdef 6532No match 6533 6534/^abc/Im<lf> 6535Capturing subpattern count = 0 6536Options: multiline 6537Forced newline sequence: LF 6538First char at start or follows newline 6539Need char = 'c' 6540 xyz\nabcdef 6541 0: abc 6542 xyz\rabcdef\<cr> 6543 0: abc 6544 ** Failers 6545No match 6546 xyz\rabcdef 6547No match 6548 6549/^abc/Im<crlf> 6550Capturing subpattern count = 0 6551Options: multiline 6552Forced newline sequence: CRLF 6553First char at start or follows newline 6554Need char = 'c' 6555 xyz\r\nabcdef 6556 0: abc 6557 xyz\rabcdef\<cr> 6558 0: abc 6559 ** Failers 6560No match 6561 xyz\rabcdef 6562No match 6563 6564/^abc/Im<bad> 6565Unknown modifier at: <bad> 6566 6567 6568/abc/I 6569Capturing subpattern count = 0 6570No options 6571First char = 'a' 6572Need char = 'c' 6573 xyz\rabc\<bad> 6574Unknown escape sequence at: <bad> 6575 abc 6576 0: abc 6577 6578/.*/I<lf> 6579Capturing subpattern count = 0 6580May match empty string 6581Options: 6582Forced newline sequence: LF 6583First char at start or follows newline 6584No need char 6585 abc\ndef 6586 0: abc 6587 abc\rdef 6588 0: abc\x0ddef 6589 abc\r\ndef 6590 0: abc\x0d 6591 \<cr>abc\ndef 6592 0: abc\x0adef 6593 \<cr>abc\rdef 6594 0: abc 6595 \<cr>abc\r\ndef 6596 0: abc 6597 \<crlf>abc\ndef 6598 0: abc\x0adef 6599 \<crlf>abc\rdef 6600 0: abc\x0ddef 6601 \<crlf>abc\r\ndef 6602 0: abc 6603 6604/\w+(.)(.)?def/Is 6605Capturing subpattern count = 2 6606Options: dotall 6607No first char 6608Need char = 'f' 6609 abc\ndef 6610 0: abc\x0adef 6611 1: \x0a 6612 abc\rdef 6613 0: abc\x0ddef 6614 1: \x0d 6615 abc\r\ndef 6616 0: abc\x0d\x0adef 6617 1: \x0d 6618 2: \x0a 6619 6620+((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I 6621Capturing subpattern count = 1 6622May match empty string 6623No options 6624No first char 6625No need char 6626 /* this is a C style comment */\M 6627Minimum match() limit = 120 6628Minimum match() recursion limit = 6 6629 0: /* this is a C style comment */ 6630 1: /* this is a C style comment */ 6631 6632/(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I 6633Capturing subpattern count = 1 6634Named capturing subpatterns: 6635 B 1 6636No options 6637No first char 6638Need char = '.' 6639 6640/()()()()()()()()()()()()()()()()()()()() 6641 ()()()()()()()()()()()()()()()()()()()() 6642 ()()()()()()()()()()()()()()()()()()()() 6643 ()()()()()()()()()()()()()()()()()()()() 6644 ()()()()()()()()()()()()()()()()()()()() 6645 (.(.))/Ix 6646Capturing subpattern count = 102 6647Options: extended 6648No first char 6649No need char 6650 XY\O400 6651 0: XY 6652 1: 6653 2: 6654 3: 6655 4: 6656 5: 6657 6: 6658 7: 6659 8: 6660 9: 666110: 666211: 666312: 666413: 666514: 666615: 666716: 666817: 666918: 667019: 667120: 667221: 667322: 667423: 667524: 667625: 667726: 667827: 667928: 668029: 668130: 668231: 668332: 668433: 668534: 668635: 668736: 668837: 668938: 669039: 669140: 669241: 669342: 669443: 669544: 669645: 669746: 669847: 669948: 670049: 670150: 670251: 670352: 670453: 670554: 670655: 670756: 670857: 670958: 671059: 671160: 671261: 671362: 671463: 671564: 671665: 671766: 671867: 671968: 672069: 672170: 672271: 672372: 672473: 672574: 672675: 672776: 672877: 672978: 673079: 673180: 673281: 673382: 673483: 673584: 673685: 673786: 673887: 673988: 674089: 674190: 674291: 674392: 674493: 674594: 674695: 674796: 674897: 674998: 675099: 6751100: 6752101: XY 6753102: Y 6754 6755/(a*b|(?i:c*(?-i)d))/IS 6756Capturing subpattern count = 1 6757No options 6758No first char 6759No need char 6760Subject length lower bound = 1 6761Starting chars: C a b c d 6762 6763/()[ab]xyz/IS 6764Capturing subpattern count = 1 6765No options 6766No first char 6767Need char = 'z' 6768Subject length lower bound = 4 6769Starting chars: a b 6770 6771/(|)[ab]xyz/IS 6772Capturing subpattern count = 1 6773No options 6774No first char 6775Need char = 'z' 6776Subject length lower bound = 4 6777Starting chars: a b 6778 6779/(|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 6786 6787/(|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 6794 6795/(d?|c?)[ab]xyz/IS 6796Capturing subpattern count = 1 6797No options 6798No first char 6799Need char = 'z' 6800Subject length lower bound = 4 6801Starting chars: a b c d 6802 6803/(d?|c)[ab]xyz/IS 6804Capturing subpattern count = 1 6805No options 6806No first char 6807Need char = 'z' 6808Subject length lower bound = 4 6809Starting chars: a b c d 6810 6811/^a*b\d/DZ 6812------------------------------------------------------------------ 6813 Bra 6814 ^ 6815 a*+ 6816 b 6817 \d 6818 Ket 6819 End 6820------------------------------------------------------------------ 6821Capturing subpattern count = 0 6822Options: anchored 6823No first char 6824Need char = 'b' 6825 6826/^a*+b\d/DZ 6827------------------------------------------------------------------ 6828 Bra 6829 ^ 6830 a*+ 6831 b 6832 \d 6833 Ket 6834 End 6835------------------------------------------------------------------ 6836Capturing subpattern count = 0 6837Options: anchored 6838No first char 6839Need char = 'b' 6840 6841/^a*?b\d/DZ 6842------------------------------------------------------------------ 6843 Bra 6844 ^ 6845 a*+ 6846 b 6847 \d 6848 Ket 6849 End 6850------------------------------------------------------------------ 6851Capturing subpattern count = 0 6852Options: anchored 6853No first char 6854Need char = 'b' 6855 6856/^a+A\d/DZ 6857------------------------------------------------------------------ 6858 Bra 6859 ^ 6860 a++ 6861 A 6862 \d 6863 Ket 6864 End 6865------------------------------------------------------------------ 6866Capturing subpattern count = 0 6867Options: anchored 6868No first char 6869Need char = 'A' 6870 aaaA5 6871 0: aaaA5 6872 ** Failers 6873No match 6874 aaaa5 6875No match 6876 6877/^a*A\d/IiDZ 6878------------------------------------------------------------------ 6879 Bra 6880 ^ 6881 /i a* 6882 /i A 6883 \d 6884 Ket 6885 End 6886------------------------------------------------------------------ 6887Capturing subpattern count = 0 6888Options: anchored caseless 6889No first char 6890Need char = 'A' (caseless) 6891 aaaA5 6892 0: aaaA5 6893 aaaa5 6894 0: aaaa5 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 = 1 6910Starting chars: a b c d 6911 6912/(a*|b+)[cd]/IS 6913Capturing subpattern count = 1 6914No options 6915No first char 6916No need char 6917Subject length lower bound = 1 6918Starting chars: a b c d 6919 6920/(a+|b+)[cd]/IS 6921Capturing subpattern count = 1 6922No options 6923No first char 6924No need char 6925Subject length lower bound = 2 6926Starting chars: a b 6927 6928/(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( 6929 (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( 6930 ((( 6931 a 6932 )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 6933 )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 6934 ))) 6935/Ix 6936Capturing subpattern count = 203 6937Options: extended 6938First char = 'a' 6939No need char 6940 large nest 6941Matched, but too many substrings 6942 0: a 6943 1: a 6944 2: a 6945 3: a 6946 4: a 6947 5: a 6948 6: a 6949 7: a 6950 8: a 6951 9: a 695210: a 695311: a 695412: a 695513: a 695614: a 6957 6958/a*\d/BZ 6959------------------------------------------------------------------ 6960 Bra 6961 a*+ 6962 \d 6963 Ket 6964 End 6965------------------------------------------------------------------ 6966 6967/a*\D/BZ 6968------------------------------------------------------------------ 6969 Bra 6970 a* 6971 \D 6972 Ket 6973 End 6974------------------------------------------------------------------ 6975 6976/0*\d/BZ 6977------------------------------------------------------------------ 6978 Bra 6979 0* 6980 \d 6981 Ket 6982 End 6983------------------------------------------------------------------ 6984 6985/0*\D/BZ 6986------------------------------------------------------------------ 6987 Bra 6988 0*+ 6989 \D 6990 Ket 6991 End 6992------------------------------------------------------------------ 6993 6994/a*\s/BZ 6995------------------------------------------------------------------ 6996 Bra 6997 a*+ 6998 \s 6999 Ket 7000 End 7001------------------------------------------------------------------ 7002 7003/a*\S/BZ 7004------------------------------------------------------------------ 7005 Bra 7006 a* 7007 \S 7008 Ket 7009 End 7010------------------------------------------------------------------ 7011 7012/ *\s/BZ 7013------------------------------------------------------------------ 7014 Bra 7015 * 7016 \s 7017 Ket 7018 End 7019------------------------------------------------------------------ 7020 7021/ *\S/BZ 7022------------------------------------------------------------------ 7023 Bra 7024 *+ 7025 \S 7026 Ket 7027 End 7028------------------------------------------------------------------ 7029 7030/a*\w/BZ 7031------------------------------------------------------------------ 7032 Bra 7033 a* 7034 \w 7035 Ket 7036 End 7037------------------------------------------------------------------ 7038 7039/a*\W/BZ 7040------------------------------------------------------------------ 7041 Bra 7042 a*+ 7043 \W 7044 Ket 7045 End 7046------------------------------------------------------------------ 7047 7048/=*\w/BZ 7049------------------------------------------------------------------ 7050 Bra 7051 =*+ 7052 \w 7053 Ket 7054 End 7055------------------------------------------------------------------ 7056 7057/=*\W/BZ 7058------------------------------------------------------------------ 7059 Bra 7060 =* 7061 \W 7062 Ket 7063 End 7064------------------------------------------------------------------ 7065 7066/\d*a/BZ 7067------------------------------------------------------------------ 7068 Bra 7069 \d*+ 7070 a 7071 Ket 7072 End 7073------------------------------------------------------------------ 7074 7075/\d*2/BZ 7076------------------------------------------------------------------ 7077 Bra 7078 \d* 7079 2 7080 Ket 7081 End 7082------------------------------------------------------------------ 7083 7084/\d*\d/BZ 7085------------------------------------------------------------------ 7086 Bra 7087 \d* 7088 \d 7089 Ket 7090 End 7091------------------------------------------------------------------ 7092 7093/\d*\D/BZ 7094------------------------------------------------------------------ 7095 Bra 7096 \d*+ 7097 \D 7098 Ket 7099 End 7100------------------------------------------------------------------ 7101 7102/\d*\s/BZ 7103------------------------------------------------------------------ 7104 Bra 7105 \d*+ 7106 \s 7107 Ket 7108 End 7109------------------------------------------------------------------ 7110 7111/\d*\S/BZ 7112------------------------------------------------------------------ 7113 Bra 7114 \d* 7115 \S 7116 Ket 7117 End 7118------------------------------------------------------------------ 7119 7120/\d*\w/BZ 7121------------------------------------------------------------------ 7122 Bra 7123 \d* 7124 \w 7125 Ket 7126 End 7127------------------------------------------------------------------ 7128 7129/\d*\W/BZ 7130------------------------------------------------------------------ 7131 Bra 7132 \d*+ 7133 \W 7134 Ket 7135 End 7136------------------------------------------------------------------ 7137 7138/\D*a/BZ 7139------------------------------------------------------------------ 7140 Bra 7141 \D* 7142 a 7143 Ket 7144 End 7145------------------------------------------------------------------ 7146 7147/\D*2/BZ 7148------------------------------------------------------------------ 7149 Bra 7150 \D*+ 7151 2 7152 Ket 7153 End 7154------------------------------------------------------------------ 7155 7156/\D*\d/BZ 7157------------------------------------------------------------------ 7158 Bra 7159 \D*+ 7160 \d 7161 Ket 7162 End 7163------------------------------------------------------------------ 7164 7165/\D*\D/BZ 7166------------------------------------------------------------------ 7167 Bra 7168 \D* 7169 \D 7170 Ket 7171 End 7172------------------------------------------------------------------ 7173 7174/\D*\s/BZ 7175------------------------------------------------------------------ 7176 Bra 7177 \D* 7178 \s 7179 Ket 7180 End 7181------------------------------------------------------------------ 7182 7183/\D*\S/BZ 7184------------------------------------------------------------------ 7185 Bra 7186 \D* 7187 \S 7188 Ket 7189 End 7190------------------------------------------------------------------ 7191 7192/\D*\w/BZ 7193------------------------------------------------------------------ 7194 Bra 7195 \D* 7196 \w 7197 Ket 7198 End 7199------------------------------------------------------------------ 7200 7201/\D*\W/BZ 7202------------------------------------------------------------------ 7203 Bra 7204 \D* 7205 \W 7206 Ket 7207 End 7208------------------------------------------------------------------ 7209 7210/\s*a/BZ 7211------------------------------------------------------------------ 7212 Bra 7213 \s*+ 7214 a 7215 Ket 7216 End 7217------------------------------------------------------------------ 7218 7219/\s*2/BZ 7220------------------------------------------------------------------ 7221 Bra 7222 \s*+ 7223 2 7224 Ket 7225 End 7226------------------------------------------------------------------ 7227 7228/\s*\d/BZ 7229------------------------------------------------------------------ 7230 Bra 7231 \s*+ 7232 \d 7233 Ket 7234 End 7235------------------------------------------------------------------ 7236 7237/\s*\D/BZ 7238------------------------------------------------------------------ 7239 Bra 7240 \s* 7241 \D 7242 Ket 7243 End 7244------------------------------------------------------------------ 7245 7246/\s*\s/BZ 7247------------------------------------------------------------------ 7248 Bra 7249 \s* 7250 \s 7251 Ket 7252 End 7253------------------------------------------------------------------ 7254 7255/\s*\S/BZ 7256------------------------------------------------------------------ 7257 Bra 7258 \s*+ 7259 \S 7260 Ket 7261 End 7262------------------------------------------------------------------ 7263 7264/\s*\w/BZ 7265------------------------------------------------------------------ 7266 Bra 7267 \s*+ 7268 \w 7269 Ket 7270 End 7271------------------------------------------------------------------ 7272 7273/\s*\W/BZ 7274------------------------------------------------------------------ 7275 Bra 7276 \s* 7277 \W 7278 Ket 7279 End 7280------------------------------------------------------------------ 7281 7282/\S*a/BZ 7283------------------------------------------------------------------ 7284 Bra 7285 \S* 7286 a 7287 Ket 7288 End 7289------------------------------------------------------------------ 7290 7291/\S*2/BZ 7292------------------------------------------------------------------ 7293 Bra 7294 \S* 7295 2 7296 Ket 7297 End 7298------------------------------------------------------------------ 7299 7300/\S*\d/BZ 7301------------------------------------------------------------------ 7302 Bra 7303 \S* 7304 \d 7305 Ket 7306 End 7307------------------------------------------------------------------ 7308 7309/\S*\D/BZ 7310------------------------------------------------------------------ 7311 Bra 7312 \S* 7313 \D 7314 Ket 7315 End 7316------------------------------------------------------------------ 7317 7318/\S*\s/BZ 7319------------------------------------------------------------------ 7320 Bra 7321 \S*+ 7322 \s 7323 Ket 7324 End 7325------------------------------------------------------------------ 7326 7327/\S*\S/BZ 7328------------------------------------------------------------------ 7329 Bra 7330 \S* 7331 \S 7332 Ket 7333 End 7334------------------------------------------------------------------ 7335 7336/\S*\w/BZ 7337------------------------------------------------------------------ 7338 Bra 7339 \S* 7340 \w 7341 Ket 7342 End 7343------------------------------------------------------------------ 7344 7345/\S*\W/BZ 7346------------------------------------------------------------------ 7347 Bra 7348 \S* 7349 \W 7350 Ket 7351 End 7352------------------------------------------------------------------ 7353 7354/\w*a/BZ 7355------------------------------------------------------------------ 7356 Bra 7357 \w* 7358 a 7359 Ket 7360 End 7361------------------------------------------------------------------ 7362 7363/\w*2/BZ 7364------------------------------------------------------------------ 7365 Bra 7366 \w* 7367 2 7368 Ket 7369 End 7370------------------------------------------------------------------ 7371 7372/\w*\d/BZ 7373------------------------------------------------------------------ 7374 Bra 7375 \w* 7376 \d 7377 Ket 7378 End 7379------------------------------------------------------------------ 7380 7381/\w*\D/BZ 7382------------------------------------------------------------------ 7383 Bra 7384 \w* 7385 \D 7386 Ket 7387 End 7388------------------------------------------------------------------ 7389 7390/\w*\s/BZ 7391------------------------------------------------------------------ 7392 Bra 7393 \w*+ 7394 \s 7395 Ket 7396 End 7397------------------------------------------------------------------ 7398 7399/\w*\S/BZ 7400------------------------------------------------------------------ 7401 Bra 7402 \w* 7403 \S 7404 Ket 7405 End 7406------------------------------------------------------------------ 7407 7408/\w*\w/BZ 7409------------------------------------------------------------------ 7410 Bra 7411 \w* 7412 \w 7413 Ket 7414 End 7415------------------------------------------------------------------ 7416 7417/\w*\W/BZ 7418------------------------------------------------------------------ 7419 Bra 7420 \w*+ 7421 \W 7422 Ket 7423 End 7424------------------------------------------------------------------ 7425 7426/\W*a/BZ 7427------------------------------------------------------------------ 7428 Bra 7429 \W*+ 7430 a 7431 Ket 7432 End 7433------------------------------------------------------------------ 7434 7435/\W*2/BZ 7436------------------------------------------------------------------ 7437 Bra 7438 \W*+ 7439 2 7440 Ket 7441 End 7442------------------------------------------------------------------ 7443 7444/\W*\d/BZ 7445------------------------------------------------------------------ 7446 Bra 7447 \W*+ 7448 \d 7449 Ket 7450 End 7451------------------------------------------------------------------ 7452 7453/\W*\D/BZ 7454------------------------------------------------------------------ 7455 Bra 7456 \W* 7457 \D 7458 Ket 7459 End 7460------------------------------------------------------------------ 7461 7462/\W*\s/BZ 7463------------------------------------------------------------------ 7464 Bra 7465 \W* 7466 \s 7467 Ket 7468 End 7469------------------------------------------------------------------ 7470 7471/\W*\S/BZ 7472------------------------------------------------------------------ 7473 Bra 7474 \W* 7475 \S 7476 Ket 7477 End 7478------------------------------------------------------------------ 7479 7480/\W*\w/BZ 7481------------------------------------------------------------------ 7482 Bra 7483 \W*+ 7484 \w 7485 Ket 7486 End 7487------------------------------------------------------------------ 7488 7489/\W*\W/BZ 7490------------------------------------------------------------------ 7491 Bra 7492 \W* 7493 \W 7494 Ket 7495 End 7496------------------------------------------------------------------ 7497 7498/[^a]+a/BZ 7499------------------------------------------------------------------ 7500 Bra 7501 [^a]++ 7502 a 7503 Ket 7504 End 7505------------------------------------------------------------------ 7506 7507/[^a]+a/BZi 7508------------------------------------------------------------------ 7509 Bra 7510 /i [^a]++ 7511 /i a 7512 Ket 7513 End 7514------------------------------------------------------------------ 7515 7516/[^a]+A/BZi 7517------------------------------------------------------------------ 7518 Bra 7519 /i [^a]++ 7520 /i A 7521 Ket 7522 End 7523------------------------------------------------------------------ 7524 7525/[^a]+b/BZ 7526------------------------------------------------------------------ 7527 Bra 7528 [^a]+ 7529 b 7530 Ket 7531 End 7532------------------------------------------------------------------ 7533 7534/[^a]+\d/BZ 7535------------------------------------------------------------------ 7536 Bra 7537 [^a]+ 7538 \d 7539 Ket 7540 End 7541------------------------------------------------------------------ 7542 7543/a*[^a]/BZ 7544------------------------------------------------------------------ 7545 Bra 7546 a*+ 7547 [^a] 7548 Ket 7549 End 7550------------------------------------------------------------------ 7551 7552/(?P<abc>x)(?P<xyz>y)/I 7553Capturing subpattern count = 2 7554Named capturing subpatterns: 7555 abc 1 7556 xyz 2 7557No options 7558First char = 'x' 7559Need char = 'y' 7560 xy\Cabc\Cxyz 7561 0: xy 7562 1: x 7563 2: y 7564 C x (1) abc 7565 C y (1) xyz 7566 7567/(?<abc>x)(?'xyz'y)/I 7568Capturing subpattern count = 2 7569Named capturing subpatterns: 7570 abc 1 7571 xyz 2 7572No options 7573First char = 'x' 7574Need char = 'y' 7575 xy\Cabc\Cxyz 7576 0: xy 7577 1: x 7578 2: y 7579 C x (1) abc 7580 C y (1) xyz 7581 7582/(?<abc'x)(?'xyz'y)/I 7583Failed: syntax error in subpattern name (missing terminator) at offset 6 7584 7585/(?<abc>x)(?'xyz>y)/I 7586Failed: syntax error in subpattern name (missing terminator) at offset 15 7587 7588/(?P'abc'x)(?P<xyz>y)/I 7589Failed: unrecognized character after (?P at offset 3 7590 7591/^(?:(?(ZZ)a|b)(?<ZZ>X))+/ 7592 bXaX 7593 0: bXaX 7594 1: X 7595 bXbX 7596 0: bX 7597 1: X 7598 ** Failers 7599No match 7600 aXaX 7601No match 7602 aXbX 7603No match 7604 7605/^(?P>abc)(?<abcd>xxx)/ 7606Failed: reference to non-existent subpattern at offset 8 7607 7608/^(?P>abc)(?<abc>x|y)/ 7609 xx 7610 0: xx 7611 1: x 7612 xy 7613 0: xy 7614 1: y 7615 yy 7616 0: yy 7617 1: y 7618 yx 7619 0: yx 7620 1: x 7621 7622/^(?P>abc)(?P<abc>x|y)/ 7623 xx 7624 0: xx 7625 1: x 7626 xy 7627 0: xy 7628 1: y 7629 yy 7630 0: yy 7631 1: y 7632 yx 7633 0: yx 7634 1: x 7635 7636/^((?(abc)a|b)(?<abc>x|y))+/ 7637 bxay 7638 0: bxay 7639 1: ay 7640 2: y 7641 bxby 7642 0: bx 7643 1: bx 7644 2: x 7645 ** Failers 7646No match 7647 axby 7648No match 7649 7650/^(((?P=abc)|X)(?<abc>x|y))+/ 7651 XxXxxx 7652 0: XxXxxx 7653 1: xx 7654 2: x 7655 3: x 7656 XxXyyx 7657 0: XxXyyx 7658 1: yx 7659 2: y 7660 3: x 7661 XxXyxx 7662 0: XxXy 7663 1: Xy 7664 2: X 7665 3: y 7666 ** Failers 7667No match 7668 x 7669No match 7670 7671/^(?1)(abc)/ 7672 abcabc 7673 0: abcabc 7674 1: abc 7675 7676/^(?:(?:\1|X)(a|b))+/ 7677 Xaaa 7678 0: Xaaa 7679 1: a 7680 Xaba 7681 0: Xa 7682 1: a 7683 7684/^[\E\Qa\E-\Qz\E]+/BZ 7685------------------------------------------------------------------ 7686 Bra 7687 ^ 7688 [a-z]++ 7689 Ket 7690 End 7691------------------------------------------------------------------ 7692 7693/^[a\Q]bc\E]/BZ 7694------------------------------------------------------------------ 7695 Bra 7696 ^ 7697 [\]a-c] 7698 Ket 7699 End 7700------------------------------------------------------------------ 7701 7702/^[a-\Q\E]/BZ 7703------------------------------------------------------------------ 7704 Bra 7705 ^ 7706 [\-a] 7707 Ket 7708 End 7709------------------------------------------------------------------ 7710 7711/^(?P>abc)[()](?<abc>)/BZ 7712------------------------------------------------------------------ 7713 Bra 7714 ^ 7715 Recurse 7716 [()] 7717 CBra 1 7718 Ket 7719 Ket 7720 End 7721------------------------------------------------------------------ 7722 7723/^((?(abc)y)[()](?P<abc>x))+/BZ 7724------------------------------------------------------------------ 7725 Bra 7726 ^ 7727 CBra 1 7728 Cond 7729 2 Cond ref 7730 y 7731 Ket 7732 [()] 7733 CBra 2 7734 x 7735 Ket 7736 KetRmax 7737 Ket 7738 End 7739------------------------------------------------------------------ 7740 (xy)x 7741 0: (xy)x 7742 1: y)x 7743 2: x 7744 7745/^(?P>abc)\Q()\E(?<abc>)/BZ 7746------------------------------------------------------------------ 7747 Bra 7748 ^ 7749 Recurse 7750 () 7751 CBra 1 7752 Ket 7753 Ket 7754 End 7755------------------------------------------------------------------ 7756 7757/^(?P>abc)[a\Q(]\E(](?<abc>)/BZ 7758------------------------------------------------------------------ 7759 Bra 7760 ^ 7761 Recurse 7762 [(\]a] 7763 CBra 1 7764 Ket 7765 Ket 7766 End 7767------------------------------------------------------------------ 7768 7769/^(?P>abc) # this is (a comment) 7770 (?<abc>)/BZx 7771------------------------------------------------------------------ 7772 Bra 7773 ^ 7774 Recurse 7775 CBra 1 7776 Ket 7777 Ket 7778 End 7779------------------------------------------------------------------ 7780 7781/^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii 7782Capturing subpattern count = 4 7783Max back reference = 4 7784Named capturing subpatterns: 7785 four 4 7786 one 1 7787 three 3 7788 two 2 7789May match empty string 7790Options: anchored caseless 7791No first char 7792No need char 7793 1221 7794 0: 1221 7795 1: 1221 7796 2: 1 7797 Satan, oscillate my metallic sonatas! 7798 0: Satan, oscillate my metallic sonatas! 7799 1: <unset> 7800 2: <unset> 7801 3: Satan, oscillate my metallic sonatas 7802 4: S 7803 A man, a plan, a canal: Panama! 7804 0: A man, a plan, a canal: Panama! 7805 1: <unset> 7806 2: <unset> 7807 3: A man, a plan, a canal: Panama 7808 4: A 7809 Able was I ere I saw Elba. 7810 0: Able was I ere I saw Elba. 7811 1: <unset> 7812 2: <unset> 7813 3: Able was I ere I saw Elba 7814 4: A 7815 *** Failers 7816No match 7817 The quick brown fox 7818No match 7819 7820/(?=(\w+))\1:/I 7821Capturing subpattern count = 1 7822Max back reference = 1 7823No options 7824No first char 7825Need char = ':' 7826 abcd: 7827 0: abcd: 7828 1: abcd 7829 7830/(?=(?'abc'\w+))\k<abc>:/I 7831Capturing subpattern count = 1 7832Max back reference = 1 7833Named capturing subpatterns: 7834 abc 1 7835No options 7836No first char 7837Need char = ':' 7838 abcd: 7839 0: abcd: 7840 1: abcd 7841 7842/(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J 7843 adaa 7844 0: adaa 7845 1: a 7846 2: d 7847 ** Failers 7848No match 7849 addd 7850No match 7851 adbb 7852No match 7853 7854/(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J 7855 bdaa 7856 0: bdaa 7857 1: b 7858 2: d 7859 bdab 7860 0: bdab 7861 1: b 7862 2: d 7863 ** Failers 7864No match 7865 bddd 7866No match 7867 7868/(?(<bc))/ 7869Failed: malformed number or name after (?( at offset 6 7870 7871/(?(''))/ 7872Failed: assertion expected after (?( or (?(?C) at offset 4 7873 7874/(?('R')stuff)/ 7875Failed: reference to non-existent subpattern at offset 7 7876 7877/((abc (?(R) (?(R1)1) (?(R2)2) X | (?1) (?2) (?R) ))) /x 7878 abcabc1Xabc2XabcXabcabc 7879 0: abcabc1Xabc2XabcX 7880 1: abcabc1Xabc2XabcX 7881 2: abcabc1Xabc2XabcX 7882 7883/(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x 7884 abcabc1Xabc2XabcXabcabc 7885 0: abcabc1Xabc2XabcX 7886 1: abcabc1Xabc2XabcX 7887 2: abcabc1Xabc2XabcX 7888 7889/(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x 7890Failed: reference to non-existent subpattern at offset 29 7891 7892/^(?(DEFINE) abc | xyz ) /x 7893Failed: DEFINE group contains more than one branch at offset 22 7894 7895/(?(DEFINE) abc) xyz/xI 7896Capturing subpattern count = 0 7897Options: extended 7898First char = 'x' 7899Need char = 'z' 7900 7901/(a|)*\d/ 7902 \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 7903No match 7904 \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 7905Matched, but too many substrings 7906 7907/^a.b/<lf> 7908 a\rb 7909 0: a\x0db 7910 a\nb\<cr> 7911 0: a\x0ab 7912 a\x85b\<anycrlf> 7913 0: a\x85b 7914 ** Failers 7915No match 7916 a\nb 7917No match 7918 a\nb\<any> 7919No match 7920 a\rb\<cr> 7921No match 7922 a\rb\<any> 7923No match 7924 a\x85b\<any> 7925No match 7926 a\rb\<anycrlf> 7927No match 7928 7929/^abc./mgx<any> 7930 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK 7931 0: abc1 7932 0: abc2 7933 0: abc3 7934 0: abc4 7935 0: abc5 7936 0: abc6 7937 0: abc7 7938 7939/abc.$/mgx<any> 7940 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9 7941 0: abc1 7942 0: abc2 7943 0: abc3 7944 0: abc4 7945 0: abc5 7946 0: abc6 7947 0: abc9 7948 7949/a/<cr><any> 7950 7951/a/<any><crlf> 7952Failed: inconsistent NEWLINE options at offset 0 7953 7954/^a\Rb/<bsr_unicode> 7955 a\nb 7956 0: a\x0ab 7957 a\rb 7958 0: a\x0db 7959 a\r\nb 7960 0: a\x0d\x0ab 7961 a\x0bb 7962 0: a\x0bb 7963 a\x0cb 7964 0: a\x0cb 7965 a\x85b 7966 0: a\x85b 7967 ** Failers 7968No match 7969 a\n\rb 7970No match 7971 7972/^a\R*b/<bsr_unicode> 7973 ab 7974 0: ab 7975 a\nb 7976 0: a\x0ab 7977 a\rb 7978 0: a\x0db 7979 a\r\nb 7980 0: a\x0d\x0ab 7981 a\x0bb 7982 0: a\x0bb 7983 a\x0cb 7984 0: a\x0cb 7985 a\x85b 7986 0: a\x85b 7987 a\n\rb 7988 0: a\x0a\x0db 7989 a\n\r\x85\x0cb 7990 0: a\x0a\x0d\x85\x0cb 7991 7992/^a\R+b/<bsr_unicode> 7993 a\nb 7994 0: a\x0ab 7995 a\rb 7996 0: a\x0db 7997 a\r\nb 7998 0: a\x0d\x0ab 7999 a\x0bb 8000 0: a\x0bb 8001 a\x0cb 8002 0: a\x0cb 8003 a\x85b 8004 0: a\x85b 8005 a\n\rb 8006 0: a\x0a\x0db 8007 a\n\r\x85\x0cb 8008 0: a\x0a\x0d\x85\x0cb 8009 ** Failers 8010No match 8011 ab 8012No match 8013 8014/^a\R{1,3}b/<bsr_unicode> 8015 a\nb 8016 0: a\x0ab 8017 a\n\rb 8018 0: a\x0a\x0db 8019 a\n\r\x85b 8020 0: a\x0a\x0d\x85b 8021 a\r\n\r\nb 8022 0: a\x0d\x0a\x0d\x0ab 8023 a\r\n\r\n\r\nb 8024 0: a\x0d\x0a\x0d\x0a\x0d\x0ab 8025 a\n\r\n\rb 8026 0: a\x0a\x0d\x0a\x0db 8027 a\n\n\r\nb 8028 0: a\x0a\x0a\x0d\x0ab 8029 ** Failers 8030No match 8031 a\n\n\n\rb 8032No match 8033 a\r 8034No match 8035 8036/^a[\R]b/<bsr_unicode> 8037 aRb 8038 0: aRb 8039 ** Failers 8040No match 8041 a\nb 8042No match 8043 8044/(?&abc)X(?<abc>P)/I 8045Capturing subpattern count = 1 8046Named capturing subpatterns: 8047 abc 1 8048No options 8049No first char 8050Need char = 'P' 8051 abcPXP123 8052 0: PXP 8053 1: P 8054 8055/(?1)X(?<abc>P)/I 8056Capturing subpattern count = 1 8057Named capturing subpatterns: 8058 abc 1 8059No options 8060No first char 8061Need char = 'P' 8062 abcPXP123 8063 0: PXP 8064 1: P 8065 8066/(?:a(?&abc)b)*(?<abc>x)/ 8067 123axbaxbaxbx456 8068 0: axbaxbaxbx 8069 1: x 8070 123axbaxbaxb456 8071 0: x 8072 1: x 8073 8074/(?:a(?&abc)b){1,5}(?<abc>x)/ 8075 123axbaxbaxbx456 8076 0: axbaxbaxbx 8077 1: x 8078 8079/(?:a(?&abc)b){2,5}(?<abc>x)/ 8080 123axbaxbaxbx456 8081 0: axbaxbaxbx 8082 1: x 8083 8084/(?:a(?&abc)b){2,}(?<abc>x)/ 8085 123axbaxbaxbx456 8086 0: axbaxbaxbx 8087 1: x 8088 8089/(abc)(?i:(?1))/ 8090 defabcabcxyz 8091 0: abcabc 8092 1: abc 8093 DEFabcABCXYZ 8094No match 8095 8096/(abc)(?:(?i)(?1))/ 8097 defabcabcxyz 8098 0: abcabc 8099 1: abc 8100 DEFabcABCXYZ 8101No match 8102 8103/^(a)\g-2/ 8104Failed: reference to non-existent subpattern at offset 7 8105 8106/^(a)\g/ 8107Failed: a numbered reference must not be zero at offset 5 8108 8109/^(a)\g{0}/ 8110Failed: a numbered reference must not be zero at offset 8 8111 8112/^(a)\g{3/ 8113Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8 8114 8115/^(a)\g{aa}/ 8116Failed: reference to non-existent subpattern at offset 9 8117 8118/^a.b/<lf> 8119 a\rb 8120 0: a\x0db 8121 *** Failers 8122No match 8123 a\nb 8124No match 8125 8126/.+foo/ 8127 afoo 8128 0: afoo 8129 ** Failers 8130No match 8131 \r\nfoo 8132No match 8133 \nfoo 8134No match 8135 8136/.+foo/<crlf> 8137 afoo 8138 0: afoo 8139 \nfoo 8140 0: \x0afoo 8141 ** Failers 8142No match 8143 \r\nfoo 8144No match 8145 8146/.+foo/<any> 8147 afoo 8148 0: afoo 8149 ** Failers 8150No match 8151 \nfoo 8152No match 8153 \r\nfoo 8154No match 8155 8156/.+foo/s 8157 afoo 8158 0: afoo 8159 \r\nfoo 8160 0: \x0d\x0afoo 8161 \nfoo 8162 0: \x0afoo 8163 8164/^$/mg<any> 8165 abc\r\rxyz 8166 0: 8167 abc\n\rxyz 8168 0: 8169 ** Failers 8170No match 8171 abc\r\nxyz 8172No match 8173 8174/(?m)^$/<any>g+ 8175 abc\r\n\r\n 8176 0: 8177 0+ \x0d\x0a 8178 8179/(?m)^$|^\r\n/<any>g+ 8180 abc\r\n\r\n 8181 0: 8182 0+ \x0d\x0a 8183 0: \x0d\x0a 8184 0+ 8185 8186/(?m)$/<any>g+ 8187 abc\r\n\r\n 8188 0: 8189 0+ \x0d\x0a\x0d\x0a 8190 0: 8191 0+ \x0d\x0a 8192 0: 8193 0+ 8194 8195/abc.$/mgx<anycrlf> 8196 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9 8197 0: abc1 8198 0: abc4 8199 0: abc5 8200 0: abc9 8201 8202/^X/m 8203 XABC 8204 0: X 8205 ** Failers 8206No match 8207 XABC\B 8208No match 8209 8210/(ab|c)(?-1)/BZ 8211------------------------------------------------------------------ 8212 Bra 8213 CBra 1 8214 ab 8215 Alt 8216 c 8217 Ket 8218 Recurse 8219 Ket 8220 End 8221------------------------------------------------------------------ 8222 abc 8223 0: abc 8224 1: ab 8225 8226/xy(?+1)(abc)/BZ 8227------------------------------------------------------------------ 8228 Bra 8229 xy 8230 Recurse 8231 CBra 1 8232 abc 8233 Ket 8234 Ket 8235 End 8236------------------------------------------------------------------ 8237 xyabcabc 8238 0: xyabcabc 8239 1: abc 8240 ** Failers 8241No match 8242 xyabc 8243No match 8244 8245/x(?-0)y/ 8246Failed: a numbered reference must not be zero at offset 5 8247 8248/x(?-1)y/ 8249Failed: reference to non-existent subpattern at offset 5 8250 8251/x(?+0)y/ 8252Failed: a numbered reference must not be zero at offset 5 8253 8254/x(?+1)y/ 8255Failed: reference to non-existent subpattern at offset 5 8256 8257/^(abc)?(?(-1)X|Y)/BZ 8258------------------------------------------------------------------ 8259 Bra 8260 ^ 8261 Brazero 8262 CBra 1 8263 abc 8264 Ket 8265 Cond 8266 1 Cond ref 8267 X 8268 Alt 8269 Y 8270 Ket 8271 Ket 8272 End 8273------------------------------------------------------------------ 8274 abcX 8275 0: abcX 8276 1: abc 8277 Y 8278 0: Y 8279 ** Failers 8280No match 8281 abcY 8282No match 8283 8284/^((?(+1)X|Y)(abc))+/BZ 8285------------------------------------------------------------------ 8286 Bra 8287 ^ 8288 CBra 1 8289 Cond 8290 2 Cond ref 8291 X 8292 Alt 8293 Y 8294 Ket 8295 CBra 2 8296 abc 8297 Ket 8298 KetRmax 8299 Ket 8300 End 8301------------------------------------------------------------------ 8302 YabcXabc 8303 0: YabcXabc 8304 1: Xabc 8305 2: abc 8306 YabcXabcXabc 8307 0: YabcXabcXabc 8308 1: Xabc 8309 2: abc 8310 ** Failers 8311No match 8312 XabcXabc 8313No match 8314 8315/(?(-1)a)/BZ 8316Failed: reference to non-existent subpattern at offset 6 8317 8318/((?(-1)a))/BZ 8319------------------------------------------------------------------ 8320 Bra 8321 CBra 1 8322 Cond 8323 1 Cond ref 8324 a 8325 Ket 8326 Ket 8327 Ket 8328 End 8329------------------------------------------------------------------ 8330 8331/((?(-2)a))/BZ 8332Failed: reference to non-existent subpattern at offset 7 8333 8334/^(?(+1)X|Y)(.)/BZ 8335------------------------------------------------------------------ 8336 Bra 8337 ^ 8338 Cond 8339 1 Cond ref 8340 X 8341 Alt 8342 Y 8343 Ket 8344 CBra 1 8345 Any 8346 Ket 8347 Ket 8348 End 8349------------------------------------------------------------------ 8350 Y! 8351 0: Y! 8352 1: ! 8353 8354/(?<A>tom|bon)-\k{A}/ 8355 tom-tom 8356 0: tom-tom 8357 1: tom 8358 bon-bon 8359 0: bon-bon 8360 1: bon 8361 ** Failers 8362No match 8363 tom-bon 8364No match 8365 8366/\g{A/ 8367Failed: syntax error in subpattern name (missing terminator) at offset 4 8368 8369/(?|(abc)|(xyz))/BZ 8370------------------------------------------------------------------ 8371 Bra 8372 Bra 8373 CBra 1 8374 abc 8375 Ket 8376 Alt 8377 CBra 1 8378 xyz 8379 Ket 8380 Ket 8381 Ket 8382 End 8383------------------------------------------------------------------ 8384 >abc< 8385 0: abc 8386 1: abc 8387 >xyz< 8388 0: xyz 8389 1: xyz 8390 8391/(x)(?|(abc)|(xyz))(x)/BZ 8392------------------------------------------------------------------ 8393 Bra 8394 CBra 1 8395 x 8396 Ket 8397 Bra 8398 CBra 2 8399 abc 8400 Ket 8401 Alt 8402 CBra 2 8403 xyz 8404 Ket 8405 Ket 8406 CBra 3 8407 x 8408 Ket 8409 Ket 8410 End 8411------------------------------------------------------------------ 8412 xabcx 8413 0: xabcx 8414 1: x 8415 2: abc 8416 3: x 8417 xxyzx 8418 0: xxyzx 8419 1: x 8420 2: xyz 8421 3: x 8422 8423/(x)(?|(abc)(pqr)|(xyz))(x)/BZ 8424------------------------------------------------------------------ 8425 Bra 8426 CBra 1 8427 x 8428 Ket 8429 Bra 8430 CBra 2 8431 abc 8432 Ket 8433 CBra 3 8434 pqr 8435 Ket 8436 Alt 8437 CBra 2 8438 xyz 8439 Ket 8440 Ket 8441 CBra 4 8442 x 8443 Ket 8444 Ket 8445 End 8446------------------------------------------------------------------ 8447 xabcpqrx 8448 0: xabcpqrx 8449 1: x 8450 2: abc 8451 3: pqr 8452 4: x 8453 xxyzx 8454 0: xxyzx 8455 1: x 8456 2: xyz 8457 3: <unset> 8458 4: x 8459 8460/\H++X/BZ 8461------------------------------------------------------------------ 8462 Bra 8463 \H++ 8464 X 8465 Ket 8466 End 8467------------------------------------------------------------------ 8468 ** Failers 8469No match 8470 XXXX 8471No match 8472 8473/\H+\hY/BZ 8474------------------------------------------------------------------ 8475 Bra 8476 \H++ 8477 \h 8478 Y 8479 Ket 8480 End 8481------------------------------------------------------------------ 8482 XXXX Y 8483 0: XXXX Y 8484 8485/\H+ Y/BZ 8486------------------------------------------------------------------ 8487 Bra 8488 \H++ 8489 Y 8490 Ket 8491 End 8492------------------------------------------------------------------ 8493 8494/\h+A/BZ 8495------------------------------------------------------------------ 8496 Bra 8497 \h++ 8498 A 8499 Ket 8500 End 8501------------------------------------------------------------------ 8502 8503/\v*B/BZ 8504------------------------------------------------------------------ 8505 Bra 8506 \v*+ 8507 B 8508 Ket 8509 End 8510------------------------------------------------------------------ 8511 8512/\V+\x0a/BZ 8513------------------------------------------------------------------ 8514 Bra 8515 \V++ 8516 \x0a 8517 Ket 8518 End 8519------------------------------------------------------------------ 8520 8521/A+\h/BZ 8522------------------------------------------------------------------ 8523 Bra 8524 A++ 8525 \h 8526 Ket 8527 End 8528------------------------------------------------------------------ 8529 8530/ *\H/BZ 8531------------------------------------------------------------------ 8532 Bra 8533 *+ 8534 \H 8535 Ket 8536 End 8537------------------------------------------------------------------ 8538 8539/A*\v/BZ 8540------------------------------------------------------------------ 8541 Bra 8542 A*+ 8543 \v 8544 Ket 8545 End 8546------------------------------------------------------------------ 8547 8548/\x0b*\V/BZ 8549------------------------------------------------------------------ 8550 Bra 8551 \x0b*+ 8552 \V 8553 Ket 8554 End 8555------------------------------------------------------------------ 8556 8557/\d+\h/BZ 8558------------------------------------------------------------------ 8559 Bra 8560 \d++ 8561 \h 8562 Ket 8563 End 8564------------------------------------------------------------------ 8565 8566/\d*\v/BZ 8567------------------------------------------------------------------ 8568 Bra 8569 \d*+ 8570 \v 8571 Ket 8572 End 8573------------------------------------------------------------------ 8574 8575/S+\h\S+\v/BZ 8576------------------------------------------------------------------ 8577 Bra 8578 S++ 8579 \h 8580 \S++ 8581 \v 8582 Ket 8583 End 8584------------------------------------------------------------------ 8585 8586/\w{3,}\h\w+\v/BZ 8587------------------------------------------------------------------ 8588 Bra 8589 \w{3} 8590 \w*+ 8591 \h 8592 \w++ 8593 \v 8594 Ket 8595 End 8596------------------------------------------------------------------ 8597 8598/\h+\d\h+\w\h+\S\h+\H/BZ 8599------------------------------------------------------------------ 8600 Bra 8601 \h++ 8602 \d 8603 \h++ 8604 \w 8605 \h++ 8606 \S 8607 \h++ 8608 \H 8609 Ket 8610 End 8611------------------------------------------------------------------ 8612 8613/\v+\d\v+\w\v+\S\v+\V/BZ 8614------------------------------------------------------------------ 8615 Bra 8616 \v++ 8617 \d 8618 \v++ 8619 \w 8620 \v++ 8621 \S 8622 \v++ 8623 \V 8624 Ket 8625 End 8626------------------------------------------------------------------ 8627 8628/\H+\h\H+\d/BZ 8629------------------------------------------------------------------ 8630 Bra 8631 \H++ 8632 \h 8633 \H+ 8634 \d 8635 Ket 8636 End 8637------------------------------------------------------------------ 8638 8639/\V+\v\V+\w/BZ 8640------------------------------------------------------------------ 8641 Bra 8642 \V++ 8643 \v 8644 \V+ 8645 \w 8646 Ket 8647 End 8648------------------------------------------------------------------ 8649 8650/\( (?: [^()]* | (?R) )* \)/x 8651\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) 8652 0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0) 8653 8654/[\E]AAA/ 8655Failed: missing terminating ] for character class at offset 7 8656 8657/[\Q\E]AAA/ 8658Failed: missing terminating ] for character class at offset 9 8659 8660/[^\E]AAA/ 8661Failed: missing terminating ] for character class at offset 8 8662 8663/[^\Q\E]AAA/ 8664Failed: missing terminating ] for character class at offset 10 8665 8666/[\E^]AAA/ 8667Failed: missing terminating ] for character class at offset 8 8668 8669/[\Q\E^]AAA/ 8670Failed: missing terminating ] for character class at offset 10 8671 8672/A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ 8673------------------------------------------------------------------ 8674 Bra 8675 A 8676 *PRUNE 8677 B 8678 *SKIP 8679 C 8680 *THEN 8681 D 8682 *COMMIT 8683 E 8684 *FAIL 8685 F 8686 *FAIL 8687 G 8688 *FAIL 8689 H 8690 *ACCEPT 8691 I 8692 Ket 8693 End 8694------------------------------------------------------------------ 8695 8696/^a+(*FAIL)/C 8697 aaaaaa 8698--->aaaaaa 8699 +0 ^ ^ 8700 +1 ^ a+ 8701 +3 ^ ^ (*FAIL) 8702 +3 ^ ^ (*FAIL) 8703 +3 ^ ^ (*FAIL) 8704 +3 ^ ^ (*FAIL) 8705 +3 ^ ^ (*FAIL) 8706 +3 ^^ (*FAIL) 8707No match 8708 8709/a+b?c+(*FAIL)/C 8710 aaabccc 8711--->aaabccc 8712 +0 ^ a+ 8713 +2 ^ ^ b? 8714 +4 ^ ^ c+ 8715 +6 ^ ^ (*FAIL) 8716 +6 ^ ^ (*FAIL) 8717 +6 ^ ^ (*FAIL) 8718 +0 ^ a+ 8719 +2 ^ ^ b? 8720 +4 ^ ^ c+ 8721 +6 ^ ^ (*FAIL) 8722 +6 ^ ^ (*FAIL) 8723 +6 ^ ^ (*FAIL) 8724 +0 ^ a+ 8725 +2 ^^ b? 8726 +4 ^ ^ c+ 8727 +6 ^ ^ (*FAIL) 8728 +6 ^ ^ (*FAIL) 8729 +6 ^ ^ (*FAIL) 8730No match 8731 8732/a+b?(*PRUNE)c+(*FAIL)/C 8733 aaabccc 8734--->aaabccc 8735 +0 ^ a+ 8736 +2 ^ ^ b? 8737 +4 ^ ^ (*PRUNE) 8738+12 ^ ^ c+ 8739+14 ^ ^ (*FAIL) 8740+14 ^ ^ (*FAIL) 8741+14 ^ ^ (*FAIL) 8742 +0 ^ a+ 8743 +2 ^ ^ b? 8744 +4 ^ ^ (*PRUNE) 8745+12 ^ ^ c+ 8746+14 ^ ^ (*FAIL) 8747+14 ^ ^ (*FAIL) 8748+14 ^ ^ (*FAIL) 8749 +0 ^ a+ 8750 +2 ^^ b? 8751 +4 ^ ^ (*PRUNE) 8752+12 ^ ^ c+ 8753+14 ^ ^ (*FAIL) 8754+14 ^ ^ (*FAIL) 8755+14 ^ ^ (*FAIL) 8756No match 8757 8758/a+b?(*COMMIT)c+(*FAIL)/C 8759 aaabccc 8760--->aaabccc 8761 +0 ^ a+ 8762 +2 ^ ^ b? 8763 +4 ^ ^ (*COMMIT) 8764+13 ^ ^ c+ 8765+15 ^ ^ (*FAIL) 8766+15 ^ ^ (*FAIL) 8767+15 ^ ^ (*FAIL) 8768No match 8769 8770/a+b?(*SKIP)c+(*FAIL)/C 8771 aaabcccaaabccc 8772--->aaabcccaaabccc 8773 +0 ^ a+ 8774 +2 ^ ^ b? 8775 +4 ^ ^ (*SKIP) 8776+11 ^ ^ c+ 8777+13 ^ ^ (*FAIL) 8778+13 ^ ^ (*FAIL) 8779+13 ^ ^ (*FAIL) 8780 +0 ^ a+ 8781 +2 ^ ^ b? 8782 +4 ^ ^ (*SKIP) 8783+11 ^ ^ c+ 8784+13 ^ ^ (*FAIL) 8785+13 ^ ^ (*FAIL) 8786+13 ^ ^ (*FAIL) 8787No match 8788 8789/a+b?(*THEN)c+(*FAIL)/C 8790 aaabccc 8791--->aaabccc 8792 +0 ^ a+ 8793 +2 ^ ^ b? 8794 +4 ^ ^ (*THEN) 8795+11 ^ ^ c+ 8796+13 ^ ^ (*FAIL) 8797+13 ^ ^ (*FAIL) 8798+13 ^ ^ (*FAIL) 8799 +0 ^ a+ 8800 +2 ^ ^ b? 8801 +4 ^ ^ (*THEN) 8802+11 ^ ^ c+ 8803+13 ^ ^ (*FAIL) 8804+13 ^ ^ (*FAIL) 8805+13 ^ ^ (*FAIL) 8806 +0 ^ a+ 8807 +2 ^^ b? 8808 +4 ^ ^ (*THEN) 8809+11 ^ ^ c+ 8810+13 ^ ^ (*FAIL) 8811+13 ^ ^ (*FAIL) 8812+13 ^ ^ (*FAIL) 8813No match 8814 8815/a(*MARK)b/ 8816Failed: (*MARK) must have an argument at offset 7 8817 8818/(?i:A{1,}\6666666666)/ 8819Failed: number is too big at offset 19 8820 8821/\g6666666666/ 8822Failed: number is too big at offset 11 8823 8824/[\g6666666666]/BZ 8825------------------------------------------------------------------ 8826 Bra 8827 [6g] 8828 Ket 8829 End 8830------------------------------------------------------------------ 8831 8832/(?1)\c[/ 8833Failed: reference to non-existent subpattern at offset 3 8834 8835/.+A/<crlf> 8836 \r\nA 8837No match 8838 8839/\nA/<crlf> 8840 \r\nA 8841 0: \x0aA 8842 8843/[\r\n]A/<crlf> 8844 \r\nA 8845 0: \x0aA 8846 8847/(\r|\n)A/<crlf> 8848 \r\nA 8849 0: \x0aA 8850 1: \x0a 8851 8852/a(*CR)b/ 8853Failed: (*VERB) not recognized or malformed at offset 5 8854 8855/(*CR)a.b/ 8856 a\nb 8857 0: a\x0ab 8858 ** Failers 8859No match 8860 a\rb 8861No match 8862 8863/(*CR)a.b/<lf> 8864 a\nb 8865 0: a\x0ab 8866 ** Failers 8867No match 8868 a\rb 8869No match 8870 8871/(*LF)a.b/<CRLF> 8872 a\rb 8873 0: a\x0db 8874 ** Failers 8875No match 8876 a\nb 8877No match 8878 8879/(*CRLF)a.b/ 8880 a\rb 8881 0: a\x0db 8882 a\nb 8883 0: a\x0ab 8884 ** Failers 8885No match 8886 a\r\nb 8887No match 8888 8889/(*ANYCRLF)a.b/<CR> 8890 ** Failers 8891No match 8892 a\rb 8893No match 8894 a\nb 8895No match 8896 a\r\nb 8897No match 8898 8899/(*ANY)a.b/<cr> 8900 ** Failers 8901No match 8902 a\rb 8903No match 8904 a\nb 8905No match 8906 a\r\nb 8907No match 8908 a\x85b 8909No match 8910 8911/(*ANY).*/g 8912 abc\r\ndef 8913 0: abc 8914 0: 8915 0: def 8916 0: 8917 8918/(*ANYCRLF).*/g 8919 abc\r\ndef 8920 0: abc 8921 0: 8922 0: def 8923 0: 8924 8925/(*CRLF).*/g 8926 abc\r\ndef 8927 0: abc 8928 0: 8929 0: def 8930 0: 8931 8932/a\Rb/I<bsr_anycrlf> 8933Capturing subpattern count = 0 8934Options: bsr_anycrlf 8935First char = 'a' 8936Need char = 'b' 8937 a\rb 8938 0: a\x0db 8939 a\nb 8940 0: a\x0ab 8941 a\r\nb 8942 0: a\x0d\x0ab 8943 ** Failers 8944No match 8945 a\x85b 8946No match 8947 a\x0bb 8948No match 8949 8950/a\Rb/I<bsr_unicode> 8951Capturing subpattern count = 0 8952Options: bsr_unicode 8953First char = 'a' 8954Need char = 'b' 8955 a\rb 8956 0: a\x0db 8957 a\nb 8958 0: a\x0ab 8959 a\r\nb 8960 0: a\x0d\x0ab 8961 a\x85b 8962 0: a\x85b 8963 a\x0bb 8964 0: a\x0bb 8965 ** Failers 8966No match 8967 a\x85b\<bsr_anycrlf> 8968No match 8969 a\x0bb\<bsr_anycrlf> 8970No match 8971 8972/a\R?b/I<bsr_anycrlf> 8973Capturing subpattern count = 0 8974Options: bsr_anycrlf 8975First char = 'a' 8976Need char = 'b' 8977 a\rb 8978 0: a\x0db 8979 a\nb 8980 0: a\x0ab 8981 a\r\nb 8982 0: a\x0d\x0ab 8983 ** Failers 8984No match 8985 a\x85b 8986No match 8987 a\x0bb 8988No match 8989 8990/a\R?b/I<bsr_unicode> 8991Capturing subpattern count = 0 8992Options: bsr_unicode 8993First char = 'a' 8994Need char = 'b' 8995 a\rb 8996 0: a\x0db 8997 a\nb 8998 0: a\x0ab 8999 a\r\nb 9000 0: a\x0d\x0ab 9001 a\x85b 9002 0: a\x85b 9003 a\x0bb 9004 0: a\x0bb 9005 ** Failers 9006No match 9007 a\x85b\<bsr_anycrlf> 9008No match 9009 a\x0bb\<bsr_anycrlf> 9010No match 9011 9012/a\R{2,4}b/I<bsr_anycrlf> 9013Capturing subpattern count = 0 9014Options: bsr_anycrlf 9015First char = 'a' 9016Need char = 'b' 9017 a\r\n\nb 9018 0: a\x0d\x0a\x0ab 9019 a\n\r\rb 9020 0: a\x0a\x0d\x0db 9021 a\r\n\r\n\r\n\r\nb 9022 0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab 9023 ** Failers 9024No match 9025 a\x85\85b 9026No match 9027 a\x0b\0bb 9028No match 9029 9030/a\R{2,4}b/I<bsr_unicode> 9031Capturing subpattern count = 0 9032Options: bsr_unicode 9033First char = 'a' 9034Need char = 'b' 9035 a\r\rb 9036 0: a\x0d\x0db 9037 a\n\n\nb 9038 0: a\x0a\x0a\x0ab 9039 a\r\n\n\r\rb 9040 0: a\x0d\x0a\x0a\x0d\x0db 9041 a\x85\85b 9042No match 9043 a\x0b\0bb 9044No match 9045 ** Failers 9046No match 9047 a\r\r\r\r\rb 9048No match 9049 a\x85\85b\<bsr_anycrlf> 9050No match 9051 a\x0b\0bb\<bsr_anycrlf> 9052No match 9053 9054/(*BSR_ANYCRLF)a\Rb/I 9055Capturing subpattern count = 0 9056Options: bsr_anycrlf 9057First char = 'a' 9058Need char = 'b' 9059 a\nb 9060 0: a\x0ab 9061 a\rb 9062 0: a\x0db 9063 9064/(*BSR_UNICODE)a\Rb/I 9065Capturing subpattern count = 0 9066Options: bsr_unicode 9067First char = 'a' 9068Need char = 'b' 9069 a\x85b 9070 0: a\x85b 9071 9072/(*BSR_ANYCRLF)(*CRLF)a\Rb/I 9073Capturing subpattern count = 0 9074Options: bsr_anycrlf 9075Forced newline sequence: CRLF 9076First char = 'a' 9077Need char = 'b' 9078 a\nb 9079 0: a\x0ab 9080 a\rb 9081 0: a\x0db 9082 9083/(*CRLF)(*BSR_UNICODE)a\Rb/I 9084Capturing subpattern count = 0 9085Options: bsr_unicode 9086Forced newline sequence: CRLF 9087First char = 'a' 9088Need char = 'b' 9089 a\x85b 9090 0: a\x85b 9091 9092/(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I 9093Capturing subpattern count = 0 9094Options: bsr_anycrlf 9095Forced newline sequence: CR 9096First char = 'a' 9097Need char = 'b' 9098 9099/(?<a>)(?&)/ 9100Failed: subpattern name expected at offset 9 9101 9102/(?<abc>)(?&a)/ 9103Failed: reference to non-existent subpattern at offset 12 9104 9105/(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/ 9106Failed: reference to non-existent subpattern at offset 32 9107 9108/(?+-a)/ 9109Failed: digit expected after (?+ at offset 3 9110 9111/(?-+a)/ 9112Failed: unrecognized character after (? or (?- at offset 3 9113 9114/(?(-1))/ 9115Failed: reference to non-existent subpattern at offset 6 9116 9117/(?(+10))/ 9118Failed: reference to non-existent subpattern at offset 7 9119 9120/(?(10))/ 9121Failed: reference to non-existent subpattern at offset 6 9122 9123/(?(+2))()()/ 9124 9125/(?(2))()()/ 9126 9127/\k''/ 9128Failed: subpattern name expected at offset 3 9129 9130/\k<>/ 9131Failed: subpattern name expected at offset 3 9132 9133/\k{}/ 9134Failed: subpattern name expected at offset 3 9135 9136/\k/ 9137Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 1 9138 9139/\kabc/ 9140Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 1 9141 9142/(?P=)/ 9143Failed: subpattern name expected at offset 4 9144 9145/(?P>)/ 9146Failed: subpattern name expected at offset 4 9147 9148/(?!\w)(?R)/ 9149Failed: recursive call could loop indefinitely at offset 9 9150 9151/(?=\w)(?R)/ 9152Failed: recursive call could loop indefinitely at offset 9 9153 9154/(?<!\w)(?R)/ 9155Failed: recursive call could loop indefinitely at offset 10 9156 9157/(?<=\w)(?R)/ 9158Failed: recursive call could loop indefinitely at offset 10 9159 9160/[[:foo:]]/ 9161Failed: unknown POSIX class name at offset 3 9162 9163/[[:1234:]]/ 9164Failed: unknown POSIX class name at offset 3 9165 9166/[[:f\oo:]]/ 9167Failed: unknown POSIX class name at offset 3 9168 9169/[[: :]]/ 9170Failed: unknown POSIX class name at offset 3 9171 9172/[[:...:]]/ 9173Failed: unknown POSIX class name at offset 3 9174 9175/[[:l\ower:]]/ 9176Failed: unknown POSIX class name at offset 3 9177 9178/[[:abc\:]]/ 9179Failed: unknown POSIX class name at offset 3 9180 9181/[abc[:x\]pqr:]]/ 9182Failed: unknown POSIX class name at offset 6 9183 9184/[[:a\dz:]]/ 9185Failed: unknown POSIX class name at offset 3 9186 9187/(^(a|b\g<-1'c))/ 9188Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8 9189 9190/^(?+1)(?<a>x|y){0}z/ 9191 xzxx 9192 0: xz 9193 yzyy 9194 0: yz 9195 ** Failers 9196No match 9197 xxz 9198No match 9199 9200/(\3)(\1)(a)/ 9201 cat 9202No match 9203 9204/(\3)(\1)(a)/<JS> 9205 cat 9206 0: a 9207 1: 9208 2: 9209 3: a 9210 9211/TA]/ 9212 The ACTA] comes 9213 0: TA] 9214 9215/TA]/<JS> 9216Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2 9217 9218/(?2)[]a()b](abc)/ 9219Failed: reference to non-existent subpattern at offset 3 9220 9221/(?2)[^]a()b](abc)/ 9222Failed: reference to non-existent subpattern at offset 3 9223 9224/(?1)[]a()b](abc)/ 9225 abcbabc 9226 0: abcbabc 9227 1: abc 9228 ** Failers 9229No match 9230 abcXabc 9231No match 9232 9233/(?1)[^]a()b](abc)/ 9234 abcXabc 9235 0: abcXabc 9236 1: abc 9237 ** Failers 9238No match 9239 abcbabc 9240No match 9241 9242/(?2)[]a()b](abc)(xyz)/ 9243 xyzbabcxyz 9244 0: xyzbabcxyz 9245 1: abc 9246 2: xyz 9247 9248/(?&N)[]a(?<N>)](?<M>abc)/ 9249Failed: reference to non-existent subpattern at offset 4 9250 9251/(?&N)[]a(?<N>)](abc)/ 9252Failed: reference to non-existent subpattern at offset 4 9253 9254/a[]b/ 9255Failed: missing terminating ] for character class at offset 4 9256 9257/a[^]b/ 9258Failed: missing terminating ] for character class at offset 5 9259 9260/a[]b/<JS> 9261 ** Failers 9262No match 9263 ab 9264No match 9265 9266/a[]+b/<JS> 9267 ** Failers 9268No match 9269 ab 9270No match 9271 9272/a[]*+b/<JS> 9273 ** Failers 9274No match 9275 ab 9276No match 9277 9278/a[^]b/<JS> 9279 aXb 9280 0: aXb 9281 a\nb 9282 0: a\x0ab 9283 ** Failers 9284No match 9285 ab 9286No match 9287 9288/a[^]+b/<JS> 9289 aXb 9290 0: aXb 9291 a\nX\nXb 9292 0: a\x0aX\x0aXb 9293 ** Failers 9294No match 9295 ab 9296No match 9297 9298/a(?!)b/BZ 9299------------------------------------------------------------------ 9300 Bra 9301 a 9302 *FAIL 9303 b 9304 Ket 9305 End 9306------------------------------------------------------------------ 9307 9308/(?!)?a/BZ 9309------------------------------------------------------------------ 9310 Bra 9311 Brazero 9312 Assert not 9313 Ket 9314 a 9315 Ket 9316 End 9317------------------------------------------------------------------ 9318 ab 9319 0: a 9320 9321/a(*FAIL)+b/ 9322Failed: nothing to repeat at offset 8 9323 9324/(abc|pqr|123){0}[xyz]/SI 9325Capturing subpattern count = 1 9326No options 9327No first char 9328No need char 9329Subject length lower bound = 1 9330Starting chars: x y z 9331 9332/(?(?=.*b)b|^)/CI 9333Capturing subpattern count = 0 9334May match empty string 9335Options: 9336No first char 9337No need char 9338 adc 9339--->adc 9340 +0 ^ (?(?=.*b)b|^) 9341 +2 ^ (?=.*b) 9342 +5 ^ .* 9343 +7 ^ ^ b 9344 +7 ^ ^ b 9345 +7 ^^ b 9346 +7 ^ b 9347+11 ^ ^ 9348+12 ^ ) 9349+13 ^ 9350 0: 9351 abc 9352--->abc 9353 +0 ^ (?(?=.*b)b|^) 9354 +2 ^ (?=.*b) 9355 +5 ^ .* 9356 +7 ^ ^ b 9357 +7 ^ ^ b 9358 +7 ^^ b 9359 +8 ^ ^ ) 9360 +9 ^ b 9361 +0 ^ (?(?=.*b)b|^) 9362 +2 ^ (?=.*b) 9363 +5 ^ .* 9364 +7 ^ ^ b 9365 +7 ^^ b 9366 +7 ^ b 9367 +8 ^^ ) 9368 +9 ^ b 9369+10 ^^ | 9370+13 ^^ 9371 0: b 9372 9373/(?(?=b).*b|^d)/I 9374Capturing subpattern count = 0 9375No options 9376No first char 9377No need char 9378 9379/(?(?=.*b).*b|^d)/I 9380Capturing subpattern count = 0 9381No options 9382No first char 9383No need char 9384 9385/xyz/C 9386 xyz 9387--->xyz 9388 +0 ^ x 9389 +1 ^^ y 9390 +2 ^ ^ z 9391 +3 ^ ^ 9392 0: xyz 9393 abcxyz 9394--->abcxyz 9395 +0 ^ x 9396 +1 ^^ y 9397 +2 ^ ^ z 9398 +3 ^ ^ 9399 0: xyz 9400 abcxyz\Y 9401--->abcxyz 9402 +0 ^ x 9403 +0 ^ x 9404 +0 ^ x 9405 +0 ^ x 9406 +1 ^^ y 9407 +2 ^ ^ z 9408 +3 ^ ^ 9409 0: xyz 9410 ** Failers 9411No match 9412 abc 9413No match 9414 abc\Y 9415--->abc 9416 +0 ^ x 9417 +0 ^ x 9418 +0 ^ x 9419 +0 ^ x 9420No match 9421 abcxypqr 9422No match 9423 abcxypqr\Y 9424--->abcxypqr 9425 +0 ^ x 9426 +0 ^ x 9427 +0 ^ x 9428 +0 ^ x 9429 +1 ^^ y 9430 +2 ^ ^ z 9431 +0 ^ x 9432 +0 ^ x 9433 +0 ^ x 9434 +0 ^ x 9435 +0 ^ x 9436No match 9437 9438/(*NO_START_OPT)xyz/C 9439 abcxyz 9440--->abcxyz 9441+15 ^ x 9442+15 ^ x 9443+15 ^ x 9444+15 ^ x 9445+16 ^^ y 9446+17 ^ ^ z 9447+18 ^ ^ 9448 0: xyz 9449 9450/(*NO_AUTO_POSSESS)a+b/BZ 9451------------------------------------------------------------------ 9452 Bra 9453 a+ 9454 b 9455 Ket 9456 End 9457------------------------------------------------------------------ 9458 9459/xyz/CY 9460 abcxyz 9461--->abcxyz 9462 +0 ^ x 9463 +0 ^ x 9464 +0 ^ x 9465 +0 ^ x 9466 +1 ^^ y 9467 +2 ^ ^ z 9468 +3 ^ ^ 9469 0: xyz 9470 9471/^"((?(?=[a])[^"])|b)*"$/C 9472 "ab" 9473--->"ab" 9474 +0 ^ ^ 9475 +1 ^ " 9476 +2 ^^ ((?(?=[a])[^"])|b)* 9477 +3 ^^ (?(?=[a])[^"]) 9478 +5 ^^ (?=[a]) 9479 +8 ^^ [a] 9480+11 ^ ^ ) 9481+12 ^^ [^"] 9482+16 ^ ^ ) 9483+17 ^ ^ | 9484 +3 ^ ^ (?(?=[a])[^"]) 9485 +5 ^ ^ (?=[a]) 9486 +8 ^ ^ [a] 9487+17 ^ ^ | 9488+21 ^ ^ " 9489+18 ^ ^ b 9490+19 ^ ^ ) 9491 +3 ^ ^ (?(?=[a])[^"]) 9492 +5 ^ ^ (?=[a]) 9493 +8 ^ ^ [a] 9494+17 ^ ^ | 9495+21 ^ ^ " 9496+22 ^ ^ $ 9497+23 ^ ^ 9498 0: "ab" 9499 1: 9500 9501/^"((?(?=[a])[^"])|b)*"$/ 9502 "ab" 9503 0: "ab" 9504 1: 9505 9506/^X(?5)(a)(?|(b)|(q))(c)(d)Y/ 9507Failed: reference to non-existent subpattern at offset 5 9508 9509/^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/ 9510 XYabcdY 9511 0: XYabcdY 9512 1: a 9513 2: b 9514 3: c 9515 4: d 9516 5: Y 9517 9518/Xa{2,4}b/ 9519 X\P 9520Partial match: X 9521 Xa\P 9522Partial match: Xa 9523 Xaa\P 9524Partial match: Xaa 9525 Xaaa\P 9526Partial match: Xaaa 9527 Xaaaa\P 9528Partial match: Xaaaa 9529 9530/Xa{2,4}?b/ 9531 X\P 9532Partial match: X 9533 Xa\P 9534Partial match: Xa 9535 Xaa\P 9536Partial match: Xaa 9537 Xaaa\P 9538Partial match: Xaaa 9539 Xaaaa\P 9540Partial match: Xaaaa 9541 9542/Xa{2,4}+b/ 9543 X\P 9544Partial match: X 9545 Xa\P 9546Partial match: Xa 9547 Xaa\P 9548Partial match: Xaa 9549 Xaaa\P 9550Partial match: Xaaa 9551 Xaaaa\P 9552Partial match: Xaaaa 9553 9554/X\d{2,4}b/ 9555 X\P 9556Partial match: X 9557 X3\P 9558Partial match: X3 9559 X33\P 9560Partial match: X33 9561 X333\P 9562Partial match: X333 9563 X3333\P 9564Partial match: X3333 9565 9566/X\d{2,4}?b/ 9567 X\P 9568Partial match: X 9569 X3\P 9570Partial match: X3 9571 X33\P 9572Partial match: X33 9573 X333\P 9574Partial match: X333 9575 X3333\P 9576Partial match: X3333 9577 9578/X\d{2,4}+b/ 9579 X\P 9580Partial match: X 9581 X3\P 9582Partial match: X3 9583 X33\P 9584Partial match: X33 9585 X333\P 9586Partial match: X333 9587 X3333\P 9588Partial match: X3333 9589 9590/X\D{2,4}b/ 9591 X\P 9592Partial match: X 9593 Xa\P 9594Partial match: Xa 9595 Xaa\P 9596Partial match: Xaa 9597 Xaaa\P 9598Partial match: Xaaa 9599 Xaaaa\P 9600Partial match: Xaaaa 9601 9602/X\D{2,4}?b/ 9603 X\P 9604Partial match: X 9605 Xa\P 9606Partial match: Xa 9607 Xaa\P 9608Partial match: Xaa 9609 Xaaa\P 9610Partial match: Xaaa 9611 Xaaaa\P 9612Partial match: Xaaaa 9613 9614/X\D{2,4}+b/ 9615 X\P 9616Partial match: X 9617 Xa\P 9618Partial match: Xa 9619 Xaa\P 9620Partial match: Xaa 9621 Xaaa\P 9622Partial match: Xaaa 9623 Xaaaa\P 9624Partial match: Xaaaa 9625 9626/X[abc]{2,4}b/ 9627 X\P 9628Partial match: X 9629 Xa\P 9630Partial match: Xa 9631 Xaa\P 9632Partial match: Xaa 9633 Xaaa\P 9634Partial match: Xaaa 9635 Xaaaa\P 9636Partial match: Xaaaa 9637 9638/X[abc]{2,4}?b/ 9639 X\P 9640Partial match: X 9641 Xa\P 9642Partial match: Xa 9643 Xaa\P 9644Partial match: Xaa 9645 Xaaa\P 9646Partial match: Xaaa 9647 Xaaaa\P 9648Partial match: Xaaaa 9649 9650/X[abc]{2,4}+b/ 9651 X\P 9652Partial match: X 9653 Xa\P 9654Partial match: Xa 9655 Xaa\P 9656Partial match: Xaa 9657 Xaaa\P 9658Partial match: Xaaa 9659 Xaaaa\P 9660Partial match: Xaaaa 9661 9662/X[^a]{2,4}b/ 9663 X\P 9664Partial match: X 9665 Xz\P 9666Partial match: Xz 9667 Xzz\P 9668Partial match: Xzz 9669 Xzzz\P 9670Partial match: Xzzz 9671 Xzzzz\P 9672Partial match: Xzzzz 9673 9674/X[^a]{2,4}?b/ 9675 X\P 9676Partial match: X 9677 Xz\P 9678Partial match: Xz 9679 Xzz\P 9680Partial match: Xzz 9681 Xzzz\P 9682Partial match: Xzzz 9683 Xzzzz\P 9684Partial match: Xzzzz 9685 9686/X[^a]{2,4}+b/ 9687 X\P 9688Partial match: X 9689 Xz\P 9690Partial match: Xz 9691 Xzz\P 9692Partial match: Xzz 9693 Xzzz\P 9694Partial match: Xzzz 9695 Xzzzz\P 9696Partial match: Xzzzz 9697 9698/(Y)X\1{2,4}b/ 9699 YX\P 9700Partial match: YX 9701 YXY\P 9702Partial match: YXY 9703 YXYY\P 9704Partial match: YXYY 9705 YXYYY\P 9706Partial match: YXYYY 9707 YXYYYY\P 9708Partial match: YXYYYY 9709 9710/(Y)X\1{2,4}?b/ 9711 YX\P 9712Partial match: YX 9713 YXY\P 9714Partial match: YXY 9715 YXYY\P 9716Partial match: YXYY 9717 YXYYY\P 9718Partial match: YXYYY 9719 YXYYYY\P 9720Partial match: YXYYYY 9721 9722/(Y)X\1{2,4}+b/ 9723 YX\P 9724Partial match: YX 9725 YXY\P 9726Partial match: YXY 9727 YXYY\P 9728Partial match: YXYY 9729 YXYYY\P 9730Partial match: YXYYY 9731 YXYYYY\P 9732Partial match: YXYYYY 9733 9734/\++\KZ|\d+X|9+Y/ 9735 ++++123999\P 9736Partial match: 123999 9737 ++++123999Y\P 9738 0: 999Y 9739 ++++Z1234\P 9740 0: Z 9741 9742/Z(*F)/ 9743 Z\P 9744No match 9745 ZA\P 9746No match 9747 9748/Z(?!)/ 9749 Z\P 9750No match 9751 ZA\P 9752No match 9753 9754/dog(sbody)?/ 9755 dogs\P 9756 0: dog 9757 dogs\P\P 9758Partial match: dogs 9759 9760/dog(sbody)??/ 9761 dogs\P 9762 0: dog 9763 dogs\P\P 9764 0: dog 9765 9766/dog|dogsbody/ 9767 dogs\P 9768 0: dog 9769 dogs\P\P 9770 0: dog 9771 9772/dogsbody|dog/ 9773 dogs\P 9774 0: dog 9775 dogs\P\P 9776Partial match: dogs 9777 9778/\bthe cat\b/ 9779 the cat\P 9780 0: the cat 9781 the cat\P\P 9782Partial match: the cat 9783 9784/abc/ 9785 abc\P 9786 0: abc 9787 abc\P\P 9788 0: abc 9789 9790/abc\K123/ 9791 xyzabc123pqr 9792 0: 123 9793 xyzabc12\P 9794Partial match: abc12 9795 xyzabc12\P\P 9796Partial match: abc12 9797 9798/(?<=abc)123/ 9799 xyzabc123pqr 9800 0: 123 9801 xyzabc12\P 9802Partial match at offset 6: abc12 9803 xyzabc12\P\P 9804Partial match at offset 6: abc12 9805 9806/\babc\b/ 9807 +++abc+++ 9808 0: abc 9809 +++ab\P 9810Partial match at offset 3: +ab 9811 +++ab\P\P 9812Partial match at offset 3: +ab 9813 9814/(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ 9815------------------------------------------------------------------ 9816 Bra 9817 Recurse 9818 Recurse 9819 Cond 9820 Cond def 9821 CBra 1 9822 < 9823 [^m] 9824 [^>] 9825 > 9826 [^<] 9827 Ket 9828 CBra 2 9829 \w*+ 9830 Ket 9831 Ket 9832 Ket 9833 End 9834------------------------------------------------------------------ 9835 9836/(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ 9837------------------------------------------------------------------ 9838 Bra 9839 Recurse 9840 Recurse 9841 Cond 9842 Cond def 9843 CBra 1 9844 < 9845 [\x00-/:-\xff] (neg) 9846 [^>] 9847 > 9848 [^<] 9849 Ket 9850 CBra 2 9851 \w*+ 9852 Ket 9853 Ket 9854 Ket 9855 End 9856------------------------------------------------------------------ 9857 9858/(ab)(x(y)z(cd(*ACCEPT)))pq/BZ 9859------------------------------------------------------------------ 9860 Bra 9861 CBra 1 9862 ab 9863 Ket 9864 CBra 2 9865 x 9866 CBra 3 9867 y 9868 Ket 9869 z 9870 CBra 4 9871 cd 9872 Close 4 9873 Close 2 9874 *ACCEPT 9875 Ket 9876 Ket 9877 pq 9878 Ket 9879 End 9880------------------------------------------------------------------ 9881 9882/abc\K/+ 9883 abcdef 9884 0: 9885 0+ def 9886 abcdef\N\N 9887 0: 9888 0+ def 9889 xyzabcdef\N\N 9890 0: 9891 0+ def 9892 ** Failers 9893No match 9894 abcdef\N 9895No match 9896 xyzabcdef\N 9897No match 9898 9899/^(?:(?=abc)|abc\K)/+ 9900 abcdef 9901 0: 9902 0+ abcdef 9903 abcdef\N\N 9904 0: 9905 0+ def 9906 ** Failers 9907No match 9908 abcdef\N 9909No match 9910 9911/a?b?/+ 9912 xyz 9913 0: 9914 0+ xyz 9915 xyzabc 9916 0: 9917 0+ xyzabc 9918 xyzabc\N 9919 0: ab 9920 0+ c 9921 xyzabc\N\N 9922 0: 9923 0+ yzabc 9924 xyz\N\N 9925 0: 9926 0+ yz 9927 ** Failers 9928 0: 9929 0+ ** Failers 9930 xyz\N 9931No match 9932 9933/^a?b?/+ 9934 xyz 9935 0: 9936 0+ xyz 9937 xyzabc 9938 0: 9939 0+ xyzabc 9940 ** Failers 9941 0: 9942 0+ ** Failers 9943 xyzabc\N 9944No match 9945 xyzabc\N\N 9946No match 9947 xyz\N\N 9948No match 9949 xyz\N 9950No match 9951 9952/^(?<name>a|b\g<name>c)/ 9953 aaaa 9954 0: a 9955 1: a 9956 bacxxx 9957 0: bac 9958 1: bac 9959 bbaccxxx 9960 0: bbacc 9961 1: bbacc 9962 bbbacccxx 9963 0: bbbaccc 9964 1: bbbaccc 9965 9966/^(?<name>a|b\g'name'c)/ 9967 aaaa 9968 0: a 9969 1: a 9970 bacxxx 9971 0: bac 9972 1: bac 9973 bbaccxxx 9974 0: bbacc 9975 1: bbacc 9976 bbbacccxx 9977 0: bbbaccc 9978 1: bbbaccc 9979 9980/^(a|b\g<1>c)/ 9981 aaaa 9982 0: a 9983 1: a 9984 bacxxx 9985 0: bac 9986 1: bac 9987 bbaccxxx 9988 0: bbacc 9989 1: bbacc 9990 bbbacccxx 9991 0: bbbaccc 9992 1: bbbaccc 9993 9994/^(a|b\g'1'c)/ 9995 aaaa 9996 0: a 9997 1: a 9998 bacxxx 9999 0: bac 10000 1: bac 10001 bbaccxxx 10002 0: bbacc 10003 1: bbacc 10004 bbbacccxx 10005 0: bbbaccc 10006 1: bbbaccc 10007 10008/^(a|b\g'-1'c)/ 10009 aaaa 10010 0: a 10011 1: a 10012 bacxxx 10013 0: bac 10014 1: bac 10015 bbaccxxx 10016 0: bbacc 10017 1: bbacc 10018 bbbacccxx 10019 0: bbbaccc 10020 1: bbbaccc 10021 10022/(^(a|b\g<-1>c))/ 10023 aaaa 10024 0: a 10025 1: a 10026 2: a 10027 bacxxx 10028 0: bac 10029 1: bac 10030 2: bac 10031 bbaccxxx 10032 0: bbacc 10033 1: bbacc 10034 2: bbacc 10035 bbbacccxx 10036 0: bbbaccc 10037 1: bbbaccc 10038 2: bbbaccc 10039 10040/(?-i:\g<name>)(?i:(?<name>a))/ 10041 XaaX 10042 0: aa 10043 1: a 10044 XAAX 10045 0: AA 10046 1: A 10047 10048/(?i:\g<name>)(?-i:(?<name>a))/ 10049 XaaX 10050 0: aa 10051 1: a 10052 ** Failers 10053No match 10054 XAAX 10055No match 10056 10057/(?-i:\g<+1>)(?i:(a))/ 10058 XaaX 10059 0: aa 10060 1: a 10061 XAAX 10062 0: AA 10063 1: A 10064 10065/(?=(?<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>\})\}))\{/ 10066 10067/(?<n>a|b|c)\g<n>*/ 10068 abc 10069 0: abc 10070 1: a 10071 accccbbb 10072 0: accccbbb 10073 1: a 10074 10075/^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/ 10076 XYabcdY 10077 0: XYabcdY 10078 1: a 10079 2: b 10080 3: <unset> 10081 4: <unset> 10082 5: c 10083 6: d 10084 7: Y 10085 10086/(?<=b(?1)|zzz)(a)/ 10087 xbaax 10088 0: a 10089 1: a 10090 xzzzax 10091 0: a 10092 1: a 10093 10094/(a)(?<=b\1)/ 10095Failed: lookbehind assertion is not fixed length at offset 10 10096 10097/(a)(?<=b+(?1))/ 10098Failed: lookbehind assertion is not fixed length at offset 13 10099 10100/(a+)(?<=b(?1))/ 10101Failed: lookbehind assertion is not fixed length at offset 14 10102 10103/(a(?<=b(?1)))/ 10104Failed: lookbehind assertion is not fixed length at offset 13 10105 10106/(?<=b(?1))xyz/ 10107Failed: reference to non-existent subpattern at offset 8 10108 10109/(?<=b(?1))xyz(b+)pqrstuvew/ 10110Failed: lookbehind assertion is not fixed length at offset 26 10111 10112/(a|bc)\1/SI 10113Capturing subpattern count = 1 10114Max back reference = 1 10115No options 10116No first char 10117No need char 10118Subject length lower bound = 2 10119Starting chars: a b 10120 10121/(a|bc)\1{2,3}/SI 10122Capturing subpattern count = 1 10123Max back reference = 1 10124No options 10125No first char 10126No need char 10127Subject length lower bound = 3 10128Starting chars: a b 10129 10130/(a|bc)(?1)/SI 10131Capturing subpattern count = 1 10132No options 10133No first char 10134No need char 10135Subject length lower bound = 2 10136Starting chars: a b 10137 10138/(a|b\1)(a|b\1)/SI 10139Capturing subpattern count = 2 10140Max back reference = 1 10141No options 10142No first char 10143No need char 10144Subject length lower bound = 2 10145Starting chars: a b 10146 10147/(a|b\1){2}/SI 10148Capturing subpattern count = 1 10149Max back reference = 1 10150No options 10151No first char 10152No need char 10153Subject length lower bound = 2 10154Starting chars: a b 10155 10156/(a|bbbb\1)(a|bbbb\1)/SI 10157Capturing subpattern count = 2 10158Max back reference = 1 10159No options 10160No first char 10161No need char 10162Subject length lower bound = 2 10163Starting chars: a b 10164 10165/(a|bbbb\1){2}/SI 10166Capturing subpattern count = 1 10167Max back reference = 1 10168No options 10169No first char 10170No need char 10171Subject length lower bound = 2 10172Starting chars: a b 10173 10174/^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 10175Capturing subpattern count = 1 10176Options: anchored 10177No first char 10178Need char = ':' 10179Subject length lower bound = 22 10180No starting char list 10181 10182/<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 10183Capturing subpattern count = 11 10184Options: caseless dotall 10185First char = '<' 10186Need char = '>' 10187Subject length lower bound = 47 10188No starting char list 10189 10190"(?>.*/)foo"SI 10191Capturing subpattern count = 0 10192No options 10193No first char 10194Need char = 'o' 10195Subject length lower bound = 4 10196No starting char list 10197 10198/(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /xSI 10199Capturing subpattern count = 0 10200Options: extended 10201No first char 10202Need char = '-' 10203Subject length lower bound = 8 10204No starting char list 10205 10206/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI 10207Capturing subpattern count = 1 10208Options: caseless 10209No first char 10210No need char 10211Subject length lower bound = 1 10212Starting chars: A B C a b c 10213 10214/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI 10215Capturing subpattern count = 0 10216No options 10217No first char 10218Need char = 'b' 10219Subject length lower bound = 41 10220Starting chars: c d 10221 10222/<a[\s]+href[\s]*=[\s]* # find <a href= 10223 ([\"\'])? # find single or double quote 10224 (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching 10225 # quote, otherwise match up to next space 10226/isxSI 10227Capturing subpattern count = 3 10228Max back reference = 1 10229Options: caseless extended dotall 10230First char = '<' 10231Need char = '=' 10232Subject length lower bound = 9 10233No starting char list 10234 10235/^(?!:) # colon disallowed at start 10236 (?: # start of item 10237 (?: [0-9a-f]{1,4} | # 1-4 hex digits or 10238 (?(1)0 | () ) ) # if null previously matched, fail; else null 10239 : # followed by colon 10240 ){1,7} # end item; 1-7 of them required 10241 [0-9a-f]{1,4} $ # final hex number at end of string 10242 (?(1)|.) # check that there was an empty component 10243 /xiIS 10244Capturing subpattern count = 1 10245Max back reference = 1 10246Options: anchored caseless extended 10247No first char 10248Need char = ':' 10249Subject length lower bound = 2 10250No starting char list 10251 10252/(?|(?<a>A)|(?<a>B))/I 10253Capturing subpattern count = 1 10254Named capturing subpatterns: 10255 a 1 10256No options 10257No first char 10258No need char 10259 AB\Ca 10260 0: A 10261 1: A 10262 C A (1) a 10263 BA\Ca 10264 0: B 10265 1: B 10266 C B (1) a 10267 10268/(?|(?<a>A)|(?<b>B))/ 10269Failed: different names for subpatterns of the same number are not allowed at offset 15 10270 10271/(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) | 10272 b(?<quote> (?<apostrophe>')|(?<realquote>")) ) 10273 (?('quote')[a-z]+|[0-9]+)/JIx 10274Capturing subpattern count = 6 10275Max back reference = 1 10276Named capturing subpatterns: 10277 apostrophe 2 10278 apostrophe 5 10279 quote 1 10280 quote 4 10281 realquote 3 10282 realquote 6 10283Options: extended dupnames 10284No first char 10285No need char 10286 a"aaaaa 10287 0: a"aaaaa 10288 1: " 10289 2: <unset> 10290 3: " 10291 b"aaaaa 10292 0: b"aaaaa 10293 1: <unset> 10294 2: <unset> 10295 3: <unset> 10296 4: " 10297 5: <unset> 10298 6: " 10299 ** Failers 10300No match 10301 b"11111 10302No match 10303 a"11111 10304No match 10305 10306/^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx 10307------------------------------------------------------------------ 10308 Bra 10309 ^ 10310 Bra 10311 CBra 1 10312 a 10313 Ket 10314 CBra 2 10315 b 10316 Ket 10317 CBra 3 10318 c 10319 Ket 10320 CBra 4 10321 d 10322 Ket 10323 Alt 10324 CBra 1 10325 e 10326 Ket 10327 Ket 10328 Cond 10329 Cond ref <D>2 10330 X 10331 Alt 10332 Y 10333 Ket 10334 Ket 10335 End 10336------------------------------------------------------------------ 10337Capturing subpattern count = 4 10338Max back reference = 4 10339Named capturing subpatterns: 10340 D 4 10341 D 1 10342Options: anchored extended dupnames 10343No first char 10344No need char 10345 abcdX 10346 0: abcdX 10347 1: a 10348 2: b 10349 3: c 10350 4: d 10351 eX 10352 0: eX 10353 1: e 10354 ** Failers 10355No match 10356 abcdY 10357No match 10358 ey 10359No match 10360 10361/(?<A>a) (b)(c) (?<A>d (?(R&A)$ | (?4)) )/JDZx 10362------------------------------------------------------------------ 10363 Bra 10364 CBra 1 10365 a 10366 Ket 10367 CBra 2 10368 b 10369 Ket 10370 CBra 3 10371 c 10372 Ket 10373 CBra 4 10374 d 10375 Cond 10376 Cond recurse <A>2 10377 $ 10378 Alt 10379 Recurse 10380 Ket 10381 Ket 10382 Ket 10383 End 10384------------------------------------------------------------------ 10385Capturing subpattern count = 4 10386Max back reference = 1 10387Named capturing subpatterns: 10388 A 1 10389 A 4 10390Options: extended dupnames 10391First char = 'a' 10392Need char = 'd' 10393 abcdd 10394 0: abcdd 10395 1: a 10396 2: b 10397 3: c 10398 4: dd 10399 ** Failers 10400No match 10401 abcdde 10402No match 10403 10404/abcd*/ 10405 xxxxabcd\P 10406 0: abcd 10407 xxxxabcd\P\P 10408Partial match: abcd 10409 10410/abcd*/i 10411 xxxxabcd\P 10412 0: abcd 10413 xxxxabcd\P\P 10414Partial match: abcd 10415 XXXXABCD\P 10416 0: ABCD 10417 XXXXABCD\P\P 10418Partial match: ABCD 10419 10420/abc\d*/ 10421 xxxxabc1\P 10422 0: abc1 10423 xxxxabc1\P\P 10424Partial match: abc1 10425 10426/(a)bc\1*/ 10427 xxxxabca\P 10428 0: abca 10429 1: a 10430 xxxxabca\P\P 10431Partial match: abca 10432 10433/abc[de]*/ 10434 xxxxabcde\P 10435 0: abcde 10436 xxxxabcde\P\P 10437Partial match: abcde 10438 10439/-- This is not in the Perl-compatible test because Perl seems currently to be 10440 broken and not behaving as specified in that it *does* bumpalong after 10441 hitting (*COMMIT). --/ 10442 10443/(?1)(A(*COMMIT)|B)D/ 10444 ABD 10445 0: ABD 10446 1: B 10447 XABD 10448 0: ABD 10449 1: B 10450 BAD 10451 0: BAD 10452 1: A 10453 ABXABD 10454 0: ABD 10455 1: B 10456 ** Failers 10457No match 10458 ABX 10459No match 10460 BAXBAD 10461No match 10462 10463/(\3)(\1)(a)/<JS> 10464 cat 10465 0: a 10466 1: 10467 2: 10468 3: a 10469 10470/(\3)(\1)(a)/SI<JS> 10471Capturing subpattern count = 3 10472Max back reference = 3 10473Options: 10474No first char 10475Need char = 'a' 10476Subject length lower bound = 1 10477No starting char list 10478 cat 10479 0: a 10480 1: 10481 2: 10482 3: a 10483 10484/(\3)(\1)(a)/SI 10485Capturing subpattern count = 3 10486Max back reference = 3 10487No options 10488No first char 10489Need char = 'a' 10490Subject length lower bound = 3 10491No starting char list 10492 cat 10493No match 10494 10495/i(?(DEFINE)(?<s>a))/SI 10496Capturing subpattern count = 1 10497Named capturing subpatterns: 10498 s 1 10499No options 10500First char = 'i' 10501No need char 10502Subject length lower bound = 1 10503No starting char list 10504 i 10505 0: i 10506 10507/()i(?(1)a)/SI 10508Capturing subpattern count = 1 10509Max back reference = 1 10510No options 10511No first char 10512Need char = 'i' 10513Subject length lower bound = 1 10514Starting chars: i 10515 ia 10516 0: ia 10517 1: 10518 10519/(?i)a(?-i)b|c/BZ 10520------------------------------------------------------------------ 10521 Bra 10522 /i a 10523 b 10524 Alt 10525 c 10526 Ket 10527 End 10528------------------------------------------------------------------ 10529 XabX 10530 0: ab 10531 XAbX 10532 0: Ab 10533 CcC 10534 0: c 10535 ** Failers 10536No match 10537 XABX 10538No match 10539 10540/(?i)a(?s)b|c/BZ 10541------------------------------------------------------------------ 10542 Bra 10543 /i ab 10544 Alt 10545 /i c 10546 Ket 10547 End 10548------------------------------------------------------------------ 10549 10550/(?i)a(?s-i)b|c/BZ 10551------------------------------------------------------------------ 10552 Bra 10553 /i a 10554 b 10555 Alt 10556 c 10557 Ket 10558 End 10559------------------------------------------------------------------ 10560 10561/^(ab(c\1)d|x){2}$/BZ 10562------------------------------------------------------------------ 10563 Bra 10564 ^ 10565 Once 10566 CBra 1 10567 ab 10568 CBra 2 10569 c 10570 \1 10571 Ket 10572 d 10573 Alt 10574 x 10575 Ket 10576 Ket 10577 Once 10578 CBra 1 10579 ab 10580 CBra 2 10581 c 10582 \1 10583 Ket 10584 d 10585 Alt 10586 x 10587 Ket 10588 Ket 10589 $ 10590 Ket 10591 End 10592------------------------------------------------------------------ 10593 xabcxd 10594 0: xabcxd 10595 1: abcxd 10596 2: cx 10597 10598/^(?&t)*+(?(DEFINE)(?<t>.))$/BZ 10599------------------------------------------------------------------ 10600 Bra 10601 ^ 10602 Braposzero 10603 SBraPos 10604 Recurse 10605 KetRpos 10606 Cond 10607 Cond def 10608 CBra 1 10609 Any 10610 Ket 10611 Ket 10612 $ 10613 Ket 10614 End 10615------------------------------------------------------------------ 10616 10617/^(?&t)*(?(DEFINE)(?<t>.))$/BZ 10618------------------------------------------------------------------ 10619 Bra 10620 ^ 10621 Brazero 10622 Once 10623 Recurse 10624 KetRmax 10625 Cond 10626 Cond def 10627 CBra 1 10628 Any 10629 Ket 10630 Ket 10631 $ 10632 Ket 10633 End 10634------------------------------------------------------------------ 10635 10636/ -- This one is here because Perl gives the match as "b" rather than "ab". I 10637 believe this to be a Perl bug. --/ 10638 10639/(?>a\Kb)z|(ab)/ 10640 ab 10641 0: ab 10642 1: ab 10643 10644/(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/ 10645Failed: recursive call could loop indefinitely at offset 31 10646 10647/abc(*MARK:)pqr/ 10648Failed: (*MARK) must have an argument at offset 10 10649 10650/abc(*:)pqr/ 10651Failed: (*MARK) must have an argument at offset 6 10652 10653/abc(*FAIL:123)xyz/ 10654Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13 10655 10656/--- This should, and does, fail. In Perl, it does not, which I think is a 10657 bug because replacing the B in the pattern by (B|D) does make it fail. ---/ 10658 10659/A(*COMMIT)B/+K 10660 ACABX 10661No match 10662 10663/--- These should be different, but in Perl they are not, which I think 10664 is a bug in Perl. ---/ 10665 10666/A(*THEN)B|A(*THEN)C/K 10667 AC 10668 0: AC 10669 10670/A(*PRUNE)B|A(*PRUNE)C/K 10671 AC 10672No match 10673 10674/--- Mark names can be duplicated. Perl doesn't give a mark for this one, 10675though PCRE does. ---/ 10676 10677/^A(*:A)B|^X(*:A)Y/K 10678 ** Failers 10679No match 10680 XAQQ 10681No match, mark = A 10682 10683/--- COMMIT at the start of a pattern should be the same as an anchor. Perl 10684optimizations defeat this. So does the PCRE optimization unless we disable it 10685with \Y. ---/ 10686 10687/(*COMMIT)ABC/ 10688 ABCDEFG 10689 0: ABC 10690 ** Failers 10691No match 10692 DEFGABC\Y 10693No match 10694 10695/^(ab (c+(*THEN)cd) | xyz)/x 10696 abcccd 10697No match 10698 10699/^(ab (c+(*PRUNE)cd) | xyz)/x 10700 abcccd 10701No match 10702 10703/^(ab (c+(*FAIL)cd) | xyz)/x 10704 abcccd 10705No match 10706 10707/--- Perl gets some of these wrong ---/ 10708 10709/(?>.(*ACCEPT))*?5/ 10710 abcde 10711 0: a 10712 10713/(.(*ACCEPT))*?5/ 10714 abcde 10715 0: a 10716 1: a 10717 10718/(.(*ACCEPT))5/ 10719 abcde 10720 0: a 10721 1: a 10722 10723/(.(*ACCEPT))*5/ 10724 abcde 10725 0: a 10726 1: a 10727 10728/A\NB./BZ 10729------------------------------------------------------------------ 10730 Bra 10731 A 10732 Any 10733 B 10734 Any 10735 Ket 10736 End 10737------------------------------------------------------------------ 10738 ACBD 10739 0: ACBD 10740 *** Failers 10741No match 10742 A\nB 10743No match 10744 ACB\n 10745No match 10746 10747/A\NB./sBZ 10748------------------------------------------------------------------ 10749 Bra 10750 A 10751 Any 10752 B 10753 AllAny 10754 Ket 10755 End 10756------------------------------------------------------------------ 10757 ACBD 10758 0: ACBD 10759 ACB\n 10760 0: ACB\x0a 10761 *** Failers 10762No match 10763 A\nB 10764No match 10765 10766/A\NB/<crlf> 10767 A\nB 10768 0: A\x0aB 10769 A\rB 10770 0: A\x0dB 10771 ** Failers 10772No match 10773 A\r\nB 10774No match 10775 10776/\R+b/BZ 10777------------------------------------------------------------------ 10778 Bra 10779 \R++ 10780 b 10781 Ket 10782 End 10783------------------------------------------------------------------ 10784 10785/\R+\n/BZ 10786------------------------------------------------------------------ 10787 Bra 10788 \R+ 10789 \x0a 10790 Ket 10791 End 10792------------------------------------------------------------------ 10793 10794/\R+\d/BZ 10795------------------------------------------------------------------ 10796 Bra 10797 \R++ 10798 \d 10799 Ket 10800 End 10801------------------------------------------------------------------ 10802 10803/\d*\R/BZ 10804------------------------------------------------------------------ 10805 Bra 10806 \d*+ 10807 \R 10808 Ket 10809 End 10810------------------------------------------------------------------ 10811 10812/\s*\R/BZ 10813------------------------------------------------------------------ 10814 Bra 10815 \s* 10816 \R 10817 Ket 10818 End 10819------------------------------------------------------------------ 10820 \x20\x0a 10821 0: \x0a 10822 \x20\x0d 10823 0: \x0d 10824 \x20\x0d\x0a 10825 0: \x0d\x0a 10826 10827/\S*\R/BZ 10828------------------------------------------------------------------ 10829 Bra 10830 \S*+ 10831 \R 10832 Ket 10833 End 10834------------------------------------------------------------------ 10835 a\x0a 10836 0: a\x0a 10837 10838/X\h*\R/BZ 10839------------------------------------------------------------------ 10840 Bra 10841 X 10842 \h*+ 10843 \R 10844 Ket 10845 End 10846------------------------------------------------------------------ 10847 X\x20\x0a 10848 0: X \x0a 10849 10850/X\H*\R/BZ 10851------------------------------------------------------------------ 10852 Bra 10853 X 10854 \H* 10855 \R 10856 Ket 10857 End 10858------------------------------------------------------------------ 10859 X\x0d\x0a 10860 0: X\x0d\x0a 10861 10862/X\H+\R/BZ 10863------------------------------------------------------------------ 10864 Bra 10865 X 10866 \H+ 10867 \R 10868 Ket 10869 End 10870------------------------------------------------------------------ 10871 X\x0d\x0a 10872 0: X\x0d\x0a 10873 10874/X\H++\R/BZ 10875------------------------------------------------------------------ 10876 Bra 10877 X 10878 \H++ 10879 \R 10880 Ket 10881 End 10882------------------------------------------------------------------ 10883 X\x0d\x0a 10884No match 10885 10886/(?<=abc)def/ 10887 abc\P\P 10888Partial match at offset 3: abc 10889 10890/abc$/ 10891 abc 10892 0: abc 10893 abc\P 10894 0: abc 10895 abc\P\P 10896Partial match: abc 10897 10898/abc$/m 10899 abc 10900 0: abc 10901 abc\n 10902 0: abc 10903 abc\P\P 10904Partial match: abc 10905 abc\n\P\P 10906 0: abc 10907 abc\P 10908 0: abc 10909 abc\n\P 10910 0: abc 10911 10912/abc\z/ 10913 abc 10914 0: abc 10915 abc\P 10916 0: abc 10917 abc\P\P 10918Partial match: abc 10919 10920/abc\Z/ 10921 abc 10922 0: abc 10923 abc\P 10924 0: abc 10925 abc\P\P 10926Partial match: abc 10927 10928/abc\b/ 10929 abc 10930 0: abc 10931 abc\P 10932 0: abc 10933 abc\P\P 10934Partial match: abc 10935 10936/abc\B/ 10937 abc 10938No match 10939 abc\P 10940Partial match: abc 10941 abc\P\P 10942Partial match: abc 10943 10944/.+/ 10945 abc\>0 10946 0: abc 10947 abc\>1 10948 0: bc 10949 abc\>2 10950 0: c 10951 abc\>3 10952No match 10953 abc\>4 10954Error -24 (bad offset value) 10955 abc\>-4 10956Error -24 (bad offset value) 10957 10958/^\cģ/ 10959Failed: \c must be followed by an ASCII character at offset 3 10960 10961/(?P<abn>(?P=abn)xxx)/BZ 10962------------------------------------------------------------------ 10963 Bra 10964 Once 10965 CBra 1 10966 \1 10967 xxx 10968 Ket 10969 Ket 10970 Ket 10971 End 10972------------------------------------------------------------------ 10973 10974/(a\1z)/BZ 10975------------------------------------------------------------------ 10976 Bra 10977 Once 10978 CBra 1 10979 a 10980 \1 10981 z 10982 Ket 10983 Ket 10984 Ket 10985 End 10986------------------------------------------------------------------ 10987 10988/(?P<abn>(?P=abn)(?<badstufxxx)/BZ 10989Failed: syntax error in subpattern name (missing terminator) at offset 29 10990 10991/(?P<abn>(?P=axn)xxx)/BZ 10992Failed: reference to non-existent subpattern at offset 15 10993 10994/(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ 10995------------------------------------------------------------------ 10996 Bra 10997 CBra 1 10998 \2 10999 xxx 11000 Ket 11001 CBra 2 11002 yy 11003 Ket 11004 Ket 11005 End 11006------------------------------------------------------------------ 11007 11008/-- These tests are here because Perl gets the first one wrong. --/ 11009 11010/(\R*)(.)/s 11011 \r\n 11012 0: \x0d 11013 1: 11014 2: \x0d 11015 \r\r\n\n\r 11016 0: \x0d\x0d\x0a\x0a\x0d 11017 1: \x0d\x0d\x0a\x0a 11018 2: \x0d 11019 \r\r\n\n\r\n 11020 0: \x0d\x0d\x0a\x0a\x0d 11021 1: \x0d\x0d\x0a\x0a 11022 2: \x0d 11023 11024/(\R)*(.)/s 11025 \r\n 11026 0: \x0d 11027 1: <unset> 11028 2: \x0d 11029 \r\r\n\n\r 11030 0: \x0d\x0d\x0a\x0a\x0d 11031 1: \x0a 11032 2: \x0d 11033 \r\r\n\n\r\n 11034 0: \x0d\x0d\x0a\x0a\x0d 11035 1: \x0a 11036 2: \x0d 11037 11038/((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s 11039 \r\n 11040 0: \x0d 11041 1: 11042 2: \x0d 11043 \r\r\n\n\r 11044 0: \x0d\x0d\x0a\x0a\x0d 11045 1: \x0d\x0d\x0a\x0a 11046 2: \x0d 11047 \r\r\n\n\r\n 11048 0: \x0d\x0d\x0a\x0a\x0d 11049 1: \x0d\x0d\x0a\x0a 11050 2: \x0d 11051 11052/-- --/ 11053 11054/^abc$/BZ 11055------------------------------------------------------------------ 11056 Bra 11057 ^ 11058 abc 11059 $ 11060 Ket 11061 End 11062------------------------------------------------------------------ 11063 11064/^abc$/BZm 11065------------------------------------------------------------------ 11066 Bra 11067 /m ^ 11068 abc 11069 /m $ 11070 Ket 11071 End 11072------------------------------------------------------------------ 11073 11074/^(a)*+(\w)/S 11075 aaaaX 11076 0: aaaaX 11077 1: a 11078 2: X 11079 ** Failers 11080No match 11081 aaaa 11082No match 11083 11084/^(?:a)*+(\w)/S 11085 aaaaX 11086 0: aaaaX 11087 1: X 11088 ** Failers 11089No match 11090 aaaa 11091No match 11092 11093/(a)++1234/SDZ 11094------------------------------------------------------------------ 11095 Bra 11096 CBraPos 1 11097 a 11098 KetRpos 11099 1234 11100 Ket 11101 End 11102------------------------------------------------------------------ 11103Capturing subpattern count = 1 11104No options 11105First char = 'a' 11106Need char = '4' 11107Subject length lower bound = 5 11108No starting char list 11109 11110/([abc])++1234/SI 11111Capturing subpattern count = 1 11112No options 11113No first char 11114Need char = '4' 11115Subject length lower bound = 5 11116Starting chars: a b c 11117 11118/(?<=(abc)+)X/ 11119Failed: lookbehind assertion is not fixed length at offset 10 11120 11121/(^ab)/I 11122Capturing subpattern count = 1 11123Options: anchored 11124No first char 11125No need char 11126 11127/(^ab)++/I 11128Capturing subpattern count = 1 11129Options: anchored 11130No first char 11131No need char 11132 11133/(^ab|^)+/I 11134Capturing subpattern count = 1 11135May match empty string 11136Options: anchored 11137No first char 11138No need char 11139 11140/(^ab|^)++/I 11141Capturing subpattern count = 1 11142May match empty string 11143Options: anchored 11144No first char 11145No need char 11146 11147/(?:^ab)/I 11148Capturing subpattern count = 0 11149Options: anchored 11150No first char 11151No need char 11152 11153/(?:^ab)++/I 11154Capturing subpattern count = 0 11155Options: anchored 11156No first char 11157No need char 11158 11159/(?:^ab|^)+/I 11160Capturing subpattern count = 0 11161May match empty string 11162Options: anchored 11163No first char 11164No need char 11165 11166/(?:^ab|^)++/I 11167Capturing subpattern count = 0 11168May match empty string 11169Options: anchored 11170No first char 11171No need char 11172 11173/(.*ab)/I 11174Capturing subpattern count = 1 11175No options 11176First char at start or follows newline 11177Need char = 'b' 11178 11179/(.*ab)++/I 11180Capturing subpattern count = 1 11181No options 11182First char at start or follows newline 11183Need char = 'b' 11184 11185/(.*ab|.*)+/I 11186Capturing subpattern count = 1 11187May match empty string 11188No options 11189First char at start or follows newline 11190No need char 11191 11192/(.*ab|.*)++/I 11193Capturing subpattern count = 1 11194May match empty string 11195No options 11196First char at start or follows newline 11197No need char 11198 11199/(?:.*ab)/I 11200Capturing subpattern count = 0 11201No options 11202First char at start or follows newline 11203Need char = 'b' 11204 11205/(?:.*ab)++/I 11206Capturing subpattern count = 0 11207No options 11208First char at start or follows newline 11209Need char = 'b' 11210 11211/(?:.*ab|.*)+/I 11212Capturing subpattern count = 0 11213May match empty string 11214No options 11215First char at start or follows newline 11216No need char 11217 11218/(?:.*ab|.*)++/I 11219Capturing subpattern count = 0 11220May match empty string 11221No options 11222First char at start or follows newline 11223No need char 11224 11225/(?=a)[bcd]/I 11226Capturing subpattern count = 0 11227No options 11228First char = 'a' 11229No need char 11230 11231/((?=a))[bcd]/I 11232Capturing subpattern count = 1 11233No options 11234First char = 'a' 11235No need char 11236 11237/((?=a))+[bcd]/I 11238Capturing subpattern count = 1 11239No options 11240First char = 'a' 11241No need char 11242 11243/((?=a))++[bcd]/I 11244Capturing subpattern count = 1 11245No options 11246First char = 'a' 11247No need char 11248 11249/(?=a+)[bcd]/iI 11250Capturing subpattern count = 0 11251Options: caseless 11252First char = 'a' (caseless) 11253No need char 11254 11255/(?=a+?)[bcd]/iI 11256Capturing subpattern count = 0 11257Options: caseless 11258First char = 'a' (caseless) 11259No need char 11260 11261/(?=a++)[bcd]/iI 11262Capturing subpattern count = 0 11263Options: caseless 11264First char = 'a' (caseless) 11265No need char 11266 11267/(?=a{3})[bcd]/iI 11268Capturing subpattern count = 0 11269Options: caseless 11270First char = 'a' (caseless) 11271Need char = 'a' (caseless) 11272 11273/(abc)\1+/S 11274 11275/-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/ 11276 11277/(?1)(?:(b(*ACCEPT))){0}/ 11278 b 11279 0: b 11280 11281/(?1)(?:(b(*ACCEPT))){0}c/ 11282 bc 11283 0: bc 11284 ** Failers 11285No match 11286 b 11287No match 11288 11289/(?1)(?:((*ACCEPT))){0}c/ 11290 c 11291 0: c 11292 c\N 11293 0: c 11294 11295/^.*?(?(?=a)a|b(*THEN)c)/ 11296 ba 11297No match 11298 11299/^.*?(?(?=a)a|bc)/ 11300 ba 11301 0: ba 11302 11303/^.*?(?(?=a)a(*THEN)b|c)/ 11304 ac 11305No match 11306 11307/^.*?(?(?=a)a(*THEN)b)c/ 11308 ac 11309No match 11310 11311/^.*?(a(*THEN)b)c/ 11312 aabc 11313No match 11314 11315/^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x 11316 aabc 11317 0: aabc 11318 11319/^.*?(a(*THEN)b|z)c/ 11320 aabc 11321 0: aabc 11322 1: ab 11323 11324/^.*?(z|a(*THEN)b)c/ 11325 aabc 11326 0: aabc 11327 1: ab 11328 11329/-- --/ 11330 11331/-- These studied versions are here because they are not Perl-compatible; the 11332 studying means the mark is not seen. --/ 11333 11334/(*MARK:A)(*SKIP:B)(C|X)/KS 11335 C 11336 0: C 11337 1: C 11338MK: A 11339 D 11340No match, mark = A 11341 11342/(*:A)A+(*SKIP:A)(B|Z)/KS 11343 AAAC 11344No match, mark = A 11345 11346/-- --/ 11347 11348"(?=a*(*ACCEPT)b)c" 11349 c 11350 0: c 11351 c\N 11352 0: c 11353 11354/(?1)c(?(DEFINE)((*ACCEPT)b))/ 11355 c 11356 0: c 11357 c\N 11358 0: c 11359 11360/(?>(*ACCEPT)b)c/ 11361 c 11362 0: 11363 c\N 11364No match 11365 11366/(?:(?>(a)))+a%/++ 11367 %aa% 11368 0: aa% 11369 0+ 11370 1: a 11371 1+ a% 11372 11373/(a)b|ac/++SS 11374 ac\O3 11375 0: ac 11376 0+ 11377 11378/(a)(b)x|abc/++ 11379 abc\O6 11380 0: abc 11381 0+ 11382 11383/(a)bc|(a)(b)\2/ 11384 \O3abc 11385Matched, but too many substrings 11386 0: abc 11387 \O4abc 11388Matched, but too many substrings 11389 0: abc 11390 11391/(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI 11392Capturing subpattern count = 2 11393No options 11394No first char 11395No need char 11396Subject length lower bound = 1 11397No starting char list 11398 11399/(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI 11400Capturing subpattern count = 2 11401No options 11402No first char 11403No need char 11404Subject length lower bound = 3 11405Starting chars: a b 11406 11407/(a(?2)|b)(b(?1)|a)(?1)(?2)/SI 11408Capturing subpattern count = 2 11409No options 11410No first char 11411No need char 11412Subject length lower bound = 4 11413Starting chars: a b 11414 11415/(abc)(?1)/SI 11416Capturing subpattern count = 1 11417No options 11418First char = 'a' 11419Need char = 'c' 11420Subject length lower bound = 6 11421No starting char list 11422 11423/^(?>a)++/ 11424 aa\M 11425Minimum match() limit = 5 11426Minimum match() recursion limit = 2 11427 0: aa 11428 aaaaaaaaa\M 11429Minimum match() limit = 12 11430Minimum match() recursion limit = 2 11431 0: aaaaaaaaa 11432 11433/(a)(?1)++/ 11434 aa\M 11435Minimum match() limit = 7 11436Minimum match() recursion limit = 4 11437 0: aa 11438 1: a 11439 aaaaaaaaa\M 11440Minimum match() limit = 21 11441Minimum match() recursion limit = 4 11442 0: aaaaaaaaa 11443 1: a 11444 11445/(?:(foo)|(bar)|(baz))X/SS= 11446 bazfooX 11447 0: fooX 11448 1: foo 11449 2: <unset> 11450 3: <unset> 11451 foobazbarX 11452 0: barX 11453 1: <unset> 11454 2: bar 11455 3: <unset> 11456 barfooX 11457 0: fooX 11458 1: foo 11459 2: <unset> 11460 3: <unset> 11461 bazX 11462 0: bazX 11463 1: <unset> 11464 2: <unset> 11465 3: baz 11466 foobarbazX 11467 0: bazX 11468 1: <unset> 11469 2: <unset> 11470 3: baz 11471 bazfooX\O0 11472Matched, but too many substrings 11473 bazfooX\O2 11474Matched, but too many substrings 11475 0: fooX 11476 bazfooX\O4 11477Matched, but too many substrings 11478 0: fooX 11479 1: <unset> 11480 bazfooX\O6 11481Matched, but too many substrings 11482 0: fooX 11483 1: foo 11484 2: <unset> 11485 bazfooX\O8 11486Matched, but too many substrings 11487 0: fooX 11488 1: foo 11489 2: <unset> 11490 3: <unset> 11491 bazfooX\O10 11492 0: fooX 11493 1: foo 11494 2: <unset> 11495 3: <unset> 11496 11497/(?=abc){3}abc/BZ 11498------------------------------------------------------------------ 11499 Bra 11500 Assert 11501 abc 11502 Ket 11503 abc 11504 Ket 11505 End 11506------------------------------------------------------------------ 11507 11508/(?=abc)+abc/BZ 11509------------------------------------------------------------------ 11510 Bra 11511 Assert 11512 abc 11513 Ket 11514 abc 11515 Ket 11516 End 11517------------------------------------------------------------------ 11518 11519/(?=abc)++abc/BZ 11520------------------------------------------------------------------ 11521 Bra 11522 Assert 11523 abc 11524 Ket 11525 abc 11526 Ket 11527 End 11528------------------------------------------------------------------ 11529 11530/(?=abc){0}xyz/BZ 11531------------------------------------------------------------------ 11532 Bra 11533 Skip zero 11534 Assert 11535 abc 11536 Ket 11537 xyz 11538 Ket 11539 End 11540------------------------------------------------------------------ 11541 11542/(?=(a))?./BZ 11543------------------------------------------------------------------ 11544 Bra 11545 Brazero 11546 Assert 11547 CBra 1 11548 a 11549 Ket 11550 Ket 11551 Any 11552 Ket 11553 End 11554------------------------------------------------------------------ 11555 11556/(?=(a))??./BZ 11557------------------------------------------------------------------ 11558 Bra 11559 Braminzero 11560 Assert 11561 CBra 1 11562 a 11563 Ket 11564 Ket 11565 Any 11566 Ket 11567 End 11568------------------------------------------------------------------ 11569 11570/^(?=(a)){0}b(?1)/BZ 11571------------------------------------------------------------------ 11572 Bra 11573 ^ 11574 Skip zero 11575 Assert 11576 CBra 1 11577 a 11578 Ket 11579 Ket 11580 b 11581 Recurse 11582 Ket 11583 End 11584------------------------------------------------------------------ 11585 11586/(?(DEFINE)(a))?b(?1)/BZ 11587------------------------------------------------------------------ 11588 Bra 11589 Cond 11590 Cond def 11591 CBra 1 11592 a 11593 Ket 11594 Ket 11595 b 11596 Recurse 11597 Ket 11598 End 11599------------------------------------------------------------------ 11600 11601/^(?=(?1))?[az]([abc])d/BZ 11602------------------------------------------------------------------ 11603 Bra 11604 ^ 11605 Brazero 11606 Assert 11607 Recurse 11608 Ket 11609 [az] 11610 CBra 1 11611 [a-c] 11612 Ket 11613 d 11614 Ket 11615 End 11616------------------------------------------------------------------ 11617 11618/^(?!a){0}\w+/BZ 11619------------------------------------------------------------------ 11620 Bra 11621 ^ 11622 Skip zero 11623 Assert not 11624 a 11625 Ket 11626 \w++ 11627 Ket 11628 End 11629------------------------------------------------------------------ 11630 11631/(?<=(abc))?xyz/BZ 11632------------------------------------------------------------------ 11633 Bra 11634 Brazero 11635 AssertB 11636 Reverse 11637 CBra 1 11638 abc 11639 Ket 11640 Ket 11641 xyz 11642 Ket 11643 End 11644------------------------------------------------------------------ 11645 11646/[:a[:abc]b:]/BZ 11647------------------------------------------------------------------ 11648 Bra 11649 [:[a-c] 11650 b:] 11651 Ket 11652 End 11653------------------------------------------------------------------ 11654 11655/((?2))((?1))/SS 11656 abc 11657Error -26 (nested recursion at the same subject position) 11658 11659/((?(R2)a+|(?1)b))/SS 11660 aaaabcde 11661Error -26 (nested recursion at the same subject position) 11662 11663/(?(R)a*(?1)|((?R))b)/SS 11664 aaaabcde 11665Error -26 (nested recursion at the same subject position) 11666 11667/(a+|(?R)b)/ 11668Failed: recursive call could loop indefinitely at offset 7 11669 11670/^(a(*:A)(d|e(*:B))z|aeq)/C 11671 adz 11672--->adz 11673 +0 ^ ^ 11674 +1 ^ (a(*:A)(d|e(*:B))z|aeq) 11675 +2 ^ a 11676 +3 ^^ (*:A) 11677 +8 ^^ (d|e(*:B)) 11678Latest Mark: A 11679 +9 ^^ d 11680+10 ^ ^ | 11681+18 ^ ^ z 11682+19 ^ ^ | 11683+24 ^ ^ 11684 0: adz 11685 1: adz 11686 2: d 11687 aez 11688--->aez 11689 +0 ^ ^ 11690 +1 ^ (a(*:A)(d|e(*:B))z|aeq) 11691 +2 ^ a 11692 +3 ^^ (*:A) 11693 +8 ^^ (d|e(*:B)) 11694Latest Mark: A 11695 +9 ^^ d 11696+11 ^^ e 11697+12 ^ ^ (*:B) 11698+17 ^ ^ ) 11699Latest Mark: B 11700+18 ^ ^ z 11701+19 ^ ^ | 11702+24 ^ ^ 11703 0: aez 11704 1: aez 11705 2: e 11706 aeqwerty 11707--->aeqwerty 11708 +0 ^ ^ 11709 +1 ^ (a(*:A)(d|e(*:B))z|aeq) 11710 +2 ^ a 11711 +3 ^^ (*:A) 11712 +8 ^^ (d|e(*:B)) 11713Latest Mark: A 11714 +9 ^^ d 11715+11 ^^ e 11716+12 ^ ^ (*:B) 11717+17 ^ ^ ) 11718Latest Mark: B 11719+18 ^ ^ z 11720+20 ^ a 11721+21 ^^ e 11722+22 ^ ^ q 11723+23 ^ ^ ) 11724+24 ^ ^ 11725 0: aeq 11726 1: aeq 11727 11728/.(*F)/ 11729 \P\Pabc 11730No match 11731 11732/\btype\b\W*?\btext\b\W*?\bjavascript\b/IS 11733Capturing subpattern count = 0 11734Max lookbehind = 1 11735No options 11736First char = 't' 11737Need char = 't' 11738Subject length lower bound = 18 11739No starting char list 11740 11741/\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS 11742Capturing subpattern count = 0 11743Max lookbehind = 1 11744No options 11745No first char 11746No need char 11747Subject length lower bound = 8 11748Starting chars: < o t u 11749 11750/a(*SKIP)c|b(*ACCEPT)|/+S!I 11751Capturing subpattern count = 0 11752May match empty string 11753No options 11754No first char 11755No need char 11756Subject length lower bound = -1 11757No starting char list 11758 a 11759 0: 11760 0+ 11761 11762/a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI 11763Capturing subpattern count = 0 11764No options 11765No first char 11766No need char 11767Subject length lower bound = -1 11768Starting chars: a b x 11769 ax 11770 0: x 11771 11772'a*(*ACCEPT)b'+ 11773 \N\N 11774No match 11775 abc\N\N 11776 0: a 11777 0+ bc 11778 bbb\N\N 11779 0: 11780 0+ bb 11781 11782/(*ACCEPT)a/+I 11783Capturing subpattern count = 0 11784No options 11785No first char 11786No need char 11787 bax 11788 0: 11789 0+ bax 11790 11791/z(*ACCEPT)a/+I 11792Capturing subpattern count = 0 11793No options 11794First char = 'z' 11795No need char 11796 baxzbx 11797 0: z 11798 0+ bx 11799 11800/a(?:.)*?a/ims 11801 \Mabbbbbbbbbbbbbbbbbbbbba 11802Minimum match() limit = 65 11803Minimum match() recursion limit = 2 11804 0: abbbbbbbbbbbbbbbbbbbbba 11805 11806/a(?:.(*THEN))*?a/ims 11807 \Mabbbbbbbbbbbbbbbbbbbbba 11808Minimum match() limit = 86 11809Minimum match() recursion limit = 45 11810 0: abbbbbbbbbbbbbbbbbbbbba 11811 11812/a(?:.(*THEN:ABC))*?a/ims 11813 \Mabbbbbbbbbbbbbbbbbbbbba 11814Minimum match() limit = 86 11815Minimum match() recursion limit = 45 11816 0: abbbbbbbbbbbbbbbbbbbbba 11817 11818/^(?>a+)(?>(z+))\w/BZ 11819------------------------------------------------------------------ 11820 Bra 11821 ^ 11822 Once_NC 11823 a++ 11824 Ket 11825 Once 11826 CBra 1 11827 z++ 11828 Ket 11829 Ket 11830 \w 11831 Ket 11832 End 11833------------------------------------------------------------------ 11834 aaaazzzzb 11835 0: aaaazzzzb 11836 1: zzzz 11837 ** Failers 11838No match 11839 aazz 11840No match 11841 11842/(.)(\1|a(?2))/ 11843 bab 11844 0: bab 11845 1: b 11846 2: ab 11847 11848/\1|(.)(?R)\1/ 11849 cbbbc 11850 0: cbbbc 11851 1: c 11852 11853/(.)((?(1)c|a)|a(?2))/ 11854 baa 11855No match 11856 11857/(?P<abn>(?P=abn)xxx)/BZ 11858------------------------------------------------------------------ 11859 Bra 11860 Once 11861 CBra 1 11862 \1 11863 xxx 11864 Ket 11865 Ket 11866 Ket 11867 End 11868------------------------------------------------------------------ 11869 11870/(a\1z)/BZ 11871------------------------------------------------------------------ 11872 Bra 11873 Once 11874 CBra 1 11875 a 11876 \1 11877 z 11878 Ket 11879 Ket 11880 Ket 11881 End 11882------------------------------------------------------------------ 11883 11884/^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/ 11885 \Maabbccddee 11886Minimum match() limit = 7 11887Minimum match() recursion limit = 2 11888 0: aabbccddee 11889 11890/^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/ 11891 \Maabbccddee 11892Minimum match() limit = 17 11893Minimum match() recursion limit = 16 11894 0: aabbccddee 11895 1: aa 11896 2: bb 11897 3: cc 11898 4: dd 11899 5: ee 11900 11901/^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/ 11902 \Maabbccddee 11903Minimum match() limit = 13 11904Minimum match() recursion limit = 10 11905 0: aabbccddee 11906 1: aa 11907 2: cc 11908 3: ee 11909 11910/^a\x41z/<JS> 11911 aAz 11912 0: aAz 11913 *** Failers 11914No match 11915 ax41z 11916No match 11917 11918/^a[m\x41]z/<JS> 11919 aAz 11920 0: aAz 11921 11922/^a\x1z/<JS> 11923 ax1z 11924 0: ax1z 11925 11926/^a\u0041z/<JS> 11927 aAz 11928 0: aAz 11929 *** Failers 11930No match 11931 au0041z 11932No match 11933 11934/^a[m\u0041]z/<JS> 11935 aAz 11936 0: aAz 11937 11938/^a\u041z/<JS> 11939 au041z 11940 0: au041z 11941 *** Failers 11942No match 11943 aAz 11944No match 11945 11946/^a\U0041z/<JS> 11947 aU0041z 11948 0: aU0041z 11949 *** Failers 11950No match 11951 aAz 11952No match 11953 11954/(?(?=c)c|d)++Y/BZ 11955------------------------------------------------------------------ 11956 Bra 11957 BraPos 11958 Cond 11959 Assert 11960 c 11961 Ket 11962 c 11963 Alt 11964 d 11965 Ket 11966 KetRpos 11967 Y 11968 Ket 11969 End 11970------------------------------------------------------------------ 11971 11972/(?(?=c)c|d)*+Y/BZ 11973------------------------------------------------------------------ 11974 Bra 11975 Braposzero 11976 BraPos 11977 Cond 11978 Assert 11979 c 11980 Ket 11981 c 11982 Alt 11983 d 11984 Ket 11985 KetRpos 11986 Y 11987 Ket 11988 End 11989------------------------------------------------------------------ 11990 11991/a[\NB]c/ 11992Failed: \N is not supported in a class at offset 3 11993 11994/a[B-\Nc]/ 11995Failed: invalid range in character class at offset 5 11996 11997/a[B\Nc]/ 11998Failed: \N is not supported in a class at offset 4 11999 12000/(a)(?2){0,1999}?(b)/ 12001 12002/(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/ 12003 12004/--- This test, with something more complicated than individual letters, causes 12005different behaviour in Perl. Perhaps it disables some optimization; no tag is 12006passed back for the failures, whereas in PCRE there is a tag. ---/ 12007 12008/(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK 12009 AABC 12010 0: AB 12011 1: A 12012 2: B 12013MK: A 12014 XXYZ 12015 0: XXY 12016 1: <unset> 12017 2: <unset> 12018 3: X 12019 4: X 12020 5: Y 12021MK: B 12022 ** Failers 12023No match 12024 XAQQ 12025No match, mark = A 12026 XAQQXZZ 12027No match, mark = A 12028 AXQQQ 12029No match, mark = A 12030 AXXQQQ 12031No match, mark = B 12032 12033/-- Perl doesn't give marks for these, though it does if the alternatives are 12034replaced by single letters. --/ 12035 12036/(b|q)(*:m)f|a(*:n)w/K 12037 aw 12038 0: aw 12039MK: n 12040 ** Failers 12041No match, mark = n 12042 abc 12043No match, mark = m 12044 12045/(q|b)(*:m)f|a(*:n)w/K 12046 aw 12047 0: aw 12048MK: n 12049 ** Failers 12050No match, mark = n 12051 abc 12052No match, mark = m 12053 12054/-- After a partial match, the behaviour is as for a failure. --/ 12055 12056/^a(*:X)bcde/K 12057 abc\P 12058Partial match, mark=X: abc 12059 12060/-- These are here because Perl doesn't return a mark, except for the first --/ 12061 12062/(?=(*:x))(q|)/K+ 12063 abc 12064 0: 12065 0+ abc 12066 1: 12067MK: x 12068 12069/(?=(*:x))((*:y)q|)/K+ 12070 abc 12071 0: 12072 0+ abc 12073 1: 12074MK: x 12075 12076/(?=(*:x))(?:(*:y)q|)/K+ 12077 abc 12078 0: 12079 0+ abc 12080MK: x 12081 12082/(?=(*:x))(?>(*:y)q|)/K+ 12083 abc 12084 0: 12085 0+ abc 12086MK: x 12087 12088/(?=a(*:x))(?!a(*:y)c)/K+ 12089 ab 12090 0: 12091 0+ ab 12092MK: x 12093 12094/(?=a(*:x))(?=a(*:y)c|)/K+ 12095 ab 12096 0: 12097 0+ ab 12098MK: x 12099 12100/(..)\1/ 12101 ab\P 12102Partial match: ab 12103 aba\P 12104Partial match: aba 12105 abab\P 12106 0: abab 12107 1: ab 12108 12109/(..)\1/i 12110 ab\P 12111Partial match: ab 12112 abA\P 12113Partial match: abA 12114 aBAb\P 12115 0: aBAb 12116 1: aB 12117 12118/(..)\1{2,}/ 12119 ab\P 12120Partial match: ab 12121 aba\P 12122Partial match: aba 12123 abab\P 12124Partial match: abab 12125 ababa\P 12126Partial match: ababa 12127 ababab\P 12128 0: ababab 12129 1: ab 12130 ababab\P\P 12131Partial match: ababab 12132 abababa\P 12133 0: ababab 12134 1: ab 12135 abababa\P\P 12136Partial match: abababa 12137 12138/(..)\1{2,}/i 12139 ab\P 12140Partial match: ab 12141 aBa\P 12142Partial match: aBa 12143 aBAb\P 12144Partial match: aBAb 12145 AbaBA\P 12146Partial match: AbaBA 12147 abABAb\P 12148 0: abABAb 12149 1: ab 12150 aBAbaB\P\P 12151Partial match: aBAbaB 12152 abABabA\P 12153 0: abABab 12154 1: ab 12155 abaBABa\P\P 12156Partial match: abaBABa 12157 12158/(..)\1{2,}?x/i 12159 ab\P 12160Partial match: ab 12161 abA\P 12162Partial match: abA 12163 aBAb\P 12164Partial match: aBAb 12165 abaBA\P 12166Partial match: abaBA 12167 abAbaB\P 12168Partial match: abAbaB 12169 abaBabA\P 12170Partial match: abaBabA 12171 abAbABaBx\P 12172 0: abAbABaBx 12173 1: ab 12174 12175/^(..)\1/ 12176 aba\P 12177Partial match: aba 12178 12179/^(..)\1{2,3}x/ 12180 aba\P 12181Partial match: aba 12182 ababa\P 12183Partial match: ababa 12184 ababa\P\P 12185Partial match: ababa 12186 abababx 12187 0: abababx 12188 1: ab 12189 ababababx 12190 0: ababababx 12191 1: ab 12192 12193/^(..)\1{2,3}?x/ 12194 aba\P 12195Partial match: aba 12196 ababa\P 12197Partial match: ababa 12198 ababa\P\P 12199Partial match: ababa 12200 abababx 12201 0: abababx 12202 1: ab 12203 ababababx 12204 0: ababababx 12205 1: ab 12206 12207/^(..)(\1{2,3})ab/ 12208 abababab 12209 0: abababab 12210 1: ab 12211 2: abab 12212 12213/^\R/ 12214 \r\P 12215 0: \x0d 12216 \r\P\P 12217Partial match: \x0d 12218 12219/^\R{2,3}x/ 12220 \r\P 12221Partial match: \x0d 12222 \r\P\P 12223Partial match: \x0d 12224 \r\r\P 12225Partial match: \x0d\x0d 12226 \r\r\P\P 12227Partial match: \x0d\x0d 12228 \r\r\r\P 12229Partial match: \x0d\x0d\x0d 12230 \r\r\r\P\P 12231Partial match: \x0d\x0d\x0d 12232 \r\rx 12233 0: \x0d\x0dx 12234 \r\r\rx 12235 0: \x0d\x0d\x0dx 12236 12237/^\R{2,3}?x/ 12238 \r\P 12239Partial match: \x0d 12240 \r\P\P 12241Partial match: \x0d 12242 \r\r\P 12243Partial match: \x0d\x0d 12244 \r\r\P\P 12245Partial match: \x0d\x0d 12246 \r\r\r\P 12247Partial match: \x0d\x0d\x0d 12248 \r\r\r\P\P 12249Partial match: \x0d\x0d\x0d 12250 \r\rx 12251 0: \x0d\x0dx 12252 \r\r\rx 12253 0: \x0d\x0d\x0dx 12254 12255/^\R?x/ 12256 \r\P 12257Partial match: \x0d 12258 \r\P\P 12259Partial match: \x0d 12260 x 12261 0: x 12262 \rx 12263 0: \x0dx 12264 12265/^\R+x/ 12266 \r\P 12267Partial match: \x0d 12268 \r\P\P 12269Partial match: \x0d 12270 \r\n\P 12271Partial match: \x0d\x0a 12272 \r\n\P\P 12273Partial match: \x0d\x0a 12274 \rx 12275 0: \x0dx 12276 12277/^a$/<CRLF> 12278 a\r\P 12279Partial match: a\x0d 12280 a\r\P\P 12281Partial match: a\x0d 12282 12283/^a$/m<CRLF> 12284 a\r\P 12285Partial match: a\x0d 12286 a\r\P\P 12287Partial match: a\x0d 12288 12289/^(a$|a\r)/<CRLF> 12290 a\r\P 12291 0: a\x0d 12292 1: a\x0d 12293 a\r\P\P 12294Partial match: a\x0d 12295 12296/^(a$|a\r)/m<CRLF> 12297 a\r\P 12298 0: a\x0d 12299 1: a\x0d 12300 a\r\P\P 12301Partial match: a\x0d 12302 12303/./<CRLF> 12304 \r\P 12305 0: \x0d 12306 \r\P\P 12307Partial match: \x0d 12308 12309/.{2,3}/<CRLF> 12310 \r\P 12311Partial match: \x0d 12312 \r\P\P 12313Partial match: \x0d 12314 \r\r\P 12315 0: \x0d\x0d 12316 \r\r\P\P 12317Partial match: \x0d\x0d 12318 \r\r\r\P 12319 0: \x0d\x0d\x0d 12320 \r\r\r\P\P 12321Partial match: \x0d\x0d\x0d 12322 12323/.{2,3}?/<CRLF> 12324 \r\P 12325Partial match: \x0d 12326 \r\P\P 12327Partial match: \x0d 12328 \r\r\P 12329 0: \x0d\x0d 12330 \r\r\P\P 12331Partial match: \x0d\x0d 12332 \r\r\r\P 12333 0: \x0d\x0d 12334 \r\r\r\P\P 12335 0: \x0d\x0d 12336 12337"AB(C(D))(E(F))?(?(?=\2)(?=\4))" 12338 ABCDGHI\O03 12339Matched, but too many substrings 12340 0: ABCD 12341 12342/-- These are all run as real matches in test 1; here we are just checking the 12343settings of the anchored and startline bits. --/ 12344 12345/(?>.*?a)(?<=ba)/I 12346Capturing subpattern count = 0 12347Max lookbehind = 2 12348No options 12349No first char 12350Need char = 'a' 12351 12352/(?:.*?a)(?<=ba)/I 12353Capturing subpattern count = 0 12354Max lookbehind = 2 12355No options 12356First char at start or follows newline 12357Need char = 'a' 12358 12359/.*?a(*PRUNE)b/I 12360Capturing subpattern count = 0 12361No options 12362No first char 12363Need char = 'b' 12364 12365/.*?a(*PRUNE)b/sI 12366Capturing subpattern count = 0 12367Options: dotall 12368No first char 12369Need char = 'b' 12370 12371/^a(*PRUNE)b/sI 12372Capturing subpattern count = 0 12373Options: anchored dotall 12374No first char 12375No need char 12376 12377/.*?a(*SKIP)b/I 12378Capturing subpattern count = 0 12379No options 12380No first char 12381Need char = 'b' 12382 12383/(?>.*?a)b/sI 12384Capturing subpattern count = 0 12385Options: dotall 12386No first char 12387Need char = 'b' 12388 12389/(?>.*?a)b/I 12390Capturing subpattern count = 0 12391No options 12392No first char 12393Need char = 'b' 12394 12395/(?>^a)b/sI 12396Capturing subpattern count = 0 12397Options: anchored dotall 12398No first char 12399No need char 12400 12401/(?>.*?)(?<=(abcd)|(wxyz))/I 12402Capturing subpattern count = 2 12403Max lookbehind = 4 12404May match empty string 12405No options 12406No first char 12407No need char 12408 12409/(?>.*)(?<=(abcd)|(wxyz))/I 12410Capturing subpattern count = 2 12411Max lookbehind = 4 12412May match empty string 12413No options 12414No first char 12415No need char 12416 12417"(?>.*)foo"I 12418Capturing subpattern count = 0 12419No options 12420No first char 12421Need char = 'o' 12422 12423"(?>.*?)foo"I 12424Capturing subpattern count = 0 12425No options 12426No first char 12427Need char = 'o' 12428 12429/(?>^abc)/mI 12430Capturing subpattern count = 0 12431Options: multiline 12432First char at start or follows newline 12433Need char = 'c' 12434 12435/(?>.*abc)/mI 12436Capturing subpattern count = 0 12437Options: multiline 12438No first char 12439Need char = 'c' 12440 12441/(?:.*abc)/mI 12442Capturing subpattern count = 0 12443Options: multiline 12444First char at start or follows newline 12445Need char = 'c' 12446 12447/-- Check PCRE_STUDY_EXTRA_NEEDED --/ 12448 12449/.?/S-I 12450Capturing subpattern count = 0 12451May match empty string 12452No options 12453No first char 12454No need char 12455Study returned NULL 12456 12457/.?/S!I 12458Capturing subpattern count = 0 12459May match empty string 12460No options 12461No first char 12462No need char 12463Subject length lower bound = -1 12464No starting char list 12465 12466/(?:(a)+(?C1)bb|aa(?C2)b)/ 12467 aab\C+ 12468Callout 1: last capture = 1 12469 0: <unset> 12470 1: a 12471--->aab 12472 ^ ^ b 12473Callout 1: last capture = 1 12474 0: <unset> 12475 1: a 12476--->aab 12477 ^^ b 12478Callout 2: last capture = -1 12479 0: <unset> 12480--->aab 12481 ^ ^ b 12482 0: aab 12483 12484/(?:(a)++(?C1)bb|aa(?C2)b)/ 12485 aab\C+ 12486Callout 1: last capture = 1 12487 0: <unset> 12488 1: a 12489--->aab 12490 ^ ^ b 12491Callout 2: last capture = -1 12492 0: <unset> 12493--->aab 12494 ^ ^ b 12495 0: aab 12496 12497/(?:(?>(a))(?C1)bb|aa(?C2)b)/ 12498 aab\C+ 12499Callout 1: last capture = 1 12500 0: <unset> 12501 1: a 12502--->aab 12503 ^^ b 12504Callout 2: last capture = -1 12505 0: <unset> 12506--->aab 12507 ^ ^ b 12508 0: aab 12509 12510/(?:(?1)(?C1)x|ab(?C2))((a)){0}/ 12511 aab\C+ 12512Callout 1: last capture = -1 12513 0: <unset> 12514--->aab 12515 ^^ x 12516Callout 1: last capture = -1 12517 0: <unset> 12518--->aab 12519 ^^ x 12520Callout 2: last capture = -1 12521 0: <unset> 12522--->aab 12523 ^ ^ ) 12524 0: ab 12525 12526/(?1)(?C1)((a)(?C2)){0}/ 12527 aab\C+ 12528Callout 2: last capture = 2 12529 0: <unset> 12530 1: <unset> 12531 2: a 12532--->aab 12533 ^^ ) 12534Callout 1: last capture = -1 12535 0: <unset> 12536--->aab 12537 ^^ ((a)(?C2)){0} 12538 0: a 12539 12540/(?:(a)+(?C1)bb|aa(?C2)b)++/ 12541 aab\C+ 12542Callout 1: last capture = 1 12543 0: <unset> 12544 1: a 12545--->aab 12546 ^ ^ b 12547Callout 1: last capture = 1 12548 0: <unset> 12549 1: a 12550--->aab 12551 ^^ b 12552Callout 2: last capture = -1 12553 0: <unset> 12554--->aab 12555 ^ ^ b 12556 0: aab 12557 aab\C+\O2 12558Callout 1: last capture = 1 12559 0: <unset> 12560--->aab 12561 ^ ^ b 12562Callout 1: last capture = 1 12563 0: <unset> 12564--->aab 12565 ^^ b 12566Callout 2: last capture = -1 12567 0: <unset> 12568--->aab 12569 ^ ^ b 12570 0: aab 12571 12572/(ab)x|ab/ 12573 ab\O3 12574 0: ab 12575 ab\O2 12576 0: ab 12577 12578/(ab)/ 12579 ab\O3 12580Matched, but too many substrings 12581 0: ab 12582 ab\O2 12583Matched, but too many substrings 12584 0: ab 12585 12586/(?<=123)(*MARK:xx)abc/K 12587 xxxx123a\P\P 12588Partial match at offset 7, mark=xx: 123a 12589 xxxx123a\P 12590Partial match at offset 7, mark=xx: 123a 12591 12592/123\Kabc/ 12593 xxxx123a\P\P 12594Partial match: 123a 12595 xxxx123a\P 12596Partial match: 123a 12597 12598/^(?(?=a)aa|bb)/C 12599 bb 12600--->bb 12601 +0 ^ ^ 12602 +1 ^ (?(?=a)aa|bb) 12603 +3 ^ (?=a) 12604 +6 ^ a 12605+11 ^ b 12606+12 ^^ b 12607+13 ^ ^ ) 12608+14 ^ ^ 12609 0: bb 12610 12611/(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/ 12612 bb 12613--->bb 12614 1 ^ ^ 12615 2 ^ (?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10)) 12616 99 ^ (?=(?C3)a(?C4)) 12617 3 ^ a 12618 8 ^ b 12619 9 ^^ b 12620 10 ^ ^ ) 12621 11 ^ ^ 12622 0: bb 12623 12624/-- Perl seems to have a bug with this one --/ 12625 12626/aaaaa(*COMMIT)(*PRUNE)b|a+c/ 12627 aaaaaac 12628 0: aaaac 12629 12630/-- Here are some that Perl treats differently because of the way it handles 12631backtracking verbs. --/ 12632 12633 /(?!a(*COMMIT)b)ac|ad/ 12634 ac 12635 0: ac 12636 ad 12637 0: ad 12638 12639/^(?!a(*THEN)b|ac)../ 12640 ac 12641No match 12642 ad 12643 0: ad 12644 12645/^(?=a(*THEN)b|ac)/ 12646 ac 12647 0: 12648 12649/\A.*?(?:a|b(*THEN)c)/ 12650 ba 12651 0: ba 12652 12653/\A.*?(?:a|b(*THEN)c)++/ 12654 ba 12655 0: ba 12656 12657/\A.*?(?:a|b(*THEN)c|d)/ 12658 ba 12659 0: ba 12660 12661/(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/ 12662 aac 12663 0: aac 12664 12665/\A.*?(a|b(*THEN)c)/ 12666 ba 12667 0: ba 12668 1: a 12669 12670/^(A(*THEN)B|A(*THEN)D)/ 12671 AD 12672 0: AD 12673 1: AD 12674 12675/(?!b(*THEN)a)bn|bnn/ 12676 bnn 12677 0: bn 12678 12679/(?(?=b(*SKIP)a)bn|bnn)/ 12680 bnn 12681No match 12682 12683/(?=b(*THEN)a|)bn|bnn/ 12684 bnn 12685 0: bn 12686 12687/-------------------------/ 12688 12689/(*LIMIT_MATCH=12bc)abc/ 12690Failed: (*VERB) not recognized or malformed at offset 7 12691 12692/(*LIMIT_MATCH=4294967290)abc/ 12693Failed: (*VERB) not recognized or malformed at offset 7 12694 12695/(*LIMIT_RECURSION=4294967280)abc/I 12696Capturing subpattern count = 0 12697Recursion limit = 4294967280 12698No options 12699First char = 'a' 12700Need char = 'c' 12701 12702/(a+)*zz/ 12703 aaaaaaaaaaaaaz 12704No match 12705 aaaaaaaaaaaaaz\q3000 12706Error -8 (match limit exceeded) 12707 12708/(a+)*zz/S- 12709 aaaaaaaaaaaaaz\Q10 12710Error -21 (recursion limit exceeded) 12711 12712/(*LIMIT_MATCH=3000)(a+)*zz/I 12713Capturing subpattern count = 1 12714Match limit = 3000 12715No options 12716No first char 12717Need char = 'z' 12718 aaaaaaaaaaaaaz 12719Error -8 (match limit exceeded) 12720 aaaaaaaaaaaaaz\q60000 12721Error -8 (match limit exceeded) 12722 12723/(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I 12724Capturing subpattern count = 1 12725Match limit = 3000 12726No options 12727No first char 12728Need char = 'z' 12729 aaaaaaaaaaaaaz 12730Error -8 (match limit exceeded) 12731 12732/(*LIMIT_MATCH=60000)(a+)*zz/I 12733Capturing subpattern count = 1 12734Match limit = 60000 12735No options 12736No first char 12737Need char = 'z' 12738 aaaaaaaaaaaaaz 12739No match 12740 aaaaaaaaaaaaaz\q3000 12741Error -8 (match limit exceeded) 12742 12743/(*LIMIT_RECURSION=10)(a+)*zz/IS- 12744Capturing subpattern count = 1 12745Recursion limit = 10 12746No options 12747No first char 12748Need char = 'z' 12749Subject length lower bound = 2 12750Starting chars: a z 12751 aaaaaaaaaaaaaz 12752Error -21 (recursion limit exceeded) 12753 aaaaaaaaaaaaaz\Q1000 12754Error -21 (recursion limit exceeded) 12755 12756/(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS- 12757Capturing subpattern count = 1 12758Recursion limit = 10 12759No options 12760No first char 12761Need char = 'z' 12762Subject length lower bound = 2 12763Starting chars: a z 12764 aaaaaaaaaaaaaz 12765Error -21 (recursion limit exceeded) 12766 12767/(*LIMIT_RECURSION=1000)(a+)*zz/IS- 12768Capturing subpattern count = 1 12769Recursion limit = 1000 12770No options 12771No first char 12772Need char = 'z' 12773Subject length lower bound = 2 12774Starting chars: a z 12775 aaaaaaaaaaaaaz 12776No match 12777 aaaaaaaaaaaaaz\Q10 12778Error -21 (recursion limit exceeded) 12779 12780/-- This test causes a segfault with Perl 5.18.0 --/ 12781 12782/^(?=(a)){0}b(?1)/ 12783 backgammon 12784 0: ba 12785 12786/(?|(?<n>f)|(?<n>b))/JI 12787Capturing subpattern count = 1 12788Named capturing subpatterns: 12789 n 1 12790Options: dupnames 12791No first char 12792No need char 12793 12794/(?<a>abc)(?<a>z)\k<a>()/JDZS 12795------------------------------------------------------------------ 12796 Bra 12797 CBra 1 12798 abc 12799 Ket 12800 CBra 2 12801 z 12802 Ket 12803 \k<a>2 12804 CBra 3 12805 Ket 12806 Ket 12807 End 12808------------------------------------------------------------------ 12809Capturing subpattern count = 3 12810Max back reference = 2 12811Named capturing subpatterns: 12812 a 1 12813 a 2 12814Options: dupnames 12815First char = 'a' 12816Need char = 'z' 12817Subject length lower bound = 5 12818No starting char list 12819 12820/a*[bcd]/BZ 12821------------------------------------------------------------------ 12822 Bra 12823 a*+ 12824 [b-d] 12825 Ket 12826 End 12827------------------------------------------------------------------ 12828 12829/[bcd]*a/BZ 12830------------------------------------------------------------------ 12831 Bra 12832 [b-d]*+ 12833 a 12834 Ket 12835 End 12836------------------------------------------------------------------ 12837 12838/-- A complete set of tests for auto-possessification of character types --/ 12839 12840/\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 12841------------------------------------------------------------------ 12842 Bra 12843 \D+ 12844 \D 12845 \D++ 12846 \d 12847 \D+ 12848 \S 12849 \D+ 12850 \s 12851 \D+ 12852 \W 12853 \D+ 12854 \w 12855 \D+ 12856 Any 12857 \D+ 12858 AllAny 12859 \D+ 12860 \R 12861 \D+ 12862 \H 12863 \D+ 12864 \h 12865 \D+ 12866 \V 12867 \D+ 12868 \v 12869 \D+ 12870 \Z 12871 \D++ 12872 \z 12873 \D+ 12874 $ 12875 Ket 12876 End 12877------------------------------------------------------------------ 12878 12879/\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 12880------------------------------------------------------------------ 12881 Bra 12882 \d++ 12883 \D 12884 \d+ 12885 \d 12886 \d+ 12887 \S 12888 \d++ 12889 \s 12890 \d++ 12891 \W 12892 \d+ 12893 \w 12894 \d+ 12895 Any 12896 \d+ 12897 AllAny 12898 \d++ 12899 \R 12900 \d+ 12901 \H 12902 \d++ 12903 \h 12904 \d+ 12905 \V 12906 \d++ 12907 \v 12908 \d++ 12909 \Z 12910 \d++ 12911 \z 12912 \d++ 12913 $ 12914 Ket 12915 End 12916------------------------------------------------------------------ 12917 12918/\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 12919------------------------------------------------------------------ 12920 Bra 12921 \S+ 12922 \D 12923 \S+ 12924 \d 12925 \S+ 12926 \S 12927 \S++ 12928 \s 12929 \S+ 12930 \W 12931 \S+ 12932 \w 12933 \S+ 12934 Any 12935 \S+ 12936 AllAny 12937 \S++ 12938 \R 12939 \S+ 12940 \H 12941 \S++ 12942 \h 12943 \S+ 12944 \V 12945 \S++ 12946 \v 12947 \S++ 12948 \Z 12949 \S++ 12950 \z 12951 \S++ 12952 $ 12953 Ket 12954 End 12955------------------------------------------------------------------ 12956 12957/\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 12958------------------------------------------------------------------ 12959 Bra 12960 \s+ 12961 \D 12962 \s++ 12963 \d 12964 \s++ 12965 \S 12966 \s+ 12967 \s 12968 \s+ 12969 \W 12970 \s++ 12971 \w 12972 \s+ 12973 Any 12974 \s+ 12975 AllAny 12976 \s+ 12977 \R 12978 \s+ 12979 \H 12980 \s+ 12981 \h 12982 \s+ 12983 \V 12984 \s+ 12985 \v 12986 \s+ 12987 \Z 12988 \s++ 12989 \z 12990 \s+ 12991 $ 12992 Ket 12993 End 12994------------------------------------------------------------------ 12995 12996/\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 12997------------------------------------------------------------------ 12998 Bra 12999 \W+ 13000 \D 13001 \W++ 13002 \d 13003 \W+ 13004 \S 13005 \W+ 13006 \s 13007 \W+ 13008 \W 13009 \W++ 13010 \w 13011 \W+ 13012 Any 13013 \W+ 13014 AllAny 13015 \W+ 13016 \R 13017 \W+ 13018 \H 13019 \W+ 13020 \h 13021 \W+ 13022 \V 13023 \W+ 13024 \v 13025 \W+ 13026 \Z 13027 \W++ 13028 \z 13029 \W+ 13030 $ 13031 Ket 13032 End 13033------------------------------------------------------------------ 13034 13035/\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 13036------------------------------------------------------------------ 13037 Bra 13038 \w+ 13039 \D 13040 \w+ 13041 \d 13042 \w+ 13043 \S 13044 \w++ 13045 \s 13046 \w++ 13047 \W 13048 \w+ 13049 \w 13050 \w+ 13051 Any 13052 \w+ 13053 AllAny 13054 \w++ 13055 \R 13056 \w+ 13057 \H 13058 \w++ 13059 \h 13060 \w+ 13061 \V 13062 \w++ 13063 \v 13064 \w++ 13065 \Z 13066 \w++ 13067 \z 13068 \w++ 13069 $ 13070 Ket 13071 End 13072------------------------------------------------------------------ 13073 13074/\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 13075------------------------------------------------------------------ 13076 Bra 13077 AllAny+ 13078 \D 13079 AllAny+ 13080 \d 13081 AllAny+ 13082 \S 13083 AllAny+ 13084 \s 13085 AllAny+ 13086 \W 13087 AllAny+ 13088 \w 13089 AllAny+ 13090 Any 13091 AllAny+ 13092 AllAny 13093 AllAny+ 13094 \R 13095 AllAny+ 13096 \H 13097 AllAny+ 13098 \h 13099 AllAny+ 13100 \V 13101 AllAny+ 13102 \v 13103 AllAny+ 13104 \Z 13105 AllAny++ 13106 \z 13107 AllAny+ 13108 $ 13109 Ket 13110 End 13111------------------------------------------------------------------ 13112 13113/\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 13114------------------------------------------------------------------ 13115 Bra 13116 \R+ 13117 \D 13118 \R++ 13119 \d 13120 \R+ 13121 \S 13122 \R++ 13123 \s 13124 \R+ 13125 \W 13126 \R++ 13127 \w 13128 \R++ 13129 Any 13130 \R+ 13131 AllAny 13132 \R+ 13133 \R 13134 \R+ 13135 \H 13136 \R++ 13137 \h 13138 \R+ 13139 \V 13140 \R+ 13141 \v 13142 \R+ 13143 \Z 13144 \R++ 13145 \z 13146 \R+ 13147 $ 13148 Ket 13149 End 13150------------------------------------------------------------------ 13151 13152/\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 13153------------------------------------------------------------------ 13154 Bra 13155 \H+ 13156 \D 13157 \H+ 13158 \d 13159 \H+ 13160 \S 13161 \H+ 13162 \s 13163 \H+ 13164 \W 13165 \H+ 13166 \w 13167 \H+ 13168 Any 13169 \H+ 13170 AllAny 13171 \H+ 13172 \R 13173 \H+ 13174 \H 13175 \H++ 13176 \h 13177 \H+ 13178 \V 13179 \H+ 13180 \v 13181 \H+ 13182 \Z 13183 \H++ 13184 \z 13185 \H+ 13186 $ 13187 Ket 13188 End 13189------------------------------------------------------------------ 13190 13191/\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 13192------------------------------------------------------------------ 13193 Bra 13194 \h+ 13195 \D 13196 \h++ 13197 \d 13198 \h++ 13199 \S 13200 \h+ 13201 \s 13202 \h+ 13203 \W 13204 \h++ 13205 \w 13206 \h+ 13207 Any 13208 \h+ 13209 AllAny 13210 \h++ 13211 \R 13212 \h++ 13213 \H 13214 \h+ 13215 \h 13216 \h+ 13217 \V 13218 \h++ 13219 \v 13220 \h+ 13221 \Z 13222 \h++ 13223 \z 13224 \h+ 13225 $ 13226 Ket 13227 End 13228------------------------------------------------------------------ 13229 13230/\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 13231------------------------------------------------------------------ 13232 Bra 13233 \V+ 13234 \D 13235 \V+ 13236 \d 13237 \V+ 13238 \S 13239 \V+ 13240 \s 13241 \V+ 13242 \W 13243 \V+ 13244 \w 13245 \V+ 13246 Any 13247 \V+ 13248 AllAny 13249 \V++ 13250 \R 13251 \V+ 13252 \H 13253 \V+ 13254 \h 13255 \V+ 13256 \V 13257 \V++ 13258 \v 13259 \V+ 13260 \Z 13261 \V++ 13262 \z 13263 \V+ 13264 $ 13265 Ket 13266 End 13267------------------------------------------------------------------ 13268 13269/\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 13270------------------------------------------------------------------ 13271 Bra 13272 \v+ 13273 \D 13274 \v++ 13275 \d 13276 \v++ 13277 \S 13278 \v+ 13279 \s 13280 \v+ 13281 \W 13282 \v++ 13283 \w 13284 \v+ 13285 Any 13286 \v+ 13287 AllAny 13288 \v+ 13289 \R 13290 \v+ 13291 \H 13292 \v++ 13293 \h 13294 \v++ 13295 \V 13296 \v+ 13297 \v 13298 \v+ 13299 \Z 13300 \v++ 13301 \z 13302 \v+ 13303 $ 13304 Ket 13305 End 13306------------------------------------------------------------------ 13307 13308/ 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 13309------------------------------------------------------------------ 13310 Bra 13311 a+ 13312 \D 13313 a++ 13314 \d 13315 a+ 13316 \S 13317 a++ 13318 \s 13319 a++ 13320 \W 13321 a+ 13322 \w 13323 a+ 13324 Any 13325 a+ 13326 AllAny 13327 a++ 13328 \R 13329 a+ 13330 \H 13331 a++ 13332 \h 13333 a+ 13334 \V 13335 a++ 13336 \v 13337 a++ 13338 \Z 13339 a++ 13340 \z 13341 a++ 13342 $ 13343 Ket 13344 End 13345------------------------------------------------------------------ 13346 13347/\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 13348------------------------------------------------------------------ 13349 Bra 13350 \x0a+ 13351 \D 13352 \x0a++ 13353 \d 13354 \x0a++ 13355 \S 13356 \x0a+ 13357 \s 13358 \x0a+ 13359 \W 13360 \x0a++ 13361 \w 13362 \x0a+ 13363 Any 13364 \x0a+ 13365 AllAny 13366 \x0a+ 13367 \R 13368 \x0a+ 13369 \H 13370 \x0a++ 13371 \h 13372 \x0a++ 13373 \V 13374 \x0a+ 13375 \v 13376 \x0a+ 13377 \Z 13378 \x0a++ 13379 \z 13380 \x0a+ 13381 $ 13382 Ket 13383 End 13384------------------------------------------------------------------ 13385 13386/ .+\D .+\d .+\S .+\s .+\W .+\w .+. .+\C .+\R .+\H .+\h .+\V .+\v .+\Z .+\z .+$/BZx 13387------------------------------------------------------------------ 13388 Bra 13389 Any+ 13390 \D 13391 Any+ 13392 \d 13393 Any+ 13394 \S 13395 Any+ 13396 \s 13397 Any+ 13398 \W 13399 Any+ 13400 \w 13401 Any+ 13402 Any 13403 Any+ 13404 AllAny 13405 Any++ 13406 \R 13407 Any+ 13408 \H 13409 Any+ 13410 \h 13411 Any+ 13412 \V 13413 Any+ 13414 \v 13415 Any+ 13416 \Z 13417 Any++ 13418 \z 13419 Any+ 13420 $ 13421 Ket 13422 End 13423------------------------------------------------------------------ 13424 13425/ .+\D .+\d .+\S .+\s .+\W .+\w .+. .+\C .+\R .+\H .+\h .+\V .+\v .+\Z .+\z .+$/BZxs 13426------------------------------------------------------------------ 13427 Bra 13428 AllAny+ 13429 \D 13430 AllAny+ 13431 \d 13432 AllAny+ 13433 \S 13434 AllAny+ 13435 \s 13436 AllAny+ 13437 \W 13438 AllAny+ 13439 \w 13440 AllAny+ 13441 AllAny 13442 AllAny+ 13443 AllAny 13444 AllAny+ 13445 \R 13446 AllAny+ 13447 \H 13448 AllAny+ 13449 \h 13450 AllAny+ 13451 \V 13452 AllAny+ 13453 \v 13454 AllAny+ 13455 \Z 13456 AllAny++ 13457 \z 13458 AllAny+ 13459 $ 13460 Ket 13461 End 13462------------------------------------------------------------------ 13463 13464/\D+$ \d+$ \S+$ \s+$ \W+$ \w+$ \C+$ \R+$ \H+$ \h+$ \V+$ \v+$ a+$ \n+$ .+$ .+$/BZxm 13465------------------------------------------------------------------ 13466 Bra 13467 \D+ 13468 /m $ 13469 \d++ 13470 /m $ 13471 \S++ 13472 /m $ 13473 \s+ 13474 /m $ 13475 \W+ 13476 /m $ 13477 \w++ 13478 /m $ 13479 AllAny+ 13480 /m $ 13481 \R+ 13482 /m $ 13483 \H+ 13484 /m $ 13485 \h+ 13486 /m $ 13487 \V+ 13488 /m $ 13489 \v+ 13490 /m $ 13491 a+ 13492 /m $ 13493 \x0a+ 13494 /m $ 13495 Any+ 13496 /m $ 13497 Any+ 13498 /m $ 13499 Ket 13500 End 13501------------------------------------------------------------------ 13502 13503/(?=a+)a(a+)++a/BZ 13504------------------------------------------------------------------ 13505 Bra 13506 Assert 13507 a++ 13508 Ket 13509 a 13510 CBraPos 1 13511 a++ 13512 KetRpos 13513 a 13514 Ket 13515 End 13516------------------------------------------------------------------ 13517 13518/a+(bb|cc)a+(?:bb|cc)a+(?>bb|cc)a+(?:bb|cc)+a+(aa)a+(?:bb|aa)/BZ 13519------------------------------------------------------------------ 13520 Bra 13521 a++ 13522 CBra 1 13523 bb 13524 Alt 13525 cc 13526 Ket 13527 a++ 13528 Bra 13529 bb 13530 Alt 13531 cc 13532 Ket 13533 a++ 13534 Once_NC 13535 bb 13536 Alt 13537 cc 13538 Ket 13539 a++ 13540 Bra 13541 bb 13542 Alt 13543 cc 13544 KetRmax 13545 a+ 13546 CBra 2 13547 aa 13548 Ket 13549 a+ 13550 Bra 13551 bb 13552 Alt 13553 aa 13554 Ket 13555 Ket 13556 End 13557------------------------------------------------------------------ 13558 13559/a+(bb|cc)?#a+(?:bb|cc)??#a+(?:bb|cc)?+#a+(?:bb|cc)*#a+(bb|cc)?a#a+(?:aa)?/BZ 13560------------------------------------------------------------------ 13561 Bra 13562 a++ 13563 Brazero 13564 CBra 1 13565 bb 13566 Alt 13567 cc 13568 Ket 13569 # 13570 a++ 13571 Braminzero 13572 Bra 13573 bb 13574 Alt 13575 cc 13576 Ket 13577 # 13578 a++ 13579 Once 13580 Brazero 13581 Bra 13582 bb 13583 Alt 13584 cc 13585 Ket 13586 Ket 13587 # 13588 a++ 13589 Brazero 13590 Bra 13591 bb 13592 Alt 13593 cc 13594 KetRmax 13595 # 13596 a+ 13597 Brazero 13598 CBra 2 13599 bb 13600 Alt 13601 cc 13602 Ket 13603 a# 13604 a+ 13605 Brazero 13606 Bra 13607 aa 13608 Ket 13609 Ket 13610 End 13611------------------------------------------------------------------ 13612 13613/a+(?:bb)?a#a+(?:|||)#a+(?:|b)a#a+(?:|||)?a/BZ 13614------------------------------------------------------------------ 13615 Bra 13616 a+ 13617 Brazero 13618 Bra 13619 bb 13620 Ket 13621 a# 13622 a++ 13623 Bra 13624 Alt 13625 Alt 13626 Alt 13627 Ket 13628 # 13629 a+ 13630 Bra 13631 Alt 13632 b 13633 Ket 13634 a# 13635 a+ 13636 Brazero 13637 Bra 13638 Alt 13639 Alt 13640 Alt 13641 Ket 13642 a 13643 Ket 13644 End 13645------------------------------------------------------------------ 13646 13647/[ab]*/BZ 13648------------------------------------------------------------------ 13649 Bra 13650 [ab]*+ 13651 Ket 13652 End 13653------------------------------------------------------------------ 13654 aaaa 13655 0: aaaa 13656 13657/[ab]*?/BZ 13658------------------------------------------------------------------ 13659 Bra 13660 [ab]*? 13661 Ket 13662 End 13663------------------------------------------------------------------ 13664 aaaa 13665 0: 13666 13667/[ab]?/BZ 13668------------------------------------------------------------------ 13669 Bra 13670 [ab]?+ 13671 Ket 13672 End 13673------------------------------------------------------------------ 13674 aaaa 13675 0: a 13676 13677/[ab]??/BZ 13678------------------------------------------------------------------ 13679 Bra 13680 [ab]?? 13681 Ket 13682 End 13683------------------------------------------------------------------ 13684 aaaa 13685 0: 13686 13687/[ab]+/BZ 13688------------------------------------------------------------------ 13689 Bra 13690 [ab]++ 13691 Ket 13692 End 13693------------------------------------------------------------------ 13694 aaaa 13695 0: aaaa 13696 13697/[ab]+?/BZ 13698------------------------------------------------------------------ 13699 Bra 13700 [ab]+? 13701 Ket 13702 End 13703------------------------------------------------------------------ 13704 aaaa 13705 0: a 13706 13707/[ab]{2,3}/BZ 13708------------------------------------------------------------------ 13709 Bra 13710 [ab]{2,3}+ 13711 Ket 13712 End 13713------------------------------------------------------------------ 13714 aaaa 13715 0: aaa 13716 13717/[ab]{2,3}?/BZ 13718------------------------------------------------------------------ 13719 Bra 13720 [ab]{2,3}? 13721 Ket 13722 End 13723------------------------------------------------------------------ 13724 aaaa 13725 0: aa 13726 13727/[ab]{2,}/BZ 13728------------------------------------------------------------------ 13729 Bra 13730 [ab]{2,}+ 13731 Ket 13732 End 13733------------------------------------------------------------------ 13734 aaaa 13735 0: aaaa 13736 13737/[ab]{2,}?/BZ 13738------------------------------------------------------------------ 13739 Bra 13740 [ab]{2,}? 13741 Ket 13742 End 13743------------------------------------------------------------------ 13744 aaaa 13745 0: aa 13746 13747/\d+\s{0,5}=\s*\S?=\w{0,4}\W*/BZ 13748------------------------------------------------------------------ 13749 Bra 13750 \d++ 13751 \s{0,5}+ 13752 = 13753 \s*+ 13754 \S? 13755 = 13756 \w{0,4}+ 13757 \W*+ 13758 Ket 13759 End 13760------------------------------------------------------------------ 13761 13762/[a-d]{5,12}[e-z0-9]*#[^a-z]+[b-y]*a[2-7]?[^0-9a-z]+/BZ 13763------------------------------------------------------------------ 13764 Bra 13765 [a-d]{5,12}+ 13766 [0-9e-z]*+ 13767 # 13768 [\x00-`{-\xff] (neg)++ 13769 [b-y]*+ 13770 a 13771 [2-7]?+ 13772 [\x00-/:-`{-\xff] (neg)++ 13773 Ket 13774 End 13775------------------------------------------------------------------ 13776 13777/[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 13778------------------------------------------------------------------ 13779 Bra 13780 [a-z]*+ 13781 \s 13782 # 13783 [\x09 ]?+ 13784 \S 13785 # 13786 [a-c]* 13787 \S 13788 # 13789 [C-G]++ 13790 \d 13791 # 13792 [4-8]*+ 13793 \D 13794 # 13795 [,4-9]* 13796 \D 13797 # 13798 [!$]{0,5}+ 13799 \w 13800 # 13801 [M-Xf-l]++ 13802 \W 13803 # 13804 [,a-c]? 13805 \W 13806 Ket 13807 End 13808------------------------------------------------------------------ 13809 13810/a+(aa|bb)*c#a*(bb|cc)*a#a?(bb|cc)*d#[a-f]*(g|hh)*f/BZ 13811------------------------------------------------------------------ 13812 Bra 13813 a+ 13814 Brazero 13815 CBra 1 13816 aa 13817 Alt 13818 bb 13819 KetRmax 13820 c# 13821 a* 13822 Brazero 13823 CBra 2 13824 bb 13825 Alt 13826 cc 13827 KetRmax 13828 a# 13829 a?+ 13830 Brazero 13831 CBra 3 13832 bb 13833 Alt 13834 cc 13835 KetRmax 13836 d# 13837 [a-f]* 13838 Brazero 13839 CBra 4 13840 g 13841 Alt 13842 hh 13843 KetRmax 13844 f 13845 Ket 13846 End 13847------------------------------------------------------------------ 13848 13849/[a-f]*(g|hh|i)*i#[a-x]{4,}(y{0,6})*y#[a-k]+(ll|mm)+n/BZ 13850------------------------------------------------------------------ 13851 Bra 13852 [a-f]*+ 13853 Brazero 13854 CBra 1 13855 g 13856 Alt 13857 hh 13858 Alt 13859 i 13860 KetRmax 13861 i# 13862 [a-x]{4,} 13863 Brazero 13864 SCBra 2 13865 y{0,6} 13866 KetRmax 13867 y# 13868 [a-k]++ 13869 CBra 3 13870 ll 13871 Alt 13872 mm 13873 KetRmax 13874 n 13875 Ket 13876 End 13877------------------------------------------------------------------ 13878 13879/[a-f]*(?>gg|hh)+#[a-f]*(?>gg|hh)?#[a-f]*(?>gg|hh)*a#[a-f]*(?>gg|hh)*h/BZ 13880------------------------------------------------------------------ 13881 Bra 13882 [a-f]*+ 13883 Once_NC 13884 gg 13885 Alt 13886 hh 13887 KetRmax 13888 # 13889 [a-f]*+ 13890 Brazero 13891 Once_NC 13892 gg 13893 Alt 13894 hh 13895 Ket 13896 # 13897 [a-f]* 13898 Brazero 13899 Once_NC 13900 gg 13901 Alt 13902 hh 13903 KetRmax 13904 a# 13905 [a-f]*+ 13906 Brazero 13907 Once_NC 13908 gg 13909 Alt 13910 hh 13911 KetRmax 13912 h 13913 Ket 13914 End 13915------------------------------------------------------------------ 13916 13917/[a-c]*d/DZS 13918------------------------------------------------------------------ 13919 Bra 13920 [a-c]*+ 13921 d 13922 Ket 13923 End 13924------------------------------------------------------------------ 13925Capturing subpattern count = 0 13926No options 13927No first char 13928Need char = 'd' 13929Subject length lower bound = 1 13930Starting chars: a b c d 13931 13932/[a-c]+d/DZS 13933------------------------------------------------------------------ 13934 Bra 13935 [a-c]++ 13936 d 13937 Ket 13938 End 13939------------------------------------------------------------------ 13940Capturing subpattern count = 0 13941No options 13942No first char 13943Need char = 'd' 13944Subject length lower bound = 2 13945Starting chars: a b c 13946 13947/[a-c]?d/DZS 13948------------------------------------------------------------------ 13949 Bra 13950 [a-c]?+ 13951 d 13952 Ket 13953 End 13954------------------------------------------------------------------ 13955Capturing subpattern count = 0 13956No options 13957No first char 13958Need char = 'd' 13959Subject length lower bound = 1 13960Starting chars: a b c d 13961 13962/[a-c]{4,6}d/DZS 13963------------------------------------------------------------------ 13964 Bra 13965 [a-c]{4,6}+ 13966 d 13967 Ket 13968 End 13969------------------------------------------------------------------ 13970Capturing subpattern count = 0 13971No options 13972No first char 13973Need char = 'd' 13974Subject length lower bound = 5 13975Starting chars: a b c 13976 13977/[a-c]{0,6}d/DZS 13978------------------------------------------------------------------ 13979 Bra 13980 [a-c]{0,6}+ 13981 d 13982 Ket 13983 End 13984------------------------------------------------------------------ 13985Capturing subpattern count = 0 13986No options 13987No first char 13988Need char = 'd' 13989Subject length lower bound = 1 13990Starting chars: a b c d 13991 13992/-- End of special auto-possessive tests --/ 13993 13994/^A\o{1239}B/ 13995Failed: non-octal character in \o{} (closing brace missing?) at offset 8 13996 13997/^A\oB/ 13998Failed: missing opening brace after \o at offset 3 13999 14000/^A\x{zz}B/ 14001Failed: non-hex character in \x{} (closing brace missing?) at offset 5 14002 14003/^A\x{12Z/ 14004Failed: non-hex character in \x{} (closing brace missing?) at offset 7 14005 14006/^A\x{/ 14007Failed: non-hex character in \x{} (closing brace missing?) at offset 5 14008 14009/[ab]++/BZO 14010------------------------------------------------------------------ 14011 Bra 14012 [ab]++ 14013 Ket 14014 End 14015------------------------------------------------------------------ 14016 14017/[^ab]*+/BZO 14018------------------------------------------------------------------ 14019 Bra 14020 [\x00-`c-\xff] (neg)*+ 14021 Ket 14022 End 14023------------------------------------------------------------------ 14024 14025/a{4}+/BZO 14026------------------------------------------------------------------ 14027 Bra 14028 a{4} 14029 Ket 14030 End 14031------------------------------------------------------------------ 14032 14033/a{4}+/BZOi 14034------------------------------------------------------------------ 14035 Bra 14036 /i a{4} 14037 Ket 14038 End 14039------------------------------------------------------------------ 14040 14041/[a-[:digit:]]+/ 14042Failed: invalid range in character class at offset 3 14043 14044/[A-[:digit:]]+/ 14045Failed: invalid range in character class at offset 3 14046 14047/[a-[.xxx.]]+/ 14048Failed: invalid range in character class at offset 3 14049 14050/[a-[=xxx=]]+/ 14051Failed: invalid range in character class at offset 3 14052 14053/[a-[!xxx!]]+/ 14054Failed: range out of order in character class at offset 3 14055 14056/[A-[!xxx!]]+/ 14057 A]]] 14058 0: A]]] 14059 14060/[a-\d]+/ 14061Failed: invalid range in character class at offset 4 14062 14063/(?<0abc>xx)/ 14064Failed: group name must start with a non-digit at offset 3 14065 14066/(?&1abc)xx(?<1abc>y)/ 14067Failed: group name must start with a non-digit at offset 3 14068 14069/(?<ab-cd>xx)/ 14070Failed: syntax error in subpattern name (missing terminator) at offset 5 14071 14072/(?'0abc'xx)/ 14073Failed: group name must start with a non-digit at offset 3 14074 14075/(?P<0abc>xx)/ 14076Failed: group name must start with a non-digit at offset 4 14077 14078/\k<5ghj>/ 14079Failed: group name must start with a non-digit at offset 3 14080 14081/\k'5ghj'/ 14082Failed: group name must start with a non-digit at offset 3 14083 14084/\k{2fgh}/ 14085Failed: group name must start with a non-digit at offset 3 14086 14087/(?P=8yuki)/ 14088Failed: group name must start with a non-digit at offset 4 14089 14090/\g{4df}/ 14091Failed: group name must start with a non-digit at offset 3 14092 14093/(?&1abc)xx(?<1abc>y)/ 14094Failed: group name must start with a non-digit at offset 3 14095 14096/(?P>1abc)xx(?<1abc>y)/ 14097Failed: group name must start with a non-digit at offset 4 14098 14099/\g'3gh'/ 14100Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 2 14101 14102/\g<5fg>/ 14103Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 2 14104 14105/(?(<4gh>)abc)/ 14106Failed: group name must start with a non-digit at offset 4 14107 14108/(?('4gh')abc)/ 14109Failed: group name must start with a non-digit at offset 4 14110 14111/(?(4gh)abc)/ 14112Failed: malformed number or name after (?( at offset 4 14113 14114/(?(R&6yh)abc)/ 14115Failed: group name must start with a non-digit at offset 5 14116 14117/(((a\2)|(a*)\g<-1>))*a?/BZ 14118------------------------------------------------------------------ 14119 Bra 14120 Brazero 14121 SCBra 1 14122 Once 14123 CBra 2 14124 CBra 3 14125 a 14126 \2 14127 Ket 14128 Alt 14129 CBra 4 14130 a* 14131 Ket 14132 Recurse 14133 Ket 14134 Ket 14135 KetRmax 14136 a?+ 14137 Ket 14138 End 14139------------------------------------------------------------------ 14140 14141/-- Test the ugly "start or end of word" compatibility syntax --/ 14142 14143/[[:<:]]red[[:>:]]/BZ 14144------------------------------------------------------------------ 14145 Bra 14146 \b 14147 Assert 14148 \w 14149 Ket 14150 red 14151 \b 14152 AssertB 14153 Reverse 14154 \w 14155 Ket 14156 Ket 14157 End 14158------------------------------------------------------------------ 14159 little red riding hood 14160 0: red 14161 a /red/ thing 14162 0: red 14163 red is a colour 14164 0: red 14165 put it all on red 14166 0: red 14167 ** Failers 14168No match 14169 no reduction 14170No match 14171 Alfred Winifred 14172No match 14173 14174/[a[:<:]] should give error/ 14175Failed: unknown POSIX class name at offset 4 14176 14177/(?=ab\K)/+ 14178 abcd 14179Start of matched string is beyond its end - displaying from end to start. 14180 0: ab 14181 0+ abcd 14182 14183/abcd/f<lf> 14184 xx\nxabcd 14185No match 14186 14187/ -- Test stack check external calls --/ 14188 14189/(((((a)))))/Q0 14190 14191/(((((a)))))/Q1 14192Failed: parentheses are too deeply nested (stack check) at offset 0 14193 14194/(((((a)))))/Q 14195** Missing 0 or 1 after /Q 14196 14197/^\w+(?>\s*)(?<=\w)/BZ 14198------------------------------------------------------------------ 14199 Bra 14200 ^ 14201 \w+ 14202 Once_NC 14203 \s*+ 14204 Ket 14205 AssertB 14206 Reverse 14207 \w 14208 Ket 14209 Ket 14210 End 14211------------------------------------------------------------------ 14212 14213/\othing/ 14214Failed: missing opening brace after \o at offset 1 14215 14216/\o{}/ 14217Failed: digits missing in \x{} or \o{} at offset 1 14218 14219/\o{whatever}/ 14220Failed: non-octal character in \o{} (closing brace missing?) at offset 3 14221 14222/\xthing/ 14223 14224/\x{}/ 14225Failed: digits missing in \x{} or \o{} at offset 3 14226 14227/\x{whatever}/ 14228Failed: non-hex character in \x{} (closing brace missing?) at offset 3 14229 14230"((?=(?(?=(?(?=(?(?=()))))))))" 14231 a 14232 0: 14233 1: 14234 2: 14235 14236"(?(?=)==)(((((((((?=)))))))))" 14237 a 14238No match 14239 14240/^(?:(a)|b)(?(1)A|B)/I 14241Capturing subpattern count = 1 14242Max back reference = 1 14243Options: anchored 14244No first char 14245No need char 14246 aA123\O3 14247Matched, but too many substrings 14248 0: aA 14249 aA123\O6 14250 0: aA 14251 1: a 14252 14253'^(?:(?<AA>a)|b)(?(<AA>)A|B)' 14254 aA123\O3 14255Matched, but too many substrings 14256 0: aA 14257 aA123\O6 14258 0: aA 14259 1: a 14260 14261'^(?<AA>)(?:(?<AA>a)|b)(?(<AA>)A|B)'J 14262 aA123\O3 14263Matched, but too many substrings 14264 0: aA 14265 aA123\O6 14266Matched, but too many substrings 14267 0: aA 14268 1: 14269 14270'^(?:(?<AA>X)|)(?:(?<AA>a)|b)\k{AA}'J 14271 aa123\O3 14272Matched, but too many substrings 14273 0: aa 14274 aa123\O6 14275Matched, but too many substrings 14276 0: aa 14277 1: <unset> 14278 14279/(?<N111>(?J)(?<N111>1(111111)11|)1|1|)(?(<N111>)1)/ 14280 14281/(?(?=0)?)+/ 14282Failed: nothing to repeat at offset 7 14283 14284/(?(?=0)(?=00)?00765)/ 14285 00765 14286 0: 00765 14287 14288/(?(?=0)(?=00)?00765|(?!3).56)/ 14289 00765 14290 0: 00765 14291 456 14292 0: 456 14293 ** Failers 14294No match 14295 356 14296No match 14297 14298'^(a)*+(\w)' 14299 g 14300 0: g 14301 1: <unset> 14302 2: g 14303 g\O3 14304Matched, but too many substrings 14305 0: g 14306 14307'^(?:a)*+(\w)' 14308 g 14309 0: g 14310 1: g 14311 g\O3 14312Matched, but too many substrings 14313 0: g 14314 14315//C 14316 \O\C+ 14317Callout 255: last capture = -1 14318---> 14319 +0 ^ 14320Matched, but too many substrings 14321 14322"((?2){0,1999}())?" 14323 14324/((?+1)(\1))/BZ 14325------------------------------------------------------------------ 14326 Bra 14327 Once 14328 CBra 1 14329 Recurse 14330 CBra 2 14331 \1 14332 Ket 14333 Ket 14334 Ket 14335 Ket 14336 End 14337------------------------------------------------------------------ 14338 14339/(?(?!)a|b)/ 14340 bbb 14341 0: b 14342 aaa 14343No match 14344 14345"((?2)+)((?1))" 14346 14347"(?(?<E>.*!.*)?)" 14348Failed: assertion expected after (?( or (?(?C) at offset 3 14349 14350"X((?2)()*+){2}+"BZ 14351------------------------------------------------------------------ 14352 Bra 14353 X 14354 Once 14355 CBra 1 14356 Recurse 14357 Braposzero 14358 SCBraPos 2 14359 KetRpos 14360 Ket 14361 CBra 1 14362 Recurse 14363 Braposzero 14364 SCBraPos 2 14365 KetRpos 14366 Ket 14367 Ket 14368 Ket 14369 End 14370------------------------------------------------------------------ 14371 14372"X((?2)()*+){2}"BZ 14373------------------------------------------------------------------ 14374 Bra 14375 X 14376 CBra 1 14377 Recurse 14378 Braposzero 14379 SCBraPos 2 14380 KetRpos 14381 Ket 14382 CBra 1 14383 Recurse 14384 Braposzero 14385 SCBraPos 2 14386 KetRpos 14387 Ket 14388 Ket 14389 End 14390------------------------------------------------------------------ 14391 14392"(?<=((?2))((?1)))" 14393Failed: lookbehind assertion is not fixed length at offset 17 14394 14395/(?<=\Ka)/g+ 14396 aaaaa 14397 0: a 14398 0+ aaaa 14399 0: a 14400 0+ aaaa 14401 0: a 14402 0+ aaa 14403 0: a 14404 0+ aa 14405 0: a 14406 0+ a 14407 0: a 14408 0+ 14409 14410/(?<=\Ka)/G+ 14411 aaaaa 14412 0: a 14413 0+ aaaa 14414 0: a 14415 0+ aaa 14416 0: a 14417 0+ aa 14418 0: a 14419 0+ a 14420 0: a 14421 0+ 14422 14423/((?2){73}(?2))((?1))/ 14424 14425/.((?2)(?R)\1)()/BZ 14426------------------------------------------------------------------ 14427 Bra 14428 Any 14429 Once 14430 CBra 1 14431 Recurse 14432 Recurse 14433 \1 14434 Ket 14435 Ket 14436 CBra 2 14437 Ket 14438 Ket 14439 End 14440------------------------------------------------------------------ 14441 14442/(?1)()((((((\1++))\x85)+)|))/ 14443 14444/(\9*+(?2);\3++()2|)++{/ 14445Failed: reference to non-existent subpattern at offset 22 14446 14447/\V\x85\9*+((?2)\3++()2)*:2/ 14448Failed: reference to non-existent subpattern at offset 26 14449 14450/(((?(R)){0,2}) (?''((?'R')((?'R')))))/J 14451 14452/(((?(X)){0,2}) (?''((?'X')((?'X')))))/J 14453 14454/(((?(R)){0,2}) (?''((?'X')((?'R')))))/ 14455 14456"(?J)(?'d'(?'d'\g{d}))" 14457 14458".*?\h.+.\.+\R*?\xd(?i)(?=!(?=b`b`b`\`b\xa9b!)`\a`bbbbbbbbbbbbb`bbbbbbbbbbbb*R\x85bbbbbbb\C?{((?2)(?))(( 14459\H){8(?<=(?1){29}\xa8bbbb\x16\xd\xc6^($(?<! )(\xa9H4){4}h}1)B))\x15')" 14460 14461"(?J:(?|(?'R')(\k'R')|((?'R'))))" 14462 14463/(?<=|(\,\$(?73591620449005828816)\xa8.{7}){6}\x09)/ 14464Failed: number is too big at offset 32 14465 14466// 14467\O1 14468Matched, but too many substrings 14469 14470/^(?:(?(1)x|)+)+$()/BZ 14471------------------------------------------------------------------ 14472 Bra 14473 ^ 14474 SBra 14475 SCond 14476 1 Cond ref 14477 x 14478 Alt 14479 KetRmax 14480 KetRmax 14481 $ 14482 CBra 1 14483 Ket 14484 Ket 14485 End 14486------------------------------------------------------------------ 14487 14488/(?=di(?<=(?1))|(?=(.))))/ 14489Failed: unmatched parentheses at offset 23 14490 14491/(?(R))*+/BZ 14492------------------------------------------------------------------ 14493 Bra 14494 Braposzero 14495 SBraPos 14496 SCond 14497 Cond recurse any 14498 Ket 14499 KetRpos 14500 Ket 14501 End 14502------------------------------------------------------------------ 14503 14504/[[:\\](?'abc')[a:]/ 14505 14506"[[[.\xe8Nq\xffq\xff\xe0\x2|||::Nq\xffq\xff\xe0\x6\x2|||::[[[:[::::::[[[[[::::::::[:[[[:[:::[[[[[[[[[[[[:::::::::::::::::[[.\xe8Nq\xffq\xff\xe0\x2|||::Nq\xffq\xff\xe0\x6\x2|||::[[[:[::::::[[[[[::::::::[:[[[:[:::[[[[[[[[[[[[[[:::E[[[:[:[[:[:::[[:::E[[[:[:[[:'[:::::E[[[:[::::::[[[:[[[[[[[::E[[[:[::::::[[[:[[[[[[[[:[[::[::::[[:::::::[[:[[[[[[[:[[::[:[[:[~" 14507Failed: missing terminating ] for character class at offset 353 14508 14509/()(?(R)0)*+/BZ 14510------------------------------------------------------------------ 14511 Bra 14512 CBra 1 14513 Ket 14514 Braposzero 14515 SBraPos 14516 SCond 14517 Cond recurse any 14518 0 14519 Ket 14520 KetRpos 14521 Ket 14522 End 14523------------------------------------------------------------------ 14524 14525/(?R-:(?</ 14526Failed: (?R or (?[+-]digits must be followed by ) at offset 3 14527 14528/(?1){3918}(((((0(\k'R'))))(?J)(?'R'(?'R'\3){99})))/I 14529Capturing subpattern count = 8 14530Max back reference = 8 14531Named capturing subpatterns: 14532 R 7 14533 R 8 14534No options 14535Duplicate name status changes 14536No first char 14537Need char = '0' 14538 14539/(?J:(?|(:(?|(?'R')(\k'R')|((?'R')))H'Rk'Rf)|s(?'R')))/ 14540 14541/0(?0)|(1)(*THEN)(*SKIP:0)(*FAIL)/ 14542 01 14543No match 14544 14545/((?(R8000000000)))/ 14546Failed: number is too big at offset 16 14547 14548/(?(8000000000/ 14549Failed: number is too big at offset 13 14550 14551/(?:ab)?(?:ab)(?:ab)/ 14552 abab 14553 0: abab 14554 ababab 14555 0: ababab 14556 aba 14557No match 14558 14559/((*MARK:A))++a(*SKIP:B)b/ 14560 aacb 14561No match 14562 14563/(?J:(?|(:(?|(?'R')(\z(?|(?'R')(\k'R')|((?'R')))k'R')|((?'R')))H'Ak'Rf)|s(?'R')))/ 14564 14565/(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?<a>1)/ 14566 14567/a[[:punct:]b]/BZ 14568------------------------------------------------------------------ 14569 Bra 14570 a 14571 [!-/:-@[-`b{-~] 14572 Ket 14573 End 14574------------------------------------------------------------------ 14575 14576/L(?#(|++<!(2)?/BZ 14577------------------------------------------------------------------ 14578 Bra 14579 L?+ 14580 Ket 14581 End 14582------------------------------------------------------------------ 14583 14584/L(?#(|++<!(2)?/BOZ 14585------------------------------------------------------------------ 14586 Bra 14587 L? 14588 Ket 14589 End 14590------------------------------------------------------------------ 14591 14592/L(?#(|++<!(2)?/BCZ 14593------------------------------------------------------------------ 14594 Bra 14595 Callout 255 0 14 14596 L?+ 14597 Callout 255 14 0 14598 Ket 14599 End 14600------------------------------------------------------------------ 14601 14602/L(?#(|++<!(2)?/BCOZ 14603------------------------------------------------------------------ 14604 Bra 14605 Callout 255 0 14 14606 L? 14607 Callout 255 14 0 14608 Ket 14609 End 14610------------------------------------------------------------------ 14611 14612/(A*)\E+/CBZ 14613------------------------------------------------------------------ 14614 Bra 14615 Callout 255 0 7 14616 SCBra 1 14617 Callout 255 1 2 14618 A* 14619 Callout 255 3 0 14620 KetRmax 14621 Callout 255 7 0 14622 Ket 14623 End 14624------------------------------------------------------------------ 14625 14626/()\Q\E*]/BCZ 14627------------------------------------------------------------------ 14628 Bra 14629 Callout 255 0 7 14630 Brazero 14631 SCBra 1 14632 Callout 255 1 0 14633 KetRmax 14634 Callout 255 7 1 14635 ] 14636 Callout 255 8 0 14637 Ket 14638 End 14639------------------------------------------------------------------ 14640 14641/(?<A>)(?J:(?<B>)(?<B>))(?<C>)/ 14642 \O\CC 14643Matched, but too many substrings 14644copy substring C failed -7 14645 14646/(?=a\K)/ 14647 ring bpattingbobnd $ 1,oern cou \rb\L 14648Start of matched string is beyond its end - displaying from end to start. 14649 0: a 14650 0L 14651 14652/(?<=((?C)0))/ 14653 9010 14654--->9010 14655 0 ^ 0 14656 0 ^ 0 14657 0: 14658 1: 0 14659 abcd 14660--->abcd 14661 0 ^ 0 14662 0 ^ 0 14663 0 ^ 0 14664 0 ^ 0 14665No match 14666 14667/((?J)(?'R'(?'R'(?'R'(?'R'(?'R'(?|(\k'R'))))))))/ 14668 14669/\N(?(?C)0?!.)*/ 14670Failed: assertion expected after (?( or (?(?C) at offset 4 14671 14672/(?<RA>abc)(?(R)xyz)/BZ 14673------------------------------------------------------------------ 14674 Bra 14675 CBra 1 14676 abc 14677 Ket 14678 Cond 14679 Cond recurse any 14680 xyz 14681 Ket 14682 Ket 14683 End 14684------------------------------------------------------------------ 14685 14686/(?<R>abc)(?(R)xyz)/BZ 14687------------------------------------------------------------------ 14688 Bra 14689 CBra 1 14690 abc 14691 Ket 14692 Cond 14693 1 Cond ref 14694 xyz 14695 Ket 14696 Ket 14697 End 14698------------------------------------------------------------------ 14699 14700/(?=.*[A-Z])/I 14701Capturing subpattern count = 0 14702May match empty string 14703No options 14704No first char 14705No need char 14706 14707"(?<=(a))\1?b" 14708 ab 14709 0: b 14710 1: a 14711 aaab 14712 0: ab 14713 1: a 14714 14715"(?=(a))\1?b" 14716 ab 14717 0: ab 14718 1: a 14719 aaab 14720 0: ab 14721 1: a 14722 14723/(?(?=^))b/ 14724 abc 14725 0: b 14726 14727/-- End of testinput2 --/ 14728