1# This set of tests is not Perl-compatible. It checks on special features 2# of PCRE2's API, error diagnostics, and the compiled code of some patterns. 3# It also checks the non-Perl syntax that PCRE2 supports (Python, .NET, 4# Oniguruma). There are also some tests where PCRE2 and Perl differ, 5# either because PCRE2 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. 10 11#forbid_utf 12#newline_default lf any anycrlf 13 14# Test binary zeroes in the pattern 15 16# /a\0B/ where 0 is a binary zero 17/61 5c 00 62/B,hex 18------------------------------------------------------------------ 19 Bra 20 a\x00b 21 Ket 22 End 23------------------------------------------------------------------ 24 a\x{0}b 25 0: a\x00b 26 27# /a0b/ where 0 is a binary zero 28/61 00 62/B,hex 29------------------------------------------------------------------ 30 Bra 31 a\x00b 32 Ket 33 End 34------------------------------------------------------------------ 35 a\x{0}b 36 0: a\x00b 37 38# /(?#B0C)DE/ where 0 is a binary zero 39/28 3f 23 42 00 43 29 44 45/B,hex 40------------------------------------------------------------------ 41 Bra 42 DE 43 Ket 44 End 45------------------------------------------------------------------ 46 DE 47 0: DE 48 49/(a)b|/I 50Capturing subpattern count = 1 51May match empty string 52Subject length lower bound = 0 53 54/abc/I 55Capturing subpattern count = 0 56First code unit = 'a' 57Last code unit = 'c' 58Subject length lower bound = 3 59 abc 60 0: abc 61 defabc 62 0: abc 63 abc\=anchored 64 0: abc 65\= Expect no match 66 defabc\=anchored 67No match 68 ABC 69No match 70 71/^abc/I 72Capturing subpattern count = 0 73Compile options: <none> 74Overall options: anchored 75First code unit = 'a' 76Subject length lower bound = 3 77 abc 78 0: abc 79 abc\=anchored 80 0: abc 81\= Expect no match 82 defabc 83No match 84 defabc\=anchored 85No match 86 87/a+bc/I 88Capturing subpattern count = 0 89First code unit = 'a' 90Last code unit = 'c' 91Subject length lower bound = 3 92 93/a*bc/I 94Capturing subpattern count = 0 95Starting code units: a b 96Last code unit = 'c' 97Subject length lower bound = 2 98 99/a{3}bc/I 100Capturing subpattern count = 0 101First code unit = 'a' 102Last code unit = 'c' 103Subject length lower bound = 5 104 105/(abc|a+z)/I 106Capturing subpattern count = 1 107First code unit = 'a' 108Subject length lower bound = 2 109 110/^abc$/I 111Capturing subpattern count = 0 112Compile options: <none> 113Overall options: anchored 114First code unit = 'a' 115Subject length lower bound = 3 116 abc 117 0: abc 118\= Expect no match 119 def\nabc 120No match 121 122/ab\idef/ 123Failed: error 103 at offset 3: unrecognized character follows \ 124 125/(?X)ab\idef/ 126Failed: error 111 at offset 2: unrecognized character after (? or (?- 127 128/x{5,4}/ 129Failed: error 104 at offset 5: numbers out of order in {} quantifier 130 131/z{65536}/ 132Failed: error 105 at offset 7: number too big in {} quantifier 133 134/[abcd/ 135Failed: error 106 at offset 5: missing terminating ] for character class 136 137/[\B]/B 138Failed: error 107 at offset 2: invalid escape sequence in character class 139 140/[\R]/B 141Failed: error 107 at offset 2: invalid escape sequence in character class 142 143/[\X]/B 144Failed: error 107 at offset 2: invalid escape sequence in character class 145 146/[z-a]/ 147Failed: error 108 at offset 3: range out of order in character class 148 149/^*/ 150Failed: error 109 at offset 1: quantifier does not follow a repeatable item 151 152/(abc/ 153Failed: error 114 at offset 4: missing closing parenthesis 154 155/(?# abc/ 156Failed: error 118 at offset 7: missing ) after (?# comment 157 158/(?z)abc/ 159Failed: error 111 at offset 2: unrecognized character after (? or (?- 160 161/.*b/I 162Capturing subpattern count = 0 163First code unit at start or follows newline 164Last code unit = 'b' 165Subject length lower bound = 1 166 167/.*?b/I 168Capturing subpattern count = 0 169First code unit at start or follows newline 170Last code unit = 'b' 171Subject length lower bound = 1 172 173/cat|dog|elephant/I 174Capturing subpattern count = 0 175Starting code units: c d e 176Subject length lower bound = 3 177 this sentence eventually mentions a cat 178 0: cat 179 this sentences rambles on and on for a while and then reaches elephant 180 0: elephant 181 182/cat|dog|elephant/I 183Capturing subpattern count = 0 184Starting code units: c d e 185Subject length lower bound = 3 186 this sentence eventually mentions a cat 187 0: cat 188 this sentences rambles on and on for a while and then reaches elephant 189 0: elephant 190 191/cat|dog|elephant/Ii 192Capturing subpattern count = 0 193Options: caseless 194Starting code units: C D E c d e 195Subject length lower bound = 3 196 this sentence eventually mentions a CAT cat 197 0: CAT 198 this sentences rambles on and on for a while to elephant ElePhant 199 0: elephant 200 201/a|[bcd]/I 202Capturing subpattern count = 0 203Starting code units: a b c d 204Subject length lower bound = 1 205 206/(a|[^\dZ])/I 207Capturing subpattern count = 1 208Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 209 \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 210 \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = > 211 ? @ 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 212 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 213 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92 214 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1 215 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0 216 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf 217 \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce 218 \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd 219 \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec 220 \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb 221 \xfc \xfd \xfe \xff 222Subject length lower bound = 1 223 224/(a|b)*[\s]/I 225Capturing subpattern count = 1 226Starting code units: \x09 \x0a \x0b \x0c \x0d \x20 a b 227Subject length lower bound = 1 228 229/(ab\2)/ 230Failed: error 115 at offset 4: reference to non-existent subpattern 231 232/{4,5}abc/ 233Failed: error 109 at offset 4: quantifier does not follow a repeatable item 234 235/(a)(b)(c)\2/I 236Capturing subpattern count = 3 237Max back reference = 2 238First code unit = 'a' 239Last code unit = 'c' 240Subject length lower bound = 4 241 abcb 242 0: abcb 243 1: a 244 2: b 245 3: c 246 abcb\=ovector=0 247 0: abcb 248 1: a 249 2: b 250 3: c 251 abcb\=ovector=1 252Matched, but too many substrings 253 0: abcb 254 abcb\=ovector=2 255Matched, but too many substrings 256 0: abcb 257 1: a 258 abcb\=ovector=3 259Matched, but too many substrings 260 0: abcb 261 1: a 262 2: b 263 abcb\=ovector=4 264 0: abcb 265 1: a 266 2: b 267 3: c 268 269/(a)bc|(a)(b)\2/I 270Capturing subpattern count = 3 271Max back reference = 2 272First code unit = 'a' 273Subject length lower bound = 3 274 abc 275 0: abc 276 1: a 277 abc\=ovector=0 278 0: abc 279 1: a 280 abc\=ovector=1 281Matched, but too many substrings 282 0: abc 283 abc\=ovector=2 284 0: abc 285 1: a 286 aba 287 0: aba 288 1: <unset> 289 2: a 290 3: b 291 aba\=ovector=0 292 0: aba 293 1: <unset> 294 2: a 295 3: b 296 aba\=ovector=1 297Matched, but too many substrings 298 0: aba 299 aba\=ovector=2 300Matched, but too many substrings 301 0: aba 302 1: <unset> 303 aba\=ovector=3 304Matched, but too many substrings 305 0: aba 306 1: <unset> 307 2: a 308 aba\=ovector=4 309 0: aba 310 1: <unset> 311 2: a 312 3: b 313 314/abc$/I,dollar_endonly 315Capturing subpattern count = 0 316Options: dollar_endonly 317First code unit = 'a' 318Last code unit = 'c' 319Subject length lower bound = 3 320 abc 321 0: abc 322\= Expect no match 323 abc\n 324No match 325 abc\ndef 326No match 327 328/(a)(b)(c)(d)(e)\6/ 329Failed: error 115 at offset 16: reference to non-existent subpattern 330 331/the quick brown fox/I 332Capturing subpattern count = 0 333First code unit = 't' 334Last code unit = 'x' 335Subject length lower bound = 19 336 the quick brown fox 337 0: the quick brown fox 338 this is a line with the quick brown fox 339 0: the quick brown fox 340 341/the quick brown fox/I,anchored 342Capturing subpattern count = 0 343Options: anchored 344First code unit = 't' 345Subject length lower bound = 19 346 the quick brown fox 347 0: the quick brown fox 348\= Expect no match 349 this is a line with the quick brown fox 350No match 351 352/ab(?z)cd/ 353Failed: error 111 at offset 4: unrecognized character after (? or (?- 354 355/^abc|def/I 356Capturing subpattern count = 0 357Starting code units: a d 358Subject length lower bound = 3 359 abcdef 360 0: abc 361 abcdef\=notbol 362 0: def 363 364/.*((abc)$|(def))/I 365Capturing subpattern count = 3 366First code unit at start or follows newline 367Subject length lower bound = 3 368 defabc 369 0: defabc 370 1: abc 371 2: abc 372 defabc\=noteol 373 0: def 374 1: def 375 2: <unset> 376 3: def 377 378/)/ 379Failed: error 122 at offset 0: unmatched closing parenthesis 380 381/a[]b/ 382Failed: error 106 at offset 4: missing terminating ] for character class 383 384/[^aeiou ]{3,}/I 385Capturing subpattern count = 0 386Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 387 \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 388 \x1a \x1b \x1c \x1d \x1e \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 389 7 8 9 : ; < = > ? @ 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 [ 390 \ ] ^ _ ` b c d f g h j k l m n p q r s t v w x y z { | } ~ \x7f \x80 \x81 391 \x82 \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 392 \x91 \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f 393 \xa0 \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae 394 \xaf \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd 395 \xbe \xbf \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc 396 \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb 397 \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea 398 \xeb \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 399 \xfa \xfb \xfc \xfd \xfe \xff 400Subject length lower bound = 3 401 co-processors, and for 402 0: -pr 403 404/<.*>/I 405Capturing subpattern count = 0 406First code unit = '<' 407Last code unit = '>' 408Subject length lower bound = 2 409 abc<def>ghi<klm>nop 410 0: <def>ghi<klm> 411 412/<.*?>/I 413Capturing subpattern count = 0 414First code unit = '<' 415Last code unit = '>' 416Subject length lower bound = 2 417 abc<def>ghi<klm>nop 418 0: <def> 419 420/<.*>/I,ungreedy 421Capturing subpattern count = 0 422Options: ungreedy 423First code unit = '<' 424Last code unit = '>' 425Subject length lower bound = 2 426 abc<def>ghi<klm>nop 427 0: <def> 428 429/(?U)<.*>/I 430Capturing subpattern count = 0 431First code unit = '<' 432Last code unit = '>' 433Subject length lower bound = 2 434 abc<def>ghi<klm>nop 435 0: <def> 436 437/<.*?>/I,ungreedy 438Capturing subpattern count = 0 439Options: ungreedy 440First code unit = '<' 441Last code unit = '>' 442Subject length lower bound = 2 443 abc<def>ghi<klm>nop 444 0: <def>ghi<klm> 445 446/={3,}/I,ungreedy 447Capturing subpattern count = 0 448Options: ungreedy 449First code unit = '=' 450Last code unit = '=' 451Subject length lower bound = 3 452 abc========def 453 0: === 454 455/(?U)={3,}?/I 456Capturing subpattern count = 0 457First code unit = '=' 458Last code unit = '=' 459Subject length lower bound = 3 460 abc========def 461 0: ======== 462 463/(?<!bar|cattle)foo/I 464Capturing subpattern count = 0 465Max lookbehind = 6 466First code unit = 'f' 467Last code unit = 'o' 468Subject length lower bound = 3 469 foo 470 0: foo 471 catfoo 472 0: foo 473\= Expect no match 474 the barfoo 475No match 476 and cattlefoo 477No match 478 479/abc(?<=a+)b/ 480Failed: error 125 at offset 3: lookbehind assertion is not fixed length 481 482/12345(?<=aaa|b{0,3})b/ 483Failed: error 125 at offset 5: lookbehind assertion is not fixed length 484 485/(?<!(foo)a\1)bar/ 486 487/(?i)abc/I 488Capturing subpattern count = 0 489First code unit = 'a' (caseless) 490Last code unit = 'c' (caseless) 491Subject length lower bound = 3 492 493/(a|(?m)a)/I 494Capturing subpattern count = 1 495First code unit = 'a' 496Subject length lower bound = 1 497 498/(?i)^1234/I 499Capturing subpattern count = 0 500Compile options: <none> 501Overall options: anchored 502First code unit = '1' 503Subject length lower bound = 4 504 505/(^b|(?i)^d)/I 506Capturing subpattern count = 1 507Compile options: <none> 508Overall options: anchored 509Starting code units: D b d 510Subject length lower bound = 1 511 512/(?s).*/I 513Capturing subpattern count = 0 514May match empty string 515Compile options: <none> 516Overall options: anchored 517Subject length lower bound = 0 518 519/[abcd]/I 520Capturing subpattern count = 0 521Starting code units: a b c d 522Subject length lower bound = 1 523 524/(?i)[abcd]/I 525Capturing subpattern count = 0 526Starting code units: A B C D a b c d 527Subject length lower bound = 1 528 529/(?m)[xy]|(b|c)/I 530Capturing subpattern count = 1 531Starting code units: b c x y 532Subject length lower bound = 1 533 534/(^a|^b)/Im 535Capturing subpattern count = 1 536Options: multiline 537First code unit at start or follows newline 538Subject length lower bound = 1 539 540/(?i)(^a|^b)/Im 541Capturing subpattern count = 1 542Options: multiline 543First code unit at start or follows newline 544Subject length lower bound = 1 545 546/(a)(?(1)a|b|c)/ 547Failed: error 127 at offset 3: conditional group contains more than two branches 548 549/(?(?=a)a|b|c)/ 550Failed: error 127 at offset 0: conditional group contains more than two branches 551 552/(?(1a)/ 553Failed: error 124 at offset 4: missing closing parenthesis for condition 554 555/(?(1a))/ 556Failed: error 124 at offset 4: missing closing parenthesis for condition 557 558/(?(?i))/ 559Failed: error 128 at offset 2: assertion expected after (?( or (?(?C) 560 561/(?(abc))/ 562Failed: error 115 at offset 3: reference to non-existent subpattern 563 564/(?(?<ab))/ 565Failed: error 128 at offset 2: assertion expected after (?( or (?(?C) 566 567/((?s)blah)\s+\1/I 568Capturing subpattern count = 1 569Max back reference = 1 570First code unit = 'b' 571Last code unit = 'h' 572Subject length lower bound = 9 573 574/((?i)blah)\s+\1/I 575Capturing subpattern count = 1 576Max back reference = 1 577First code unit = 'b' (caseless) 578Last code unit = 'h' (caseless) 579Subject length lower bound = 9 580 581/((?i)b)/IB 582------------------------------------------------------------------ 583 Bra 584 CBra 1 585 /i b 586 Ket 587 Ket 588 End 589------------------------------------------------------------------ 590Capturing subpattern count = 1 591First code unit = 'b' (caseless) 592Subject length lower bound = 1 593 594/(a*b|(?i:c*(?-i)d))/I 595Capturing subpattern count = 1 596Starting code units: C a b c d 597Subject length lower bound = 1 598 599/a$/I 600Capturing subpattern count = 0 601First code unit = 'a' 602Subject length lower bound = 1 603 a 604 0: a 605 a\n 606 0: a 607\= Expect no match 608 a\=noteol 609No match 610 a\n\=noteol 611No match 612 613/a$/Im 614Capturing subpattern count = 0 615Options: multiline 616First code unit = 'a' 617Subject length lower bound = 1 618 a 619 0: a 620 a\n 621 0: a 622 a\n\=noteol 623 0: a 624\= Expect no match 625 a\=noteol 626No match 627 628/\Aabc/Im 629Capturing subpattern count = 0 630Max lookbehind = 1 631Compile options: multiline 632Overall options: anchored multiline 633First code unit = 'a' 634Subject length lower bound = 3 635 636/^abc/Im 637Capturing subpattern count = 0 638Options: multiline 639First code unit at start or follows newline 640Last code unit = 'c' 641Subject length lower bound = 3 642 643/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I 644Capturing subpattern count = 5 645Compile options: <none> 646Overall options: anchored 647First code unit = 'a' 648Subject length lower bound = 3 649 aaaaabbbbbcccccdef 650 0: aaaaabbbbbcccccdef 651 1: aaaaabbbbbcccccdef 652 2: aaaaa 653 3: b 654 4: bbbbccccc 655 5: def 656 657/(?<=foo)[ab]/I 658Capturing subpattern count = 0 659Max lookbehind = 3 660Starting code units: a b 661Subject length lower bound = 1 662 663/(?<!foo)(alpha|omega)/I 664Capturing subpattern count = 1 665Max lookbehind = 3 666Starting code units: a o 667Last code unit = 'a' 668Subject length lower bound = 5 669 670/(?!alphabet)[ab]/I 671Capturing subpattern count = 0 672Starting code units: a b 673Subject length lower bound = 1 674 675/(?<=foo\n)^bar/Im 676Capturing subpattern count = 0 677Max lookbehind = 4 678Contains explicit CR or LF match 679Options: multiline 680Last code unit = 'r' 681Subject length lower bound = 3 682 foo\nbarbar 683 0: bar 684\= Expect no match 685 rhubarb 686No match 687 barbell 688No match 689 abc\nbarton 690No match 691 692/^(?<=foo\n)bar/Im 693Capturing subpattern count = 0 694Max lookbehind = 4 695Contains explicit CR or LF match 696Options: multiline 697First code unit at start or follows newline 698Last code unit = 'r' 699Subject length lower bound = 3 700 foo\nbarbar 701 0: bar 702\= Expect no match 703 rhubarb 704No match 705 barbell 706No match 707 abc\nbarton 708No match 709 710/(?>^abc)/Im 711Capturing subpattern count = 0 712Options: multiline 713First code unit at start or follows newline 714Last code unit = 'c' 715Subject length lower bound = 3 716 abc 717 0: abc 718 def\nabc 719 0: abc 720\= Expect no match 721 defabc 722No match 723 724/(?<=ab(c+)d)ef/ 725Failed: error 125 at offset 0: lookbehind assertion is not fixed length 726 727/(?<=ab(?<=c+)d)ef/ 728Failed: error 125 at offset 6: lookbehind assertion is not fixed length 729 730/(?<=ab(c|de)f)g/ 731Failed: error 125 at offset 0: lookbehind assertion is not fixed length 732 733/The next three are in testinput2 because they have variable length branches/ 734 735/(?<=bullock|donkey)-cart/I 736Capturing subpattern count = 0 737Max lookbehind = 7 738First code unit = '-' 739Last code unit = 't' 740Subject length lower bound = 5 741 the bullock-cart 742 0: -cart 743 a donkey-cart race 744 0: -cart 745\= Expect no match 746 cart 747No match 748 horse-and-cart 749No match 750 751/(?<=ab(?i)x|y|z)/I 752Capturing subpattern count = 0 753Max lookbehind = 3 754May match empty string 755Subject length lower bound = 0 756 757/(?>.*)(?<=(abcd)|(xyz))/I 758Capturing subpattern count = 2 759Max lookbehind = 4 760May match empty string 761Subject length lower bound = 0 762 alphabetabcd 763 0: alphabetabcd 764 1: abcd 765 endingxyz 766 0: endingxyz 767 1: <unset> 768 2: xyz 769 770/(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I 771Capturing subpattern count = 0 772Max lookbehind = 4 773First code unit = 'Z' 774Last code unit = 'Z' 775Subject length lower bound = 2 776 abxyZZ 777 0: ZZ 778 abXyZZ 779 0: ZZ 780 ZZZ 781 0: ZZ 782 zZZ 783 0: ZZ 784 bZZ 785 0: ZZ 786 BZZ 787 0: ZZ 788\= Expect no match 789 ZZ 790No match 791 abXYZZ 792No match 793 zzz 794No match 795 bzz 796No match 797 798/(?<!(foo)a)bar/I 799Capturing subpattern count = 1 800Max lookbehind = 4 801First code unit = 'b' 802Last code unit = 'r' 803Subject length lower bound = 3 804 bar 805 0: bar 806 foobbar 807 0: bar 808\= Expect no match 809 fooabar 810No match 811 812# This one is here because Perl behaves differently; see also the following. 813 814/^(a\1?){4}$/I 815Capturing subpattern count = 1 816Max back reference = 1 817Compile options: <none> 818Overall options: anchored 819Starting code units: a 820Subject length lower bound = 4 821\= Expect no match 822 aaaa 823No match 824 aaaaaa 825No match 826 827# Perl does not fail these two for the final subjects. Neither did PCRE until 828# release 8.01. The problem is in backtracking into a subpattern that contains 829# a recursive reference to itself. PCRE has now made these into atomic patterns. 830 831/^(xa|=?\1a){2}$/ 832 xa=xaa 833 0: xa=xaa 834 1: =xaa 835\= Expect no match 836 xa=xaaa 837No match 838 839/^(xa|=?\1a)+$/ 840 xa=xaa 841 0: xa=xaa 842 1: =xaa 843\= Expect no match 844 xa=xaaa 845No match 846 847# These are syntax tests from Perl 5.005 848 849/a[b-a]/ 850Failed: error 108 at offset 4: range out of order in character class 851 852/a[]b/ 853Failed: error 106 at offset 4: missing terminating ] for character class 854 855/a[/ 856Failed: error 106 at offset 2: missing terminating ] for character class 857 858/*a/ 859Failed: error 109 at offset 0: quantifier does not follow a repeatable item 860 861/(*)b/ 862Failed: error 109 at offset 1: quantifier does not follow a repeatable item 863 864/abc)/ 865Failed: error 122 at offset 3: unmatched closing parenthesis 866 867/(abc/ 868Failed: error 114 at offset 4: missing closing parenthesis 869 870/a**/ 871Failed: error 109 at offset 2: quantifier does not follow a repeatable item 872 873/)(/ 874Failed: error 122 at offset 0: unmatched closing parenthesis 875 876/\1/ 877Failed: error 115 at offset 1: reference to non-existent subpattern 878 879/\2/ 880Failed: error 115 at offset 1: reference to non-existent subpattern 881 882/(a)|\2/ 883Failed: error 115 at offset 5: reference to non-existent subpattern 884 885/a[b-a]/Ii 886Failed: error 108 at offset 4: range out of order in character class 887 888/a[]b/Ii 889Failed: error 106 at offset 4: missing terminating ] for character class 890 891/a[/Ii 892Failed: error 106 at offset 2: missing terminating ] for character class 893 894/*a/Ii 895Failed: error 109 at offset 0: quantifier does not follow a repeatable item 896 897/(*)b/Ii 898Failed: error 109 at offset 1: quantifier does not follow a repeatable item 899 900/abc)/Ii 901Failed: error 122 at offset 3: unmatched closing parenthesis 902 903/(abc/Ii 904Failed: error 114 at offset 4: missing closing parenthesis 905 906/a**/Ii 907Failed: error 109 at offset 2: quantifier does not follow a repeatable item 908 909/)(/Ii 910Failed: error 122 at offset 0: unmatched closing parenthesis 911 912/:(?:/ 913Failed: error 114 at offset 4: missing closing parenthesis 914 915/(?<%)b/ 916Failed: error 162 at offset 3: subpattern name expected 917 918/a(?{)b/ 919Failed: error 111 at offset 3: unrecognized character after (? or (?- 920 921/a(?{{})b/ 922Failed: error 111 at offset 3: unrecognized character after (? or (?- 923 924/a(?{}})b/ 925Failed: error 111 at offset 3: unrecognized character after (? or (?- 926 927/a(?{"{"})b/ 928Failed: error 111 at offset 3: unrecognized character after (? or (?- 929 930/a(?{"{"}})b/ 931Failed: error 111 at offset 3: unrecognized character after (? or (?- 932 933/(?(1?)a|b)/ 934Failed: error 124 at offset 4: missing closing parenthesis for condition 935 936/[a[:xyz:/ 937Failed: error 106 at offset 8: missing terminating ] for character class 938 939/(?<=x+)y/ 940Failed: error 125 at offset 0: lookbehind assertion is not fixed length 941 942/a{37,17}/ 943Failed: error 104 at offset 7: numbers out of order in {} quantifier 944 945/abc/\ 946Failed: error 101 at offset 4: \ at end of pattern 947 948/abc/\i 949Failed: error 101 at offset 4: \ at end of pattern 950 951/(a)bc(d)/I 952Capturing subpattern count = 2 953First code unit = 'a' 954Last code unit = 'd' 955Subject length lower bound = 4 956 abcd 957 0: abcd 958 1: a 959 2: d 960 abcd\=copy=2 961 0: abcd 962 1: a 963 2: d 964 2C d (1) 965 abcd\=copy=5 966 0: abcd 967 1: a 968 2: d 969Copy substring 5 failed (-49): unknown substring 970 971/(.{20})/I 972Capturing subpattern count = 1 973Subject length lower bound = 20 974 abcdefghijklmnopqrstuvwxyz 975 0: abcdefghijklmnopqrst 976 1: abcdefghijklmnopqrst 977 abcdefghijklmnopqrstuvwxyz\=copy=1 978 0: abcdefghijklmnopqrst 979 1: abcdefghijklmnopqrst 980 1C abcdefghijklmnopqrst (20) 981 abcdefghijklmnopqrstuvwxyz\=get=1 982 0: abcdefghijklmnopqrst 983 1: abcdefghijklmnopqrst 984 1G abcdefghijklmnopqrst (20) 985 986/(.{15})/I 987Capturing subpattern count = 1 988Subject length lower bound = 15 989 abcdefghijklmnopqrstuvwxyz 990 0: abcdefghijklmno 991 1: abcdefghijklmno 992 abcdefghijklmnopqrstuvwxyz\=copy=1,get=1 993 0: abcdefghijklmno 994 1: abcdefghijklmno 995 1C abcdefghijklmno (15) 996 1G abcdefghijklmno (15) 997 998/(.{16})/I 999Capturing subpattern count = 1 1000Subject length lower bound = 16 1001 abcdefghijklmnopqrstuvwxyz 1002 0: abcdefghijklmnop 1003 1: abcdefghijklmnop 1004 abcdefghijklmnopqrstuvwxyz\=copy=1,get=1,getall 1005 0: abcdefghijklmnop 1006 1: abcdefghijklmnop 1007 1C abcdefghijklmnop (16) 1008 1G abcdefghijklmnop (16) 1009 0L abcdefghijklmnop 1010 1L abcdefghijklmnop 1011 1012/^(a|(bc))de(f)/I 1013Capturing subpattern count = 3 1014Compile options: <none> 1015Overall options: anchored 1016Starting code units: a b 1017Subject length lower bound = 4 1018 adef\=get=1,get=2,get=3,get=4,getall 1019 0: adef 1020 1: a 1021 2: <unset> 1022 3: f 1023 1G a (1) 1024Get substring 2 failed (-55): requested value is not set 1025 3G f (1) 1026Get substring 4 failed (-49): unknown substring 1027 0L adef 1028 1L a 1029 2L 1030 3L f 1031 bcdef\=get=1,get=2,get=3,get=4,getall 1032 0: bcdef 1033 1: bc 1034 2: bc 1035 3: f 1036 1G bc (2) 1037 2G bc (2) 1038 3G f (1) 1039Get substring 4 failed (-49): unknown substring 1040 0L bcdef 1041 1L bc 1042 2L bc 1043 3L f 1044 adefghijk\=copy=0 1045 0: adef 1046 1: a 1047 2: <unset> 1048 3: f 1049 0C adef (4) 1050 1051/^abc\00def/I 1052Capturing subpattern count = 0 1053Compile options: <none> 1054Overall options: anchored 1055First code unit = 'a' 1056Subject length lower bound = 7 1057 abc\00def\=copy=0,getall 1058 0: abc\x00def 1059 0C abc\x00def (7) 1060 0L abc\x00def 1061 1062/word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ 1063)((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ 1064)?)?)?)?)?)?)?)?)?otherword/I 1065Capturing subpattern count = 8 1066Contains explicit CR or LF match 1067First code unit = 'w' 1068Last code unit = 'd' 1069Subject length lower bound = 14 1070 1071/.*X/IB 1072------------------------------------------------------------------ 1073 Bra 1074 Any* 1075 X 1076 Ket 1077 End 1078------------------------------------------------------------------ 1079Capturing subpattern count = 0 1080First code unit at start or follows newline 1081Last code unit = 'X' 1082Subject length lower bound = 1 1083 1084/.*X/IBs 1085------------------------------------------------------------------ 1086 Bra 1087 AllAny* 1088 X 1089 Ket 1090 End 1091------------------------------------------------------------------ 1092Capturing subpattern count = 0 1093Compile options: dotall 1094Overall options: anchored dotall 1095Last code unit = 'X' 1096Subject length lower bound = 1 1097 1098/(.*X|^B)/IB 1099------------------------------------------------------------------ 1100 Bra 1101 CBra 1 1102 Any* 1103 X 1104 Alt 1105 ^ 1106 B 1107 Ket 1108 Ket 1109 End 1110------------------------------------------------------------------ 1111Capturing subpattern count = 1 1112First code unit at start or follows newline 1113Subject length lower bound = 1 1114 1115/(.*X|^B)/IBs 1116------------------------------------------------------------------ 1117 Bra 1118 CBra 1 1119 AllAny* 1120 X 1121 Alt 1122 ^ 1123 B 1124 Ket 1125 Ket 1126 End 1127------------------------------------------------------------------ 1128Capturing subpattern count = 1 1129Compile options: dotall 1130Overall options: anchored dotall 1131Subject length lower bound = 1 1132 1133/(?s)(.*X|^B)/IB 1134------------------------------------------------------------------ 1135 Bra 1136 CBra 1 1137 AllAny* 1138 X 1139 Alt 1140 ^ 1141 B 1142 Ket 1143 Ket 1144 End 1145------------------------------------------------------------------ 1146Capturing subpattern count = 1 1147Compile options: <none> 1148Overall options: anchored 1149Subject length lower bound = 1 1150 1151/(?s:.*X|^B)/IB 1152------------------------------------------------------------------ 1153 Bra 1154 Bra 1155 AllAny* 1156 X 1157 Alt 1158 ^ 1159 B 1160 Ket 1161 Ket 1162 End 1163------------------------------------------------------------------ 1164Capturing subpattern count = 0 1165Compile options: <none> 1166Overall options: anchored 1167Subject length lower bound = 1 1168 1169/\Biss\B/I,aftertext 1170Capturing subpattern count = 0 1171Max lookbehind = 1 1172First code unit = 'i' 1173Last code unit = 's' 1174Subject length lower bound = 3 1175 Mississippi 1176 0: iss 1177 0+ issippi 1178 1179/iss/I,aftertext,altglobal 1180Capturing subpattern count = 0 1181First code unit = 'i' 1182Last code unit = 's' 1183Subject length lower bound = 3 1184 Mississippi 1185 0: iss 1186 0+ issippi 1187 0: iss 1188 0+ ippi 1189 1190/\Biss\B/I,aftertext,altglobal 1191Capturing subpattern count = 0 1192Max lookbehind = 1 1193First code unit = 'i' 1194Last code unit = 's' 1195Subject length lower bound = 3 1196 Mississippi 1197 0: iss 1198 0+ issippi 1199 1200/\Biss\B/Ig,aftertext 1201Capturing subpattern count = 0 1202Max lookbehind = 1 1203First code unit = 'i' 1204Last code unit = 's' 1205Subject length lower bound = 3 1206 Mississippi 1207 0: iss 1208 0+ issippi 1209 0: iss 1210 0+ ippi 1211\= Expect no match 1212 Mississippi\=anchored 1213No match 1214 1215/(?<=[Ms])iss/Ig,aftertext 1216Capturing subpattern count = 0 1217Max lookbehind = 1 1218First code unit = 'i' 1219Last code unit = 's' 1220Subject length lower bound = 3 1221 Mississippi 1222 0: iss 1223 0+ issippi 1224 0: iss 1225 0+ ippi 1226 1227/(?<=[Ms])iss/I,aftertext,altglobal 1228Capturing subpattern count = 0 1229Max lookbehind = 1 1230First code unit = 'i' 1231Last code unit = 's' 1232Subject length lower bound = 3 1233 Mississippi 1234 0: iss 1235 0+ issippi 1236 1237/^iss/Ig,aftertext 1238Capturing subpattern count = 0 1239Compile options: <none> 1240Overall options: anchored 1241First code unit = 'i' 1242Subject length lower bound = 3 1243 ississippi 1244 0: iss 1245 0+ issippi 1246 1247/.*iss/Ig,aftertext 1248Capturing subpattern count = 0 1249First code unit at start or follows newline 1250Last code unit = 's' 1251Subject length lower bound = 3 1252 abciss\nxyzisspqr 1253 0: abciss 1254 0+ \x0axyzisspqr 1255 0: xyziss 1256 0+ pqr 1257 1258/.i./Ig,aftertext 1259Capturing subpattern count = 0 1260Last code unit = 'i' 1261Subject length lower bound = 3 1262 Mississippi 1263 0: Mis 1264 0+ sissippi 1265 0: sis 1266 0+ sippi 1267 0: sip 1268 0+ pi 1269 Mississippi\=anchored 1270 0: Mis 1271 0+ sissippi 1272 0: sis 1273 0+ sippi 1274 0: sip 1275 0+ pi 1276 Missouri river 1277 0: Mis 1278 0+ souri river 1279 0: ri 1280 0+ river 1281 0: riv 1282 0+ er 1283 Missouri river\=anchored 1284 0: Mis 1285 0+ souri river 1286 1287/^.is/Ig,aftertext 1288Capturing subpattern count = 0 1289Compile options: <none> 1290Overall options: anchored 1291Subject length lower bound = 3 1292 Mississippi 1293 0: Mis 1294 0+ sissippi 1295 1296/^ab\n/Ig,aftertext 1297Capturing subpattern count = 0 1298Contains explicit CR or LF match 1299Compile options: <none> 1300Overall options: anchored 1301First code unit = 'a' 1302Subject length lower bound = 3 1303 ab\nab\ncd 1304 0: ab\x0a 1305 0+ ab\x0acd 1306 1307/^ab\n/Igm,aftertext 1308Capturing subpattern count = 0 1309Contains explicit CR or LF match 1310Options: multiline 1311First code unit at start or follows newline 1312Last code unit = \x0a 1313Subject length lower bound = 3 1314 ab\nab\ncd 1315 0: ab\x0a 1316 0+ ab\x0acd 1317 0: ab\x0a 1318 0+ cd 1319 1320/^/gm,newline=any 1321 a\rb\nc\r\nxyz\=aftertext 1322 0: 1323 0+ a\x0db\x0ac\x0d\x0axyz 1324 0: 1325 0+ b\x0ac\x0d\x0axyz 1326 0: 1327 0+ c\x0d\x0axyz 1328 0: 1329 0+ xyz 1330 1331/abc/I 1332Capturing subpattern count = 0 1333First code unit = 'a' 1334Last code unit = 'c' 1335Subject length lower bound = 3 1336 1337/abc|bac/I 1338Capturing subpattern count = 0 1339Starting code units: a b 1340Last code unit = 'c' 1341Subject length lower bound = 3 1342 1343/(abc|bac)/I 1344Capturing subpattern count = 1 1345Starting code units: a b 1346Last code unit = 'c' 1347Subject length lower bound = 3 1348 1349/(abc|(c|dc))/I 1350Capturing subpattern count = 2 1351Starting code units: a c d 1352Last code unit = 'c' 1353Subject length lower bound = 1 1354 1355/(abc|(d|de)c)/I 1356Capturing subpattern count = 2 1357Starting code units: a d 1358Last code unit = 'c' 1359Subject length lower bound = 2 1360 1361/a*/I 1362Capturing subpattern count = 0 1363May match empty string 1364Subject length lower bound = 0 1365 1366/a+/I 1367Capturing subpattern count = 0 1368First code unit = 'a' 1369Subject length lower bound = 1 1370 1371/(baa|a+)/I 1372Capturing subpattern count = 1 1373Starting code units: a b 1374Last code unit = 'a' 1375Subject length lower bound = 1 1376 1377/a{0,3}/I 1378Capturing subpattern count = 0 1379May match empty string 1380Subject length lower bound = 0 1381 1382/baa{3,}/I 1383Capturing subpattern count = 0 1384First code unit = 'b' 1385Last code unit = 'a' 1386Subject length lower bound = 5 1387 1388/"([^\\"]+|\\.)*"/I 1389Capturing subpattern count = 1 1390First code unit = '"' 1391Last code unit = '"' 1392Subject length lower bound = 2 1393 1394/(abc|ab[cd])/I 1395Capturing subpattern count = 1 1396First code unit = 'a' 1397Subject length lower bound = 3 1398 1399/(a|.)/I 1400Capturing subpattern count = 1 1401Subject length lower bound = 1 1402 1403/a|ba|\w/I 1404Capturing subpattern count = 0 1405Starting code units: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P 1406 Q R S T U V W X Y Z _ 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 1407Subject length lower bound = 1 1408 1409/abc(?=pqr)/I 1410Capturing subpattern count = 0 1411First code unit = 'a' 1412Last code unit = 'r' 1413Subject length lower bound = 3 1414 1415/...(?<=abc)/I 1416Capturing subpattern count = 0 1417Max lookbehind = 3 1418Subject length lower bound = 3 1419 1420/abc(?!pqr)/I 1421Capturing subpattern count = 0 1422First code unit = 'a' 1423Last code unit = 'c' 1424Subject length lower bound = 3 1425 1426/ab./I 1427Capturing subpattern count = 0 1428First code unit = 'a' 1429Last code unit = 'b' 1430Subject length lower bound = 3 1431 1432/ab[xyz]/I 1433Capturing subpattern count = 0 1434First code unit = 'a' 1435Last code unit = 'b' 1436Subject length lower bound = 3 1437 1438/abc*/I 1439Capturing subpattern count = 0 1440First code unit = 'a' 1441Last code unit = 'b' 1442Subject length lower bound = 2 1443 1444/ab.c*/I 1445Capturing subpattern count = 0 1446First code unit = 'a' 1447Last code unit = 'b' 1448Subject length lower bound = 3 1449 1450/a.c*/I 1451Capturing subpattern count = 0 1452First code unit = 'a' 1453Subject length lower bound = 2 1454 1455/.c*/I 1456Capturing subpattern count = 0 1457Subject length lower bound = 1 1458 1459/ac*/I 1460Capturing subpattern count = 0 1461First code unit = 'a' 1462Subject length lower bound = 1 1463 1464/(a.c*|b.c*)/I 1465Capturing subpattern count = 1 1466Starting code units: a b 1467Subject length lower bound = 2 1468 1469/a.c*|aba/I 1470Capturing subpattern count = 0 1471First code unit = 'a' 1472Subject length lower bound = 2 1473 1474/.+a/I 1475Capturing subpattern count = 0 1476Last code unit = 'a' 1477Subject length lower bound = 2 1478 1479/(?=abcda)a.*/I 1480Capturing subpattern count = 0 1481First code unit = 'a' 1482Last code unit = 'a' 1483Subject length lower bound = 1 1484 1485/(?=a)a.*/I 1486Capturing subpattern count = 0 1487First code unit = 'a' 1488Subject length lower bound = 1 1489 1490/a(b)*/I 1491Capturing subpattern count = 1 1492First code unit = 'a' 1493Subject length lower bound = 1 1494 1495/a\d*/I 1496Capturing subpattern count = 0 1497First code unit = 'a' 1498Subject length lower bound = 1 1499 1500/ab\d*/I 1501Capturing subpattern count = 0 1502First code unit = 'a' 1503Last code unit = 'b' 1504Subject length lower bound = 2 1505 1506/a(\d)*/I 1507Capturing subpattern count = 1 1508First code unit = 'a' 1509Subject length lower bound = 1 1510 1511/abcde{0,0}/I 1512Capturing subpattern count = 0 1513First code unit = 'a' 1514Last code unit = 'd' 1515Subject length lower bound = 4 1516 1517/ab\d+/I 1518Capturing subpattern count = 0 1519First code unit = 'a' 1520Last code unit = 'b' 1521Subject length lower bound = 3 1522 1523/a(?(1)b)(.)/I 1524Capturing subpattern count = 1 1525Max back reference = 1 1526First code unit = 'a' 1527Subject length lower bound = 2 1528 1529/a(?(1)bag|big)(.)/I 1530Capturing subpattern count = 1 1531Max back reference = 1 1532First code unit = 'a' 1533Last code unit = 'g' 1534Subject length lower bound = 5 1535 1536/a(?(1)bag|big)*(.)/I 1537Capturing subpattern count = 1 1538Max back reference = 1 1539First code unit = 'a' 1540Subject length lower bound = 2 1541 1542/a(?(1)bag|big)+(.)/I 1543Capturing subpattern count = 1 1544Max back reference = 1 1545First code unit = 'a' 1546Last code unit = 'g' 1547Subject length lower bound = 5 1548 1549/a(?(1)b..|b..)(.)/I 1550Capturing subpattern count = 1 1551Max back reference = 1 1552First code unit = 'a' 1553Last code unit = 'b' 1554Subject length lower bound = 5 1555 1556/ab\d{0}e/I 1557Capturing subpattern count = 0 1558First code unit = 'a' 1559Last code unit = 'e' 1560Subject length lower bound = 3 1561 1562/a?b?/I 1563Capturing subpattern count = 0 1564May match empty string 1565Subject length lower bound = 0 1566 a 1567 0: a 1568 b 1569 0: b 1570 ab 1571 0: ab 1572 \ 1573 0: 1574\= Expect no match 1575 \=notempty 1576No match 1577 1578/|-/I 1579Capturing subpattern count = 0 1580May match empty string 1581Subject length lower bound = 0 1582 abcd 1583 0: 1584 -abc 1585 0: 1586 ab-c\=notempty 1587 0: - 1588\= Expect no match 1589 abc\=notempty 1590No match 1591 1592/^.?abcd/I 1593Capturing subpattern count = 0 1594Compile options: <none> 1595Overall options: anchored 1596Last code unit = 'd' 1597Subject length lower bound = 4 1598 1599/\( # ( at start 1600 (?: # Non-capturing bracket 1601 (?>[^()]+) # Either a sequence of non-brackets (no backtracking) 1602 | # Or 1603 (?R) # Recurse - i.e. nested bracketed string 1604 )* # Zero or more contents 1605 \) # Closing ) 1606 /Ix 1607Capturing subpattern count = 0 1608Options: extended 1609First code unit = '(' 1610Last code unit = ')' 1611Subject length lower bound = 2 1612 (abcd) 1613 0: (abcd) 1614 (abcd)xyz 1615 0: (abcd) 1616 xyz(abcd) 1617 0: (abcd) 1618 (ab(xy)cd)pqr 1619 0: (ab(xy)cd) 1620 (ab(xycd)pqr 1621 0: (xycd) 1622 () abc () 1623 0: () 1624 12(abcde(fsh)xyz(foo(bar))lmno)89 1625 0: (abcde(fsh)xyz(foo(bar))lmno) 1626\= Expect no match 1627 abcd 1628No match 1629 abcd) 1630No match 1631 (abcd 1632No match 1633 1634/\( ( (?>[^()]+) | (?R) )* \) /Igx 1635Capturing subpattern count = 1 1636Options: extended 1637First code unit = '(' 1638Last code unit = ')' 1639Subject length lower bound = 2 1640 (ab(xy)cd)pqr 1641 0: (ab(xy)cd) 1642 1: cd 1643 1(abcd)(x(y)z)pqr 1644 0: (abcd) 1645 1: abcd 1646 0: (x(y)z) 1647 1: z 1648 1649/\( (?: (?>[^()]+) | (?R) ) \) /Ix 1650Capturing subpattern count = 0 1651Options: extended 1652First code unit = '(' 1653Last code unit = ')' 1654Subject length lower bound = 3 1655 (abcd) 1656 0: (abcd) 1657 (ab(xy)cd) 1658 0: (xy) 1659 (a(b(c)d)e) 1660 0: (c) 1661 ((ab)) 1662 0: ((ab)) 1663\= Expect no match 1664 () 1665No match 1666 1667/\( (?: (?>[^()]+) | (?R) )? \) /Ix 1668Capturing subpattern count = 0 1669Options: extended 1670First code unit = '(' 1671Last code unit = ')' 1672Subject length lower bound = 2 1673 () 1674 0: () 1675 12(abcde(fsh)xyz(foo(bar))lmno)89 1676 0: (fsh) 1677 1678/\( ( (?>[^()]+) | (?R) )* \) /Ix 1679Capturing subpattern count = 1 1680Options: extended 1681First code unit = '(' 1682Last code unit = ')' 1683Subject length lower bound = 2 1684 (ab(xy)cd) 1685 0: (ab(xy)cd) 1686 1: cd 1687 1688/\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix 1689Capturing subpattern count = 2 1690Options: extended 1691First code unit = '(' 1692Last code unit = ')' 1693Subject length lower bound = 2 1694 (ab(xy)cd) 1695 0: (ab(xy)cd) 1696 1: ab(xy)cd 1697 2: cd 1698 1699/\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix 1700Capturing subpattern count = 3 1701Options: extended 1702First code unit = '(' 1703Last code unit = ')' 1704Subject length lower bound = 2 1705 (ab(xy)cd) 1706 0: (ab(xy)cd) 1707 1: <unset> 1708 2: ab(xy)cd 1709 3: cd 1710 (123ab(xy)cd) 1711 0: (123ab(xy)cd) 1712 1: 123 1713 2: ab(xy)cd 1714 3: cd 1715 1716/\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix 1717Capturing subpattern count = 3 1718Options: extended 1719First code unit = '(' 1720Last code unit = ')' 1721Subject length lower bound = 2 1722 (ab(xy)cd) 1723 0: (ab(xy)cd) 1724 1: ab(xy)cd 1725 2: <unset> 1726 3: cd 1727 (123ab(xy)cd) 1728 0: (123ab(xy)cd) 1729 1: 123ab(xy)cd 1730 2: 123 1731 3: cd 1732 1733/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix 1734Capturing subpattern count = 11 1735Options: extended 1736First code unit = '(' 1737Last code unit = ')' 1738Subject length lower bound = 2 1739 (ab(xy)cd) 1740 0: (ab(xy)cd) 1741 1: ab(xy)cd 1742 2: ab(xy)cd 1743 3: ab(xy)cd 1744 4: ab(xy)cd 1745 5: ab(xy)cd 1746 6: ab(xy)cd 1747 7: ab(xy)cd 1748 8: ab(xy)cd 1749 9: ab(xy)cd 175010: ab(xy)cd 175111: cd 1752 1753/\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix 1754Capturing subpattern count = 3 1755Options: extended 1756First code unit = '(' 1757Last code unit = ')' 1758Subject length lower bound = 2 1759 (abcd(xyz<p>qrs)123) 1760 0: (abcd(xyz<p>qrs)123) 1761 1: abcd(xyz<p>qrs)123 1762 2: 123 1763 1764/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix 1765Capturing subpattern count = 3 1766Options: extended 1767First code unit = '(' 1768Last code unit = ')' 1769Subject length lower bound = 2 1770 (ab(cd)ef) 1771 0: (ab(cd)ef) 1772 1: ab(cd)ef 1773 2: ef 1774 3: (cd) 1775 (ab(cd(ef)gh)ij) 1776 0: (ab(cd(ef)gh)ij) 1777 1: ab(cd(ef)gh)ij 1778 2: ij 1779 3: (cd(ef)gh) 1780 1781/^[[:alnum:]]/IB 1782------------------------------------------------------------------ 1783 Bra 1784 ^ 1785 [0-9A-Za-z] 1786 Ket 1787 End 1788------------------------------------------------------------------ 1789Capturing subpattern count = 0 1790Compile options: <none> 1791Overall options: anchored 1792Starting code units: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P 1793 Q R S T U V W X Y Z 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 1794Subject length lower bound = 1 1795 1796/^[[:^alnum:]]/IB 1797------------------------------------------------------------------ 1798 Bra 1799 ^ 1800 [\x00-/:-@[-`{-\xff] (neg) 1801 Ket 1802 End 1803------------------------------------------------------------------ 1804Capturing subpattern count = 0 1805Compile options: <none> 1806Overall options: anchored 1807Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 1808 \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 1809 \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = > 1810 ? @ [ \ ] ^ _ ` { | } ~ \x7f \x80 \x81 \x82 \x83 \x84 \x85 \x86 \x87 \x88 1811 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92 \x93 \x94 \x95 \x96 \x97 1812 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 1813 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 1814 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf \xc0 \xc1 \xc2 \xc3 \xc4 1815 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 1816 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 1817 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec \xed \xee \xef \xf0 \xf1 1818 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb \xfc \xfd \xfe \xff 1819Subject length lower bound = 1 1820 1821/^[[:alpha:]]/IB 1822------------------------------------------------------------------ 1823 Bra 1824 ^ 1825 [A-Za-z] 1826 Ket 1827 End 1828------------------------------------------------------------------ 1829Capturing subpattern count = 0 1830Compile options: <none> 1831Overall options: anchored 1832Starting code units: 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 1833 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 1834Subject length lower bound = 1 1835 1836/^[[:^alpha:]]/IB 1837------------------------------------------------------------------ 1838 Bra 1839 ^ 1840 [\x00-@[-`{-\xff] (neg) 1841 Ket 1842 End 1843------------------------------------------------------------------ 1844Capturing subpattern count = 0 1845Compile options: <none> 1846Overall options: anchored 1847Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 1848 \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 1849 \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 1850 5 6 7 8 9 : ; < = > ? @ [ \ ] ^ _ ` { | } ~ \x7f \x80 \x81 \x82 \x83 \x84 1851 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92 \x93 1852 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1 \xa2 1853 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0 \xb1 1854 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf \xc0 1855 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce \xcf 1856 \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd \xde 1857 \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec \xed 1858 \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb \xfc 1859 \xfd \xfe \xff 1860Subject length lower bound = 1 1861 1862/[_[:alpha:]]/I 1863Capturing subpattern count = 0 1864Starting code units: 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 1865 _ 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 1866Subject length lower bound = 1 1867 1868/^[[:ascii:]]/IB 1869------------------------------------------------------------------ 1870 Bra 1871 ^ 1872 [\x00-\x7f] 1873 Ket 1874 End 1875------------------------------------------------------------------ 1876Capturing subpattern count = 0 1877Compile options: <none> 1878Overall options: anchored 1879Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 1880 \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 1881 \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 1882 5 6 7 8 9 : ; < = > ? @ 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 1883 Z [ \ ] ^ _ ` 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 \x7f 1885Subject length lower bound = 1 1886 1887/^[[:^ascii:]]/IB 1888------------------------------------------------------------------ 1889 Bra 1890 ^ 1891 [\x80-\xff] (neg) 1892 Ket 1893 End 1894------------------------------------------------------------------ 1895Capturing subpattern count = 0 1896Compile options: <none> 1897Overall options: anchored 1898Starting code units: \x80 \x81 \x82 \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8a 1899 \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 1900 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 1901 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 1902 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 1903 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 1904 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 1905 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 1906 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb \xfc \xfd \xfe \xff 1907Subject length lower bound = 1 1908 1909/^[[:blank:]]/IB 1910------------------------------------------------------------------ 1911 Bra 1912 ^ 1913 [\x09 ] 1914 Ket 1915 End 1916------------------------------------------------------------------ 1917Capturing subpattern count = 0 1918Compile options: <none> 1919Overall options: anchored 1920Starting code units: \x09 \x20 1921Subject length lower bound = 1 1922 1923/^[[:^blank:]]/IB 1924------------------------------------------------------------------ 1925 Bra 1926 ^ 1927 [\x00-\x08\x0a-\x1f!-\xff] (neg) 1928 Ket 1929 End 1930------------------------------------------------------------------ 1931Capturing subpattern count = 0 1932Compile options: <none> 1933Overall options: anchored 1934Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0a \x0b 1935 \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a 1936 \x1b \x1c \x1d \x1e \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 1937 : ; < = > ? @ 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 [ \ ] ^ 1938 _ ` 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 { | } ~ \x7f \x80 1939 \x81 \x82 \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f 1940 \x90 \x91 \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e 1941 \x9f \xa0 \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad 1942 \xae \xaf \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc 1943 \xbd \xbe \xbf \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb 1944 \xcc \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda 1945 \xdb \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 1946 \xea \xeb \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 1947 \xf9 \xfa \xfb \xfc \xfd \xfe \xff 1948Subject length lower bound = 1 1949 1950/[\n\x0b\x0c\x0d[:blank:]]/I 1951Capturing subpattern count = 0 1952Contains explicit CR or LF match 1953Starting code units: \x09 \x0a \x0b \x0c \x0d \x20 1954Subject length lower bound = 1 1955 1956/^[[:cntrl:]]/IB 1957------------------------------------------------------------------ 1958 Bra 1959 ^ 1960 [\x00-\x1f\x7f] 1961 Ket 1962 End 1963------------------------------------------------------------------ 1964Capturing subpattern count = 0 1965Compile options: <none> 1966Overall options: anchored 1967Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 1968 \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 1969 \x1a \x1b \x1c \x1d \x1e \x1f \x7f 1970Subject length lower bound = 1 1971 1972/^[[:digit:]]/IB 1973------------------------------------------------------------------ 1974 Bra 1975 ^ 1976 [0-9] 1977 Ket 1978 End 1979------------------------------------------------------------------ 1980Capturing subpattern count = 0 1981Compile options: <none> 1982Overall options: anchored 1983Starting code units: 0 1 2 3 4 5 6 7 8 9 1984Subject length lower bound = 1 1985 1986/^[[:graph:]]/IB 1987------------------------------------------------------------------ 1988 Bra 1989 ^ 1990 [!-~] 1991 Ket 1992 End 1993------------------------------------------------------------------ 1994Capturing subpattern count = 0 1995Compile options: <none> 1996Overall options: anchored 1997Starting code units: ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : 1998 ; < = > ? @ 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 [ \ ] ^ _ 1999 ` 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 { | } ~ 2000Subject length lower bound = 1 2001 2002/^[[:lower:]]/IB 2003------------------------------------------------------------------ 2004 Bra 2005 ^ 2006 [a-z] 2007 Ket 2008 End 2009------------------------------------------------------------------ 2010Capturing subpattern count = 0 2011Compile options: <none> 2012Overall options: anchored 2013Starting code units: 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 2014Subject length lower bound = 1 2015 2016/^[[:print:]]/IB 2017------------------------------------------------------------------ 2018 Bra 2019 ^ 2020 [ -~] 2021 Ket 2022 End 2023------------------------------------------------------------------ 2024Capturing subpattern count = 0 2025Compile options: <none> 2026Overall options: anchored 2027Starting code units: \x20 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 2028 9 : ; < = > ? @ 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 [ \ ] 2029 ^ _ ` 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 { | } ~ 2030Subject length lower bound = 1 2031 2032/^[[:punct:]]/IB 2033------------------------------------------------------------------ 2034 Bra 2035 ^ 2036 [!-/:-@[-`{-~] 2037 Ket 2038 End 2039------------------------------------------------------------------ 2040Capturing subpattern count = 0 2041Compile options: <none> 2042Overall options: anchored 2043Starting code units: ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ 2044 _ ` { | } ~ 2045Subject length lower bound = 1 2046 2047/^[[:space:]]/IB 2048------------------------------------------------------------------ 2049 Bra 2050 ^ 2051 [\x09-\x0d ] 2052 Ket 2053 End 2054------------------------------------------------------------------ 2055Capturing subpattern count = 0 2056Compile options: <none> 2057Overall options: anchored 2058Starting code units: \x09 \x0a \x0b \x0c \x0d \x20 2059Subject length lower bound = 1 2060 2061/^[[:upper:]]/IB 2062------------------------------------------------------------------ 2063 Bra 2064 ^ 2065 [A-Z] 2066 Ket 2067 End 2068------------------------------------------------------------------ 2069Capturing subpattern count = 0 2070Compile options: <none> 2071Overall options: anchored 2072Starting code units: 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 2073Subject length lower bound = 1 2074 2075/^[[:xdigit:]]/IB 2076------------------------------------------------------------------ 2077 Bra 2078 ^ 2079 [0-9A-Fa-f] 2080 Ket 2081 End 2082------------------------------------------------------------------ 2083Capturing subpattern count = 0 2084Compile options: <none> 2085Overall options: anchored 2086Starting code units: 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f 2087Subject length lower bound = 1 2088 2089/^[[:word:]]/IB 2090------------------------------------------------------------------ 2091 Bra 2092 ^ 2093 [0-9A-Z_a-z] 2094 Ket 2095 End 2096------------------------------------------------------------------ 2097Capturing subpattern count = 0 2098Compile options: <none> 2099Overall options: anchored 2100Starting code units: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P 2101 Q R S T U V W X Y Z _ 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 2102Subject length lower bound = 1 2103 2104/^[[:^cntrl:]]/IB 2105------------------------------------------------------------------ 2106 Bra 2107 ^ 2108 [ -~\x80-\xff] (neg) 2109 Ket 2110 End 2111------------------------------------------------------------------ 2112Capturing subpattern count = 0 2113Compile options: <none> 2114Overall options: anchored 2115Starting code units: \x20 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 2116 9 : ; < = > ? @ 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 [ \ ] 2117 ^ _ ` 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 { | } ~ \x80 \x81 2118 \x82 \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 2119 \x91 \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f 2120 \xa0 \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae 2121 \xaf \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd 2122 \xbe \xbf \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc 2123 \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb 2124 \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea 2125 \xeb \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 2126 \xfa \xfb \xfc \xfd \xfe \xff 2127Subject length lower bound = 1 2128 2129/^[12[:^digit:]]/IB 2130------------------------------------------------------------------ 2131 Bra 2132 ^ 2133 [\x00-/12:-\xff] (neg) 2134 Ket 2135 End 2136------------------------------------------------------------------ 2137Capturing subpattern count = 0 2138Compile options: <none> 2139Overall options: anchored 2140Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 2141 \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 2142 \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / 1 2 : ; < 2143 = > ? @ 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 [ \ ] ^ _ ` a 2144 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 { | } ~ \x7f \x80 \x81 \x82 2145 \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 2146 \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 2147 \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf 2148 \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe 2149 \xbf \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd 2150 \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc 2151 \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb 2152 \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa 2153 \xfb \xfc \xfd \xfe \xff 2154Subject length lower bound = 1 2155 2156/^[[:^blank:]]/IB 2157------------------------------------------------------------------ 2158 Bra 2159 ^ 2160 [\x00-\x08\x0a-\x1f!-\xff] (neg) 2161 Ket 2162 End 2163------------------------------------------------------------------ 2164Capturing subpattern count = 0 2165Compile options: <none> 2166Overall options: anchored 2167Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0a \x0b 2168 \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a 2169 \x1b \x1c \x1d \x1e \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 2170 : ; < = > ? @ 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 [ \ ] ^ 2171 _ ` 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 { | } ~ \x7f \x80 2172 \x81 \x82 \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f 2173 \x90 \x91 \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e 2174 \x9f \xa0 \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad 2175 \xae \xaf \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc 2176 \xbd \xbe \xbf \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb 2177 \xcc \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda 2178 \xdb \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 2179 \xea \xeb \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 2180 \xf9 \xfa \xfb \xfc \xfd \xfe \xff 2181Subject length lower bound = 1 2182 2183/[01[:alpha:]%]/IB 2184------------------------------------------------------------------ 2185 Bra 2186 [%01A-Za-z] 2187 Ket 2188 End 2189------------------------------------------------------------------ 2190Capturing subpattern count = 0 2191Starting code units: % 0 1 A B C D E F G H I J K L M N O P Q R S T U V W 2192 X Y Z 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 2193Subject length lower bound = 1 2194 2195/[[.ch.]]/I 2196Failed: error 113 at offset 1: POSIX collating elements are not supported 2197 2198/[[=ch=]]/I 2199Failed: error 113 at offset 1: POSIX collating elements are not supported 2200 2201/[[:rhubarb:]]/I 2202Failed: error 130 at offset 3: unknown POSIX class name 2203 2204/[[:upper:]]/Ii 2205Capturing subpattern count = 0 2206Options: caseless 2207Starting code units: 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 2208 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 2209Subject length lower bound = 1 2210 A 2211 0: A 2212 a 2213 0: a 2214 2215/[[:lower:]]/Ii 2216Capturing subpattern count = 0 2217Options: caseless 2218Starting code units: 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 2219 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 2220Subject length lower bound = 1 2221 A 2222 0: A 2223 a 2224 0: a 2225 2226/((?-i)[[:lower:]])[[:lower:]]/Ii 2227Capturing subpattern count = 1 2228Options: caseless 2229Starting code units: 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 2230Subject length lower bound = 2 2231 ab 2232 0: ab 2233 1: a 2234 aB 2235 0: aB 2236 1: a 2237\= Expect no match 2238 Ab 2239No match 2240 AB 2241No match 2242 2243/[\200-\110]/I 2244Failed: error 108 at offset 9: range out of order in character class 2245 2246/^(?(0)f|b)oo/I 2247Failed: error 115 at offset 5: reference to non-existent subpattern 2248 2249# This one's here because of the large output vector needed 2250 2251/(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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 2252Capturing subpattern count = 271 2253Max back reference = 270 2254Starting code units: 0 1 2 3 4 5 6 7 8 9 2255Subject length lower bound = 0 2256 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\=ovector=300 2257 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 2258 1: 1 2259 2: 2 2260 3: 3 2261 4: 4 2262 5: 5 2263 6: 6 2264 7: 7 2265 8: 8 2266 9: 9 226710: 10 226811: 11 226912: 12 227013: 13 227114: 14 227215: 15 227316: 16 227417: 17 227518: 18 227619: 19 227720: 20 227821: 21 227922: 22 228023: 23 228124: 24 228225: 25 228326: 26 228427: 27 228528: 28 228629: 29 228730: 30 228831: 31 228932: 32 229033: 33 229134: 34 229235: 35 229336: 36 229437: 37 229538: 38 229639: 39 229740: 40 229841: 41 229942: 42 230043: 43 230144: 44 230245: 45 230346: 46 230447: 47 230548: 48 230649: 49 230750: 50 230851: 51 230952: 52 231053: 53 231154: 54 231255: 55 231356: 56 231457: 57 231558: 58 231659: 59 231760: 60 231861: 61 231962: 62 232063: 63 232164: 64 232265: 65 232366: 66 232467: 67 232568: 68 232669: 69 232770: 70 232871: 71 232972: 72 233073: 73 233174: 74 233275: 75 233376: 76 233477: 77 233578: 78 233679: 79 233780: 80 233881: 81 233982: 82 234083: 83 234184: 84 234285: 85 234386: 86 234487: 87 234588: 88 234689: 89 234790: 90 234891: 91 234992: 92 235093: 93 235194: 94 235295: 95 235396: 96 235497: 97 235598: 98 235699: 99 2357100: 100 2358101: 101 2359102: 102 2360103: 103 2361104: 104 2362105: 105 2363106: 106 2364107: 107 2365108: 108 2366109: 109 2367110: 110 2368111: 111 2369112: 112 2370113: 113 2371114: 114 2372115: 115 2373116: 116 2374117: 117 2375118: 118 2376119: 119 2377120: 120 2378121: 121 2379122: 122 2380123: 123 2381124: 124 2382125: 125 2383126: 126 2384127: 127 2385128: 128 2386129: 129 2387130: 130 2388131: 131 2389132: 132 2390133: 133 2391134: 134 2392135: 135 2393136: 136 2394137: 137 2395138: 138 2396139: 139 2397140: 140 2398141: 141 2399142: 142 2400143: 143 2401144: 144 2402145: 145 2403146: 146 2404147: 147 2405148: 148 2406149: 149 2407150: 150 2408151: 151 2409152: 152 2410153: 153 2411154: 154 2412155: 155 2413156: 156 2414157: 157 2415158: 158 2416159: 159 2417160: 160 2418161: 161 2419162: 162 2420163: 163 2421164: 164 2422165: 165 2423166: 166 2424167: 167 2425168: 168 2426169: 169 2427170: 170 2428171: 171 2429172: 172 2430173: 173 2431174: 174 2432175: 175 2433176: 176 2434177: 177 2435178: 178 2436179: 179 2437180: 180 2438181: 181 2439182: 182 2440183: 183 2441184: 184 2442185: 185 2443186: 186 2444187: 187 2445188: 188 2446189: 189 2447190: 190 2448191: 191 2449192: 192 2450193: 193 2451194: 194 2452195: 195 2453196: 196 2454197: 197 2455198: 198 2456199: 199 2457200: 200 2458201: 201 2459202: 202 2460203: 203 2461204: 204 2462205: 205 2463206: 206 2464207: 207 2465208: 208 2466209: 209 2467210: 210 2468211: 211 2469212: 212 2470213: 213 2471214: 214 2472215: 215 2473216: 216 2474217: 217 2475218: 218 2476219: 219 2477220: 220 2478221: 221 2479222: 222 2480223: 223 2481224: 224 2482225: 225 2483226: 226 2484227: 227 2485228: 228 2486229: 229 2487230: 230 2488231: 231 2489232: 232 2490233: 233 2491234: 234 2492235: 235 2493236: 236 2494237: 237 2495238: 238 2496239: 239 2497240: 240 2498241: 241 2499242: 242 2500243: 243 2501244: 244 2502245: 245 2503246: 246 2504247: 247 2505248: 248 2506249: 249 2507250: 250 2508251: 251 2509252: 252 2510253: 253 2511254: 254 2512255: 255 2513256: 256 2514257: 257 2515258: 258 2516259: 259 2517260: 260 2518261: 261 2519262: 262 2520263: 263 2521264: 264 2522265: 265 2523266: 266 2524267: 267 2525268: 268 2526269: 269 2527270: ABC 2528271: ABC 2529 2530# This one's here because Perl does this differently and PCRE2 can't at present 2531 2532/(main(O)?)+/I 2533Capturing subpattern count = 2 2534First code unit = 'm' 2535Last code unit = 'n' 2536Subject length lower bound = 4 2537 mainmain 2538 0: mainmain 2539 1: main 2540 mainOmain 2541 0: mainOmain 2542 1: main 2543 2: O 2544 2545# These are all cases where Perl does it differently (nested captures) 2546 2547/^(a(b)?)+$/I 2548Capturing subpattern count = 2 2549Compile options: <none> 2550Overall options: anchored 2551First code unit = 'a' 2552Subject length lower bound = 1 2553 aba 2554 0: aba 2555 1: a 2556 2: b 2557 2558/^(aa(bb)?)+$/I 2559Capturing subpattern count = 2 2560Compile options: <none> 2561Overall options: anchored 2562First code unit = 'a' 2563Subject length lower bound = 2 2564 aabbaa 2565 0: aabbaa 2566 1: aa 2567 2: bb 2568 2569/^(aa|aa(bb))+$/I 2570Capturing subpattern count = 2 2571Compile options: <none> 2572Overall options: anchored 2573First code unit = 'a' 2574Subject length lower bound = 2 2575 aabbaa 2576 0: aabbaa 2577 1: aa 2578 2: bb 2579 2580/^(aa(bb)??)+$/I 2581Capturing subpattern count = 2 2582Compile options: <none> 2583Overall options: anchored 2584First code unit = 'a' 2585Subject length lower bound = 2 2586 aabbaa 2587 0: aabbaa 2588 1: aa 2589 2: bb 2590 2591/^(?:aa(bb)?)+$/I 2592Capturing subpattern count = 1 2593Compile options: <none> 2594Overall options: anchored 2595First code unit = 'a' 2596Subject length lower bound = 2 2597 aabbaa 2598 0: aabbaa 2599 1: bb 2600 2601/^(aa(b(b))?)+$/I 2602Capturing subpattern count = 3 2603Compile options: <none> 2604Overall options: anchored 2605First code unit = 'a' 2606Subject length lower bound = 2 2607 aabbaa 2608 0: aabbaa 2609 1: aa 2610 2: bb 2611 3: b 2612 2613/^(?:aa(b(b))?)+$/I 2614Capturing subpattern count = 2 2615Compile options: <none> 2616Overall options: anchored 2617First code unit = 'a' 2618Subject length lower bound = 2 2619 aabbaa 2620 0: aabbaa 2621 1: bb 2622 2: b 2623 2624/^(?:aa(b(?:b))?)+$/I 2625Capturing subpattern count = 1 2626Compile options: <none> 2627Overall options: anchored 2628First code unit = 'a' 2629Subject length lower bound = 2 2630 aabbaa 2631 0: aabbaa 2632 1: bb 2633 2634/^(?:aa(bb(?:b))?)+$/I 2635Capturing subpattern count = 1 2636Compile options: <none> 2637Overall options: anchored 2638First code unit = 'a' 2639Subject length lower bound = 2 2640 aabbbaa 2641 0: aabbbaa 2642 1: bbb 2643 2644/^(?:aa(b(?:bb))?)+$/I 2645Capturing subpattern count = 1 2646Compile options: <none> 2647Overall options: anchored 2648First code unit = 'a' 2649Subject length lower bound = 2 2650 aabbbaa 2651 0: aabbbaa 2652 1: bbb 2653 2654/^(?:aa(?:b(b))?)+$/I 2655Capturing subpattern count = 1 2656Compile options: <none> 2657Overall options: anchored 2658First code unit = 'a' 2659Subject length lower bound = 2 2660 aabbaa 2661 0: aabbaa 2662 1: b 2663 2664/^(?:aa(?:b(bb))?)+$/I 2665Capturing subpattern count = 1 2666Compile options: <none> 2667Overall options: anchored 2668First code unit = 'a' 2669Subject length lower bound = 2 2670 aabbbaa 2671 0: aabbbaa 2672 1: bb 2673 2674/^(aa(b(bb))?)+$/I 2675Capturing subpattern count = 3 2676Compile options: <none> 2677Overall options: anchored 2678First code unit = 'a' 2679Subject length lower bound = 2 2680 aabbbaa 2681 0: aabbbaa 2682 1: aa 2683 2: bbb 2684 3: bb 2685 2686/^(aa(bb(bb))?)+$/I 2687Capturing subpattern count = 3 2688Compile options: <none> 2689Overall options: anchored 2690First code unit = 'a' 2691Subject length lower bound = 2 2692 aabbbbaa 2693 0: aabbbbaa 2694 1: aa 2695 2: bbbb 2696 3: bb 2697 2698# ---------------- 2699 2700/#/IBx 2701------------------------------------------------------------------ 2702 Bra 2703 Ket 2704 End 2705------------------------------------------------------------------ 2706Capturing subpattern count = 0 2707May match empty string 2708Options: extended 2709Subject length lower bound = 0 2710 2711/a#/IBx 2712------------------------------------------------------------------ 2713 Bra 2714 a 2715 Ket 2716 End 2717------------------------------------------------------------------ 2718Capturing subpattern count = 0 2719Options: extended 2720First code unit = 'a' 2721Subject length lower bound = 1 2722 2723/[\s]/IB 2724------------------------------------------------------------------ 2725 Bra 2726 [\x09-\x0d ] 2727 Ket 2728 End 2729------------------------------------------------------------------ 2730Capturing subpattern count = 0 2731Starting code units: \x09 \x0a \x0b \x0c \x0d \x20 2732Subject length lower bound = 1 2733 2734/[\S]/IB 2735------------------------------------------------------------------ 2736 Bra 2737 [\x00-\x08\x0e-\x1f!-\xff] (neg) 2738 Ket 2739 End 2740------------------------------------------------------------------ 2741Capturing subpattern count = 0 2742Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0e \x0f 2743 \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a \x1b \x1c \x1d \x1e 2744 \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C 2745 D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h 2746 i j k l m n o p q r s t u v w x y z { | } ~ \x7f \x80 \x81 \x82 \x83 \x84 2747 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92 \x93 2748 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1 \xa2 2749 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0 \xb1 2750 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf \xc0 2751 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce \xcf 2752 \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd \xde 2753 \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec \xed 2754 \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb \xfc 2755 \xfd \xfe \xff 2756Subject length lower bound = 1 2757 2758/a(?i)b/IB 2759------------------------------------------------------------------ 2760 Bra 2761 a 2762 /i b 2763 Ket 2764 End 2765------------------------------------------------------------------ 2766Capturing subpattern count = 0 2767First code unit = 'a' 2768Last code unit = 'b' (caseless) 2769Subject length lower bound = 2 2770 ab 2771 0: ab 2772 aB 2773 0: aB 2774\= Expect no match 2775 AB 2776No match 2777 2778/(a(?i)b)/IB 2779------------------------------------------------------------------ 2780 Bra 2781 CBra 1 2782 a 2783 /i b 2784 Ket 2785 Ket 2786 End 2787------------------------------------------------------------------ 2788Capturing subpattern count = 1 2789First code unit = 'a' 2790Last code unit = 'b' (caseless) 2791Subject length lower bound = 2 2792 ab 2793 0: ab 2794 1: ab 2795 aB 2796 0: aB 2797 1: aB 2798\= Expect no match 2799 AB 2800No match 2801 2802/ (?i)abc/IBx 2803------------------------------------------------------------------ 2804 Bra 2805 /i abc 2806 Ket 2807 End 2808------------------------------------------------------------------ 2809Capturing subpattern count = 0 2810Options: extended 2811First code unit = 'a' (caseless) 2812Last code unit = 'c' (caseless) 2813Subject length lower bound = 3 2814 2815/#this is a comment 2816 (?i)abc/IBx 2817------------------------------------------------------------------ 2818 Bra 2819 /i abc 2820 Ket 2821 End 2822------------------------------------------------------------------ 2823Capturing subpattern count = 0 2824Options: extended 2825First code unit = 'a' (caseless) 2826Last code unit = 'c' (caseless) 2827Subject length lower bound = 3 2828 2829/123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/IB 2830------------------------------------------------------------------ 2831 Bra 2832 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 2833 Ket 2834 End 2835------------------------------------------------------------------ 2836Capturing subpattern count = 0 2837First code unit = '1' 2838Last code unit = '0' 2839Subject length lower bound = 300 2840 2841/\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/IB 2842------------------------------------------------------------------ 2843 Bra 2844 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 2845 Ket 2846 End 2847------------------------------------------------------------------ 2848Capturing subpattern count = 0 2849First code unit = '1' 2850Last code unit = '0' 2851Subject length lower bound = 300 2852 2853/\Q\E/IB 2854------------------------------------------------------------------ 2855 Bra 2856 Ket 2857 End 2858------------------------------------------------------------------ 2859Capturing subpattern count = 0 2860May match empty string 2861Subject length lower bound = 0 2862 \ 2863 0: 2864 2865/\Q\Ex/IB 2866------------------------------------------------------------------ 2867 Bra 2868 x 2869 Ket 2870 End 2871------------------------------------------------------------------ 2872Capturing subpattern count = 0 2873First code unit = 'x' 2874Subject length lower bound = 1 2875 2876/ \Q\E/IB 2877------------------------------------------------------------------ 2878 Bra 2879 2880 Ket 2881 End 2882------------------------------------------------------------------ 2883Capturing subpattern count = 0 2884First code unit = ' ' 2885Subject length lower bound = 1 2886 2887/a\Q\E/IB 2888------------------------------------------------------------------ 2889 Bra 2890 a 2891 Ket 2892 End 2893------------------------------------------------------------------ 2894Capturing subpattern count = 0 2895First code unit = 'a' 2896Subject length lower bound = 1 2897 abc 2898 0: a 2899 bca 2900 0: a 2901 bac 2902 0: a 2903 2904/a\Q\Eb/IB 2905------------------------------------------------------------------ 2906 Bra 2907 ab 2908 Ket 2909 End 2910------------------------------------------------------------------ 2911Capturing subpattern count = 0 2912First code unit = 'a' 2913Last code unit = 'b' 2914Subject length lower bound = 2 2915 abc 2916 0: ab 2917 2918/\Q\Eabc/IB 2919------------------------------------------------------------------ 2920 Bra 2921 abc 2922 Ket 2923 End 2924------------------------------------------------------------------ 2925Capturing subpattern count = 0 2926First code unit = 'a' 2927Last code unit = 'c' 2928Subject length lower bound = 3 2929 2930/x*+\w/IB 2931------------------------------------------------------------------ 2932 Bra 2933 x*+ 2934 \w 2935 Ket 2936 End 2937------------------------------------------------------------------ 2938Capturing subpattern count = 0 2939Starting code units: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P 2940 Q R S T U V W X Y Z _ 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 2941Subject length lower bound = 1 2942\= Expect no match 2943 xxxxx 2944No match 2945 2946/x?+/IB 2947------------------------------------------------------------------ 2948 Bra 2949 x?+ 2950 Ket 2951 End 2952------------------------------------------------------------------ 2953Capturing subpattern count = 0 2954May match empty string 2955Subject length lower bound = 0 2956 2957/x++/IB 2958------------------------------------------------------------------ 2959 Bra 2960 x++ 2961 Ket 2962 End 2963------------------------------------------------------------------ 2964Capturing subpattern count = 0 2965First code unit = 'x' 2966Subject length lower bound = 1 2967 2968/x{1,3}+/B,no_auto_possess 2969------------------------------------------------------------------ 2970 Bra 2971 x 2972 x{0,2}+ 2973 Ket 2974 End 2975------------------------------------------------------------------ 2976 2977/x{1,3}+/Bi,no_auto_possess 2978------------------------------------------------------------------ 2979 Bra 2980 /i x 2981 /i x{0,2}+ 2982 Ket 2983 End 2984------------------------------------------------------------------ 2985 2986/[^x]{1,3}+/B,no_auto_possess 2987------------------------------------------------------------------ 2988 Bra 2989 [^x] 2990 [^x]{0,2}+ 2991 Ket 2992 End 2993------------------------------------------------------------------ 2994 2995/[^x]{1,3}+/Bi,no_auto_possess 2996------------------------------------------------------------------ 2997 Bra 2998 /i [^x] 2999 /i [^x]{0,2}+ 3000 Ket 3001 End 3002------------------------------------------------------------------ 3003 3004/(x)*+/IB 3005------------------------------------------------------------------ 3006 Bra 3007 Braposzero 3008 CBraPos 1 3009 x 3010 KetRpos 3011 Ket 3012 End 3013------------------------------------------------------------------ 3014Capturing subpattern count = 1 3015May match empty string 3016Subject length lower bound = 0 3017 3018/^(\w++|\s++)*$/I 3019Capturing subpattern count = 1 3020May match empty string 3021Compile options: <none> 3022Overall options: anchored 3023Subject length lower bound = 0 3024 now is the time for all good men to come to the aid of the party 3025 0: now is the time for all good men to come to the aid of the party 3026 1: party 3027\= Expect no match 3028 this is not a line with only words and spaces! 3029No match 3030 3031/(\d++)(\w)/I 3032Capturing subpattern count = 2 3033Starting code units: 0 1 2 3 4 5 6 7 8 9 3034Subject length lower bound = 2 3035 12345a 3036 0: 12345a 3037 1: 12345 3038 2: a 3039\= Expect no match 3040 12345+ 3041No match 3042 3043/a++b/I 3044Capturing subpattern count = 0 3045First code unit = 'a' 3046Last code unit = 'b' 3047Subject length lower bound = 2 3048 aaab 3049 0: aaab 3050 3051/(a++b)/I 3052Capturing subpattern count = 1 3053First code unit = 'a' 3054Last code unit = 'b' 3055Subject length lower bound = 2 3056 aaab 3057 0: aaab 3058 1: aaab 3059 3060/(a++)b/I 3061Capturing subpattern count = 1 3062First code unit = 'a' 3063Last code unit = 'b' 3064Subject length lower bound = 2 3065 aaab 3066 0: aaab 3067 1: aaa 3068 3069/([^()]++|\([^()]*\))+/I 3070Capturing subpattern count = 1 3071Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 3072 \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 3073 \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( * + , - . / 0 1 2 3 4 5 3074 6 7 8 9 : ; < = > ? @ 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 3075 [ \ ] ^ _ ` 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 { | } ~ \x7f 3076 \x80 \x81 \x82 \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e 3077 \x8f \x90 \x91 \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d 3078 \x9e \x9f \xa0 \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac 3079 \xad \xae \xaf \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb 3080 \xbc \xbd \xbe \xbf \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca 3081 \xcb \xcc \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 3082 \xda \xdb \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 3083 \xe9 \xea \xeb \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 3084 \xf8 \xf9 \xfa \xfb \xfc \xfd \xfe \xff 3085Subject length lower bound = 1 3086 ((abc(ade)ufh()()x 3087 0: abc(ade)ufh()()x 3088 1: x 3089 3090/\(([^()]++|\([^()]+\))+\)/I 3091Capturing subpattern count = 1 3092First code unit = '(' 3093Last code unit = ')' 3094Subject length lower bound = 3 3095 (abc) 3096 0: (abc) 3097 1: abc 3098 (abc(def)xyz) 3099 0: (abc(def)xyz) 3100 1: xyz 3101\= Expect no match 3102 ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 3103No match 3104 3105/(abc){1,3}+/IB 3106------------------------------------------------------------------ 3107 Bra 3108 Once 3109 CBra 1 3110 abc 3111 Ket 3112 Brazero 3113 Bra 3114 CBra 1 3115 abc 3116 Ket 3117 Brazero 3118 CBra 1 3119 abc 3120 Ket 3121 Ket 3122 Ket 3123 Ket 3124 End 3125------------------------------------------------------------------ 3126Capturing subpattern count = 1 3127First code unit = 'a' 3128Last code unit = 'c' 3129Subject length lower bound = 3 3130 3131/a+?+/I 3132Failed: error 109 at offset 3: quantifier does not follow a repeatable item 3133 3134/a{2,3}?+b/I 3135Failed: error 109 at offset 7: quantifier does not follow a repeatable item 3136 3137/(?U)a+?+/I 3138Failed: error 109 at offset 7: quantifier does not follow a repeatable item 3139 3140/a{2,3}?+b/I,ungreedy 3141Failed: error 109 at offset 7: quantifier does not follow a repeatable item 3142 3143/x(?U)a++b/IB 3144------------------------------------------------------------------ 3145 Bra 3146 x 3147 a++ 3148 b 3149 Ket 3150 End 3151------------------------------------------------------------------ 3152Capturing subpattern count = 0 3153First code unit = 'x' 3154Last code unit = 'b' 3155Subject length lower bound = 3 3156 xaaaab 3157 0: xaaaab 3158 3159/(?U)xa++b/IB 3160------------------------------------------------------------------ 3161 Bra 3162 x 3163 a++ 3164 b 3165 Ket 3166 End 3167------------------------------------------------------------------ 3168Capturing subpattern count = 0 3169First code unit = 'x' 3170Last code unit = 'b' 3171Subject length lower bound = 3 3172 xaaaab 3173 0: xaaaab 3174 3175/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/IB 3176------------------------------------------------------------------ 3177 Bra 3178 ^ 3179 CBra 1 3180 CBra 2 3181 a+ 3182 Ket 3183 CBra 3 3184 [ab]+? 3185 Ket 3186 CBra 4 3187 [bc]+ 3188 Ket 3189 CBra 5 3190 \w*+ 3191 Ket 3192 Ket 3193 Ket 3194 End 3195------------------------------------------------------------------ 3196Capturing subpattern count = 5 3197Compile options: <none> 3198Overall options: anchored 3199First code unit = 'a' 3200Subject length lower bound = 3 3201 3202/^x(?U)a+b/IB 3203------------------------------------------------------------------ 3204 Bra 3205 ^ 3206 x 3207 a++ 3208 b 3209 Ket 3210 End 3211------------------------------------------------------------------ 3212Capturing subpattern count = 0 3213Compile options: <none> 3214Overall options: anchored 3215First code unit = 'x' 3216Last code unit = 'b' 3217Subject length lower bound = 3 3218 3219/^x(?U)(a+)b/IB 3220------------------------------------------------------------------ 3221 Bra 3222 ^ 3223 x 3224 CBra 1 3225 a+? 3226 Ket 3227 b 3228 Ket 3229 End 3230------------------------------------------------------------------ 3231Capturing subpattern count = 1 3232Compile options: <none> 3233Overall options: anchored 3234First code unit = 'x' 3235Last code unit = 'b' 3236Subject length lower bound = 3 3237 3238/[.x.]/I 3239Failed: error 113 at offset 0: POSIX collating elements are not supported 3240 3241/[=x=]/I 3242Failed: error 113 at offset 0: POSIX collating elements are not supported 3243 3244/[:x:]/I 3245Failed: error 112 at offset 0: POSIX named classes are supported only within a class 3246 3247/\F/I 3248Failed: error 137 at offset 2: PCRE2 does not support \F, \L, \l, \N{name}, \U, or \u 3249 3250/\l/I 3251Failed: error 137 at offset 2: PCRE2 does not support \F, \L, \l, \N{name}, \U, or \u 3252 3253/\L/I 3254Failed: error 137 at offset 2: PCRE2 does not support \F, \L, \l, \N{name}, \U, or \u 3255 3256/\N{name}/I 3257Failed: error 137 at offset 2: PCRE2 does not support \F, \L, \l, \N{name}, \U, or \u 3258 3259/\u/I 3260Failed: error 137 at offset 2: PCRE2 does not support \F, \L, \l, \N{name}, \U, or \u 3261 3262/\U/I 3263Failed: error 137 at offset 2: PCRE2 does not support \F, \L, \l, \N{name}, \U, or \u 3264 3265/a{1,3}b/ungreedy 3266 ab 3267 0: ab 3268 3269/[/I 3270Failed: error 106 at offset 1: missing terminating ] for character class 3271 3272/[a-/I 3273Failed: error 106 at offset 3: missing terminating ] for character class 3274 3275/[[:space:]/I 3276Failed: error 106 at offset 10: missing terminating ] for character class 3277 3278/[\s]/IB 3279------------------------------------------------------------------ 3280 Bra 3281 [\x09-\x0d ] 3282 Ket 3283 End 3284------------------------------------------------------------------ 3285Capturing subpattern count = 0 3286Starting code units: \x09 \x0a \x0b \x0c \x0d \x20 3287Subject length lower bound = 1 3288 3289/[[:space:]]/IB 3290------------------------------------------------------------------ 3291 Bra 3292 [\x09-\x0d ] 3293 Ket 3294 End 3295------------------------------------------------------------------ 3296Capturing subpattern count = 0 3297Starting code units: \x09 \x0a \x0b \x0c \x0d \x20 3298Subject length lower bound = 1 3299 3300/[[:space:]abcde]/IB 3301------------------------------------------------------------------ 3302 Bra 3303 [\x09-\x0d a-e] 3304 Ket 3305 End 3306------------------------------------------------------------------ 3307Capturing subpattern count = 0 3308Starting code units: \x09 \x0a \x0b \x0c \x0d \x20 a b c d e 3309Subject length lower bound = 1 3310 3311/< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix 3312Capturing subpattern count = 0 3313Options: extended 3314First code unit = '<' 3315Last code unit = '>' 3316Subject length lower bound = 2 3317 <> 3318 0: <> 3319 <abcd> 3320 0: <abcd> 3321 <abc <123> hij> 3322 0: <abc <123> hij> 3323 <abc <def> hij> 3324 0: <def> 3325 <abc<>def> 3326 0: <abc<>def> 3327 <abc<> 3328 0: <> 3329\= Expect no match 3330 <abc 3331No match 3332 3333/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/IB 3334------------------------------------------------------------------ 3335 Bra 3336 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 3337 \b 3338 Ket 3339 End 3340------------------------------------------------------------------ 3341Capturing subpattern count = 0 3342Max lookbehind = 1 3343First code unit = '8' 3344Last code unit = 'X' 3345Subject length lower bound = 409 3346 3347/\$\<\.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/IB 3348------------------------------------------------------------------ 3349 Bra 3350 $<.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 3351 \b 3352 Ket 3353 End 3354------------------------------------------------------------------ 3355Capturing subpattern count = 0 3356Max lookbehind = 1 3357First code unit = '$' 3358Last code unit = 'X' 3359Subject length lower bound = 404 3360 3361/(.*)\d+\1/I 3362Capturing subpattern count = 1 3363Max back reference = 1 3364Subject length lower bound = 1 3365 3366/(.*)\d+/I 3367Capturing subpattern count = 1 3368First code unit at start or follows newline 3369Subject length lower bound = 1 3370 3371/(.*)\d+\1/Is 3372Capturing subpattern count = 1 3373Max back reference = 1 3374Options: dotall 3375Subject length lower bound = 1 3376 3377/(.*)\d+/Is 3378Capturing subpattern count = 1 3379Compile options: dotall 3380Overall options: anchored dotall 3381Subject length lower bound = 1 3382 3383/(.*(xyz))\d+\2/I 3384Capturing subpattern count = 2 3385Max back reference = 2 3386First code unit at start or follows newline 3387Last code unit = 'z' 3388Subject length lower bound = 7 3389 3390/((.*))\d+\1/I 3391Capturing subpattern count = 2 3392Max back reference = 1 3393Subject length lower bound = 1 3394 abc123bc 3395 0: bc123bc 3396 1: bc 3397 2: bc 3398 3399/a[b]/I 3400Capturing subpattern count = 0 3401First code unit = 'a' 3402Last code unit = 'b' 3403Subject length lower bound = 2 3404 3405/(?=a).*/I 3406Capturing subpattern count = 0 3407May match empty string 3408First code unit = 'a' 3409Subject length lower bound = 0 3410 3411/(?=abc).xyz/Ii 3412Capturing subpattern count = 0 3413Options: caseless 3414First code unit = 'a' (caseless) 3415Last code unit = 'z' (caseless) 3416Subject length lower bound = 4 3417 3418/(?=abc)(?i).xyz/I 3419Capturing subpattern count = 0 3420First code unit = 'a' 3421Last code unit = 'z' (caseless) 3422Subject length lower bound = 4 3423 3424/(?=a)(?=b)/I 3425Capturing subpattern count = 0 3426May match empty string 3427First code unit = 'a' 3428Subject length lower bound = 0 3429 3430/(?=.)a/I 3431Capturing subpattern count = 0 3432First code unit = 'a' 3433Subject length lower bound = 1 3434 3435/((?=abcda)a)/I 3436Capturing subpattern count = 1 3437First code unit = 'a' 3438Last code unit = 'a' 3439Subject length lower bound = 1 3440 3441/((?=abcda)ab)/I 3442Capturing subpattern count = 1 3443First code unit = 'a' 3444Last code unit = 'b' 3445Subject length lower bound = 2 3446 3447/()a/I 3448Capturing subpattern count = 1 3449First code unit = 'a' 3450Subject length lower bound = 1 3451 3452/(?:(?=.)|(?<!x))a/I 3453Capturing subpattern count = 0 3454Max lookbehind = 1 3455First code unit = 'a' 3456Subject length lower bound = 1 3457 3458/(?(1)ab|ac)(.)/I 3459Capturing subpattern count = 1 3460Max back reference = 1 3461First code unit = 'a' 3462Subject length lower bound = 3 3463 3464/(?(1)abz|acz)(.)/I 3465Capturing subpattern count = 1 3466Max back reference = 1 3467First code unit = 'a' 3468Last code unit = 'z' 3469Subject length lower bound = 4 3470 3471/(?(1)abz)(.)/I 3472Capturing subpattern count = 1 3473Max back reference = 1 3474Subject length lower bound = 1 3475 3476/(?(1)abz)(1)23/I 3477Capturing subpattern count = 1 3478Max back reference = 1 3479Last code unit = '3' 3480Subject length lower bound = 3 3481 3482/(a)+/I 3483Capturing subpattern count = 1 3484First code unit = 'a' 3485Subject length lower bound = 1 3486 3487/(a){2,3}/I 3488Capturing subpattern count = 1 3489First code unit = 'a' 3490Last code unit = 'a' 3491Subject length lower bound = 2 3492 3493/(a)*/I 3494Capturing subpattern count = 1 3495May match empty string 3496Subject length lower bound = 0 3497 3498/[a]/I 3499Capturing subpattern count = 0 3500First code unit = 'a' 3501Subject length lower bound = 1 3502 3503/[ab]/I 3504Capturing subpattern count = 0 3505Starting code units: a b 3506Subject length lower bound = 1 3507 3508/[ab]/I 3509Capturing subpattern count = 0 3510Starting code units: a b 3511Subject length lower bound = 1 3512 3513/[^a]/I 3514Capturing subpattern count = 0 3515Subject length lower bound = 1 3516 3517/\d456/I 3518Capturing subpattern count = 0 3519Starting code units: 0 1 2 3 4 5 6 7 8 9 3520Last code unit = '6' 3521Subject length lower bound = 4 3522 3523/\d456/I 3524Capturing subpattern count = 0 3525Starting code units: 0 1 2 3 4 5 6 7 8 9 3526Last code unit = '6' 3527Subject length lower bound = 4 3528 3529/a^b/I 3530Capturing subpattern count = 0 3531First code unit = 'a' 3532Last code unit = 'b' 3533Subject length lower bound = 2 3534 3535/^a/Im 3536Capturing subpattern count = 0 3537Options: multiline 3538First code unit at start or follows newline 3539Last code unit = 'a' 3540Subject length lower bound = 1 3541 abcde 3542 0: a 3543 xy\nabc 3544 0: a 3545\= Expect no match 3546 xyabc 3547No match 3548 3549/c|abc/I 3550Capturing subpattern count = 0 3551Starting code units: a c 3552Last code unit = 'c' 3553Subject length lower bound = 1 3554 3555/(?i)[ab]/I 3556Capturing subpattern count = 0 3557Starting code units: A B a b 3558Subject length lower bound = 1 3559 3560/[ab](?i)cd/I 3561Capturing subpattern count = 0 3562Starting code units: a b 3563Last code unit = 'd' (caseless) 3564Subject length lower bound = 3 3565 3566/abc(?C)def/I 3567Capturing subpattern count = 0 3568First code unit = 'a' 3569Last code unit = 'f' 3570Subject length lower bound = 6 3571 abcdef 3572--->abcdef 3573 0 ^ ^ d 3574 0: abcdef 3575 1234abcdef 3576--->1234abcdef 3577 0 ^ ^ d 3578 0: abcdef 3579\= Expect no match 3580 abcxyz 3581No match 3582 abcxyzf 3583--->abcxyzf 3584 0 ^ ^ d 3585No match 3586 3587/abc(?C)de(?C1)f/I 3588Capturing subpattern count = 0 3589First code unit = 'a' 3590Last code unit = 'f' 3591Subject length lower bound = 6 3592 123abcdef 3593--->123abcdef 3594 0 ^ ^ d 3595 1 ^ ^ f 3596 0: abcdef 3597 3598/(?C1)\dabc(?C2)def/I 3599Capturing subpattern count = 0 3600Starting code units: 0 1 2 3 4 5 6 7 8 9 3601Last code unit = 'f' 3602Subject length lower bound = 7 3603 1234abcdef 3604--->1234abcdef 3605 1 ^ \d 3606 1 ^ \d 3607 1 ^ \d 3608 1 ^ \d 3609 2 ^ ^ d 3610 0: 4abcdef 3611\= Expect no match 3612 abcdef 3613No match 3614 3615/(?C1)\dabc(?C2)def/I 3616Capturing subpattern count = 0 3617Starting code units: 0 1 2 3 4 5 6 7 8 9 3618Last code unit = 'f' 3619Subject length lower bound = 7 3620 1234abcdef 3621--->1234abcdef 3622 1 ^ \d 3623 1 ^ \d 3624 1 ^ \d 3625 1 ^ \d 3626 2 ^ ^ d 3627 0: 4abcdef 3628\= Expect no match 3629 abcdef 3630No match 3631 3632/(?C255)ab/I 3633Capturing subpattern count = 0 3634First code unit = 'a' 3635Last code unit = 'b' 3636Subject length lower bound = 2 3637 3638/(?C256)ab/I 3639Failed: error 138 at offset 6: number after (?C is greater than 255 3640 3641/(?Cab)xx/I 3642Failed: error 182 at offset 3: unrecognized string delimiter follows (?C 3643 3644/(?C12vr)x/I 3645Failed: error 139 at offset 5: closing parenthesis for (?C expected 3646 3647/abc(?C)def/I 3648Capturing subpattern count = 0 3649First code unit = 'a' 3650Last code unit = 'f' 3651Subject length lower bound = 6 3652 \x83\x0\x61bcdef 3653--->\x83\x00abcdef 3654 0 ^ ^ d 3655 0: abcdef 3656 3657/(abc)(?C)de(?C1)f/I 3658Capturing subpattern count = 1 3659First code unit = 'a' 3660Last code unit = 'f' 3661Subject length lower bound = 6 3662 123abcdef 3663--->123abcdef 3664 0 ^ ^ d 3665 1 ^ ^ f 3666 0: abcdef 3667 1: abc 3668 123abcdef\=callout_capture 3669Callout 0: last capture = 1 3670 1: abc 3671--->123abcdef 3672 ^ ^ d 3673Callout 1: last capture = 1 3674 1: abc 3675--->123abcdef 3676 ^ ^ f 3677 0: abcdef 3678 1: abc 3679 123abcdefC-\=callout_none 3680 0: abcdef 3681 1: abc 3682\= Expect no match 3683 123abcdef\=callout_fail=1 3684--->123abcdef 3685 0 ^ ^ d 3686 1 ^ ^ f 3687No match 3688 3689/(?C0)(abc(?C1))*/I 3690Capturing subpattern count = 1 3691May match empty string 3692Subject length lower bound = 0 3693 abcabcabc 3694--->abcabcabc 3695 0 ^ ( 3696 1 ^ ^ )* 3697 1 ^ ^ )* 3698 1 ^ ^ )* 3699 0: abcabcabc 3700 1: abc 3701 abcabc\=callout_fail=1:4 3702--->abcabc 3703 0 ^ ( 3704 1 ^ ^ )* 3705 1 ^ ^ )* 3706 0: abcabc 3707 1: abc 3708 abcabcabc\=callout_fail=1:4 3709--->abcabcabc 3710 0 ^ ( 3711 1 ^ ^ )* 3712 1 ^ ^ )* 3713 1 ^ ^ )* 3714 0: abcabc 3715 1: abc 3716 3717/(\d{3}(?C))*/I 3718Capturing subpattern count = 1 3719May match empty string 3720Subject length lower bound = 0 3721 123\=callout_capture 3722Callout 0: last capture = 0 3723--->123 3724 ^ ^ )* 3725 0: 123 3726 1: 123 3727 123456\=callout_capture 3728Callout 0: last capture = 0 3729--->123456 3730 ^ ^ )* 3731Callout 0: last capture = 1 3732 1: 123 3733--->123456 3734 ^ ^ )* 3735 0: 123456 3736 1: 456 3737 123456789\=callout_capture 3738Callout 0: last capture = 0 3739--->123456789 3740 ^ ^ )* 3741Callout 0: last capture = 1 3742 1: 123 3743--->123456789 3744 ^ ^ )* 3745Callout 0: last capture = 1 3746 1: 456 3747--->123456789 3748 ^ ^ )* 3749 0: 123456789 3750 1: 789 3751 3752/((xyz)(?C)p|(?C1)xyzabc)/I 3753Capturing subpattern count = 2 3754First code unit = 'x' 3755Subject length lower bound = 4 3756 xyzabc\=callout_capture 3757Callout 0: last capture = 2 3758 1: <unset> 3759 2: xyz 3760--->xyzabc 3761 ^ ^ p 3762Callout 1: last capture = 0 3763--->xyzabc 3764 ^ x 3765 0: xyzabc 3766 1: xyzabc 3767 3768/(X)((xyz)(?C)p|(?C1)xyzabc)/I 3769Capturing subpattern count = 3 3770First code unit = 'X' 3771Last code unit = 'x' 3772Subject length lower bound = 5 3773 Xxyzabc\=callout_capture 3774Callout 0: last capture = 3 3775 1: X 3776 2: <unset> 3777 3: xyz 3778--->Xxyzabc 3779 ^ ^ p 3780Callout 1: last capture = 1 3781 1: X 3782--->Xxyzabc 3783 ^^ x 3784 0: Xxyzabc 3785 1: X 3786 2: xyzabc 3787 3788/(?=(abc))(?C)abcdef/I 3789Capturing subpattern count = 1 3790First code unit = 'a' 3791Last code unit = 'f' 3792Subject length lower bound = 6 3793 abcdef\=callout_capture 3794Callout 0: last capture = 1 3795 1: abc 3796--->abcdef 3797 ^ a 3798 0: abcdef 3799 1: abc 3800 3801/(?!(abc)(?C1)d)(?C2)abcxyz/I 3802Capturing subpattern count = 1 3803First code unit = 'a' 3804Last code unit = 'z' 3805Subject length lower bound = 6 3806 abcxyz\=callout_capture 3807Callout 1: last capture = 1 3808 1: abc 3809--->abcxyz 3810 ^ ^ d 3811Callout 2: last capture = 0 3812--->abcxyz 3813 ^ a 3814 0: abcxyz 3815 3816/(?<=(abc)(?C))xyz/I 3817Capturing subpattern count = 1 3818Max lookbehind = 3 3819First code unit = 'x' 3820Last code unit = 'z' 3821Subject length lower bound = 3 3822 abcxyz\=callout_capture 3823Callout 0: last capture = 1 3824 1: abc 3825--->abcxyz 3826 ^ ) 3827 0: xyz 3828 1: abc 3829 3830/a(b+)(c*)(?C1)/I 3831Capturing subpattern count = 2 3832First code unit = 'a' 3833Last code unit = 'b' 3834Subject length lower bound = 2 3835\= Expect no match 3836 abbbbbccc\=callout_data=1 3837--->abbbbbccc 3838 1 ^ ^ End of pattern 3839Callout data = 1 3840No match 3841 3842/a(b+?)(c*?)(?C1)/I 3843Capturing subpattern count = 2 3844First code unit = 'a' 3845Last code unit = 'b' 3846Subject length lower bound = 2 3847\= Expect no match 3848 abbbbbccc\=callout_data=1 3849--->abbbbbccc 3850 1 ^ ^ End of pattern 3851Callout data = 1 3852 1 ^ ^ End of pattern 3853Callout data = 1 3854 1 ^ ^ End of pattern 3855Callout data = 1 3856 1 ^ ^ End of pattern 3857Callout data = 1 3858 1 ^ ^ End of pattern 3859Callout data = 1 3860 1 ^ ^ End of pattern 3861Callout data = 1 3862 1 ^ ^ End of pattern 3863Callout data = 1 3864 1 ^ ^ End of pattern 3865Callout data = 1 3866No match 3867 3868/(?C)abc/I 3869Capturing subpattern count = 0 3870First code unit = 'a' 3871Last code unit = 'c' 3872Subject length lower bound = 3 3873 3874/(?C)^abc/I 3875Capturing subpattern count = 0 3876Compile options: <none> 3877Overall options: anchored 3878First code unit = 'a' 3879Subject length lower bound = 3 3880 3881/(?C)a|b/I 3882Capturing subpattern count = 0 3883Starting code units: a b 3884Subject length lower bound = 1 3885 3886/a|(b)(?C)/I 3887Capturing subpattern count = 1 3888Starting code units: a b 3889Subject length lower bound = 1 3890 b 3891--->b 3892 0 ^^ End of pattern 3893 0: b 3894 1: b 3895 3896/x(ab|(bc|(de|(?R))))/I 3897Capturing subpattern count = 3 3898First code unit = 'x' 3899Subject length lower bound = 3 3900 xab 3901 0: xab 3902 1: ab 3903 xbc 3904 0: xbc 3905 1: bc 3906 2: bc 3907 xde 3908 0: xde 3909 1: de 3910 2: de 3911 3: de 3912 xxab 3913 0: xxab 3914 1: xab 3915 2: xab 3916 3: xab 3917 xxxab 3918 0: xxxab 3919 1: xxab 3920 2: xxab 3921 3: xxab 3922\= Expect no match 3923 xyab 3924No match 3925 3926/^([^()]|\((?1)*\))*$/I 3927Capturing subpattern count = 1 3928May match empty string 3929Compile options: <none> 3930Overall options: anchored 3931Subject length lower bound = 0 3932 abc 3933 0: abc 3934 1: c 3935 a(b)c 3936 0: a(b)c 3937 1: c 3938 a(b(c))d 3939 0: a(b(c))d 3940 1: d 3941\= Expect no match) 3942 a(b(c)d 3943No match 3944 3945/^>abc>([^()]|\((?1)*\))*<xyz<$/I 3946Capturing subpattern count = 1 3947Compile options: <none> 3948Overall options: anchored 3949First code unit = '>' 3950Last code unit = '<' 3951Subject length lower bound = 10 3952 >abc>123<xyz< 3953 0: >abc>123<xyz< 3954 1: 3 3955 >abc>1(2)3<xyz< 3956 0: >abc>1(2)3<xyz< 3957 1: 3 3958 >abc>(1(2)3)<xyz< 3959 0: >abc>(1(2)3)<xyz< 3960 1: (1(2)3) 3961 3962/(a(?1)b)/IB 3963------------------------------------------------------------------ 3964 Bra 3965 CBra 1 3966 a 3967 Recurse 3968 b 3969 Ket 3970 Ket 3971 End 3972------------------------------------------------------------------ 3973Capturing subpattern count = 1 3974First code unit = 'a' 3975Last code unit = 'b' 3976Subject length lower bound = 2 3977 3978/(a(?1)+b)/IB 3979------------------------------------------------------------------ 3980 Bra 3981 CBra 1 3982 a 3983 SBra 3984 Recurse 3985 KetRmax 3986 b 3987 Ket 3988 Ket 3989 End 3990------------------------------------------------------------------ 3991Capturing subpattern count = 1 3992First code unit = 'a' 3993Last code unit = 'b' 3994Subject length lower bound = 2 3995 3996/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I 3997Capturing subpattern count = 2 3998Compile options: <none> 3999Overall options: anchored 4000Starting code units: ( - 0 1 2 3 4 5 6 7 8 9 4001Subject length lower bound = 1 4002 12 4003 0: 12 4004 1: 12 4005 (((2+2)*-3)-7) 4006 0: (((2+2)*-3)-7) 4007 1: (((2+2)*-3)-7) 4008 2: - 4009 -12 4010 0: -12 4011 1: -12 4012\= Expect no match 4013 ((2+2)*-3)-7) 4014No match 4015 4016/^(x(y|(?1){2})z)/I 4017Capturing subpattern count = 2 4018Compile options: <none> 4019Overall options: anchored 4020First code unit = 'x' 4021Subject length lower bound = 3 4022 xyz 4023 0: xyz 4024 1: xyz 4025 2: y 4026 xxyzxyzz 4027 0: xxyzxyzz 4028 1: xxyzxyzz 4029 2: xyzxyz 4030\= Expect no match 4031 xxyzz 4032No match 4033 xxyzxyzxyzz 4034No match 4035 4036/((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix 4037Capturing subpattern count = 2 4038Options: extended 4039First code unit = '<' 4040Last code unit = '>' 4041Subject length lower bound = 2 4042 <> 4043 0: <> 4044 1: <> 4045 2: <> 4046 <abcd> 4047 0: <abcd> 4048 1: <abcd> 4049 2: <abcd> 4050 <abc <123> hij> 4051 0: <abc <123> hij> 4052 1: <abc <123> hij> 4053 2: <abc <123> hij> 4054 <abc <def> hij> 4055 0: <def> 4056 1: <def> 4057 2: <def> 4058 <abc<>def> 4059 0: <abc<>def> 4060 1: <abc<>def> 4061 2: <abc<>def> 4062 <abc<> 4063 0: <> 4064 1: <> 4065 2: <> 4066\= Expect no match 4067 <abc 4068No match 4069 4070/(?1)/I 4071Failed: error 115 at offset 3: reference to non-existent subpattern 4072 4073/((?2)(abc)/I 4074Failed: error 114 at offset 10: missing closing parenthesis 4075 4076/^(abc)def(?1)/I 4077Capturing subpattern count = 1 4078Compile options: <none> 4079Overall options: anchored 4080First code unit = 'a' 4081Subject length lower bound = 9 4082 abcdefabc 4083 0: abcdefabc 4084 1: abc 4085 4086/^(a|b|c)=(?1)+/I 4087Capturing subpattern count = 1 4088Compile options: <none> 4089Overall options: anchored 4090Starting code units: a b c 4091Subject length lower bound = 2 4092 a=a 4093 0: a=a 4094 1: a 4095 a=b 4096 0: a=b 4097 1: a 4098 a=bc 4099 0: a=bc 4100 1: a 4101 4102/^(a|b|c)=((?1))+/I 4103Capturing subpattern count = 2 4104Compile options: <none> 4105Overall options: anchored 4106Starting code units: a b c 4107Subject length lower bound = 2 4108 a=a 4109 0: a=a 4110 1: a 4111 2: a 4112 a=b 4113 0: a=b 4114 1: a 4115 2: b 4116 a=bc 4117 0: a=bc 4118 1: a 4119 2: c 4120 4121/a(?P<name1>b|c)d(?P<longername2>e)/IB 4122------------------------------------------------------------------ 4123 Bra 4124 a 4125 CBra 1 4126 b 4127 Alt 4128 c 4129 Ket 4130 d 4131 CBra 2 4132 e 4133 Ket 4134 Ket 4135 End 4136------------------------------------------------------------------ 4137Capturing subpattern count = 2 4138Named capturing subpatterns: 4139 longername2 2 4140 name1 1 4141First code unit = 'a' 4142Last code unit = 'e' 4143Subject length lower bound = 4 4144 abde 4145 0: abde 4146 1: b 4147 2: e 4148 acde 4149 0: acde 4150 1: c 4151 2: e 4152 4153/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/IB 4154------------------------------------------------------------------ 4155 Bra 4156 Bra 4157 a 4158 CBra 1 4159 c 4160 CBra 2 4161 d 4162 Ket 4163 Ket 4164 Ket 4165 CBra 3 4166 a 4167 Ket 4168 Ket 4169 End 4170------------------------------------------------------------------ 4171Capturing subpattern count = 3 4172Named capturing subpatterns: 4173 a 3 4174 c 1 4175 d 2 4176First code unit = 'a' 4177Last code unit = 'a' 4178Subject length lower bound = 4 4179 4180/(?P<a>a)...(?P=a)bbb(?P>a)d/IB 4181------------------------------------------------------------------ 4182 Bra 4183 CBra 1 4184 a 4185 Ket 4186 Any 4187 Any 4188 Any 4189 \1 4190 bbb 4191 Recurse 4192 d 4193 Ket 4194 End 4195------------------------------------------------------------------ 4196Capturing subpattern count = 1 4197Max back reference = 1 4198Named capturing subpatterns: 4199 a 1 4200First code unit = 'a' 4201Last code unit = 'd' 4202Subject length lower bound = 10 4203 4204/^\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 4205Capturing subpattern count = 4 4206Max back reference = 4 4207Named capturing subpatterns: 4208 four 4 4209 one 1 4210 three 3 4211 two 2 4212May match empty string 4213Compile options: caseless 4214Overall options: anchored caseless 4215Subject length lower bound = 0 4216 1221 4217 0: 1221 4218 1: 1221 4219 2: 1 4220 Satan, oscillate my metallic sonatas! 4221 0: Satan, oscillate my metallic sonatas! 4222 1: <unset> 4223 2: <unset> 4224 3: Satan, oscillate my metallic sonatas 4225 4: S 4226 A man, a plan, a canal: Panama! 4227 0: A man, a plan, a canal: Panama! 4228 1: <unset> 4229 2: <unset> 4230 3: A man, a plan, a canal: Panama 4231 4: A 4232 Able was I ere I saw Elba. 4233 0: Able was I ere I saw Elba. 4234 1: <unset> 4235 2: <unset> 4236 3: Able was I ere I saw Elba 4237 4: A 4238\= Expect no match 4239 The quick brown fox 4240No match 4241 4242/((?(R)a|b))\1(?1)?/I 4243Capturing subpattern count = 1 4244Max back reference = 1 4245Subject length lower bound = 2 4246 bb 4247 0: bb 4248 1: b 4249 bbaa 4250 0: bba 4251 1: b 4252 4253/(.*)a/Is 4254Capturing subpattern count = 1 4255Compile options: dotall 4256Overall options: anchored dotall 4257Last code unit = 'a' 4258Subject length lower bound = 1 4259 4260/(.*)a\1/Is 4261Capturing subpattern count = 1 4262Max back reference = 1 4263Options: dotall 4264Last code unit = 'a' 4265Subject length lower bound = 1 4266 4267/(.*)a(b)\2/Is 4268Capturing subpattern count = 2 4269Max back reference = 2 4270Compile options: dotall 4271Overall options: anchored dotall 4272Last code unit = 'b' 4273Subject length lower bound = 3 4274 4275/((.*)a|(.*)b)z/Is 4276Capturing subpattern count = 3 4277Compile options: dotall 4278Overall options: anchored dotall 4279Last code unit = 'z' 4280Subject length lower bound = 2 4281 4282/((.*)a|(.*)b)z\1/Is 4283Capturing subpattern count = 3 4284Max back reference = 1 4285Options: dotall 4286Last code unit = 'z' 4287Subject length lower bound = 3 4288 4289/((.*)a|(.*)b)z\2/Is 4290Capturing subpattern count = 3 4291Max back reference = 2 4292Options: dotall 4293Last code unit = 'z' 4294Subject length lower bound = 2 4295 4296/((.*)a|(.*)b)z\3/Is 4297Capturing subpattern count = 3 4298Max back reference = 3 4299Options: dotall 4300Last code unit = 'z' 4301Subject length lower bound = 2 4302 4303/((.*)a|^(.*)b)z\3/Is 4304Capturing subpattern count = 3 4305Max back reference = 3 4306Compile options: dotall 4307Overall options: anchored dotall 4308Last code unit = 'z' 4309Subject length lower bound = 2 4310 4311/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is 4312Capturing subpattern count = 31 4313May match empty string 4314Compile options: dotall 4315Overall options: anchored dotall 4316Subject length lower bound = 0 4317 4318/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is 4319Capturing subpattern count = 31 4320Max back reference = 31 4321May match empty string 4322Options: dotall 4323Subject length lower bound = 0 4324 4325/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is 4326Capturing subpattern count = 32 4327Max back reference = 32 4328May match empty string 4329Options: dotall 4330Subject length lower bound = 0 4331 4332/(a)(bc)/IB,no_auto_capture 4333------------------------------------------------------------------ 4334 Bra 4335 Bra 4336 a 4337 Ket 4338 Bra 4339 bc 4340 Ket 4341 Ket 4342 End 4343------------------------------------------------------------------ 4344Capturing subpattern count = 0 4345Options: no_auto_capture 4346First code unit = 'a' 4347Last code unit = 'c' 4348Subject length lower bound = 3 4349 abc 4350 0: abc 4351 4352/(?P<one>a)(bc)/IB,no_auto_capture 4353------------------------------------------------------------------ 4354 Bra 4355 CBra 1 4356 a 4357 Ket 4358 Bra 4359 bc 4360 Ket 4361 Ket 4362 End 4363------------------------------------------------------------------ 4364Capturing subpattern count = 1 4365Named capturing subpatterns: 4366 one 1 4367Options: no_auto_capture 4368First code unit = 'a' 4369Last code unit = 'c' 4370Subject length lower bound = 3 4371 abc 4372 0: abc 4373 1: a 4374 4375/(a)(?P<named>bc)/IB,no_auto_capture 4376------------------------------------------------------------------ 4377 Bra 4378 Bra 4379 a 4380 Ket 4381 CBra 1 4382 bc 4383 Ket 4384 Ket 4385 End 4386------------------------------------------------------------------ 4387Capturing subpattern count = 1 4388Named capturing subpatterns: 4389 named 1 4390Options: no_auto_capture 4391First code unit = 'a' 4392Last code unit = 'c' 4393Subject length lower bound = 3 4394 4395/(aaa(?C1)bbb|ab)/I 4396Capturing subpattern count = 1 4397First code unit = 'a' 4398Last code unit = 'b' 4399Subject length lower bound = 2 4400 aaabbb 4401--->aaabbb 4402 1 ^ ^ b 4403 0: aaabbb 4404 1: aaabbb 4405 aaabbb\=callout_data=0 4406--->aaabbb 4407 1 ^ ^ b 4408 0: aaabbb 4409 1: aaabbb 4410 aaabbb\=callout_data=1 4411--->aaabbb 4412 1 ^ ^ b 4413Callout data = 1 4414 0: ab 4415 1: ab 4416\= Expect no match 4417 aaabbb\=callout_data=-1 4418--->aaabbb 4419 1 ^ ^ b 4420Callout data = -1 4421No match 4422 4423/ab(?P<one>cd)ef(?P<two>gh)/I 4424Capturing subpattern count = 2 4425Named capturing subpatterns: 4426 one 1 4427 two 2 4428First code unit = 'a' 4429Last code unit = 'h' 4430Subject length lower bound = 8 4431 abcdefgh 4432 0: abcdefgh 4433 1: cd 4434 2: gh 4435 abcdefgh\=copy=1,get=two 4436 0: abcdefgh 4437 1: cd 4438 2: gh 4439 1C cd (2) 4440 G gh (2) two (group 2) 4441 abcdefgh\=copy=one,copy=two 4442 0: abcdefgh 4443 1: cd 4444 2: gh 4445 C cd (2) one (group 1) 4446 C gh (2) two (group 2) 4447 abcdefgh\=copy=three 4448 0: abcdefgh 4449 1: cd 4450 2: gh 4451Number not found for group 'three' 4452Copy substring 'three' failed (-49): unknown substring 4453 4454/(?P<Tes>)(?P<Test>)/IB 4455------------------------------------------------------------------ 4456 Bra 4457 CBra 1 4458 Ket 4459 CBra 2 4460 Ket 4461 Ket 4462 End 4463------------------------------------------------------------------ 4464Capturing subpattern count = 2 4465Named capturing subpatterns: 4466 Tes 1 4467 Test 2 4468May match empty string 4469Subject length lower bound = 0 4470 4471/(?P<Test>)(?P<Tes>)/IB 4472------------------------------------------------------------------ 4473 Bra 4474 CBra 1 4475 Ket 4476 CBra 2 4477 Ket 4478 Ket 4479 End 4480------------------------------------------------------------------ 4481Capturing subpattern count = 2 4482Named capturing subpatterns: 4483 Tes 2 4484 Test 1 4485May match empty string 4486Subject length lower bound = 0 4487 4488/(?P<Z>zz)(?P<A>aa)/I 4489Capturing subpattern count = 2 4490Named capturing subpatterns: 4491 A 2 4492 Z 1 4493First code unit = 'z' 4494Last code unit = 'a' 4495Subject length lower bound = 4 4496 zzaa\=copy=Z 4497 0: zzaa 4498 1: zz 4499 2: aa 4500 C zz (2) Z (group 1) 4501 zzaa\=copy=A 4502 0: zzaa 4503 1: zz 4504 2: aa 4505 C aa (2) A (group 2) 4506 4507/(?P<x>eks)(?P<x>eccs)/I 4508Failed: error 143 at offset 16: two named subpatterns have the same name (PCRE2_DUPNAMES not set) 4509 4510/(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I 4511Failed: error 143 at offset 31: two named subpatterns have the same name (PCRE2_DUPNAMES not set) 4512 4513"\[((?P<elem>\d+)(,(?P>elem))*)\]"I 4514Capturing subpattern count = 3 4515Named capturing subpatterns: 4516 elem 2 4517First code unit = '[' 4518Last code unit = ']' 4519Subject length lower bound = 3 4520 [10,20,30,5,5,4,4,2,43,23,4234] 4521 0: [10,20,30,5,5,4,4,2,43,23,4234] 4522 1: 10,20,30,5,5,4,4,2,43,23,4234 4523 2: 10 4524 3: ,4234 4525\= Expect no match 4526 [] 4527No match 4528 4529"\[((?P<elem>\d+)(,(?P>elem))*)?\]"I 4530Capturing subpattern count = 3 4531Named capturing subpatterns: 4532 elem 2 4533First code unit = '[' 4534Last code unit = ']' 4535Subject length lower bound = 2 4536 [10,20,30,5,5,4,4,2,43,23,4234] 4537 0: [10,20,30,5,5,4,4,2,43,23,4234] 4538 1: 10,20,30,5,5,4,4,2,43,23,4234 4539 2: 10 4540 3: ,4234 4541 [] 4542 0: [] 4543 4544/(a(b(?2)c))?/IB 4545------------------------------------------------------------------ 4546 Bra 4547 Brazero 4548 CBra 1 4549 a 4550 CBra 2 4551 b 4552 Recurse 4553 c 4554 Ket 4555 Ket 4556 Ket 4557 End 4558------------------------------------------------------------------ 4559Capturing subpattern count = 2 4560May match empty string 4561Subject length lower bound = 0 4562 4563/(a(b(?2)c))*/IB 4564------------------------------------------------------------------ 4565 Bra 4566 Brazero 4567 CBra 1 4568 a 4569 CBra 2 4570 b 4571 Recurse 4572 c 4573 Ket 4574 KetRmax 4575 Ket 4576 End 4577------------------------------------------------------------------ 4578Capturing subpattern count = 2 4579May match empty string 4580Subject length lower bound = 0 4581 4582/(a(b(?2)c)){0,2}/IB 4583------------------------------------------------------------------ 4584 Bra 4585 Brazero 4586 Bra 4587 CBra 1 4588 a 4589 CBra 2 4590 b 4591 Recurse 4592 c 4593 Ket 4594 Ket 4595 Brazero 4596 CBra 1 4597 a 4598 CBra 2 4599 b 4600 Recurse 4601 c 4602 Ket 4603 Ket 4604 Ket 4605 Ket 4606 End 4607------------------------------------------------------------------ 4608Capturing subpattern count = 2 4609May match empty string 4610Subject length lower bound = 0 4611 4612/[ab]{1}+/B 4613------------------------------------------------------------------ 4614 Bra 4615 [ab] 4616 Ket 4617 End 4618------------------------------------------------------------------ 4619 4620/()(?1){1}/B 4621------------------------------------------------------------------ 4622 Bra 4623 CBra 1 4624 Ket 4625 Recurse 4626 Ket 4627 End 4628------------------------------------------------------------------ 4629 4630/()(?1)/B 4631------------------------------------------------------------------ 4632 Bra 4633 CBra 1 4634 Ket 4635 Recurse 4636 Ket 4637 End 4638------------------------------------------------------------------ 4639 4640/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii 4641Capturing subpattern count = 3 4642Options: caseless 4643Last code unit = 'g' (caseless) 4644Subject length lower bound = 8 4645 Baby Bjorn Active Carrier - With free SHIPPING!! 4646 0: Baby Bjorn Active Carrier - With free SHIPPING!! 4647 1: Baby Bjorn Active Carrier - With free SHIPPING!! 4648 4649/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii 4650Capturing subpattern count = 3 4651Options: caseless 4652Last code unit = 'g' (caseless) 4653Subject length lower bound = 8 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/IB 4659------------------------------------------------------------------ 4660 Bra 4661 a* 4662 Any* 4663 b 4664 Ket 4665 End 4666------------------------------------------------------------------ 4667Capturing subpattern count = 0 4668Last code unit = 'b' 4669Subject length lower bound = 1 4670 4671/(a|b)*.?c/IB 4672------------------------------------------------------------------ 4673 Bra 4674 Brazero 4675 CBra 1 4676 a 4677 Alt 4678 b 4679 KetRmax 4680 Any? 4681 c 4682 Ket 4683 End 4684------------------------------------------------------------------ 4685Capturing subpattern count = 1 4686Last code unit = 'c' 4687Subject length lower bound = 1 4688 4689/abc(?C255)de(?C)f/IB 4690------------------------------------------------------------------ 4691 Bra 4692 abc 4693 Callout 255 10 1 4694 de 4695 Callout 0 16 1 4696 f 4697 Ket 4698 End 4699------------------------------------------------------------------ 4700Capturing subpattern count = 0 4701First code unit = 'a' 4702Last code unit = 'f' 4703Subject length lower bound = 6 4704 4705/abcde/IB,auto_callout 4706------------------------------------------------------------------ 4707 Bra 4708 Callout 255 0 1 4709 a 4710 Callout 255 1 1 4711 b 4712 Callout 255 2 1 4713 c 4714 Callout 255 3 1 4715 d 4716 Callout 255 4 1 4717 e 4718 Callout 255 5 0 4719 Ket 4720 End 4721------------------------------------------------------------------ 4722Capturing subpattern count = 0 4723Options: auto_callout 4724First code unit = 'a' 4725Last code unit = 'e' 4726Subject length lower bound = 5 4727 abcde 4728--->abcde 4729 +0 ^ a 4730 +1 ^^ b 4731 +2 ^ ^ c 4732 +3 ^ ^ d 4733 +4 ^ ^ e 4734 +5 ^ ^ End of pattern 4735 0: abcde 4736\= Expect no match 4737 abcdfe 4738--->abcdfe 4739 +0 ^ a 4740 +1 ^^ b 4741 +2 ^ ^ c 4742 +3 ^ ^ d 4743 +4 ^ ^ e 4744No match 4745 4746/a*b/IB,auto_callout 4747------------------------------------------------------------------ 4748 Bra 4749 Callout 255 0 2 4750 a*+ 4751 Callout 255 2 1 4752 b 4753 Callout 255 3 0 4754 Ket 4755 End 4756------------------------------------------------------------------ 4757Capturing subpattern count = 0 4758Options: auto_callout 4759Starting code units: a b 4760Last code unit = 'b' 4761Subject length lower bound = 1 4762 ab 4763--->ab 4764 +0 ^ a* 4765 +2 ^^ b 4766 +3 ^ ^ End of pattern 4767 0: ab 4768 aaaab 4769--->aaaab 4770 +0 ^ a* 4771 +2 ^ ^ b 4772 +3 ^ ^ End of pattern 4773 0: aaaab 4774 aaaacb 4775--->aaaacb 4776 +0 ^ a* 4777 +2 ^ ^ b 4778 +0 ^ a* 4779 +2 ^ ^ b 4780 +0 ^ a* 4781 +2 ^ ^ b 4782 +0 ^ a* 4783 +2 ^^ b 4784 +0 ^ a* 4785 +2 ^ b 4786 +3 ^^ End of pattern 4787 0: b 4788 4789/a*b/IB,auto_callout 4790------------------------------------------------------------------ 4791 Bra 4792 Callout 255 0 2 4793 a*+ 4794 Callout 255 2 1 4795 b 4796 Callout 255 3 0 4797 Ket 4798 End 4799------------------------------------------------------------------ 4800Capturing subpattern count = 0 4801Options: auto_callout 4802Starting code units: a b 4803Last code unit = 'b' 4804Subject length lower bound = 1 4805 ab 4806--->ab 4807 +0 ^ a* 4808 +2 ^^ b 4809 +3 ^ ^ End of pattern 4810 0: ab 4811 aaaab 4812--->aaaab 4813 +0 ^ a* 4814 +2 ^ ^ b 4815 +3 ^ ^ End of pattern 4816 0: aaaab 4817 aaaacb 4818--->aaaacb 4819 +0 ^ a* 4820 +2 ^ ^ b 4821 +0 ^ a* 4822 +2 ^ ^ b 4823 +0 ^ a* 4824 +2 ^ ^ b 4825 +0 ^ a* 4826 +2 ^^ b 4827 +0 ^ a* 4828 +2 ^ b 4829 +3 ^^ End of pattern 4830 0: b 4831 4832/a+b/IB,auto_callout 4833------------------------------------------------------------------ 4834 Bra 4835 Callout 255 0 2 4836 a++ 4837 Callout 255 2 1 4838 b 4839 Callout 255 3 0 4840 Ket 4841 End 4842------------------------------------------------------------------ 4843Capturing subpattern count = 0 4844Options: auto_callout 4845First code unit = 'a' 4846Last code unit = 'b' 4847Subject length lower bound = 2 4848 ab 4849--->ab 4850 +0 ^ a+ 4851 +2 ^^ b 4852 +3 ^ ^ End of pattern 4853 0: ab 4854 aaaab 4855--->aaaab 4856 +0 ^ a+ 4857 +2 ^ ^ b 4858 +3 ^ ^ End of pattern 4859 0: aaaab 4860\= Expect no match 4861 aaaacb 4862--->aaaacb 4863 +0 ^ a+ 4864 +2 ^ ^ b 4865 +0 ^ a+ 4866 +2 ^ ^ b 4867 +0 ^ a+ 4868 +2 ^ ^ b 4869 +0 ^ a+ 4870 +2 ^^ b 4871No match 4872 4873/(abc|def)x/IB,auto_callout 4874------------------------------------------------------------------ 4875 Bra 4876 Callout 255 0 1 4877 CBra 1 4878 Callout 255 1 1 4879 a 4880 Callout 255 2 1 4881 b 4882 Callout 255 3 1 4883 c 4884 Callout 255 4 1 4885 Alt 4886 Callout 255 5 1 4887 d 4888 Callout 255 6 1 4889 e 4890 Callout 255 7 1 4891 f 4892 Callout 255 8 1 4893 Ket 4894 Callout 255 9 1 4895 x 4896 Callout 255 10 0 4897 Ket 4898 End 4899------------------------------------------------------------------ 4900Capturing subpattern count = 1 4901Options: auto_callout 4902Starting code units: a d 4903Last code unit = 'x' 4904Subject length lower bound = 4 4905 abcx 4906--->abcx 4907 +0 ^ ( 4908 +1 ^ a 4909 +2 ^^ b 4910 +3 ^ ^ c 4911 +4 ^ ^ | 4912 +9 ^ ^ x 4913+10 ^ ^ End of pattern 4914 0: abcx 4915 1: abc 4916 defx 4917--->defx 4918 +0 ^ ( 4919 +1 ^ a 4920 +5 ^ d 4921 +6 ^^ e 4922 +7 ^ ^ f 4923 +8 ^ ^ ) 4924 +9 ^ ^ x 4925+10 ^ ^ End of pattern 4926 0: defx 4927 1: def 4928\= Expect no match 4929 abcdefzx 4930--->abcdefzx 4931 +0 ^ ( 4932 +1 ^ a 4933 +2 ^^ b 4934 +3 ^ ^ c 4935 +4 ^ ^ | 4936 +9 ^ ^ x 4937 +5 ^ d 4938 +0 ^ ( 4939 +1 ^ a 4940 +5 ^ d 4941 +6 ^^ e 4942 +7 ^ ^ f 4943 +8 ^ ^ ) 4944 +9 ^ ^ x 4945No match 4946 4947/(abc|def)x/IB,auto_callout 4948------------------------------------------------------------------ 4949 Bra 4950 Callout 255 0 1 4951 CBra 1 4952 Callout 255 1 1 4953 a 4954 Callout 255 2 1 4955 b 4956 Callout 255 3 1 4957 c 4958 Callout 255 4 1 4959 Alt 4960 Callout 255 5 1 4961 d 4962 Callout 255 6 1 4963 e 4964 Callout 255 7 1 4965 f 4966 Callout 255 8 1 4967 Ket 4968 Callout 255 9 1 4969 x 4970 Callout 255 10 0 4971 Ket 4972 End 4973------------------------------------------------------------------ 4974Capturing subpattern count = 1 4975Options: auto_callout 4976Starting code units: a d 4977Last code unit = 'x' 4978Subject length lower bound = 4 4979 abcx 4980--->abcx 4981 +0 ^ ( 4982 +1 ^ a 4983 +2 ^^ b 4984 +3 ^ ^ c 4985 +4 ^ ^ | 4986 +9 ^ ^ x 4987+10 ^ ^ End of pattern 4988 0: abcx 4989 1: abc 4990 defx 4991--->defx 4992 +0 ^ ( 4993 +1 ^ a 4994 +5 ^ d 4995 +6 ^^ e 4996 +7 ^ ^ f 4997 +8 ^ ^ ) 4998 +9 ^ ^ x 4999+10 ^ ^ End of pattern 5000 0: defx 5001 1: def 5002\= Expect no match 5003 abcdefzx 5004--->abcdefzx 5005 +0 ^ ( 5006 +1 ^ a 5007 +2 ^^ b 5008 +3 ^ ^ c 5009 +4 ^ ^ | 5010 +9 ^ ^ x 5011 +5 ^ d 5012 +0 ^ ( 5013 +1 ^ a 5014 +5 ^ d 5015 +6 ^^ e 5016 +7 ^ ^ f 5017 +8 ^ ^ ) 5018 +9 ^ ^ x 5019No match 5020 5021/(ab|cd){3,4}/I,auto_callout 5022Capturing subpattern count = 1 5023Options: auto_callout 5024Starting code units: a c 5025Subject length lower bound = 6 5026 ababab 5027--->ababab 5028 +0 ^ ( 5029 +1 ^ a 5030 +2 ^^ b 5031 +3 ^ ^ | 5032 +1 ^ ^ a 5033 +2 ^ ^ b 5034 +3 ^ ^ | 5035 +1 ^ ^ a 5036 +2 ^ ^ b 5037 +3 ^ ^ | 5038 +1 ^ ^ a 5039 +4 ^ ^ c 5040+12 ^ ^ End of pattern 5041 0: ababab 5042 1: ab 5043 abcdabcd 5044--->abcdabcd 5045 +0 ^ ( 5046 +1 ^ a 5047 +2 ^^ b 5048 +3 ^ ^ | 5049 +1 ^ ^ a 5050 +4 ^ ^ c 5051 +5 ^ ^ d 5052 +6 ^ ^ ){3,4} 5053 +1 ^ ^ a 5054 +2 ^ ^ b 5055 +3 ^ ^ | 5056 +1 ^ ^ a 5057 +4 ^ ^ c 5058 +5 ^ ^ d 5059 +6 ^ ^ ){3,4} 5060+12 ^ ^ End of pattern 5061 0: abcdabcd 5062 1: cd 5063 abcdcdcdcdcd 5064--->abcdcdcdcdcd 5065 +0 ^ ( 5066 +1 ^ a 5067 +2 ^^ b 5068 +3 ^ ^ | 5069 +1 ^ ^ a 5070 +4 ^ ^ c 5071 +5 ^ ^ d 5072 +6 ^ ^ ){3,4} 5073 +1 ^ ^ a 5074 +4 ^ ^ c 5075 +5 ^ ^ d 5076 +6 ^ ^ ){3,4} 5077 +1 ^ ^ a 5078 +4 ^ ^ c 5079 +5 ^ ^ d 5080 +6 ^ ^ ){3,4} 5081+12 ^ ^ End of pattern 5082 0: abcdcdcd 5083 1: cd 5084 5085/([ab]{,4}c|xy)/IB,auto_callout 5086------------------------------------------------------------------ 5087 Bra 5088 Callout 255 0 1 5089 CBra 1 5090 Callout 255 1 4 5091 [ab] 5092 Callout 255 5 1 5093 { 5094 Callout 255 6 1 5095 , 5096 Callout 255 7 1 5097 4 5098 Callout 255 8 1 5099 } 5100 Callout 255 9 1 5101 c 5102 Callout 255 10 1 5103 Alt 5104 Callout 255 11 1 5105 x 5106 Callout 255 12 1 5107 y 5108 Callout 255 13 1 5109 Ket 5110 Callout 255 14 0 5111 Ket 5112 End 5113------------------------------------------------------------------ 5114Capturing subpattern count = 1 5115Options: auto_callout 5116Starting code units: a b x 5117Subject length lower bound = 2 5118\= Expect no match 5119 Note: that { does NOT introduce a quantifier 5120--->Note: that { does NOT introduce a quantifier 5121 +0 ^ ( 5122 +1 ^ [ab] 5123 +5 ^^ { 5124+11 ^ x 5125 +0 ^ ( 5126 +1 ^ [ab] 5127 +5 ^^ { 5128+11 ^ x 5129 +0 ^ ( 5130 +1 ^ [ab] 5131 +5 ^^ { 5132+11 ^ x 5133No match 5134 5135/([ab]{,4}c|xy)/IB,auto_callout 5136------------------------------------------------------------------ 5137 Bra 5138 Callout 255 0 1 5139 CBra 1 5140 Callout 255 1 4 5141 [ab] 5142 Callout 255 5 1 5143 { 5144 Callout 255 6 1 5145 , 5146 Callout 255 7 1 5147 4 5148 Callout 255 8 1 5149 } 5150 Callout 255 9 1 5151 c 5152 Callout 255 10 1 5153 Alt 5154 Callout 255 11 1 5155 x 5156 Callout 255 12 1 5157 y 5158 Callout 255 13 1 5159 Ket 5160 Callout 255 14 0 5161 Ket 5162 End 5163------------------------------------------------------------------ 5164Capturing subpattern count = 1 5165Options: auto_callout 5166Starting code units: a b x 5167Subject length lower bound = 2 5168\= Expect no match 5169 Note: that { does NOT introduce a quantifier 5170--->Note: that { does NOT introduce a quantifier 5171 +0 ^ ( 5172 +1 ^ [ab] 5173 +5 ^^ { 5174+11 ^ x 5175 +0 ^ ( 5176 +1 ^ [ab] 5177 +5 ^^ { 5178+11 ^ x 5179 +0 ^ ( 5180 +1 ^ [ab] 5181 +5 ^^ { 5182+11 ^ x 5183No match 5184 5185/([ab]{1,4}c|xy){4,5}?123/IB,auto_callout 5186------------------------------------------------------------------ 5187 Bra 5188 Callout 255 0 1 5189 CBra 1 5190 Callout 255 1 9 5191 [ab]{1,4}+ 5192 Callout 255 10 1 5193 c 5194 Callout 255 11 1 5195 Alt 5196 Callout 255 12 1 5197 x 5198 Callout 255 13 1 5199 y 5200 Callout 255 14 7 5201 Ket 5202 CBra 1 5203 Callout 255 1 9 5204 [ab]{1,4}+ 5205 Callout 255 10 1 5206 c 5207 Callout 255 11 1 5208 Alt 5209 Callout 255 12 1 5210 x 5211 Callout 255 13 1 5212 y 5213 Callout 255 14 7 5214 Ket 5215 CBra 1 5216 Callout 255 1 9 5217 [ab]{1,4}+ 5218 Callout 255 10 1 5219 c 5220 Callout 255 11 1 5221 Alt 5222 Callout 255 12 1 5223 x 5224 Callout 255 13 1 5225 y 5226 Callout 255 14 7 5227 Ket 5228 CBra 1 5229 Callout 255 1 9 5230 [ab]{1,4}+ 5231 Callout 255 10 1 5232 c 5233 Callout 255 11 1 5234 Alt 5235 Callout 255 12 1 5236 x 5237 Callout 255 13 1 5238 y 5239 Callout 255 14 7 5240 Ket 5241 Braminzero 5242 CBra 1 5243 Callout 255 1 9 5244 [ab]{1,4}+ 5245 Callout 255 10 1 5246 c 5247 Callout 255 11 1 5248 Alt 5249 Callout 255 12 1 5250 x 5251 Callout 255 13 1 5252 y 5253 Callout 255 14 7 5254 Ket 5255 Callout 255 21 1 5256 1 5257 Callout 255 22 1 5258 2 5259 Callout 255 23 1 5260 3 5261 Callout 255 24 0 5262 Ket 5263 End 5264------------------------------------------------------------------ 5265Capturing subpattern count = 1 5266Options: auto_callout 5267Starting code units: a b x 5268Last code unit = '3' 5269Subject length lower bound = 11 5270 aacaacaacaacaac123 5271--->aacaacaacaacaac123 5272 +0 ^ ( 5273 +1 ^ [ab]{1,4} 5274+10 ^ ^ c 5275+11 ^ ^ | 5276 +1 ^ ^ [ab]{1,4} 5277+10 ^ ^ c 5278+11 ^ ^ | 5279 +1 ^ ^ [ab]{1,4} 5280+10 ^ ^ c 5281+11 ^ ^ | 5282 +1 ^ ^ [ab]{1,4} 5283+10 ^ ^ c 5284+11 ^ ^ | 5285+21 ^ ^ 1 5286 +1 ^ ^ [ab]{1,4} 5287+10 ^ ^ c 5288+11 ^ ^ | 5289+21 ^ ^ 1 5290+22 ^ ^ 2 5291+23 ^ ^ 3 5292+24 ^ ^ End of pattern 5293 0: aacaacaacaacaac123 5294 1: aac 5295 5296/\b.*/I 5297Capturing subpattern count = 0 5298Max lookbehind = 1 5299May match empty string 5300Subject length lower bound = 0 5301 ab cd\=offset=1 5302 0: cd 5303 5304/\b.*/Is 5305Capturing subpattern count = 0 5306Max lookbehind = 1 5307May match empty string 5308Options: dotall 5309Subject length lower bound = 0 5310 ab cd\=startoffset=1 5311 0: cd 5312 5313/(?!.bcd).*/I 5314Capturing subpattern count = 0 5315May match empty string 5316Subject length lower bound = 0 5317 Xbcd12345 5318 0: bcd12345 5319 5320/abcde/I 5321Capturing subpattern count = 0 5322First code unit = 'a' 5323Last code unit = 'e' 5324Subject length lower bound = 5 5325 ab\=ps 5326Partial match: ab 5327 abc\=ps 5328Partial match: abc 5329 abcd\=ps 5330Partial match: abcd 5331 abcde\=ps 5332 0: abcde 5333 the quick brown abc\=ps 5334Partial match: abc 5335\= Expect no match\=ps 5336 the quick brown abxyz fox\=ps 5337No match 5338 5339"^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I 5340Capturing subpattern count = 3 5341Compile options: <none> 5342Overall options: anchored 5343Starting code units: 0 1 2 3 4 5 6 7 8 9 5344Last code unit = '/' 5345Subject length lower bound = 6 5346 13/05/04\=ps 5347 0: 13/05/04 5348 1: 13 5349 2: 05 5350 13/5/2004\=ps 5351 0: 13/5/2004 5352 1: 13 5353 2: 5 5354 3: 20 5355 02/05/09\=ps 5356 0: 02/05/09 5357 1: 02 5358 2: 05 5359 1\=ps 5360Partial match: 1 5361 1/2\=ps 5362Partial match: 1/2 5363 1/2/0\=ps 5364Partial match: 1/2/0 5365 1/2/04\=ps 5366 0: 1/2/04 5367 1: 1 5368 2: 2 5369 0\=ps 5370Partial match: 0 5371 02/\=ps 5372Partial match: 02/ 5373 02/0\=ps 5374Partial match: 02/0 5375 02/1\=ps 5376Partial match: 02/1 5377\= Expect no match\=ps 5378 \=ps 5379No match 5380 123\=ps 5381No match 5382 33/4/04\=ps 5383No match 5384 3/13/04\=ps 5385No match 5386 0/1/2003\=ps 5387No match 5388 0/\=ps 5389No match 5390 02/0/\=ps 5391No match 5392 02/13\=ps 5393No match 5394 5395/0{0,2}ABC/I 5396Capturing subpattern count = 0 5397Starting code units: 0 A 5398Last code unit = 'C' 5399Subject length lower bound = 3 5400 5401/\d{3,}ABC/I 5402Capturing subpattern count = 0 5403Starting code units: 0 1 2 3 4 5 6 7 8 9 5404Last code unit = 'C' 5405Subject length lower bound = 6 5406 5407/\d*ABC/I 5408Capturing subpattern count = 0 5409Starting code units: 0 1 2 3 4 5 6 7 8 9 A 5410Last code unit = 'C' 5411Subject length lower bound = 3 5412 5413/[abc]+DE/I 5414Capturing subpattern count = 0 5415Starting code units: a b c 5416Last code unit = 'E' 5417Subject length lower bound = 3 5418 5419/[abc]?123/I 5420Capturing subpattern count = 0 5421Starting code units: 1 a b c 5422Last code unit = '3' 5423Subject length lower bound = 3 5424 123\=ps 5425 0: 123 5426 a\=ps 5427Partial match: a 5428 b\=ps 5429Partial match: b 5430 c\=ps 5431Partial match: c 5432 c12\=ps 5433Partial match: c12 5434 c123\=ps 5435 0: c123 5436 5437/^(?:\d){3,5}X/I 5438Capturing subpattern count = 0 5439Compile options: <none> 5440Overall options: anchored 5441Starting code units: 0 1 2 3 4 5 6 7 8 9 5442Last code unit = 'X' 5443Subject length lower bound = 4 5444 1\=ps 5445Partial match: 1 5446 123\=ps 5447Partial match: 123 5448 123X 5449 0: 123X 5450 1234\=ps 5451Partial match: 1234 5452 1234X 5453 0: 1234X 5454 12345\=ps 5455Partial match: 12345 5456 12345X 5457 0: 12345X 5458\= Expect no match 5459 1X 5460No match 5461 123456\=ps 5462No match 5463 5464"<(\w+)/?>(.)*</(\1)>"Igms 5465Capturing subpattern count = 3 5466Max back reference = 1 5467Options: dotall multiline 5468First code unit = '<' 5469Last code unit = '>' 5470Subject length lower bound = 7 5471 <!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>\=jitstack=1024 5472 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> 5473 1: seite 5474 2: \x0a 5475 3: seite 5476 5477/line\nbreak/I 5478Capturing subpattern count = 0 5479Contains explicit CR or LF match 5480First code unit = 'l' 5481Last code unit = 'k' 5482Subject length lower bound = 10 5483 this is a line\nbreak 5484 0: line\x0abreak 5485 line one\nthis is a line\nbreak in the second line 5486 0: line\x0abreak 5487 5488/line\nbreak/I,firstline 5489Capturing subpattern count = 0 5490Contains explicit CR or LF match 5491Options: firstline 5492First code unit = 'l' 5493Last code unit = 'k' 5494Subject length lower bound = 10 5495 this is a line\nbreak 5496 0: line\x0abreak 5497\= Expect no match 5498 line one\nthis is a line\nbreak in the second line 5499No match 5500 5501/line\nbreak/Im,firstline 5502Capturing subpattern count = 0 5503Contains explicit CR or LF match 5504Options: firstline multiline 5505First code unit = 'l' 5506Last code unit = 'k' 5507Subject length lower bound = 10 5508 this is a line\nbreak 5509 0: line\x0abreak 5510\= Expect no match 5511 line one\nthis is a line\nbreak in the second line 5512No match 5513 5514/(?i)(?-i)AbCd/I 5515Capturing subpattern count = 0 5516First code unit = 'A' 5517Last code unit = 'd' 5518Subject length lower bound = 4 5519 AbCd 5520 0: AbCd 5521\= Expect no match 5522 abcd 5523No match 5524 5525/a{11111111111111111111}/I 5526Failed: error 105 at offset 8: number too big in {} quantifier 5527 5528/(){64294967295}/I 5529Failed: error 105 at offset 9: number too big in {} quantifier 5530 5531/(){2,4294967295}/I 5532Failed: error 105 at offset 11: number too big in {} quantifier 5533 5534"(?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 5535Capturing subpattern count = 1 5536Max back reference = 1 5537First code unit = 'a' (caseless) 5538Last code unit = 'B' 5539Subject length lower bound = 15 5540 abcdefghijklAkB 5541 0: abcdefghijklAkB 5542 1: k 5543 5544"(?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 5545Capturing subpattern count = 12 5546Max back reference = 11 5547Named capturing subpatterns: 5548 n0 1 5549 n1 2 5550 n10 11 5551 n11 12 5552 n2 3 5553 n3 4 5554 n4 5 5555 n5 6 5556 n6 7 5557 n7 8 5558 n8 9 5559 n9 10 5560First code unit = 'a' 5561Last code unit = 'B' 5562Subject length lower bound = 15 5563 abcdefghijklAkB 5564 0: abcdefghijklAkB 5565 1: a 5566 2: b 5567 3: c 5568 4: d 5569 5: e 5570 6: f 5571 7: g 5572 8: h 5573 9: i 557410: j 557511: k 557612: l 5577 5578"(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I 5579Capturing subpattern count = 12 5580Max back reference = 11 5581First code unit = 'a' 5582Last code unit = 'B' 5583Subject length lower bound = 15 5584 abcdefghijklAkB 5585 0: abcdefghijklAkB 5586 1: a 5587 2: b 5588 3: c 5589 4: d 5590 5: e 5591 6: f 5592 7: g 5593 8: h 5594 9: i 559510: j 559611: k 559712: l 5598 5599"(?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 5600Capturing subpattern count = 101 5601Named capturing subpatterns: 5602 name0 1 5603 name1 2 5604 name10 11 5605 name100 101 5606 name11 12 5607 name12 13 5608 name13 14 5609 name14 15 5610 name15 16 5611 name16 17 5612 name17 18 5613 name18 19 5614 name19 20 5615 name2 3 5616 name20 21 5617 name21 22 5618 name22 23 5619 name23 24 5620 name24 25 5621 name25 26 5622 name26 27 5623 name27 28 5624 name28 29 5625 name29 30 5626 name3 4 5627 name30 31 5628 name31 32 5629 name32 33 5630 name33 34 5631 name34 35 5632 name35 36 5633 name36 37 5634 name37 38 5635 name38 39 5636 name39 40 5637 name4 5 5638 name40 41 5639 name41 42 5640 name42 43 5641 name43 44 5642 name44 45 5643 name45 46 5644 name46 47 5645 name47 48 5646 name48 49 5647 name49 50 5648 name5 6 5649 name50 51 5650 name51 52 5651 name52 53 5652 name53 54 5653 name54 55 5654 name55 56 5655 name56 57 5656 name57 58 5657 name58 59 5658 name59 60 5659 name6 7 5660 name60 61 5661 name61 62 5662 name62 63 5663 name63 64 5664 name64 65 5665 name65 66 5666 name66 67 5667 name67 68 5668 name68 69 5669 name69 70 5670 name7 8 5671 name70 71 5672 name71 72 5673 name72 73 5674 name73 74 5675 name74 75 5676 name75 76 5677 name76 77 5678 name77 78 5679 name78 79 5680 name79 80 5681 name8 9 5682 name80 81 5683 name81 82 5684 name82 83 5685 name83 84 5686 name84 85 5687 name85 86 5688 name86 87 5689 name87 88 5690 name88 89 5691 name89 90 5692 name9 10 5693 name90 91 5694 name91 92 5695 name92 93 5696 name93 94 5697 name94 95 5698 name95 96 5699 name96 97 5700 name97 98 5701 name98 99 5702 name99 100 5703First code unit = 'a' 5704Last code unit = 'a' 5705Subject length lower bound = 101 5706 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 5707Matched, but too many substrings 5708 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 5709 1: a 5710 2: a 5711 3: a 5712 4: a 5713 5: a 5714 6: a 5715 7: a 5716 8: a 5717 9: a 571810: a 571911: a 572012: a 572113: a 572214: a 5723 5724"(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(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 5725Capturing subpattern count = 101 5726First code unit = 'a' 5727Last code unit = 'a' 5728Subject length lower bound = 101 5729 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 5730Matched, but too many substrings 5731 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 5732 1: a 5733 2: a 5734 3: a 5735 4: a 5736 5: a 5737 6: a 5738 7: a 5739 8: a 5740 9: a 574110: a 574211: a 574312: a 574413: a 574514: a 5746 5747/[^()]*(?:\((?R)\)[^()]*)*/I 5748Capturing subpattern count = 0 5749May match empty string 5750Subject length lower bound = 0 5751 (this(and)that 5752 0: 5753 (this(and)that) 5754 0: (this(and)that) 5755 (this(and)that)stuff 5756 0: (this(and)that)stuff 5757 5758/[^()]*(?:\((?>(?R))\)[^()]*)*/I 5759Capturing subpattern count = 0 5760May match empty string 5761Subject length lower bound = 0 5762 (this(and)that 5763 0: 5764 (this(and)that) 5765 0: (this(and)that) 5766 5767/[^()]*(?:\((?R)\))*[^()]*/I 5768Capturing subpattern count = 0 5769May match empty string 5770Subject length lower bound = 0 5771 (this(and)that 5772 0: 5773 (this(and)that) 5774 0: (this(and)that) 5775 5776/(?:\((?R)\))*[^()]*/I 5777Capturing subpattern count = 0 5778May match empty string 5779Subject length lower bound = 0 5780 (this(and)that 5781 0: 5782 (this(and)that) 5783 0: 5784 ((this)) 5785 0: ((this)) 5786 5787/(?:\((?R)\))|[^()]*/I 5788Capturing subpattern count = 0 5789May match empty string 5790Subject length lower bound = 0 5791 (this(and)that 5792 0: 5793 (this(and)that) 5794 0: 5795 (this) 5796 0: (this) 5797 ((this)) 5798 0: ((this)) 5799 5800/\x{0000ff}/I 5801Capturing subpattern count = 0 5802First code unit = \xff 5803Subject length lower bound = 1 5804 5805/^((?P<A>a1)|(?P<A>a2)b)/I 5806Failed: error 143 at offset 18: two named subpatterns have the same name (PCRE2_DUPNAMES not set) 5807 5808/^((?P<A>a1)|(?P<A>a2)b)/I,dupnames 5809Capturing subpattern count = 3 5810Named capturing subpatterns: 5811 A 2 5812 A 3 5813Compile options: dupnames 5814Overall options: anchored dupnames 5815First code unit = 'a' 5816Subject length lower bound = 2 5817 a1b\=copy=A 5818 0: a1 5819 1: a1 5820 2: a1 5821 C a1 (2) A (non-unique) 5822 a2b\=copy=A 5823 0: a2b 5824 1: a2b 5825 2: <unset> 5826 3: a2 5827 C a2 (2) A (non-unique) 5828 a1b\=copy=Z,copy=A 5829 0: a1 5830 1: a1 5831 2: a1 5832Number not found for group 'Z' 5833Copy substring 'Z' failed (-49): unknown substring 5834 C a1 (2) A (non-unique) 5835 5836/(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/I,dupnames 5837Capturing subpattern count = 3 5838Named capturing subpatterns: 5839 a 1 5840 a 3 5841 b 2 5842May match empty string 5843Options: dupnames 5844Subject length lower bound = 0 5845 5846/^(?P<A>a)(?P<A>b)/I,dupnames 5847Capturing subpattern count = 2 5848Named capturing subpatterns: 5849 A 1 5850 A 2 5851Compile options: dupnames 5852Overall options: anchored dupnames 5853First code unit = 'a' 5854Subject length lower bound = 2 5855 ab\=copy=A 5856 0: ab 5857 1: a 5858 2: b 5859 C a (1) A (non-unique) 5860 5861/^(?P<A>a)(?P<A>b)|cd/I,dupnames 5862Capturing subpattern count = 2 5863Named capturing subpatterns: 5864 A 1 5865 A 2 5866Options: dupnames 5867Starting code units: a c 5868Subject length lower bound = 2 5869 ab\=copy=A 5870 0: ab 5871 1: a 5872 2: b 5873 C a (1) A (non-unique) 5874 cd\=copy=A 5875 0: cd 5876Copy substring 'A' failed (-55): requested value is not set 5877 5878/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/I,dupnames 5879Capturing subpattern count = 4 5880Named capturing subpatterns: 5881 A 1 5882 A 2 5883 A 3 5884 A 4 5885Options: dupnames 5886Starting code units: a c 5887Subject length lower bound = 2 5888 cdefgh\=copy=A 5889 0: cdefgh 5890 1: <unset> 5891 2: <unset> 5892 3: ef 5893 4: gh 5894 C ef (2) A (non-unique) 5895 5896/^((?P<A>a1)|(?P<A>a2)b)/I,dupnames 5897Capturing subpattern count = 3 5898Named capturing subpatterns: 5899 A 2 5900 A 3 5901Compile options: dupnames 5902Overall options: anchored dupnames 5903First code unit = 'a' 5904Subject length lower bound = 2 5905 a1b\=get=A 5906 0: a1 5907 1: a1 5908 2: a1 5909 G a1 (2) A (non-unique) 5910 a2b\=get=A 5911 0: a2b 5912 1: a2b 5913 2: <unset> 5914 3: a2 5915 G a2 (2) A (non-unique) 5916 a1b\=get=Z,get=A 5917 0: a1 5918 1: a1 5919 2: a1 5920Number not found for group 'Z' 5921Get substring 'Z' failed (-49): unknown substring 5922 G a1 (2) A (non-unique) 5923 5924/^(?P<A>a)(?P<A>b)/I,dupnames 5925Capturing subpattern count = 2 5926Named capturing subpatterns: 5927 A 1 5928 A 2 5929Compile options: dupnames 5930Overall options: anchored dupnames 5931First code unit = 'a' 5932Subject length lower bound = 2 5933 ab\=get=A 5934 0: ab 5935 1: a 5936 2: b 5937 G a (1) A (non-unique) 5938 5939/^(?P<A>a)(?P<A>b)|cd/I,dupnames 5940Capturing subpattern count = 2 5941Named capturing subpatterns: 5942 A 1 5943 A 2 5944Options: dupnames 5945Starting code units: a c 5946Subject length lower bound = 2 5947 ab\=get=A 5948 0: ab 5949 1: a 5950 2: b 5951 G a (1) A (non-unique) 5952 cd\=get=A 5953 0: cd 5954Get substring 'A' failed (-55): requested value is not set 5955 5956/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/I,dupnames 5957Capturing subpattern count = 4 5958Named capturing subpatterns: 5959 A 1 5960 A 2 5961 A 3 5962 A 4 5963Options: dupnames 5964Starting code units: a c 5965Subject length lower bound = 2 5966 cdefgh\=get=A 5967 0: cdefgh 5968 1: <unset> 5969 2: <unset> 5970 3: ef 5971 4: gh 5972 G ef (2) A (non-unique) 5973 5974/(?J)^((?P<A>a1)|(?P<A>a2)b)/I 5975Capturing subpattern count = 3 5976Named capturing subpatterns: 5977 A 2 5978 A 3 5979Compile options: <none> 5980Overall options: anchored 5981Duplicate name status changes 5982First code unit = 'a' 5983Subject length lower bound = 2 5984 a1b\=copy=A 5985 0: a1 5986 1: a1 5987 2: a1 5988 C a1 (2) A (non-unique) 5989 a2b\=copy=A 5990 0: a2b 5991 1: a2b 5992 2: <unset> 5993 3: a2 5994 C a2 (2) A (non-unique) 5995 5996/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I 5997Failed: error 143 at offset 38: two named subpatterns have the same name (PCRE2_DUPNAMES not set) 5998 5999# In this next test, J is not set at the outer level; consequently it isn't set 6000# in the pattern's options; consequently pcre2_substring_get_byname() produces 6001# a random value. 6002 6003/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I 6004Capturing subpattern count = 4 6005Named capturing subpatterns: 6006 A 1 6007 B 2 6008 B 3 6009 C 4 6010Compile options: <none> 6011Overall options: anchored 6012Duplicate name status changes 6013First code unit = 'a' 6014Subject length lower bound = 6 6015 a bc d\=copy=A,copy=B,copy=C 6016 0: a bc d 6017 1: a 6018 2: b 6019 3: c 6020 4: d 6021 C a (1) A (group 1) 6022 C b (1) B (non-unique) 6023 C d (1) C (group 4) 6024 6025/^(?P<A>a)?(?(A)a|b)/I 6026Capturing subpattern count = 1 6027Max back reference = 1 6028Named capturing subpatterns: 6029 A 1 6030Compile options: <none> 6031Overall options: anchored 6032Subject length lower bound = 1 6033 aabc 6034 0: aa 6035 1: a 6036 bc 6037 0: b 6038\= Expect no match 6039 abc 6040No match 6041 6042/(?:(?(ZZ)a|b)(?P<ZZ>X))+/I 6043Capturing subpattern count = 1 6044Max back reference = 1 6045Named capturing subpatterns: 6046 ZZ 1 6047Last code unit = 'X' 6048Subject length lower bound = 2 6049 bXaX 6050 0: bXaX 6051 1: X 6052 6053/(?:(?(2y)a|b)(X))+/I 6054Failed: error 124 at offset 7: missing closing parenthesis for condition 6055 6056/(?:(?(ZA)a|b)(?P<ZZ>X))+/I 6057Failed: error 115 at offset 6: reference to non-existent subpattern 6058 6059/(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I 6060Capturing subpattern count = 1 6061Max back reference = 1 6062Named capturing subpatterns: 6063 ZZ 1 6064Last code unit = 'X' 6065Subject length lower bound = 3 6066 bbXaaX 6067 0: bbXaaX 6068 1: X 6069 6070/(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I 6071Capturing subpattern count = 1 6072Max back reference = 1 6073Named capturing subpatterns: 6074 ZZ 1 6075Last code unit = 'X' 6076Subject length lower bound = 3 6077 (b)\\Xa\\X 6078 0: (b)\Xa\X 6079 1: X 6080 6081/(?P<ABC/I 6082Failed: error 142 at offset 7: syntax error in subpattern name (missing terminator) 6083 6084/(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I 6085Capturing subpattern count = 1 6086Max back reference = 1 6087Named capturing subpatterns: 6088 A 1 6089Subject length lower bound = 2 6090 bXXaYYaY 6091 0: bXXaYYaY 6092 1: Y 6093 bXYaXXaX 6094 0: bX 6095 1: X 6096 6097/()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I 6098Capturing subpattern count = 10 6099Max back reference = 10 6100Named capturing subpatterns: 6101 A 10 6102Subject length lower bound = 2 6103 bXXaYYaY 6104 0: bXXaYYaY 6105 1: 6106 2: 6107 3: 6108 4: 6109 5: 6110 6: 6111 7: 6112 8: 6113 9: 611410: Y 6115 6116/\s*,\s*/I 6117Capturing subpattern count = 0 6118Starting code units: \x09 \x0a \x0b \x0c \x0d \x20 , 6119Last code unit = ',' 6120Subject length lower bound = 1 6121 \x0b,\x0b 6122 0: \x0b,\x0b 6123 \x0c,\x0d 6124 0: \x0c,\x0d 6125 6126/^abc/Im,newline=lf 6127Capturing subpattern count = 0 6128Options: multiline 6129Forced newline is LF 6130First code unit at start or follows newline 6131Last code unit = 'c' 6132Subject length lower bound = 3 6133 xyz\nabc 6134 0: abc 6135 xyz\r\nabc 6136 0: abc 6137\= Expect no match 6138 xyz\rabc 6139No match 6140 xyzabc\r 6141No match 6142 xyzabc\rpqr 6143No match 6144 xyzabc\r\n 6145No match 6146 xyzabc\r\npqr 6147No match 6148 6149/^abc/Im,newline=crlf 6150Capturing subpattern count = 0 6151Options: multiline 6152Forced newline is CRLF 6153First code unit at start or follows newline 6154Last code unit = 'c' 6155Subject length lower bound = 3 6156 xyz\r\nabclf> 6157 0: abc 6158\= Expect no match 6159 xyz\nabclf 6160No match 6161 xyz\rabclf 6162No match 6163 6164/^abc/Im,newline=cr 6165Capturing subpattern count = 0 6166Options: multiline 6167Forced newline is CR 6168First code unit at start or follows newline 6169Last code unit = 'c' 6170Subject length lower bound = 3 6171 xyz\rabc 6172 0: abc 6173\= Expect no match 6174 xyz\nabc 6175No match 6176 xyz\r\nabc 6177No match 6178 6179/^abc/Im,newline=bad 6180** Invalid value in 'newline=bad' 6181 6182/.*/I,newline=lf 6183Capturing subpattern count = 0 6184May match empty string 6185Forced newline is LF 6186First code unit at start or follows newline 6187Subject length lower bound = 0 6188 abc\ndef 6189 0: abc 6190 abc\rdef 6191 0: abc\x0ddef 6192 abc\r\ndef 6193 0: abc\x0d 6194 6195/.*/I,newline=cr 6196Capturing subpattern count = 0 6197May match empty string 6198Forced newline is CR 6199First code unit at start or follows newline 6200Subject length lower bound = 0 6201 abc\ndef 6202 0: abc\x0adef 6203 abc\rdef 6204 0: abc 6205 abc\r\ndef 6206 0: abc 6207 6208/.*/I,newline=crlf 6209Capturing subpattern count = 0 6210May match empty string 6211Forced newline is CRLF 6212First code unit at start or follows newline 6213Subject length lower bound = 0 6214 abc\ndef 6215 0: abc\x0adef 6216 abc\rdef 6217 0: abc\x0ddef 6218 abc\r\ndef 6219 0: abc 6220 6221/\w+(.)(.)?def/Is 6222Capturing subpattern count = 2 6223Options: dotall 6224Starting code units: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P 6225 Q R S T U V W X Y Z _ 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 6226Last code unit = 'f' 6227Subject length lower bound = 5 6228 abc\ndef 6229 0: abc\x0adef 6230 1: \x0a 6231 abc\rdef 6232 0: abc\x0ddef 6233 1: \x0d 6234 abc\r\ndef 6235 0: abc\x0d\x0adef 6236 1: \x0d 6237 2: \x0a 6238 6239/(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I 6240Capturing subpattern count = 1 6241Named capturing subpatterns: 6242 B 1 6243Starting code units: 0 1 2 3 4 5 6 7 8 9 6244Last code unit = '.' 6245Subject length lower bound = 7 6246 6247/()()()()()()()()()()()()()()()()()()()() 6248 ()()()()()()()()()()()()()()()()()()()() 6249 ()()()()()()()()()()()()()()()()()()()() 6250 ()()()()()()()()()()()()()()()()()()()() 6251 ()()()()()()()()()()()()()()()()()()()() 6252 (.(.))/Ix 6253Capturing subpattern count = 102 6254Options: extended 6255Subject length lower bound = 2 6256 XY\=ovector=133 6257 0: XY 6258 1: 6259 2: 6260 3: 6261 4: 6262 5: 6263 6: 6264 7: 6265 8: 6266 9: 626710: 626811: 626912: 627013: 627114: 627215: 627316: 627417: 627518: 627619: 627720: 627821: 627922: 628023: 628124: 628225: 628326: 628427: 628528: 628629: 628730: 628831: 628932: 629033: 629134: 629235: 629336: 629437: 629538: 629639: 629740: 629841: 629942: 630043: 630144: 630245: 630346: 630447: 630548: 630649: 630750: 630851: 630952: 631053: 631154: 631255: 631356: 631457: 631558: 631659: 631760: 631861: 631962: 632063: 632164: 632265: 632366: 632467: 632568: 632669: 632770: 632871: 632972: 633073: 633174: 633275: 633376: 633477: 633578: 633679: 633780: 633881: 633982: 634083: 634184: 634285: 634386: 634487: 634588: 634689: 634790: 634891: 634992: 635093: 635194: 635295: 635396: 635497: 635598: 635699: 6357100: 6358101: XY 6359102: Y 6360 6361/(a*b|(?i:c*(?-i)d))/I 6362Capturing subpattern count = 1 6363Starting code units: C a b c d 6364Subject length lower bound = 1 6365 6366/()[ab]xyz/I 6367Capturing subpattern count = 1 6368Starting code units: a b 6369Last code unit = 'z' 6370Subject length lower bound = 4 6371 6372/(|)[ab]xyz/I 6373Capturing subpattern count = 1 6374Starting code units: a b 6375Last code unit = 'z' 6376Subject length lower bound = 4 6377 6378/(|c)[ab]xyz/I 6379Capturing subpattern count = 1 6380Starting code units: a b c 6381Last code unit = 'z' 6382Subject length lower bound = 4 6383 6384/(|c?)[ab]xyz/I 6385Capturing subpattern count = 1 6386Starting code units: a b c 6387Last code unit = 'z' 6388Subject length lower bound = 4 6389 6390/(d?|c?)[ab]xyz/I 6391Capturing subpattern count = 1 6392Starting code units: a b c d 6393Last code unit = 'z' 6394Subject length lower bound = 4 6395 6396/(d?|c)[ab]xyz/I 6397Capturing subpattern count = 1 6398Starting code units: a b c d 6399Last code unit = 'z' 6400Subject length lower bound = 4 6401 6402/^a*b\d/IB 6403------------------------------------------------------------------ 6404 Bra 6405 ^ 6406 a*+ 6407 b 6408 \d 6409 Ket 6410 End 6411------------------------------------------------------------------ 6412Capturing subpattern count = 0 6413Compile options: <none> 6414Overall options: anchored 6415Starting code units: a b 6416Last code unit = 'b' 6417Subject length lower bound = 2 6418 6419/^a*+b\d/IB 6420------------------------------------------------------------------ 6421 Bra 6422 ^ 6423 a*+ 6424 b 6425 \d 6426 Ket 6427 End 6428------------------------------------------------------------------ 6429Capturing subpattern count = 0 6430Compile options: <none> 6431Overall options: anchored 6432Starting code units: a b 6433Last code unit = 'b' 6434Subject length lower bound = 2 6435 6436/^a*?b\d/IB 6437------------------------------------------------------------------ 6438 Bra 6439 ^ 6440 a*+ 6441 b 6442 \d 6443 Ket 6444 End 6445------------------------------------------------------------------ 6446Capturing subpattern count = 0 6447Compile options: <none> 6448Overall options: anchored 6449Starting code units: a b 6450Last code unit = 'b' 6451Subject length lower bound = 2 6452 6453/^a+A\d/IB 6454------------------------------------------------------------------ 6455 Bra 6456 ^ 6457 a++ 6458 A 6459 \d 6460 Ket 6461 End 6462------------------------------------------------------------------ 6463Capturing subpattern count = 0 6464Compile options: <none> 6465Overall options: anchored 6466First code unit = 'a' 6467Last code unit = 'A' 6468Subject length lower bound = 3 6469 aaaA5 6470 0: aaaA5 6471\= Expect no match 6472 aaaa5 6473No match 6474 6475/^a*A\d/IBi 6476------------------------------------------------------------------ 6477 Bra 6478 ^ 6479 /i a* 6480 /i A 6481 \d 6482 Ket 6483 End 6484------------------------------------------------------------------ 6485Capturing subpattern count = 0 6486Compile options: caseless 6487Overall options: anchored caseless 6488Starting code units: A a 6489Last code unit = 'A' (caseless) 6490Subject length lower bound = 2 6491 aaaA5 6492 0: aaaA5 6493 aaaa5 6494 0: aaaa5 6495 6496/(a*|b*)[cd]/I 6497Capturing subpattern count = 1 6498Starting code units: a b c d 6499Subject length lower bound = 1 6500 6501/(a+|b*)[cd]/I 6502Capturing subpattern count = 1 6503Starting code units: a b c d 6504Subject length lower bound = 1 6505 6506/(a*|b+)[cd]/I 6507Capturing subpattern count = 1 6508Starting code units: a b c d 6509Subject length lower bound = 1 6510 6511/(a+|b+)[cd]/I 6512Capturing subpattern count = 1 6513Starting code units: a b 6514Subject length lower bound = 2 6515 6516/(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( 6517 (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( 6518 ((( 6519 a 6520 )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 6521 )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 6522 ))) 6523/Ix 6524Capturing subpattern count = 203 6525Options: extended 6526First code unit = 'a' 6527Subject length lower bound = 1 6528 large nest 6529Matched, but too many substrings 6530 0: a 6531 1: a 6532 2: a 6533 3: a 6534 4: a 6535 5: a 6536 6: a 6537 7: a 6538 8: a 6539 9: a 654010: a 654111: a 654212: a 654313: a 654414: a 6545 6546/a*\d/B 6547------------------------------------------------------------------ 6548 Bra 6549 a*+ 6550 \d 6551 Ket 6552 End 6553------------------------------------------------------------------ 6554 6555/a*\D/B 6556------------------------------------------------------------------ 6557 Bra 6558 a* 6559 \D 6560 Ket 6561 End 6562------------------------------------------------------------------ 6563 6564/0*\d/B 6565------------------------------------------------------------------ 6566 Bra 6567 0* 6568 \d 6569 Ket 6570 End 6571------------------------------------------------------------------ 6572 6573/0*\D/B 6574------------------------------------------------------------------ 6575 Bra 6576 0*+ 6577 \D 6578 Ket 6579 End 6580------------------------------------------------------------------ 6581 6582/a*\s/B 6583------------------------------------------------------------------ 6584 Bra 6585 a*+ 6586 \s 6587 Ket 6588 End 6589------------------------------------------------------------------ 6590 6591/a*\S/B 6592------------------------------------------------------------------ 6593 Bra 6594 a* 6595 \S 6596 Ket 6597 End 6598------------------------------------------------------------------ 6599 6600/ *\s/B 6601------------------------------------------------------------------ 6602 Bra 6603 * 6604 \s 6605 Ket 6606 End 6607------------------------------------------------------------------ 6608 6609/ *\S/B 6610------------------------------------------------------------------ 6611 Bra 6612 *+ 6613 \S 6614 Ket 6615 End 6616------------------------------------------------------------------ 6617 6618/a*\w/B 6619------------------------------------------------------------------ 6620 Bra 6621 a* 6622 \w 6623 Ket 6624 End 6625------------------------------------------------------------------ 6626 6627/a*\W/B 6628------------------------------------------------------------------ 6629 Bra 6630 a*+ 6631 \W 6632 Ket 6633 End 6634------------------------------------------------------------------ 6635 6636/=*\w/B 6637------------------------------------------------------------------ 6638 Bra 6639 =*+ 6640 \w 6641 Ket 6642 End 6643------------------------------------------------------------------ 6644 6645/=*\W/B 6646------------------------------------------------------------------ 6647 Bra 6648 =* 6649 \W 6650 Ket 6651 End 6652------------------------------------------------------------------ 6653 6654/\d*a/B 6655------------------------------------------------------------------ 6656 Bra 6657 \d*+ 6658 a 6659 Ket 6660 End 6661------------------------------------------------------------------ 6662 6663/\d*2/B 6664------------------------------------------------------------------ 6665 Bra 6666 \d* 6667 2 6668 Ket 6669 End 6670------------------------------------------------------------------ 6671 6672/\d*\d/B 6673------------------------------------------------------------------ 6674 Bra 6675 \d* 6676 \d 6677 Ket 6678 End 6679------------------------------------------------------------------ 6680 6681/\d*\D/B 6682------------------------------------------------------------------ 6683 Bra 6684 \d*+ 6685 \D 6686 Ket 6687 End 6688------------------------------------------------------------------ 6689 6690/\d*\s/B 6691------------------------------------------------------------------ 6692 Bra 6693 \d*+ 6694 \s 6695 Ket 6696 End 6697------------------------------------------------------------------ 6698 6699/\d*\S/B 6700------------------------------------------------------------------ 6701 Bra 6702 \d* 6703 \S 6704 Ket 6705 End 6706------------------------------------------------------------------ 6707 6708/\d*\w/B 6709------------------------------------------------------------------ 6710 Bra 6711 \d* 6712 \w 6713 Ket 6714 End 6715------------------------------------------------------------------ 6716 6717/\d*\W/B 6718------------------------------------------------------------------ 6719 Bra 6720 \d*+ 6721 \W 6722 Ket 6723 End 6724------------------------------------------------------------------ 6725 6726/\D*a/B 6727------------------------------------------------------------------ 6728 Bra 6729 \D* 6730 a 6731 Ket 6732 End 6733------------------------------------------------------------------ 6734 6735/\D*2/B 6736------------------------------------------------------------------ 6737 Bra 6738 \D*+ 6739 2 6740 Ket 6741 End 6742------------------------------------------------------------------ 6743 6744/\D*\d/B 6745------------------------------------------------------------------ 6746 Bra 6747 \D*+ 6748 \d 6749 Ket 6750 End 6751------------------------------------------------------------------ 6752 6753/\D*\D/B 6754------------------------------------------------------------------ 6755 Bra 6756 \D* 6757 \D 6758 Ket 6759 End 6760------------------------------------------------------------------ 6761 6762/\D*\s/B 6763------------------------------------------------------------------ 6764 Bra 6765 \D* 6766 \s 6767 Ket 6768 End 6769------------------------------------------------------------------ 6770 6771/\D*\S/B 6772------------------------------------------------------------------ 6773 Bra 6774 \D* 6775 \S 6776 Ket 6777 End 6778------------------------------------------------------------------ 6779 6780/\D*\w/B 6781------------------------------------------------------------------ 6782 Bra 6783 \D* 6784 \w 6785 Ket 6786 End 6787------------------------------------------------------------------ 6788 6789/\D*\W/B 6790------------------------------------------------------------------ 6791 Bra 6792 \D* 6793 \W 6794 Ket 6795 End 6796------------------------------------------------------------------ 6797 6798/\s*a/B 6799------------------------------------------------------------------ 6800 Bra 6801 \s*+ 6802 a 6803 Ket 6804 End 6805------------------------------------------------------------------ 6806 6807/\s*2/B 6808------------------------------------------------------------------ 6809 Bra 6810 \s*+ 6811 2 6812 Ket 6813 End 6814------------------------------------------------------------------ 6815 6816/\s*\d/B 6817------------------------------------------------------------------ 6818 Bra 6819 \s*+ 6820 \d 6821 Ket 6822 End 6823------------------------------------------------------------------ 6824 6825/\s*\D/B 6826------------------------------------------------------------------ 6827 Bra 6828 \s* 6829 \D 6830 Ket 6831 End 6832------------------------------------------------------------------ 6833 6834/\s*\s/B 6835------------------------------------------------------------------ 6836 Bra 6837 \s* 6838 \s 6839 Ket 6840 End 6841------------------------------------------------------------------ 6842 6843/\s*\S/B 6844------------------------------------------------------------------ 6845 Bra 6846 \s*+ 6847 \S 6848 Ket 6849 End 6850------------------------------------------------------------------ 6851 6852/\s*\w/B 6853------------------------------------------------------------------ 6854 Bra 6855 \s*+ 6856 \w 6857 Ket 6858 End 6859------------------------------------------------------------------ 6860 6861/\s*\W/B 6862------------------------------------------------------------------ 6863 Bra 6864 \s* 6865 \W 6866 Ket 6867 End 6868------------------------------------------------------------------ 6869 6870/\S*a/B 6871------------------------------------------------------------------ 6872 Bra 6873 \S* 6874 a 6875 Ket 6876 End 6877------------------------------------------------------------------ 6878 6879/\S*2/B 6880------------------------------------------------------------------ 6881 Bra 6882 \S* 6883 2 6884 Ket 6885 End 6886------------------------------------------------------------------ 6887 6888/\S*\d/B 6889------------------------------------------------------------------ 6890 Bra 6891 \S* 6892 \d 6893 Ket 6894 End 6895------------------------------------------------------------------ 6896 6897/\S*\D/B 6898------------------------------------------------------------------ 6899 Bra 6900 \S* 6901 \D 6902 Ket 6903 End 6904------------------------------------------------------------------ 6905 6906/\S*\s/B 6907------------------------------------------------------------------ 6908 Bra 6909 \S*+ 6910 \s 6911 Ket 6912 End 6913------------------------------------------------------------------ 6914 6915/\S*\S/B 6916------------------------------------------------------------------ 6917 Bra 6918 \S* 6919 \S 6920 Ket 6921 End 6922------------------------------------------------------------------ 6923 6924/\S*\w/B 6925------------------------------------------------------------------ 6926 Bra 6927 \S* 6928 \w 6929 Ket 6930 End 6931------------------------------------------------------------------ 6932 6933/\S*\W/B 6934------------------------------------------------------------------ 6935 Bra 6936 \S* 6937 \W 6938 Ket 6939 End 6940------------------------------------------------------------------ 6941 6942/\w*a/B 6943------------------------------------------------------------------ 6944 Bra 6945 \w* 6946 a 6947 Ket 6948 End 6949------------------------------------------------------------------ 6950 6951/\w*2/B 6952------------------------------------------------------------------ 6953 Bra 6954 \w* 6955 2 6956 Ket 6957 End 6958------------------------------------------------------------------ 6959 6960/\w*\d/B 6961------------------------------------------------------------------ 6962 Bra 6963 \w* 6964 \d 6965 Ket 6966 End 6967------------------------------------------------------------------ 6968 6969/\w*\D/B 6970------------------------------------------------------------------ 6971 Bra 6972 \w* 6973 \D 6974 Ket 6975 End 6976------------------------------------------------------------------ 6977 6978/\w*\s/B 6979------------------------------------------------------------------ 6980 Bra 6981 \w*+ 6982 \s 6983 Ket 6984 End 6985------------------------------------------------------------------ 6986 6987/\w*\S/B 6988------------------------------------------------------------------ 6989 Bra 6990 \w* 6991 \S 6992 Ket 6993 End 6994------------------------------------------------------------------ 6995 6996/\w*\w/B 6997------------------------------------------------------------------ 6998 Bra 6999 \w* 7000 \w 7001 Ket 7002 End 7003------------------------------------------------------------------ 7004 7005/\w*\W/B 7006------------------------------------------------------------------ 7007 Bra 7008 \w*+ 7009 \W 7010 Ket 7011 End 7012------------------------------------------------------------------ 7013 7014/\W*a/B 7015------------------------------------------------------------------ 7016 Bra 7017 \W*+ 7018 a 7019 Ket 7020 End 7021------------------------------------------------------------------ 7022 7023/\W*2/B 7024------------------------------------------------------------------ 7025 Bra 7026 \W*+ 7027 2 7028 Ket 7029 End 7030------------------------------------------------------------------ 7031 7032/\W*\d/B 7033------------------------------------------------------------------ 7034 Bra 7035 \W*+ 7036 \d 7037 Ket 7038 End 7039------------------------------------------------------------------ 7040 7041/\W*\D/B 7042------------------------------------------------------------------ 7043 Bra 7044 \W* 7045 \D 7046 Ket 7047 End 7048------------------------------------------------------------------ 7049 7050/\W*\s/B 7051------------------------------------------------------------------ 7052 Bra 7053 \W* 7054 \s 7055 Ket 7056 End 7057------------------------------------------------------------------ 7058 7059/\W*\S/B 7060------------------------------------------------------------------ 7061 Bra 7062 \W* 7063 \S 7064 Ket 7065 End 7066------------------------------------------------------------------ 7067 7068/\W*\w/B 7069------------------------------------------------------------------ 7070 Bra 7071 \W*+ 7072 \w 7073 Ket 7074 End 7075------------------------------------------------------------------ 7076 7077/\W*\W/B 7078------------------------------------------------------------------ 7079 Bra 7080 \W* 7081 \W 7082 Ket 7083 End 7084------------------------------------------------------------------ 7085 7086/[^a]+a/B 7087------------------------------------------------------------------ 7088 Bra 7089 [^a]++ 7090 a 7091 Ket 7092 End 7093------------------------------------------------------------------ 7094 7095/[^a]+a/Bi 7096------------------------------------------------------------------ 7097 Bra 7098 /i [^a]++ 7099 /i a 7100 Ket 7101 End 7102------------------------------------------------------------------ 7103 7104/[^a]+A/Bi 7105------------------------------------------------------------------ 7106 Bra 7107 /i [^a]++ 7108 /i A 7109 Ket 7110 End 7111------------------------------------------------------------------ 7112 7113/[^a]+b/B 7114------------------------------------------------------------------ 7115 Bra 7116 [^a]+ 7117 b 7118 Ket 7119 End 7120------------------------------------------------------------------ 7121 7122/[^a]+\d/B 7123------------------------------------------------------------------ 7124 Bra 7125 [^a]+ 7126 \d 7127 Ket 7128 End 7129------------------------------------------------------------------ 7130 7131/a*[^a]/B 7132------------------------------------------------------------------ 7133 Bra 7134 a*+ 7135 [^a] 7136 Ket 7137 End 7138------------------------------------------------------------------ 7139 7140/(?P<abc>x)(?P<xyz>y)/I 7141Capturing subpattern count = 2 7142Named capturing subpatterns: 7143 abc 1 7144 xyz 2 7145First code unit = 'x' 7146Last code unit = 'y' 7147Subject length lower bound = 2 7148 xy\=copy=abc,copy=xyz 7149 0: xy 7150 1: x 7151 2: y 7152 C x (1) abc (group 1) 7153 C y (1) xyz (group 2) 7154 7155/(?<abc>x)(?'xyz'y)/I 7156Capturing subpattern count = 2 7157Named capturing subpatterns: 7158 abc 1 7159 xyz 2 7160First code unit = 'x' 7161Last code unit = 'y' 7162Subject length lower bound = 2 7163 xy\=copy=abc,copy=xyz 7164 0: xy 7165 1: x 7166 2: y 7167 C x (1) abc (group 1) 7168 C y (1) xyz (group 2) 7169 7170/(?<abc'x)(?'xyz'y)/I 7171Failed: error 142 at offset 6: syntax error in subpattern name (missing terminator) 7172 7173/(?<abc>x)(?'xyz>y)/I 7174Failed: error 142 at offset 15: syntax error in subpattern name (missing terminator) 7175 7176/(?P'abc'x)(?P<xyz>y)/I 7177Failed: error 141 at offset 3: unrecognized character after (?P 7178 7179/^(?:(?(ZZ)a|b)(?<ZZ>X))+/ 7180 bXaX 7181 0: bXaX 7182 1: X 7183 bXbX 7184 0: bX 7185 1: X 7186\= Expect no match 7187 aXaX 7188No match 7189 aXbX 7190No match 7191 7192/^(?P>abc)(?<abcd>xxx)/ 7193Failed: error 115 at offset 5: reference to non-existent subpattern 7194 7195/^(?P>abc)(?<abc>x|y)/ 7196 xx 7197 0: xx 7198 1: x 7199 xy 7200 0: xy 7201 1: y 7202 yy 7203 0: yy 7204 1: y 7205 yx 7206 0: yx 7207 1: x 7208 7209/^(?P>abc)(?P<abc>x|y)/ 7210 xx 7211 0: xx 7212 1: x 7213 xy 7214 0: xy 7215 1: y 7216 yy 7217 0: yy 7218 1: y 7219 yx 7220 0: yx 7221 1: x 7222 7223/^((?(abc)a|b)(?<abc>x|y))+/ 7224 bxay 7225 0: bxay 7226 1: ay 7227 2: y 7228 bxby 7229 0: bx 7230 1: bx 7231 2: x 7232\= Expect no match 7233 axby 7234No match 7235 7236/^(((?P=abc)|X)(?<abc>x|y))+/ 7237 XxXxxx 7238 0: XxXxxx 7239 1: xx 7240 2: x 7241 3: x 7242 XxXyyx 7243 0: XxXyyx 7244 1: yx 7245 2: y 7246 3: x 7247 XxXyxx 7248 0: XxXy 7249 1: Xy 7250 2: X 7251 3: y 7252\= Expect no match 7253 x 7254No match 7255 7256/^(?1)(abc)/ 7257 abcabc 7258 0: abcabc 7259 1: abc 7260 7261/^(?:(?:\1|X)(a|b))+/ 7262 Xaaa 7263 0: Xaaa 7264 1: a 7265 Xaba 7266 0: Xa 7267 1: a 7268 7269/^[\E\Qa\E-\Qz\E]+/B 7270------------------------------------------------------------------ 7271 Bra 7272 ^ 7273 [a-z]++ 7274 Ket 7275 End 7276------------------------------------------------------------------ 7277 7278/^[a\Q]bc\E]/B 7279------------------------------------------------------------------ 7280 Bra 7281 ^ 7282 [\]a-c] 7283 Ket 7284 End 7285------------------------------------------------------------------ 7286 7287/^[a-\Q\E]/B 7288------------------------------------------------------------------ 7289 Bra 7290 ^ 7291 [\-a] 7292 Ket 7293 End 7294------------------------------------------------------------------ 7295 7296/^(?P>abc)[()](?<abc>)/B 7297------------------------------------------------------------------ 7298 Bra 7299 ^ 7300 Recurse 7301 [()] 7302 CBra 1 7303 Ket 7304 Ket 7305 End 7306------------------------------------------------------------------ 7307 7308/^((?(abc)y)[()](?P<abc>x))+/B 7309------------------------------------------------------------------ 7310 Bra 7311 ^ 7312 CBra 1 7313 Cond 7314 2 Cond ref 7315 y 7316 Ket 7317 [()] 7318 CBra 2 7319 x 7320 Ket 7321 KetRmax 7322 Ket 7323 End 7324------------------------------------------------------------------ 7325 (xy)x 7326 0: (xy)x 7327 1: y)x 7328 2: x 7329 7330/^(?P>abc)\Q()\E(?<abc>)/B 7331------------------------------------------------------------------ 7332 Bra 7333 ^ 7334 Recurse 7335 () 7336 CBra 1 7337 Ket 7338 Ket 7339 End 7340------------------------------------------------------------------ 7341 7342/^(?P>abc)[a\Q(]\E(](?<abc>)/B 7343------------------------------------------------------------------ 7344 Bra 7345 ^ 7346 Recurse 7347 [(\]a] 7348 CBra 1 7349 Ket 7350 Ket 7351 End 7352------------------------------------------------------------------ 7353 7354/^(?P>abc) # this is (a comment) 7355 (?<abc>)/Bx 7356------------------------------------------------------------------ 7357 Bra 7358 ^ 7359 Recurse 7360 CBra 1 7361 Ket 7362 Ket 7363 End 7364------------------------------------------------------------------ 7365 7366/^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii 7367Capturing subpattern count = 4 7368Max back reference = 4 7369Named capturing subpatterns: 7370 four 4 7371 one 1 7372 three 3 7373 two 2 7374May match empty string 7375Compile options: caseless 7376Overall options: anchored caseless 7377Subject length lower bound = 0 7378 1221 7379 0: 1221 7380 1: 1221 7381 2: 1 7382 Satan, oscillate my metallic sonatas! 7383 0: Satan, oscillate my metallic sonatas! 7384 1: <unset> 7385 2: <unset> 7386 3: Satan, oscillate my metallic sonatas 7387 4: S 7388 A man, a plan, a canal: Panama! 7389 0: A man, a plan, a canal: Panama! 7390 1: <unset> 7391 2: <unset> 7392 3: A man, a plan, a canal: Panama 7393 4: A 7394 Able was I ere I saw Elba. 7395 0: Able was I ere I saw Elba. 7396 1: <unset> 7397 2: <unset> 7398 3: Able was I ere I saw Elba 7399 4: A 7400\= Expect no match 7401 The quick brown fox 7402No match 7403 7404/(?=(\w+))\1:/I 7405Capturing subpattern count = 1 7406Max back reference = 1 7407Starting code units: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P 7408 Q R S T U V W X Y Z _ 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 7409Last code unit = ':' 7410Subject length lower bound = 2 7411 abcd: 7412 0: abcd: 7413 1: abcd 7414 7415/(?=(?'abc'\w+))\k<abc>:/I 7416Capturing subpattern count = 1 7417Max back reference = 1 7418Named capturing subpatterns: 7419 abc 1 7420Starting code units: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P 7421 Q R S T U V W X Y Z _ 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 7422Last code unit = ':' 7423Subject length lower bound = 2 7424 abcd: 7425 0: abcd: 7426 1: abcd 7427 7428/(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/dupnames 7429 adaa 7430 0: adaa 7431 1: a 7432 2: d 7433\= Expect no match 7434 addd 7435No match 7436 adbb 7437No match 7438 7439/(?'abc'a|b)(?<abc>d|e)(?&abc){2}/dupnames 7440 bdaa 7441 0: bdaa 7442 1: b 7443 2: d 7444 bdab 7445 0: bdab 7446 1: b 7447 2: d 7448\= Expect no match 7449 bddd 7450No match 7451 7452/(?(<bc))/ 7453Failed: error 142 at offset 6: syntax error in subpattern name (missing terminator) 7454 7455/(?(''))/ 7456Failed: error 162 at offset 4: subpattern name expected 7457 7458/(?('R')stuff)/ 7459Failed: error 115 at offset 4: reference to non-existent subpattern 7460 7461/((abc (?(R) (?(R1)1) (?(R2)2) X | (?1) (?2) (?R) ))) /x 7462 abcabc1Xabc2XabcXabcabc 7463 0: abcabc1Xabc2XabcX 7464 1: abcabc1Xabc2XabcX 7465 2: abcabc1Xabc2XabcX 7466 7467/(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x 7468 abcabc1Xabc2XabcXabcabc 7469 0: abcabc1Xabc2XabcX 7470 1: abcabc1Xabc2XabcX 7471 2: abcabc1Xabc2XabcX 7472 7473/(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x 7474Failed: error 115 at offset 27: reference to non-existent subpattern 7475 7476/^(?(DEFINE) abc | xyz ) /x 7477Failed: error 154 at offset 4: DEFINE group contains more than one branch 7478 7479/(?(DEFINE) abc) xyz/Ix 7480Capturing subpattern count = 0 7481Options: extended 7482First code unit = 'x' 7483Last code unit = 'z' 7484Subject length lower bound = 3 7485 7486/(a|)*\d/ 7487 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4\=ovector=0 7488 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 7489 1: 7490\= Expect no match 7491 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\=ovector=0 7492No match 7493 7494/^a.b/newline=lf 7495 a\rb 7496 0: a\x0db 7497\= Expect no match 7498 a\nb 7499No match 7500 7501/^a.b/newline=cr 7502 a\nb 7503 0: a\x0ab 7504\= Expect no match 7505 a\rb 7506No match 7507 7508/^a.b/newline=anycrlf 7509 a\x85b 7510 0: a\x85b 7511\= Expect no match 7512 a\rb 7513No match 7514 7515/^a.b/newline=any 7516\= Expect no match 7517 a\nb 7518No match 7519 a\rb 7520No match 7521 a\x85b 7522No match 7523 7524/^abc./gmx,newline=any 7525 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK 7526 0: abc1 7527 0: abc2 7528 0: abc3 7529 0: abc4 7530 0: abc5 7531 0: abc6 7532 0: abc7 7533 7534/abc.$/gmx,newline=any 7535 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9 7536 0: abc1 7537 0: abc2 7538 0: abc3 7539 0: abc4 7540 0: abc5 7541 0: abc6 7542 0: abc9 7543 7544/^a\Rb/bsr=unicode 7545 a\nb 7546 0: a\x0ab 7547 a\rb 7548 0: a\x0db 7549 a\r\nb 7550 0: a\x0d\x0ab 7551 a\x0bb 7552 0: a\x0bb 7553 a\x0cb 7554 0: a\x0cb 7555 a\x85b 7556 0: a\x85b 7557\= Expect no match 7558 a\n\rb 7559No match 7560 7561/^a\R*b/bsr=unicode 7562 ab 7563 0: ab 7564 a\nb 7565 0: a\x0ab 7566 a\rb 7567 0: a\x0db 7568 a\r\nb 7569 0: a\x0d\x0ab 7570 a\x0bb 7571 0: a\x0bb 7572 a\x0cb 7573 0: a\x0cb 7574 a\x85b 7575 0: a\x85b 7576 a\n\rb 7577 0: a\x0a\x0db 7578 a\n\r\x85\x0cb 7579 0: a\x0a\x0d\x85\x0cb 7580 7581/^a\R+b/bsr=unicode 7582 a\nb 7583 0: a\x0ab 7584 a\rb 7585 0: a\x0db 7586 a\r\nb 7587 0: a\x0d\x0ab 7588 a\x0bb 7589 0: a\x0bb 7590 a\x0cb 7591 0: a\x0cb 7592 a\x85b 7593 0: a\x85b 7594 a\n\rb 7595 0: a\x0a\x0db 7596 a\n\r\x85\x0cb 7597 0: a\x0a\x0d\x85\x0cb 7598\= Expect no match 7599 ab 7600No match 7601 7602/^a\R{1,3}b/bsr=unicode 7603 a\nb 7604 0: a\x0ab 7605 a\n\rb 7606 0: a\x0a\x0db 7607 a\n\r\x85b 7608 0: a\x0a\x0d\x85b 7609 a\r\n\r\nb 7610 0: a\x0d\x0a\x0d\x0ab 7611 a\r\n\r\n\r\nb 7612 0: a\x0d\x0a\x0d\x0a\x0d\x0ab 7613 a\n\r\n\rb 7614 0: a\x0a\x0d\x0a\x0db 7615 a\n\n\r\nb 7616 0: a\x0a\x0a\x0d\x0ab 7617\= Expect no match 7618 a\n\n\n\rb 7619No match 7620 a\r 7621No match 7622 7623/(?&abc)X(?<abc>P)/I 7624Capturing subpattern count = 1 7625Named capturing subpatterns: 7626 abc 1 7627Last code unit = 'P' 7628Subject length lower bound = 3 7629 abcPXP123 7630 0: PXP 7631 1: P 7632 7633/(?1)X(?<abc>P)/I 7634Capturing subpattern count = 1 7635Named capturing subpatterns: 7636 abc 1 7637Last code unit = 'P' 7638Subject length lower bound = 3 7639 abcPXP123 7640 0: PXP 7641 1: P 7642 7643/(?:a(?&abc)b)*(?<abc>x)/ 7644 123axbaxbaxbx456 7645 0: axbaxbaxbx 7646 1: x 7647 123axbaxbaxb456 7648 0: x 7649 1: x 7650 7651/(?:a(?&abc)b){1,5}(?<abc>x)/ 7652 123axbaxbaxbx456 7653 0: axbaxbaxbx 7654 1: x 7655 7656/(?:a(?&abc)b){2,5}(?<abc>x)/ 7657 123axbaxbaxbx456 7658 0: axbaxbaxbx 7659 1: x 7660 7661/(?:a(?&abc)b){2,}(?<abc>x)/ 7662 123axbaxbaxbx456 7663 0: axbaxbaxbx 7664 1: x 7665 7666/(abc)(?i:(?1))/ 7667 defabcabcxyz 7668 0: abcabc 7669 1: abc 7670\= Expect no match 7671 DEFabcABCXYZ 7672No match 7673 7674/(abc)(?:(?i)(?1))/ 7675 defabcabcxyz 7676 0: abcabc 7677 1: abc 7678\= Expect no match 7679 DEFabcABCXYZ 7680No match 7681 7682/^(a)\g-2/ 7683Failed: error 115 at offset 8: reference to non-existent subpattern 7684 7685/^(a)\g/ 7686Failed: error 157 at offset 6: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number 7687 7688/^(a)\g{0}/ 7689Failed: error 115 at offset 9: reference to non-existent subpattern 7690 7691/^(a)\g{3/ 7692Failed: error 157 at offset 6: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number 7693 7694/^(a)\g{aa}/ 7695Failed: error 115 at offset 7: reference to non-existent subpattern 7696 7697/^a.b/newline=lf 7698 a\rb 7699 0: a\x0db 7700\= Expect no match 7701 a\nb 7702No match 7703 7704/.+foo/ 7705 afoo 7706 0: afoo 7707\= Expect no match 7708 \r\nfoo 7709No match 7710 \nfoo 7711No match 7712 7713/.+foo/newline=crlf 7714 afoo 7715 0: afoo 7716 \nfoo 7717 0: \x0afoo 7718\= Expect no match 7719 \r\nfoo 7720No match 7721 7722/.+foo/newline=any 7723 afoo 7724 0: afoo 7725\= Expect no match 7726 \nfoo 7727No match 7728 \r\nfoo 7729No match 7730 7731/.+foo/s 7732 afoo 7733 0: afoo 7734 \r\nfoo 7735 0: \x0d\x0afoo 7736 \nfoo 7737 0: \x0afoo 7738 7739/^$/gm,newline=any 7740 abc\r\rxyz 7741 0: 7742 abc\n\rxyz 7743 0: 7744\= Expect no match 7745 abc\r\nxyz 7746No match 7747 7748/(?m)^$/g,newline=any,aftertext 7749 abc\r\n\r\n 7750 0: 7751 0+ \x0d\x0a 7752 7753/(?m)^$|^\r\n/g,newline=any,aftertext 7754 abc\r\n\r\n 7755 0: 7756 0+ \x0d\x0a 7757 0: \x0d\x0a 7758 0+ 7759 7760/(?m)$/g,newline=any,aftertext 7761 abc\r\n\r\n 7762 0: 7763 0+ \x0d\x0a\x0d\x0a 7764 0: 7765 0+ \x0d\x0a 7766 0: 7767 0+ 7768 7769/abc.$/gmx,newline=anycrlf 7770 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9 7771 0: abc1 7772 0: abc4 7773 0: abc5 7774 0: abc9 7775 7776/^X/m 7777 XABC 7778 0: X 7779\= Expect no match 7780 XABC\=notbol 7781No match 7782 7783/(ab|c)(?-1)/B 7784------------------------------------------------------------------ 7785 Bra 7786 CBra 1 7787 ab 7788 Alt 7789 c 7790 Ket 7791 Recurse 7792 Ket 7793 End 7794------------------------------------------------------------------ 7795 abc 7796 0: abc 7797 1: ab 7798 7799/xy(?+1)(abc)/B 7800------------------------------------------------------------------ 7801 Bra 7802 xy 7803 Recurse 7804 CBra 1 7805 abc 7806 Ket 7807 Ket 7808 End 7809------------------------------------------------------------------ 7810 xyabcabc 7811 0: xyabcabc 7812 1: abc 7813\= Expect no match 7814 xyabc 7815No match 7816 7817/x(?-0)y/ 7818Failed: error 126 at offset 5: a relative value of zero is not allowed 7819 7820/x(?-1)y/ 7821Failed: error 115 at offset 5: reference to non-existent subpattern 7822 7823/x(?+0)y/ 7824Failed: error 126 at offset 5: a relative value of zero is not allowed 7825 7826/x(?+1)y/ 7827Failed: error 115 at offset 5: reference to non-existent subpattern 7828 7829/^(abc)?(?(-1)X|Y)/B 7830------------------------------------------------------------------ 7831 Bra 7832 ^ 7833 Brazero 7834 CBra 1 7835 abc 7836 Ket 7837 Cond 7838 1 Cond ref 7839 X 7840 Alt 7841 Y 7842 Ket 7843 Ket 7844 End 7845------------------------------------------------------------------ 7846 abcX 7847 0: abcX 7848 1: abc 7849 Y 7850 0: Y 7851\= Expect no match 7852 abcY 7853No match 7854 7855/^((?(+1)X|Y)(abc))+/B 7856------------------------------------------------------------------ 7857 Bra 7858 ^ 7859 CBra 1 7860 Cond 7861 2 Cond ref 7862 X 7863 Alt 7864 Y 7865 Ket 7866 CBra 2 7867 abc 7868 Ket 7869 KetRmax 7870 Ket 7871 End 7872------------------------------------------------------------------ 7873 YabcXabc 7874 0: YabcXabc 7875 1: Xabc 7876 2: abc 7877 YabcXabcXabc 7878 0: YabcXabcXabc 7879 1: Xabc 7880 2: abc 7881\= Expect no match 7882 XabcXabc 7883No match 7884 7885/(?(-1)a)/B 7886Failed: error 115 at offset 5: reference to non-existent subpattern 7887 7888/((?(-1)a))/B 7889------------------------------------------------------------------ 7890 Bra 7891 CBra 1 7892 Cond 7893 1 Cond ref 7894 a 7895 Ket 7896 Ket 7897 Ket 7898 End 7899------------------------------------------------------------------ 7900 7901/((?(-2)a))/B 7902Failed: error 115 at offset 6: reference to non-existent subpattern 7903 7904/^(?(+1)X|Y)(.)/B 7905------------------------------------------------------------------ 7906 Bra 7907 ^ 7908 Cond 7909 1 Cond ref 7910 X 7911 Alt 7912 Y 7913 Ket 7914 CBra 1 7915 Any 7916 Ket 7917 Ket 7918 End 7919------------------------------------------------------------------ 7920 Y! 7921 0: Y! 7922 1: ! 7923 7924/(?<A>tom|bon)-\k{A}/ 7925 tom-tom 7926 0: tom-tom 7927 1: tom 7928 bon-bon 7929 0: bon-bon 7930 1: bon 7931\= Expect no match 7932 tom-bon 7933No match 7934 7935/\g{A/ 7936Failed: error 142 at offset 4: syntax error in subpattern name (missing terminator) 7937 7938/(?|(abc)|(xyz))/B 7939------------------------------------------------------------------ 7940 Bra 7941 Bra 7942 CBra 1 7943 abc 7944 Ket 7945 Alt 7946 CBra 1 7947 xyz 7948 Ket 7949 Ket 7950 Ket 7951 End 7952------------------------------------------------------------------ 7953 >abc< 7954 0: abc 7955 1: abc 7956 >xyz< 7957 0: xyz 7958 1: xyz 7959 7960/(x)(?|(abc)|(xyz))(x)/B 7961------------------------------------------------------------------ 7962 Bra 7963 CBra 1 7964 x 7965 Ket 7966 Bra 7967 CBra 2 7968 abc 7969 Ket 7970 Alt 7971 CBra 2 7972 xyz 7973 Ket 7974 Ket 7975 CBra 3 7976 x 7977 Ket 7978 Ket 7979 End 7980------------------------------------------------------------------ 7981 xabcx 7982 0: xabcx 7983 1: x 7984 2: abc 7985 3: x 7986 xxyzx 7987 0: xxyzx 7988 1: x 7989 2: xyz 7990 3: x 7991 7992/(x)(?|(abc)(pqr)|(xyz))(x)/B 7993------------------------------------------------------------------ 7994 Bra 7995 CBra 1 7996 x 7997 Ket 7998 Bra 7999 CBra 2 8000 abc 8001 Ket 8002 CBra 3 8003 pqr 8004 Ket 8005 Alt 8006 CBra 2 8007 xyz 8008 Ket 8009 Ket 8010 CBra 4 8011 x 8012 Ket 8013 Ket 8014 End 8015------------------------------------------------------------------ 8016 xabcpqrx 8017 0: xabcpqrx 8018 1: x 8019 2: abc 8020 3: pqr 8021 4: x 8022 xxyzx 8023 0: xxyzx 8024 1: x 8025 2: xyz 8026 3: <unset> 8027 4: x 8028 8029/\H++X/B 8030------------------------------------------------------------------ 8031 Bra 8032 \H++ 8033 X 8034 Ket 8035 End 8036------------------------------------------------------------------ 8037\= Expect no match 8038 XXXX 8039No match 8040 8041/\H+\hY/B 8042------------------------------------------------------------------ 8043 Bra 8044 \H++ 8045 \h 8046 Y 8047 Ket 8048 End 8049------------------------------------------------------------------ 8050 XXXX Y 8051 0: XXXX Y 8052 8053/\H+ Y/B 8054------------------------------------------------------------------ 8055 Bra 8056 \H++ 8057 Y 8058 Ket 8059 End 8060------------------------------------------------------------------ 8061 8062/\h+A/B 8063------------------------------------------------------------------ 8064 Bra 8065 \h++ 8066 A 8067 Ket 8068 End 8069------------------------------------------------------------------ 8070 8071/\v*B/B 8072------------------------------------------------------------------ 8073 Bra 8074 \v*+ 8075 B 8076 Ket 8077 End 8078------------------------------------------------------------------ 8079 8080/\V+\x0a/B 8081------------------------------------------------------------------ 8082 Bra 8083 \V++ 8084 \x0a 8085 Ket 8086 End 8087------------------------------------------------------------------ 8088 8089/A+\h/B 8090------------------------------------------------------------------ 8091 Bra 8092 A++ 8093 \h 8094 Ket 8095 End 8096------------------------------------------------------------------ 8097 8098/ *\H/B 8099------------------------------------------------------------------ 8100 Bra 8101 *+ 8102 \H 8103 Ket 8104 End 8105------------------------------------------------------------------ 8106 8107/A*\v/B 8108------------------------------------------------------------------ 8109 Bra 8110 A*+ 8111 \v 8112 Ket 8113 End 8114------------------------------------------------------------------ 8115 8116/\x0b*\V/B 8117------------------------------------------------------------------ 8118 Bra 8119 \x0b*+ 8120 \V 8121 Ket 8122 End 8123------------------------------------------------------------------ 8124 8125/\d+\h/B 8126------------------------------------------------------------------ 8127 Bra 8128 \d++ 8129 \h 8130 Ket 8131 End 8132------------------------------------------------------------------ 8133 8134/\d*\v/B 8135------------------------------------------------------------------ 8136 Bra 8137 \d*+ 8138 \v 8139 Ket 8140 End 8141------------------------------------------------------------------ 8142 8143/S+\h\S+\v/B 8144------------------------------------------------------------------ 8145 Bra 8146 S++ 8147 \h 8148 \S++ 8149 \v 8150 Ket 8151 End 8152------------------------------------------------------------------ 8153 8154/\w{3,}\h\w+\v/B 8155------------------------------------------------------------------ 8156 Bra 8157 \w{3} 8158 \w*+ 8159 \h 8160 \w++ 8161 \v 8162 Ket 8163 End 8164------------------------------------------------------------------ 8165 8166/\h+\d\h+\w\h+\S\h+\H/B 8167------------------------------------------------------------------ 8168 Bra 8169 \h++ 8170 \d 8171 \h++ 8172 \w 8173 \h++ 8174 \S 8175 \h++ 8176 \H 8177 Ket 8178 End 8179------------------------------------------------------------------ 8180 8181/\v+\d\v+\w\v+\S\v+\V/B 8182------------------------------------------------------------------ 8183 Bra 8184 \v++ 8185 \d 8186 \v++ 8187 \w 8188 \v++ 8189 \S 8190 \v++ 8191 \V 8192 Ket 8193 End 8194------------------------------------------------------------------ 8195 8196/\H+\h\H+\d/B 8197------------------------------------------------------------------ 8198 Bra 8199 \H++ 8200 \h 8201 \H+ 8202 \d 8203 Ket 8204 End 8205------------------------------------------------------------------ 8206 8207/\V+\v\V+\w/B 8208------------------------------------------------------------------ 8209 Bra 8210 \V++ 8211 \v 8212 \V+ 8213 \w 8214 Ket 8215 End 8216------------------------------------------------------------------ 8217 8218/\( (?: [^()]* | (?R) )* \)/x 8219(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)\=jitstack=1024 8220 0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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) 8221 8222/[\E]AAA/ 8223Failed: error 106 at offset 7: missing terminating ] for character class 8224 8225/[\Q\E]AAA/ 8226Failed: error 106 at offset 9: missing terminating ] for character class 8227 8228/[^\E]AAA/ 8229Failed: error 106 at offset 8: missing terminating ] for character class 8230 8231/[^\Q\E]AAA/ 8232Failed: error 106 at offset 10: missing terminating ] for character class 8233 8234/[\E^]AAA/ 8235Failed: error 106 at offset 8: missing terminating ] for character class 8236 8237/[\Q\E^]AAA/ 8238Failed: error 106 at offset 10: missing terminating ] for character class 8239 8240/A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/B 8241------------------------------------------------------------------ 8242 Bra 8243 A 8244 *PRUNE 8245 B 8246 *SKIP 8247 C 8248 *THEN 8249 D 8250 *COMMIT 8251 E 8252 *FAIL 8253 F 8254 *FAIL 8255 G 8256 *FAIL 8257 H 8258 *ACCEPT 8259 I 8260 Ket 8261 End 8262------------------------------------------------------------------ 8263 8264/^a+(*FAIL)/auto_callout 8265\= Expect no match 8266 aaaaaa 8267--->aaaaaa 8268 +0 ^ ^ 8269 +1 ^ a+ 8270 +3 ^ ^ (*FAIL) 8271 +3 ^ ^ (*FAIL) 8272 +3 ^ ^ (*FAIL) 8273 +3 ^ ^ (*FAIL) 8274 +3 ^ ^ (*FAIL) 8275 +3 ^^ (*FAIL) 8276No match 8277 8278/a+b?c+(*FAIL)/auto_callout 8279\= Expect no match 8280 aaabccc 8281--->aaabccc 8282 +0 ^ a+ 8283 +2 ^ ^ b? 8284 +4 ^ ^ c+ 8285 +6 ^ ^ (*FAIL) 8286 +6 ^ ^ (*FAIL) 8287 +6 ^ ^ (*FAIL) 8288 +0 ^ a+ 8289 +2 ^ ^ b? 8290 +4 ^ ^ c+ 8291 +6 ^ ^ (*FAIL) 8292 +6 ^ ^ (*FAIL) 8293 +6 ^ ^ (*FAIL) 8294 +0 ^ a+ 8295 +2 ^^ b? 8296 +4 ^ ^ c+ 8297 +6 ^ ^ (*FAIL) 8298 +6 ^ ^ (*FAIL) 8299 +6 ^ ^ (*FAIL) 8300No match 8301 8302/a+b?(*PRUNE)c+(*FAIL)/auto_callout 8303\= Expect no match 8304 aaabccc 8305--->aaabccc 8306 +0 ^ a+ 8307 +2 ^ ^ b? 8308 +4 ^ ^ (*PRUNE) 8309+12 ^ ^ c+ 8310+14 ^ ^ (*FAIL) 8311+14 ^ ^ (*FAIL) 8312+14 ^ ^ (*FAIL) 8313 +0 ^ a+ 8314 +2 ^ ^ b? 8315 +4 ^ ^ (*PRUNE) 8316+12 ^ ^ c+ 8317+14 ^ ^ (*FAIL) 8318+14 ^ ^ (*FAIL) 8319+14 ^ ^ (*FAIL) 8320 +0 ^ a+ 8321 +2 ^^ b? 8322 +4 ^ ^ (*PRUNE) 8323+12 ^ ^ c+ 8324+14 ^ ^ (*FAIL) 8325+14 ^ ^ (*FAIL) 8326+14 ^ ^ (*FAIL) 8327No match 8328 8329/a+b?(*COMMIT)c+(*FAIL)/auto_callout 8330\= Expect no match 8331 aaabccc 8332--->aaabccc 8333 +0 ^ a+ 8334 +2 ^ ^ b? 8335 +4 ^ ^ (*COMMIT) 8336+13 ^ ^ c+ 8337+15 ^ ^ (*FAIL) 8338+15 ^ ^ (*FAIL) 8339+15 ^ ^ (*FAIL) 8340No match 8341 8342/a+b?(*SKIP)c+(*FAIL)/auto_callout 8343\= Expect no match 8344 aaabcccaaabccc 8345--->aaabcccaaabccc 8346 +0 ^ a+ 8347 +2 ^ ^ b? 8348 +4 ^ ^ (*SKIP) 8349+11 ^ ^ c+ 8350+13 ^ ^ (*FAIL) 8351+13 ^ ^ (*FAIL) 8352+13 ^ ^ (*FAIL) 8353 +0 ^ a+ 8354 +2 ^ ^ b? 8355 +4 ^ ^ (*SKIP) 8356+11 ^ ^ c+ 8357+13 ^ ^ (*FAIL) 8358+13 ^ ^ (*FAIL) 8359+13 ^ ^ (*FAIL) 8360No match 8361 8362/a+b?(*THEN)c+(*FAIL)/auto_callout 8363\= Expect no match 8364 aaabccc 8365--->aaabccc 8366 +0 ^ a+ 8367 +2 ^ ^ b? 8368 +4 ^ ^ (*THEN) 8369+11 ^ ^ c+ 8370+13 ^ ^ (*FAIL) 8371+13 ^ ^ (*FAIL) 8372+13 ^ ^ (*FAIL) 8373 +0 ^ a+ 8374 +2 ^ ^ b? 8375 +4 ^ ^ (*THEN) 8376+11 ^ ^ c+ 8377+13 ^ ^ (*FAIL) 8378+13 ^ ^ (*FAIL) 8379+13 ^ ^ (*FAIL) 8380 +0 ^ a+ 8381 +2 ^^ b? 8382 +4 ^ ^ (*THEN) 8383+11 ^ ^ c+ 8384+13 ^ ^ (*FAIL) 8385+13 ^ ^ (*FAIL) 8386+13 ^ ^ (*FAIL) 8387No match 8388 8389/a(*MARK)b/ 8390Failed: error 166 at offset 7: (*MARK) must have an argument 8391 8392/(?i:A{1,}\6666666666)/ 8393Failed: error 161 at offset 19: group number is too big 8394 8395/\g6666666666/ 8396Failed: error 161 at offset 7: group number is too big 8397 8398/[\g6666666666]/B 8399------------------------------------------------------------------ 8400 Bra 8401 [6g] 8402 Ket 8403 End 8404------------------------------------------------------------------ 8405 8406/(?1)\c[/ 8407Failed: error 115 at offset 3: reference to non-existent subpattern 8408 8409/.+A/newline=crlf 8410\= Expect no match 8411 \r\nA 8412No match 8413 8414/\nA/newline=crlf 8415 \r\nA 8416 0: \x0aA 8417 8418/[\r\n]A/newline=crlf 8419 \r\nA 8420 0: \x0aA 8421 8422/(\r|\n)A/newline=crlf 8423 \r\nA 8424 0: \x0aA 8425 1: \x0a 8426 8427/a(*CR)b/ 8428Failed: error 160 at offset 5: (*VERB) not recognized or malformed 8429 8430/(*CR)a.b/ 8431 a\nb 8432 0: a\x0ab 8433\= Expect no match 8434 a\rb 8435No match 8436 8437/(*CR)a.b/newline=lf 8438 a\nb 8439 0: a\x0ab 8440\= Expect no match 8441 a\rb 8442No match 8443 8444/(*LF)a.b/newline=CRLF 8445 a\rb 8446 0: a\x0db 8447\= Expect no match 8448 a\nb 8449No match 8450 8451/(*CRLF)a.b/ 8452 a\rb 8453 0: a\x0db 8454 a\nb 8455 0: a\x0ab 8456\= Expect no match 8457 a\r\nb 8458No match 8459 8460/(*ANYCRLF)a.b/newline=CR 8461\= Expect no match 8462 a\rb 8463No match 8464 a\nb 8465No match 8466 a\r\nb 8467No match 8468 8469/(*ANY)a.b/newline=cr 8470\= Expect no match 8471 a\rb 8472No match 8473 a\nb 8474No match 8475 a\r\nb 8476No match 8477 a\x85b 8478No match 8479 8480/(*ANY).*/g 8481 abc\r\ndef 8482 0: abc 8483 0: 8484 0: def 8485 0: 8486 8487/(*ANYCRLF).*/g 8488 abc\r\ndef 8489 0: abc 8490 0: 8491 0: def 8492 0: 8493 8494/(*CRLF).*/g 8495 abc\r\ndef 8496 0: abc 8497 0: 8498 0: def 8499 0: 8500 8501/(*NUL)^.*/ 8502 a\nb\x00ccc 8503 0: a\x0ab 8504 8505/(*NUL)^.*/s 8506 a\nb\x00ccc 8507 0: a\x0ab\x00ccc 8508 8509/^x/m,newline=NUL 8510 ab\x00xy 8511 0: x 8512 8513/'#comment' 0d 0a 00 '^x\' 0a 'y'/x,newline=nul,hex 8514 x\nyz 8515 0: x\x0ay 8516 8517/(*NUL)^X\NY/ 8518 X\nY 8519 0: X\x0aY 8520 X\rY 8521 0: X\x0dY 8522\= Expect no match 8523 X\x00Y 8524No match 8525 8526/a\Rb/I,bsr=anycrlf 8527Capturing subpattern count = 0 8528\R matches CR, LF, or CRLF 8529First code unit = 'a' 8530Last code unit = 'b' 8531Subject length lower bound = 3 8532 a\rb 8533 0: a\x0db 8534 a\nb 8535 0: a\x0ab 8536 a\r\nb 8537 0: a\x0d\x0ab 8538\= Expect no match 8539 a\x85b 8540No match 8541 a\x0bb 8542No match 8543 8544/a\Rb/I,bsr=unicode 8545Capturing subpattern count = 0 8546\R matches any Unicode newline 8547First code unit = 'a' 8548Last code unit = 'b' 8549Subject length lower bound = 3 8550 a\rb 8551 0: a\x0db 8552 a\nb 8553 0: a\x0ab 8554 a\r\nb 8555 0: a\x0d\x0ab 8556 a\x85b 8557 0: a\x85b 8558 a\x0bb 8559 0: a\x0bb 8560 8561/a\R?b/I,bsr=anycrlf 8562Capturing subpattern count = 0 8563\R matches CR, LF, or CRLF 8564First code unit = 'a' 8565Last code unit = 'b' 8566Subject length lower bound = 2 8567 a\rb 8568 0: a\x0db 8569 a\nb 8570 0: a\x0ab 8571 a\r\nb 8572 0: a\x0d\x0ab 8573\= Expect no match 8574 a\x85b 8575No match 8576 a\x0bb 8577No match 8578 8579/a\R?b/I,bsr=unicode 8580Capturing subpattern count = 0 8581\R matches any Unicode newline 8582First code unit = 'a' 8583Last code unit = 'b' 8584Subject length lower bound = 2 8585 a\rb 8586 0: a\x0db 8587 a\nb 8588 0: a\x0ab 8589 a\r\nb 8590 0: a\x0d\x0ab 8591 a\x85b 8592 0: a\x85b 8593 a\x0bb 8594 0: a\x0bb 8595 8596/a\R{2,4}b/I,bsr=anycrlf 8597Capturing subpattern count = 0 8598\R matches CR, LF, or CRLF 8599First code unit = 'a' 8600Last code unit = 'b' 8601Subject length lower bound = 4 8602 a\r\n\nb 8603 0: a\x0d\x0a\x0ab 8604 a\n\r\rb 8605 0: a\x0a\x0d\x0db 8606 a\r\n\r\n\r\n\r\nb 8607 0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab 8608\= Expect no match 8609 a\x85\x85b 8610No match 8611 a\x0b\x0bb 8612No match 8613 8614/a\R{2,4}b/I,bsr=unicode 8615Capturing subpattern count = 0 8616\R matches any Unicode newline 8617First code unit = 'a' 8618Last code unit = 'b' 8619Subject length lower bound = 4 8620 a\r\rb 8621 0: a\x0d\x0db 8622 a\n\n\nb 8623 0: a\x0a\x0a\x0ab 8624 a\r\n\n\r\rb 8625 0: a\x0d\x0a\x0a\x0d\x0db 8626 a\x85\x85b 8627 0: a\x85\x85b 8628 a\x0b\x0bb 8629 0: a\x0b\x0bb 8630\= Expect no match 8631 a\r\r\r\r\rb 8632No match 8633 8634/(*BSR_ANYCRLF)a\Rb/I 8635Capturing subpattern count = 0 8636\R matches CR, LF, or CRLF 8637First code unit = 'a' 8638Last code unit = 'b' 8639Subject length lower bound = 3 8640 a\nb 8641 0: a\x0ab 8642 a\rb 8643 0: a\x0db 8644 8645/(*BSR_UNICODE)a\Rb/I 8646Capturing subpattern count = 0 8647\R matches any Unicode newline 8648First code unit = 'a' 8649Last code unit = 'b' 8650Subject length lower bound = 3 8651 a\x85b 8652 0: a\x85b 8653 8654/(*BSR_ANYCRLF)(*CRLF)a\Rb/I 8655Capturing subpattern count = 0 8656\R matches CR, LF, or CRLF 8657Forced newline is CRLF 8658First code unit = 'a' 8659Last code unit = 'b' 8660Subject length lower bound = 3 8661 a\nb 8662 0: a\x0ab 8663 a\rb 8664 0: a\x0db 8665 8666/(*CRLF)(*BSR_UNICODE)a\Rb/I 8667Capturing subpattern count = 0 8668\R matches any Unicode newline 8669Forced newline is CRLF 8670First code unit = 'a' 8671Last code unit = 'b' 8672Subject length lower bound = 3 8673 a\x85b 8674 0: a\x85b 8675 8676/(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I 8677Capturing subpattern count = 0 8678\R matches CR, LF, or CRLF 8679Forced newline is CR 8680First code unit = 'a' 8681Last code unit = 'b' 8682Subject length lower bound = 2 8683 8684/(?<a>)(?&)/ 8685Failed: error 162 at offset 9: subpattern name expected 8686 8687/(?<abc>)(?&a)/ 8688Failed: error 115 at offset 11: reference to non-existent subpattern 8689 8690/(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/ 8691Failed: error 115 at offset 9: reference to non-existent subpattern 8692 8693/(?+-a)/ 8694Failed: error 129 at offset 2: digit expected after (?+ or (?- 8695 8696/(?-+a)/ 8697Failed: error 111 at offset 3: unrecognized character after (? or (?- 8698 8699/(?(-1))/ 8700Failed: error 115 at offset 5: reference to non-existent subpattern 8701 8702/(?(+10))/ 8703Failed: error 115 at offset 4: reference to non-existent subpattern 8704 8705/(?(10))/ 8706Failed: error 115 at offset 3: reference to non-existent subpattern 8707 8708/(?(+2))()()/ 8709 8710/(?(2))()()/ 8711 8712/\k''/ 8713Failed: error 162 at offset 3: subpattern name expected 8714 8715/\k<>/ 8716Failed: error 162 at offset 3: subpattern name expected 8717 8718/\k{}/ 8719Failed: error 162 at offset 3: subpattern name expected 8720 8721/\k/ 8722Failed: error 169 at offset 2: \k is not followed by a braced, angle-bracketed, or quoted name 8723 8724/\kabc/ 8725Failed: error 169 at offset 2: \k is not followed by a braced, angle-bracketed, or quoted name 8726 8727/(?P=)/ 8728Failed: error 162 at offset 4: subpattern name expected 8729 8730/(?P>)/ 8731Failed: error 162 at offset 4: subpattern name expected 8732 8733/[[:foo:]]/ 8734Failed: error 130 at offset 3: unknown POSIX class name 8735 8736/[[:1234:]]/ 8737Failed: error 130 at offset 3: unknown POSIX class name 8738 8739/[[:f\oo:]]/ 8740Failed: error 130 at offset 3: unknown POSIX class name 8741 8742/[[: :]]/ 8743Failed: error 130 at offset 3: unknown POSIX class name 8744 8745/[[:...:]]/ 8746Failed: error 130 at offset 3: unknown POSIX class name 8747 8748/[[:l\ower:]]/ 8749Failed: error 130 at offset 3: unknown POSIX class name 8750 8751/[[:abc\:]]/ 8752Failed: error 130 at offset 3: unknown POSIX class name 8753 8754/[abc[:x\]pqr:]]/ 8755Failed: error 130 at offset 6: unknown POSIX class name 8756 8757/[[:a\dz:]]/ 8758Failed: error 130 at offset 3: unknown POSIX class name 8759 8760/(^(a|b\g<-1'c))/ 8761Failed: error 157 at offset 8: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number 8762 8763/^(?+1)(?<a>x|y){0}z/ 8764 xzxx 8765 0: xz 8766 yzyy 8767 0: yz 8768\= Expect no match 8769 xxz 8770No match 8771 8772/(\3)(\1)(a)/ 8773\= Expect no match 8774 cat 8775No match 8776 8777/(\3)(\1)(a)/alt_bsux,allow_empty_class,match_unset_backref,dupnames 8778 cat 8779 0: a 8780 1: 8781 2: 8782 3: a 8783 8784/TA]/ 8785 The ACTA] comes 8786 0: TA] 8787 8788/TA]/alt_bsux,allow_empty_class,match_unset_backref,dupnames 8789 The ACTA] comes 8790 0: TA] 8791 8792/(?2)[]a()b](abc)/ 8793Failed: error 115 at offset 3: reference to non-existent subpattern 8794 abcbabc 8795 8796/(?2)[^]a()b](abc)/ 8797Failed: error 115 at offset 3: reference to non-existent subpattern 8798 abcbabc 8799 8800/(?1)[]a()b](abc)/ 8801 abcbabc 8802 0: abcbabc 8803 1: abc 8804\= Expect no match 8805 abcXabc 8806No match 8807 8808/(?1)[^]a()b](abc)/ 8809 abcXabc 8810 0: abcXabc 8811 1: abc 8812\= Expect no match 8813 abcbabc 8814No match 8815 8816/(?2)[]a()b](abc)(xyz)/ 8817 xyzbabcxyz 8818 0: xyzbabcxyz 8819 1: abc 8820 2: xyz 8821 8822/(?&N)[]a(?<N>)](?<M>abc)/ 8823Failed: error 115 at offset 3: reference to non-existent subpattern 8824 abc<abc 8825 8826/(?&N)[]a(?<N>)](abc)/ 8827Failed: error 115 at offset 3: reference to non-existent subpattern 8828 abc<abc 8829 8830/a[]b/ 8831Failed: error 106 at offset 4: missing terminating ] for character class 8832 8833/a[^]b/ 8834Failed: error 106 at offset 5: missing terminating ] for character class 8835 8836/a[]b/alt_bsux,allow_empty_class,match_unset_backref,dupnames 8837\= Expect no match 8838 ab 8839No match 8840 8841/a[]+b/alt_bsux,allow_empty_class,match_unset_backref,dupnames 8842\= Expect no match 8843 ab 8844No match 8845 8846/a[]*+b/alt_bsux,allow_empty_class,match_unset_backref,dupnames 8847\= Expect no match 8848 ab 8849No match 8850 8851/a[^]b/alt_bsux,allow_empty_class,match_unset_backref,dupnames 8852 aXb 8853 0: aXb 8854 a\nb 8855 0: a\x0ab 8856\= Expect no match 8857 ab 8858No match 8859 8860/a[^]+b/alt_bsux,allow_empty_class,match_unset_backref,dupnames 8861 aXb 8862 0: aXb 8863 a\nX\nXb 8864 0: a\x0aX\x0aXb 8865\= Expect no match 8866 ab 8867No match 8868 8869/a(?!)b/B 8870------------------------------------------------------------------ 8871 Bra 8872 a 8873 *FAIL 8874 b 8875 Ket 8876 End 8877------------------------------------------------------------------ 8878 8879/(?!)?a/B 8880------------------------------------------------------------------ 8881 Bra 8882 Brazero 8883 Assert not 8884 Ket 8885 a 8886 Ket 8887 End 8888------------------------------------------------------------------ 8889 ab 8890 0: a 8891 8892/a(*FAIL)+b/ 8893Failed: error 109 at offset 8: quantifier does not follow a repeatable item 8894 8895/(abc|pqr|123){0}[xyz]/I 8896Capturing subpattern count = 1 8897Starting code units: x y z 8898Subject length lower bound = 1 8899 8900/(?(?=.*b)b|^)/I,auto_callout 8901Capturing subpattern count = 0 8902May match empty string 8903Options: auto_callout 8904Subject length lower bound = 0 8905 adc 8906--->adc 8907 +0 ^ (? 8908 +2 ^ (?= 8909 +5 ^ .* 8910 +7 ^ ^ b 8911 +7 ^ ^ b 8912 +7 ^^ b 8913 +7 ^ b 8914+11 ^ ^ 8915+12 ^ ) 8916+13 ^ End of pattern 8917 0: 8918 abc 8919--->abc 8920 +0 ^ (? 8921 +2 ^ (?= 8922 +5 ^ .* 8923 +7 ^ ^ b 8924 +7 ^ ^ b 8925 +7 ^^ b 8926 +8 ^ ^ ) 8927 +9 ^ b 8928 +0 ^ (? 8929 +2 ^ (?= 8930 +5 ^ .* 8931 +7 ^ ^ b 8932 +7 ^^ b 8933 +7 ^ b 8934 +8 ^^ ) 8935 +9 ^ b 8936+10 ^^ | 8937+13 ^^ End of pattern 8938 0: b 8939 8940/(?(?=b).*b|^d)/I 8941Capturing subpattern count = 0 8942Subject length lower bound = 1 8943 8944/(?(?=.*b).*b|^d)/I 8945Capturing subpattern count = 0 8946Subject length lower bound = 1 8947 8948/xyz/auto_callout 8949 xyz 8950--->xyz 8951 +0 ^ x 8952 +1 ^^ y 8953 +2 ^ ^ z 8954 +3 ^ ^ End of pattern 8955 0: xyz 8956 abcxyz 8957--->abcxyz 8958 +0 ^ x 8959 +1 ^^ y 8960 +2 ^ ^ z 8961 +3 ^ ^ End of pattern 8962 0: xyz 8963\= Expect no match 8964 abc 8965No match 8966 abcxypqr 8967No match 8968 8969/xyz/auto_callout,no_start_optimize 8970 abcxyz 8971--->abcxyz 8972 +0 ^ x 8973 +0 ^ x 8974 +0 ^ x 8975 +0 ^ x 8976 +1 ^^ y 8977 +2 ^ ^ z 8978 +3 ^ ^ End of pattern 8979 0: xyz 8980\= Expect no match 8981 abc 8982--->abc 8983 +0 ^ x 8984 +0 ^ x 8985 +0 ^ x 8986 +0 ^ x 8987No match 8988 abcxypqr 8989--->abcxypqr 8990 +0 ^ x 8991 +0 ^ x 8992 +0 ^ x 8993 +0 ^ x 8994 +1 ^^ y 8995 +2 ^ ^ z 8996 +0 ^ x 8997 +0 ^ x 8998 +0 ^ x 8999 +0 ^ x 9000 +0 ^ x 9001No match 9002 9003/(*NO_START_OPT)xyz/auto_callout 9004 abcxyz 9005--->abcxyz 9006+15 ^ x 9007+15 ^ x 9008+15 ^ x 9009+15 ^ x 9010+16 ^^ y 9011+17 ^ ^ z 9012+18 ^ ^ End of pattern 9013 0: xyz 9014 9015/(*NO_AUTO_POSSESS)a+b/B 9016------------------------------------------------------------------ 9017 Bra 9018 a+ 9019 b 9020 Ket 9021 End 9022------------------------------------------------------------------ 9023 9024/xyz/auto_callout,no_start_optimize 9025 abcxyz 9026--->abcxyz 9027 +0 ^ x 9028 +0 ^ x 9029 +0 ^ x 9030 +0 ^ x 9031 +1 ^^ y 9032 +2 ^ ^ z 9033 +3 ^ ^ End of pattern 9034 0: xyz 9035 9036/^"((?(?=[a])[^"])|b)*"$/auto_callout 9037 "ab" 9038--->"ab" 9039 +0 ^ ^ 9040 +1 ^ " 9041 +2 ^^ ( 9042 +3 ^^ (? 9043 +5 ^^ (?= 9044 +8 ^^ [a] 9045+11 ^ ^ ) 9046+12 ^^ [^"] 9047+16 ^ ^ ) 9048+17 ^ ^ | 9049 +3 ^ ^ (? 9050 +5 ^ ^ (?= 9051 +8 ^ ^ [a] 9052+17 ^ ^ | 9053+21 ^ ^ " 9054+18 ^ ^ b 9055+19 ^ ^ )* 9056 +3 ^ ^ (? 9057 +5 ^ ^ (?= 9058 +8 ^ ^ [a] 9059+17 ^ ^ | 9060+21 ^ ^ " 9061+22 ^ ^ $ 9062+23 ^ ^ End of pattern 9063 0: "ab" 9064 1: 9065 9066/^"((?(?=[a])[^"])|b)*"$/ 9067 "ab" 9068 0: "ab" 9069 1: 9070 9071/^X(?5)(a)(?|(b)|(q))(c)(d)Y/ 9072Failed: error 115 at offset 5: reference to non-existent subpattern 9073 XYabcdY 9074 9075/^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/ 9076 XYabcdY 9077 0: XYabcdY 9078 1: a 9079 2: b 9080 3: c 9081 4: d 9082 5: Y 9083 9084/Xa{2,4}b/ 9085 X\=ps 9086Partial match: X 9087 Xa\=ps 9088Partial match: Xa 9089 Xaa\=ps 9090Partial match: Xaa 9091 Xaaa\=ps 9092Partial match: Xaaa 9093 Xaaaa\=ps 9094Partial match: Xaaaa 9095 9096/Xa{2,4}?b/ 9097 X\=ps 9098Partial match: X 9099 Xa\=ps 9100Partial match: Xa 9101 Xaa\=ps 9102Partial match: Xaa 9103 Xaaa\=ps 9104Partial match: Xaaa 9105 Xaaaa\=ps 9106Partial match: Xaaaa 9107 9108/Xa{2,4}+b/ 9109 X\=ps 9110Partial match: X 9111 Xa\=ps 9112Partial match: Xa 9113 Xaa\=ps 9114Partial match: Xaa 9115 Xaaa\=ps 9116Partial match: Xaaa 9117 Xaaaa\=ps 9118Partial match: Xaaaa 9119 9120/X\d{2,4}b/ 9121 X\=ps 9122Partial match: X 9123 X3\=ps 9124Partial match: X3 9125 X33\=ps 9126Partial match: X33 9127 X333\=ps 9128Partial match: X333 9129 X3333\=ps 9130Partial match: X3333 9131 9132/X\d{2,4}?b/ 9133 X\=ps 9134Partial match: X 9135 X3\=ps 9136Partial match: X3 9137 X33\=ps 9138Partial match: X33 9139 X333\=ps 9140Partial match: X333 9141 X3333\=ps 9142Partial match: X3333 9143 9144/X\d{2,4}+b/ 9145 X\=ps 9146Partial match: X 9147 X3\=ps 9148Partial match: X3 9149 X33\=ps 9150Partial match: X33 9151 X333\=ps 9152Partial match: X333 9153 X3333\=ps 9154Partial match: X3333 9155 9156/X\D{2,4}b/ 9157 X\=ps 9158Partial match: X 9159 Xa\=ps 9160Partial match: Xa 9161 Xaa\=ps 9162Partial match: Xaa 9163 Xaaa\=ps 9164Partial match: Xaaa 9165 Xaaaa\=ps 9166Partial match: Xaaaa 9167 9168/X\D{2,4}?b/ 9169 X\=ps 9170Partial match: X 9171 Xa\=ps 9172Partial match: Xa 9173 Xaa\=ps 9174Partial match: Xaa 9175 Xaaa\=ps 9176Partial match: Xaaa 9177 Xaaaa\=ps 9178Partial match: Xaaaa 9179 9180/X\D{2,4}+b/ 9181 X\=ps 9182Partial match: X 9183 Xa\=ps 9184Partial match: Xa 9185 Xaa\=ps 9186Partial match: Xaa 9187 Xaaa\=ps 9188Partial match: Xaaa 9189 Xaaaa\=ps 9190Partial match: Xaaaa 9191 9192/X[abc]{2,4}b/ 9193 X\=ps 9194Partial match: X 9195 Xa\=ps 9196Partial match: Xa 9197 Xaa\=ps 9198Partial match: Xaa 9199 Xaaa\=ps 9200Partial match: Xaaa 9201 Xaaaa\=ps 9202Partial match: Xaaaa 9203 9204/X[abc]{2,4}?b/ 9205 X\=ps 9206Partial match: X 9207 Xa\=ps 9208Partial match: Xa 9209 Xaa\=ps 9210Partial match: Xaa 9211 Xaaa\=ps 9212Partial match: Xaaa 9213 Xaaaa\=ps 9214Partial match: Xaaaa 9215 9216/X[abc]{2,4}+b/ 9217 X\=ps 9218Partial match: X 9219 Xa\=ps 9220Partial match: Xa 9221 Xaa\=ps 9222Partial match: Xaa 9223 Xaaa\=ps 9224Partial match: Xaaa 9225 Xaaaa\=ps 9226Partial match: Xaaaa 9227 9228/X[^a]{2,4}b/ 9229 X\=ps 9230Partial match: X 9231 Xz\=ps 9232Partial match: Xz 9233 Xzz\=ps 9234Partial match: Xzz 9235 Xzzz\=ps 9236Partial match: Xzzz 9237 Xzzzz\=ps 9238Partial match: Xzzzz 9239 9240/X[^a]{2,4}?b/ 9241 X\=ps 9242Partial match: X 9243 Xz\=ps 9244Partial match: Xz 9245 Xzz\=ps 9246Partial match: Xzz 9247 Xzzz\=ps 9248Partial match: Xzzz 9249 Xzzzz\=ps 9250Partial match: Xzzzz 9251 9252/X[^a]{2,4}+b/ 9253 X\=ps 9254Partial match: X 9255 Xz\=ps 9256Partial match: Xz 9257 Xzz\=ps 9258Partial match: Xzz 9259 Xzzz\=ps 9260Partial match: Xzzz 9261 Xzzzz\=ps 9262Partial match: Xzzzz 9263 9264/(Y)X\1{2,4}b/ 9265 YX\=ps 9266Partial match: YX 9267 YXY\=ps 9268Partial match: YXY 9269 YXYY\=ps 9270Partial match: YXYY 9271 YXYYY\=ps 9272Partial match: YXYYY 9273 YXYYYY\=ps 9274Partial match: YXYYYY 9275 9276/(Y)X\1{2,4}?b/ 9277 YX\=ps 9278Partial match: YX 9279 YXY\=ps 9280Partial match: YXY 9281 YXYY\=ps 9282Partial match: YXYY 9283 YXYYY\=ps 9284Partial match: YXYYY 9285 YXYYYY\=ps 9286Partial match: YXYYYY 9287 9288/(Y)X\1{2,4}+b/ 9289 YX\=ps 9290Partial match: YX 9291 YXY\=ps 9292Partial match: YXY 9293 YXYY\=ps 9294Partial match: YXYY 9295 YXYYY\=ps 9296Partial match: YXYYY 9297 YXYYYY\=ps 9298Partial match: YXYYYY 9299 9300/\++\KZ|\d+X|9+Y/startchar 9301 ++++123999\=ps 9302Partial match: 123999 9303 ++++123999Y\=ps 9304 0: 999Y 9305 ++++Z1234\=ps 9306 0: ++++Z 9307 ^^^^ 9308 9309/Z(*F)/ 9310\= Expect no match 9311 Z\=ps 9312No match 9313 ZA\=ps 9314No match 9315 9316/Z(?!)/ 9317\= Expect no match 9318 Z\=ps 9319No match 9320 ZA\=ps 9321No match 9322 9323/dog(sbody)?/ 9324 dogs\=ps 9325 0: dog 9326 dogs\=ph 9327Partial match: dogs 9328 9329/dog(sbody)??/ 9330 dogs\=ps 9331 0: dog 9332 dogs\=ph 9333 0: dog 9334 9335/dog|dogsbody/ 9336 dogs\=ps 9337 0: dog 9338 dogs\=ph 9339 0: dog 9340 9341/dogsbody|dog/ 9342 dogs\=ps 9343 0: dog 9344 dogs\=ph 9345Partial match: dogs 9346 9347/\bthe cat\b/ 9348 the cat\=ps 9349 0: the cat 9350 the cat\=ph 9351Partial match: the cat 9352 9353/abc/ 9354 abc\=ps 9355 0: abc 9356 abc\=ph 9357 0: abc 9358 9359/abc\K123/startchar 9360 xyzabc123pqr 9361 0: abc123 9362 ^^^ 9363 xyzabc12\=ps 9364Partial match: abc12 9365 xyzabc12\=ph 9366Partial match: abc12 9367 9368/(?<=abc)123/ 9369 xyzabc123pqr 9370 0: 123 9371 xyzabc12\=ps 9372Partial match: abc12 9373 <<< 9374 xyzabc12\=ph 9375Partial match: abc12 9376 <<< 9377 9378/\babc\b/ 9379 +++abc+++ 9380 0: abc 9381 +++ab\=ps 9382Partial match: +ab 9383 < 9384 +++ab\=ph 9385Partial match: +ab 9386 < 9387 9388/(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/B 9389------------------------------------------------------------------ 9390 Bra 9391 Recurse 9392 Recurse 9393 Cond 9394 Cond false 9395 CBra 1 9396 < 9397 [^m] 9398 [^>] 9399 > 9400 [^<] 9401 Ket 9402 CBra 2 9403 \w*+ 9404 Ket 9405 Ket 9406 Ket 9407 End 9408------------------------------------------------------------------ 9409 9410/(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/B 9411------------------------------------------------------------------ 9412 Bra 9413 Recurse 9414 Recurse 9415 Cond 9416 Cond false 9417 CBra 1 9418 < 9419 [\x00-/:-\xff] (neg) 9420 [^>] 9421 > 9422 [^<] 9423 Ket 9424 CBra 2 9425 \w*+ 9426 Ket 9427 Ket 9428 Ket 9429 End 9430------------------------------------------------------------------ 9431 9432/(ab)(x(y)z(cd(*ACCEPT)))pq/B 9433------------------------------------------------------------------ 9434 Bra 9435 CBra 1 9436 ab 9437 Ket 9438 CBra 2 9439 x 9440 CBra 3 9441 y 9442 Ket 9443 z 9444 CBra 4 9445 cd 9446 Close 4 9447 Close 2 9448 *ACCEPT 9449 Ket 9450 Ket 9451 pq 9452 Ket 9453 End 9454------------------------------------------------------------------ 9455 9456/abc\K/aftertext,startchar 9457 abcdef 9458 0: abc 9459 ^^^ 9460 0+ def 9461 abcdef\=notempty_atstart 9462 0: abc 9463 ^^^ 9464 0+ def 9465 xyzabcdef\=notempty_atstart 9466 0: abc 9467 ^^^ 9468 0+ def 9469\= Expect no match 9470 abcdef\=notempty 9471No match 9472 xyzabcdef\=notempty 9473No match 9474 9475/^(?:(?=abc)|abc\K)/aftertext,startchar 9476 abcdef 9477 0: 9478 0+ abcdef 9479 abcdef\=notempty_atstart 9480 0: abc 9481 ^^^ 9482 0+ def 9483\= Expect no match 9484 abcdef\=notempty 9485No match 9486 9487/a?b?/aftertext 9488 xyz 9489 0: 9490 0+ xyz 9491 xyzabc 9492 0: 9493 0+ xyzabc 9494 xyzabc\=notempty 9495 0: ab 9496 0+ c 9497 xyzabc\=notempty_atstart 9498 0: 9499 0+ yzabc 9500 xyz\=notempty_atstart 9501 0: 9502 0+ yz 9503\= Expect no match 9504 xyz\=notempty 9505No match 9506 9507/^a?b?/aftertext 9508 xyz 9509 0: 9510 0+ xyz 9511 xyzabc 9512 0: 9513 0+ xyzabc 9514\= Expect no match 9515 xyzabc\=notempty 9516No match 9517 xyzabc\=notempty_atstart 9518No match 9519 xyz\=notempty_atstart 9520No match 9521 xyz\=notempty 9522No match 9523 9524/^(?<name>a|b\g<name>c)/ 9525 aaaa 9526 0: a 9527 1: a 9528 bacxxx 9529 0: bac 9530 1: bac 9531 bbaccxxx 9532 0: bbacc 9533 1: bbacc 9534 bbbacccxx 9535 0: bbbaccc 9536 1: bbbaccc 9537 9538/^(?<name>a|b\g'name'c)/ 9539 aaaa 9540 0: a 9541 1: a 9542 bacxxx 9543 0: bac 9544 1: bac 9545 bbaccxxx 9546 0: bbacc 9547 1: bbacc 9548 bbbacccxx 9549 0: bbbaccc 9550 1: bbbaccc 9551 9552/^(a|b\g<1>c)/ 9553 aaaa 9554 0: a 9555 1: a 9556 bacxxx 9557 0: bac 9558 1: bac 9559 bbaccxxx 9560 0: bbacc 9561 1: bbacc 9562 bbbacccxx 9563 0: bbbaccc 9564 1: bbbaccc 9565 9566/^(a|b\g'1'c)/ 9567 aaaa 9568 0: a 9569 1: a 9570 bacxxx 9571 0: bac 9572 1: bac 9573 bbaccxxx 9574 0: bbacc 9575 1: bbacc 9576 bbbacccxx 9577 0: bbbaccc 9578 1: bbbaccc 9579 9580/^(a|b\g'-1'c)/ 9581 aaaa 9582 0: a 9583 1: a 9584 bacxxx 9585 0: bac 9586 1: bac 9587 bbaccxxx 9588 0: bbacc 9589 1: bbacc 9590 bbbacccxx 9591 0: bbbaccc 9592 1: bbbaccc 9593 9594/(^(a|b\g<-1>c))/ 9595 aaaa 9596 0: a 9597 1: a 9598 2: a 9599 bacxxx 9600 0: bac 9601 1: bac 9602 2: bac 9603 bbaccxxx 9604 0: bbacc 9605 1: bbacc 9606 2: bbacc 9607 bbbacccxx 9608 0: bbbaccc 9609 1: bbbaccc 9610 2: bbbaccc 9611 9612/(?-i:\g<name>)(?i:(?<name>a))/ 9613 XaaX 9614 0: aa 9615 1: a 9616 XAAX 9617 0: AA 9618 1: A 9619 9620/(?i:\g<name>)(?-i:(?<name>a))/ 9621 XaaX 9622 0: aa 9623 1: a 9624\= Expect no match 9625 XAAX 9626No match 9627 9628/(?-i:\g<+1>)(?i:(a))/ 9629 XaaX 9630 0: aa 9631 1: a 9632 XAAX 9633 0: AA 9634 1: A 9635 9636/(?=(?<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>\})\}))\{/ 9637 9638/(?<n>a|b|c)\g<n>*/ 9639 abc 9640 0: abc 9641 1: a 9642 accccbbb 9643 0: accccbbb 9644 1: a 9645 9646/^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/ 9647 XYabcdY 9648 0: XYabcdY 9649 1: a 9650 2: b 9651 3: <unset> 9652 4: <unset> 9653 5: c 9654 6: d 9655 7: Y 9656 9657/(?<=b(?1)|zzz)(a)/ 9658 xbaax 9659 0: a 9660 1: a 9661 xzzzax 9662 0: a 9663 1: a 9664 9665/(a)(?<=b\1)/ 9666 9667/(a)(?<=b+(?1))/ 9668Failed: error 125 at offset 3: lookbehind assertion is not fixed length 9669 9670/(a+)(?<=b(?1))/ 9671Failed: error 125 at offset 4: lookbehind assertion is not fixed length 9672 9673/(a(?<=b(?1)))/ 9674Failed: error 125 at offset 2: lookbehind assertion is not fixed length 9675 9676/(?<=b(?1))xyz/ 9677Failed: error 115 at offset 8: reference to non-existent subpattern 9678 9679/(?<=b(?1))xyz(b+)pqrstuvew/ 9680Failed: error 125 at offset 0: lookbehind assertion is not fixed length 9681 9682/(a|bc)\1/I 9683Capturing subpattern count = 1 9684Max back reference = 1 9685Starting code units: a b 9686Subject length lower bound = 2 9687 9688/(a|bc)\1{2,3}/I 9689Capturing subpattern count = 1 9690Max back reference = 1 9691Starting code units: a b 9692Subject length lower bound = 3 9693 9694/(a|bc)(?1)/I 9695Capturing subpattern count = 1 9696Starting code units: a b 9697Subject length lower bound = 2 9698 9699/(a|b\1)(a|b\1)/I 9700Capturing subpattern count = 2 9701Max back reference = 1 9702Starting code units: a b 9703Subject length lower bound = 2 9704 9705/(a|b\1){2}/I 9706Capturing subpattern count = 1 9707Max back reference = 1 9708Starting code units: a b 9709Subject length lower bound = 2 9710 9711/(a|bbbb\1)(a|bbbb\1)/I 9712Capturing subpattern count = 2 9713Max back reference = 1 9714Starting code units: a b 9715Subject length lower bound = 2 9716 9717/(a|bbbb\1){2}/I 9718Capturing subpattern count = 1 9719Max back reference = 1 9720Starting code units: a b 9721Subject length lower bound = 2 9722 9723/^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]/I 9724Capturing subpattern count = 1 9725Compile options: <none> 9726Overall options: anchored 9727First code unit = 'F' 9728Last code unit = ':' 9729Subject length lower bound = 22 9730 9731/<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>/Iis 9732Capturing subpattern count = 11 9733Options: caseless dotall 9734First code unit = '<' 9735Last code unit = '>' 9736Subject length lower bound = 47 9737 9738"(?>.*/)foo"I 9739Capturing subpattern count = 0 9740Last code unit = 'o' 9741Subject length lower bound = 4 9742 9743/(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /Ix 9744Capturing subpattern count = 0 9745Options: extended 9746Last code unit = '-' 9747Subject length lower bound = 8 9748 9749/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/Ii 9750Capturing subpattern count = 1 9751Options: caseless 9752Starting code units: A B C a b c 9753Subject length lower bound = 1 9754 9755/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/I 9756Capturing subpattern count = 0 9757Starting code units: c d 9758Last code unit = 'b' 9759Subject length lower bound = 41 9760 9761/<a[\s]+href[\s]*=[\s]* # find <a href= 9762 ([\"\'])? # find single or double quote 9763 (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching 9764 # quote, otherwise match up to next space 9765/Iisx 9766Capturing subpattern count = 3 9767Max back reference = 1 9768Options: caseless dotall extended 9769First code unit = '<' 9770Last code unit = '=' 9771Subject length lower bound = 9 9772 9773/^(?!:) # colon disallowed at start 9774 (?: # start of item 9775 (?: [0-9a-f]{1,4} | # 1-4 hex digits or 9776 (?(1)0 | () ) ) # if null previously matched, fail; else null 9777 : # followed by colon 9778 ){1,7} # end item; 1-7 of them required 9779 [0-9a-f]{1,4} $ # final hex number at end of string 9780 (?(1)|.) # check that there was an empty component 9781 /Iix 9782Capturing subpattern count = 1 9783Max back reference = 1 9784Compile options: caseless extended 9785Overall options: anchored caseless extended 9786Last code unit = ':' 9787Subject length lower bound = 2 9788 9789/(?|(?<a>A)|(?<a>B))/I 9790Capturing subpattern count = 1 9791Named capturing subpatterns: 9792 a 1 9793Starting code units: A B 9794Subject length lower bound = 1 9795 AB\=copy=a 9796 0: A 9797 1: A 9798 C A (1) a (group 1) 9799 BA\=copy=a 9800 0: B 9801 1: B 9802 C B (1) a (group 1) 9803 9804/(?|(?<a>A)|(?<b>B))/ 9805Failed: error 165 at offset 16: different names for subpatterns of the same number are not allowed 9806 9807/(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) | 9808 b(?<quote> (?<apostrophe>')|(?<realquote>")) ) 9809 (?('quote')[a-z]+|[0-9]+)/Ix,dupnames 9810Capturing subpattern count = 6 9811Max back reference = 4 9812Named capturing subpatterns: 9813 apostrophe 2 9814 apostrophe 5 9815 quote 1 9816 quote 4 9817 realquote 3 9818 realquote 6 9819Options: dupnames extended 9820Starting code units: a b 9821Subject length lower bound = 3 9822 a"aaaaa 9823 0: a"aaaaa 9824 1: " 9825 2: <unset> 9826 3: " 9827 b"aaaaa 9828 0: b"aaaaa 9829 1: <unset> 9830 2: <unset> 9831 3: <unset> 9832 4: " 9833 5: <unset> 9834 6: " 9835\= Expect no match 9836 b"11111 9837No match 9838 a"11111 9839No match 9840 9841/^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/IBx,dupnames 9842------------------------------------------------------------------ 9843 Bra 9844 ^ 9845 Bra 9846 CBra 1 9847 a 9848 Ket 9849 CBra 2 9850 b 9851 Ket 9852 CBra 3 9853 c 9854 Ket 9855 CBra 4 9856 d 9857 Ket 9858 Alt 9859 CBra 1 9860 e 9861 Ket 9862 Ket 9863 Cond 9864 Cond ref <D>2 9865 X 9866 Alt 9867 Y 9868 Ket 9869 Ket 9870 End 9871------------------------------------------------------------------ 9872Capturing subpattern count = 4 9873Max back reference = 4 9874Named capturing subpatterns: 9875 D 4 9876 D 1 9877Compile options: dupnames extended 9878Overall options: anchored dupnames extended 9879Starting code units: a e 9880Subject length lower bound = 2 9881 abcdX 9882 0: abcdX 9883 1: a 9884 2: b 9885 3: c 9886 4: d 9887 eX 9888 0: eX 9889 1: e 9890\= Expect no match 9891 abcdY 9892No match 9893 ey 9894No match 9895 9896/(?<A>a) (b)(c) (?<A>d (?(R&A)$ | (?4)) )/IBx,dupnames 9897------------------------------------------------------------------ 9898 Bra 9899 CBra 1 9900 a 9901 Ket 9902 CBra 2 9903 b 9904 Ket 9905 CBra 3 9906 c 9907 Ket 9908 CBra 4 9909 d 9910 Cond 9911 Cond recurse <A>2 9912 $ 9913 Alt 9914 Recurse 9915 Ket 9916 Ket 9917 Ket 9918 End 9919------------------------------------------------------------------ 9920Capturing subpattern count = 4 9921Max back reference = 4 9922Named capturing subpatterns: 9923 A 1 9924 A 4 9925Options: dupnames extended 9926First code unit = 'a' 9927Last code unit = 'd' 9928Subject length lower bound = 4 9929 abcdd 9930 0: abcdd 9931 1: a 9932 2: b 9933 3: c 9934 4: dd 9935\= Expect no match 9936 abcdde 9937No match 9938 9939/abcd*/ 9940 xxxxabcd\=ps 9941 0: abcd 9942 xxxxabcd\=ph 9943Partial match: abcd 9944 9945/abcd*/i 9946 xxxxabcd\=ps 9947 0: abcd 9948 xxxxabcd\=ph 9949Partial match: abcd 9950 XXXXABCD\=ps 9951 0: ABCD 9952 XXXXABCD\=ph 9953Partial match: ABCD 9954 9955/abc\d*/ 9956 xxxxabc1\=ps 9957 0: abc1 9958 xxxxabc1\=ph 9959Partial match: abc1 9960 9961/(a)bc\1*/ 9962 xxxxabca\=ps 9963 0: abca 9964 1: a 9965 xxxxabca\=ph 9966Partial match: abca 9967 9968/abc[de]*/ 9969 xxxxabcde\=ps 9970 0: abcde 9971 xxxxabcde\=ph 9972Partial match: abcde 9973 9974/(\3)(\1)(a)/alt_bsux,allow_empty_class,match_unset_backref,dupnames 9975 cat 9976 0: a 9977 1: 9978 2: 9979 3: a 9980 9981/(\3)(\1)(a)/I,alt_bsux,allow_empty_class,match_unset_backref,dupnames 9982Capturing subpattern count = 3 9983Max back reference = 3 9984Options: alt_bsux allow_empty_class dupnames match_unset_backref 9985Last code unit = 'a' 9986Subject length lower bound = 1 9987 cat 9988 0: a 9989 1: 9990 2: 9991 3: a 9992 9993/(\3)(\1)(a)/I 9994Capturing subpattern count = 3 9995Max back reference = 3 9996Last code unit = 'a' 9997Subject length lower bound = 3 9998\= Expect no match 9999 cat 10000No match 10001 10002/i(?(DEFINE)(?<s>a))/I 10003Capturing subpattern count = 1 10004Named capturing subpatterns: 10005 s 1 10006First code unit = 'i' 10007Subject length lower bound = 1 10008 i 10009 0: i 10010 10011/()i(?(1)a)/I 10012Capturing subpattern count = 1 10013Max back reference = 1 10014First code unit = 'i' 10015Subject length lower bound = 1 10016 ia 10017 0: ia 10018 1: 10019 10020/(?i)a(?-i)b|c/B 10021------------------------------------------------------------------ 10022 Bra 10023 /i a 10024 b 10025 Alt 10026 c 10027 Ket 10028 End 10029------------------------------------------------------------------ 10030 XabX 10031 0: ab 10032 XAbX 10033 0: Ab 10034 CcC 10035 0: c 10036\= Expect no match 10037 XABX 10038No match 10039 10040/(?i)a(?s)b|c/B 10041------------------------------------------------------------------ 10042 Bra 10043 /i ab 10044 Alt 10045 /i c 10046 Ket 10047 End 10048------------------------------------------------------------------ 10049 10050/(?i)a(?s-i)b|c/B 10051------------------------------------------------------------------ 10052 Bra 10053 /i a 10054 b 10055 Alt 10056 c 10057 Ket 10058 End 10059------------------------------------------------------------------ 10060 10061/^(ab(c\1)d|x){2}$/B 10062------------------------------------------------------------------ 10063 Bra 10064 ^ 10065 Once 10066 CBra 1 10067 ab 10068 CBra 2 10069 c 10070 \1 10071 Ket 10072 d 10073 Alt 10074 x 10075 Ket 10076 Ket 10077 Once 10078 CBra 1 10079 ab 10080 CBra 2 10081 c 10082 \1 10083 Ket 10084 d 10085 Alt 10086 x 10087 Ket 10088 Ket 10089 $ 10090 Ket 10091 End 10092------------------------------------------------------------------ 10093 xabcxd 10094 0: xabcxd 10095 1: abcxd 10096 2: cx 10097 10098/^(?&t)*+(?(DEFINE)(?<t>.))$/B 10099------------------------------------------------------------------ 10100 Bra 10101 ^ 10102 Braposzero 10103 SBraPos 10104 Recurse 10105 KetRpos 10106 Cond 10107 Cond false 10108 CBra 1 10109 Any 10110 Ket 10111 Ket 10112 $ 10113 Ket 10114 End 10115------------------------------------------------------------------ 10116 10117/^(?&t)*(?(DEFINE)(?<t>.))$/B 10118------------------------------------------------------------------ 10119 Bra 10120 ^ 10121 Brazero 10122 SBra 10123 Recurse 10124 KetRmax 10125 Cond 10126 Cond false 10127 CBra 1 10128 Any 10129 Ket 10130 Ket 10131 $ 10132 Ket 10133 End 10134------------------------------------------------------------------ 10135 10136# This one is here because Perl gives the match as "b" rather than "ab". I 10137# believe this to be a Perl bug. 10138 10139/(?>a\Kb)z|(ab)/ 10140 ab\=startchar 10141 0: ab 10142 1: ab 10143 10144/(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/ 10145 abcd 10146 0: 10147 1: 10148 2: 10149 0abc 10150 0: 0 10151 1: 0 10152 2: 0 10153 10154/abc(*MARK:)pqr/ 10155Failed: error 166 at offset 10: (*MARK) must have an argument 10156 10157/abc(*:)pqr/ 10158Failed: error 166 at offset 6: (*MARK) must have an argument 10159 10160/(*COMMIT:X)/B 10161------------------------------------------------------------------ 10162 Bra 10163 *COMMIT X 10164 Ket 10165 End 10166------------------------------------------------------------------ 10167 10168# This should, and does, fail. In Perl, it does not, which I think is a 10169# bug because replacing the B in the pattern by (B|D) does make it fail. 10170# Turning off Perl's optimization by inserting (??{""}) also makes it fail. 10171 10172/A(*COMMIT)B/aftertext,mark 10173\= Expect no match 10174 ACABX 10175No match 10176 10177# These should be different, but in Perl they are not, which I think 10178# is a bug in Perl. 10179 10180/A(*THEN)B|A(*THEN)C/mark 10181 AC 10182 0: AC 10183 10184/A(*PRUNE)B|A(*PRUNE)C/mark 10185\= Expect no match 10186 AC 10187No match 10188 10189# Mark names can be duplicated. Perl doesn't give a mark for this one, 10190# though PCRE2 does. 10191 10192/^A(*:A)B|^X(*:A)Y/mark 10193\= Expect no match 10194 XAQQ 10195No match, mark = A 10196 10197# COMMIT at the start of a pattern should be the same as an anchor. Perl 10198# optimizations defeat this. So does the PCRE2 optimization unless we disable 10199# it. 10200 10201/(*COMMIT)ABC/ 10202 ABCDEFG 10203 0: ABC 10204 10205/(*COMMIT)ABC/no_start_optimize 10206\= Expect no match 10207 DEFGABC 10208No match 10209 10210/^(ab (c+(*THEN)cd) | xyz)/x 10211\= Expect no match 10212 abcccd 10213No match 10214 10215/^(ab (c+(*PRUNE)cd) | xyz)/x 10216\= Expect no match 10217 abcccd 10218No match 10219 10220/^(ab (c+(*FAIL)cd) | xyz)/x 10221\= Expect no match 10222 abcccd 10223No match 10224 10225# Perl gets some of these wrong 10226 10227/(?>.(*ACCEPT))*?5/ 10228 abcde 10229 0: a 10230 10231/(.(*ACCEPT))*?5/ 10232 abcde 10233 0: a 10234 1: a 10235 10236/(.(*ACCEPT))5/ 10237 abcde 10238 0: a 10239 1: a 10240 10241/(.(*ACCEPT))*5/ 10242 abcde 10243 0: a 10244 1: a 10245 10246/A\NB./B 10247------------------------------------------------------------------ 10248 Bra 10249 A 10250 Any 10251 B 10252 Any 10253 Ket 10254 End 10255------------------------------------------------------------------ 10256 ACBD 10257 0: ACBD 10258\= Expect no match 10259 A\nB 10260No match 10261 ACB\n 10262No match 10263 10264/A\NB./Bs 10265------------------------------------------------------------------ 10266 Bra 10267 A 10268 Any 10269 B 10270 AllAny 10271 Ket 10272 End 10273------------------------------------------------------------------ 10274 ACBD 10275 0: ACBD 10276 ACB\n 10277 0: ACB\x0a 10278\= Expect no match 10279 A\nB 10280No match 10281 10282/A\NB/newline=crlf 10283 A\nB 10284 0: A\x0aB 10285 A\rB 10286 0: A\x0dB 10287\= Expect no match 10288 A\r\nB 10289No match 10290 10291/\R+b/B 10292------------------------------------------------------------------ 10293 Bra 10294 \R++ 10295 b 10296 Ket 10297 End 10298------------------------------------------------------------------ 10299 10300/\R+\n/B 10301------------------------------------------------------------------ 10302 Bra 10303 \R+ 10304 \x0a 10305 Ket 10306 End 10307------------------------------------------------------------------ 10308 10309/\R+\d/B 10310------------------------------------------------------------------ 10311 Bra 10312 \R++ 10313 \d 10314 Ket 10315 End 10316------------------------------------------------------------------ 10317 10318/\d*\R/B 10319------------------------------------------------------------------ 10320 Bra 10321 \d*+ 10322 \R 10323 Ket 10324 End 10325------------------------------------------------------------------ 10326 10327/\s*\R/B 10328------------------------------------------------------------------ 10329 Bra 10330 \s* 10331 \R 10332 Ket 10333 End 10334------------------------------------------------------------------ 10335 \x20\x0a 10336 0: \x0a 10337 \x20\x0d 10338 0: \x0d 10339 \x20\x0d\x0a 10340 0: \x0d\x0a 10341 10342/\S*\R/B 10343------------------------------------------------------------------ 10344 Bra 10345 \S*+ 10346 \R 10347 Ket 10348 End 10349------------------------------------------------------------------ 10350 a\x0a 10351 0: a\x0a 10352 10353/X\h*\R/B 10354------------------------------------------------------------------ 10355 Bra 10356 X 10357 \h*+ 10358 \R 10359 Ket 10360 End 10361------------------------------------------------------------------ 10362 X\x20\x0a 10363 0: X \x0a 10364 10365/X\H*\R/B 10366------------------------------------------------------------------ 10367 Bra 10368 X 10369 \H* 10370 \R 10371 Ket 10372 End 10373------------------------------------------------------------------ 10374 X\x0d\x0a 10375 0: X\x0d\x0a 10376 10377/X\H+\R/B 10378------------------------------------------------------------------ 10379 Bra 10380 X 10381 \H+ 10382 \R 10383 Ket 10384 End 10385------------------------------------------------------------------ 10386 X\x0d\x0a 10387 0: X\x0d\x0a 10388 10389/X\H++\R/B 10390------------------------------------------------------------------ 10391 Bra 10392 X 10393 \H++ 10394 \R 10395 Ket 10396 End 10397------------------------------------------------------------------ 10398\= Expect no match 10399 X\x0d\x0a 10400No match 10401 10402/(?<=abc)def/ 10403 abc\=ph 10404Partial match: abc 10405 <<< 10406 10407/abc$/ 10408 abc 10409 0: abc 10410 abc\=ps 10411 0: abc 10412 abc\=ph 10413Partial match: abc 10414 10415/abc$/m 10416 abc 10417 0: abc 10418 abc\n 10419 0: abc 10420 abc\=ph 10421Partial match: abc 10422 abc\n\=ph 10423 0: abc 10424 abc\=ps 10425 0: abc 10426 abc\n\=ps 10427 0: abc 10428 10429/abc\z/ 10430 abc 10431 0: abc 10432 abc\=ps 10433 0: abc 10434 abc\=ph 10435Partial match: abc 10436 10437/abc\Z/ 10438 abc 10439 0: abc 10440 abc\=ps 10441 0: abc 10442 abc\=ph 10443Partial match: abc 10444 10445/abc\b/ 10446 abc 10447 0: abc 10448 abc\=ps 10449 0: abc 10450 abc\=ph 10451Partial match: abc 10452 10453/abc\B/ 10454 abc\=ps 10455Partial match: abc 10456 abc\=ph 10457Partial match: abc 10458\= Expect no match 10459 abc 10460No match 10461 10462/.+/ 10463\= Bad offsets 10464 abc\=offset=4 10465Failed: error -33: bad offset value 10466 abc\=offset=-4 10467** Invalid value in 'offset=-4' 10468\= Valid data 10469 abc\=offset=0 10470 0: abc 10471 abc\=offset=1 10472 0: bc 10473 abc\=offset=2 10474 0: c 10475\= Expect no match 10476 abc\=offset=3 10477No match 10478 10479/^\cģ/ 10480Failed: error 168 at offset 3: \c must be followed by a printable ASCII character 10481 10482/(?P<abn>(?P=abn)xxx)/B 10483------------------------------------------------------------------ 10484 Bra 10485 Once 10486 CBra 1 10487 \1 10488 xxx 10489 Ket 10490 Ket 10491 Ket 10492 End 10493------------------------------------------------------------------ 10494 10495/(a\1z)/B 10496------------------------------------------------------------------ 10497 Bra 10498 Once 10499 CBra 1 10500 a 10501 \1 10502 z 10503 Ket 10504 Ket 10505 Ket 10506 End 10507------------------------------------------------------------------ 10508 10509/(?P<abn>(?P=abn)(?<badstufxxx)/B 10510Failed: error 142 at offset 29: syntax error in subpattern name (missing terminator) 10511 10512/(?P<abn>(?P=axn)xxx)/B 10513Failed: error 115 at offset 12: reference to non-existent subpattern 10514 10515/(?P<abn>(?P=axn)xxx)(?<axn>yy)/B 10516------------------------------------------------------------------ 10517 Bra 10518 CBra 1 10519 \2 10520 xxx 10521 Ket 10522 CBra 2 10523 yy 10524 Ket 10525 Ket 10526 End 10527------------------------------------------------------------------ 10528 10529# These tests are here because Perl gets the first one wrong. 10530 10531/(\R*)(.)/s 10532 \r\n 10533 0: \x0d 10534 1: 10535 2: \x0d 10536 \r\r\n\n\r 10537 0: \x0d\x0d\x0a\x0a\x0d 10538 1: \x0d\x0d\x0a\x0a 10539 2: \x0d 10540 \r\r\n\n\r\n 10541 0: \x0d\x0d\x0a\x0a\x0d 10542 1: \x0d\x0d\x0a\x0a 10543 2: \x0d 10544 10545/(\R)*(.)/s 10546 \r\n 10547 0: \x0d 10548 1: <unset> 10549 2: \x0d 10550 \r\r\n\n\r 10551 0: \x0d\x0d\x0a\x0a\x0d 10552 1: \x0a 10553 2: \x0d 10554 \r\r\n\n\r\n 10555 0: \x0d\x0d\x0a\x0a\x0d 10556 1: \x0a 10557 2: \x0d 10558 10559/((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s 10560 \r\n 10561 0: \x0d 10562 1: 10563 2: \x0d 10564 \r\r\n\n\r 10565 0: \x0d\x0d\x0a\x0a\x0d 10566 1: \x0d\x0d\x0a\x0a 10567 2: \x0d 10568 \r\r\n\n\r\n 10569 0: \x0d\x0d\x0a\x0a\x0d 10570 1: \x0d\x0d\x0a\x0a 10571 2: \x0d 10572 10573# ------------- 10574 10575/^abc$/B 10576------------------------------------------------------------------ 10577 Bra 10578 ^ 10579 abc 10580 $ 10581 Ket 10582 End 10583------------------------------------------------------------------ 10584 10585/^abc$/Bm 10586------------------------------------------------------------------ 10587 Bra 10588 /m ^ 10589 abc 10590 /m $ 10591 Ket 10592 End 10593------------------------------------------------------------------ 10594 10595/^(a)*+(\w)/ 10596 aaaaX 10597 0: aaaaX 10598 1: a 10599 2: X 10600\= Expect no match 10601 aaaa 10602No match 10603 10604/^(?:a)*+(\w)/ 10605 aaaaX 10606 0: aaaaX 10607 1: X 10608\= Expect no match 10609 aaaa 10610No match 10611 10612/(a)++1234/IB 10613------------------------------------------------------------------ 10614 Bra 10615 CBraPos 1 10616 a 10617 KetRpos 10618 1234 10619 Ket 10620 End 10621------------------------------------------------------------------ 10622Capturing subpattern count = 1 10623First code unit = 'a' 10624Last code unit = '4' 10625Subject length lower bound = 5 10626 10627/([abc])++1234/I 10628Capturing subpattern count = 1 10629Starting code units: a b c 10630Last code unit = '4' 10631Subject length lower bound = 5 10632 10633/(?<=(abc)+)X/ 10634Failed: error 125 at offset 0: lookbehind assertion is not fixed length 10635 10636/(^ab)/I 10637Capturing subpattern count = 1 10638Compile options: <none> 10639Overall options: anchored 10640First code unit = 'a' 10641Subject length lower bound = 2 10642 10643/(^ab)++/I 10644Capturing subpattern count = 1 10645Compile options: <none> 10646Overall options: anchored 10647First code unit = 'a' 10648Subject length lower bound = 2 10649 10650/(^ab|^)+/I 10651Capturing subpattern count = 1 10652May match empty string 10653Compile options: <none> 10654Overall options: anchored 10655Subject length lower bound = 0 10656 10657/(^ab|^)++/I 10658Capturing subpattern count = 1 10659May match empty string 10660Compile options: <none> 10661Overall options: anchored 10662Subject length lower bound = 0 10663 10664/(?:^ab)/I 10665Capturing subpattern count = 0 10666Compile options: <none> 10667Overall options: anchored 10668First code unit = 'a' 10669Subject length lower bound = 2 10670 10671/(?:^ab)++/I 10672Capturing subpattern count = 0 10673Compile options: <none> 10674Overall options: anchored 10675First code unit = 'a' 10676Subject length lower bound = 2 10677 10678/(?:^ab|^)+/I 10679Capturing subpattern count = 0 10680May match empty string 10681Compile options: <none> 10682Overall options: anchored 10683Subject length lower bound = 0 10684 10685/(?:^ab|^)++/I 10686Capturing subpattern count = 0 10687May match empty string 10688Compile options: <none> 10689Overall options: anchored 10690Subject length lower bound = 0 10691 10692/(.*ab)/I 10693Capturing subpattern count = 1 10694First code unit at start or follows newline 10695Last code unit = 'b' 10696Subject length lower bound = 2 10697 10698/(.*ab)++/I 10699Capturing subpattern count = 1 10700First code unit at start or follows newline 10701Last code unit = 'b' 10702Subject length lower bound = 2 10703 10704/(.*ab|.*)+/I 10705Capturing subpattern count = 1 10706May match empty string 10707First code unit at start or follows newline 10708Subject length lower bound = 0 10709 10710/(.*ab|.*)++/I 10711Capturing subpattern count = 1 10712May match empty string 10713First code unit at start or follows newline 10714Subject length lower bound = 0 10715 10716/(?:.*ab)/I 10717Capturing subpattern count = 0 10718First code unit at start or follows newline 10719Last code unit = 'b' 10720Subject length lower bound = 2 10721 10722/(?:.*ab)++/I 10723Capturing subpattern count = 0 10724First code unit at start or follows newline 10725Last code unit = 'b' 10726Subject length lower bound = 2 10727 10728/(?:.*ab|.*)+/I 10729Capturing subpattern count = 0 10730May match empty string 10731First code unit at start or follows newline 10732Subject length lower bound = 0 10733 10734/(?:.*ab|.*)++/I 10735Capturing subpattern count = 0 10736May match empty string 10737First code unit at start or follows newline 10738Subject length lower bound = 0 10739 10740/(?=a)[bcd]/I 10741Capturing subpattern count = 0 10742First code unit = 'a' 10743Subject length lower bound = 1 10744 10745/((?=a))[bcd]/I 10746Capturing subpattern count = 1 10747First code unit = 'a' 10748Subject length lower bound = 1 10749 10750/((?=a))+[bcd]/I 10751Capturing subpattern count = 1 10752First code unit = 'a' 10753Subject length lower bound = 1 10754 10755/((?=a))++[bcd]/I 10756Capturing subpattern count = 1 10757First code unit = 'a' 10758Subject length lower bound = 1 10759 10760/(?=a+)[bcd]/Ii 10761Capturing subpattern count = 0 10762Options: caseless 10763First code unit = 'a' (caseless) 10764Subject length lower bound = 1 10765 10766/(?=a+?)[bcd]/Ii 10767Capturing subpattern count = 0 10768Options: caseless 10769First code unit = 'a' (caseless) 10770Subject length lower bound = 1 10771 10772/(?=a++)[bcd]/Ii 10773Capturing subpattern count = 0 10774Options: caseless 10775First code unit = 'a' (caseless) 10776Subject length lower bound = 1 10777 10778/(?=a{3})[bcd]/Ii 10779Capturing subpattern count = 0 10780Options: caseless 10781First code unit = 'a' (caseless) 10782Last code unit = 'a' (caseless) 10783Subject length lower bound = 1 10784 10785/(abc)\1+/ 10786 10787# Perl doesn't get these right IMO (the 3rd is PCRE2-specific) 10788 10789/(?1)(?:(b(*ACCEPT))){0}/ 10790 b 10791 0: b 10792 10793/(?1)(?:(b(*ACCEPT))){0}c/ 10794 bc 10795 0: bc 10796\= Expect no match 10797 b 10798No match 10799 10800/(?1)(?:((*ACCEPT))){0}c/ 10801 c 10802 0: c 10803 c\=notempty 10804 0: c 10805 10806/^.*?(?(?=a)a|b(*THEN)c)/ 10807\= Expect no match 10808 ba 10809No match 10810 10811/^.*?(?(?=a)a|bc)/ 10812 ba 10813 0: ba 10814 10815/^.*?(?(?=a)a(*THEN)b|c)/ 10816\= Expect no match 10817 ac 10818No match 10819 10820/^.*?(?(?=a)a(*THEN)b)c/ 10821\= Expect no match 10822 ac 10823No match 10824 10825/^.*?(a(*THEN)b)c/ 10826\= Expect no match 10827 aabc 10828No match 10829 10830/^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x 10831 aabc 10832 0: aabc 10833 10834/^.*?(a(*THEN)b|z)c/ 10835 aabc 10836 0: aabc 10837 1: ab 10838 10839/^.*?(z|a(*THEN)b)c/ 10840 aabc 10841 0: aabc 10842 1: ab 10843 10844# These are here because they are not Perl-compatible; the studying means the 10845# mark is not seen. 10846 10847/(*MARK:A)(*SKIP:B)(C|X)/mark 10848 C 10849 0: C 10850 1: C 10851MK: A 10852\= Expect no match 10853 D 10854No match, mark = A 10855 10856/(*:A)A+(*SKIP:A)(B|Z)/mark 10857\= Expect no match 10858 AAAC 10859No match, mark = A 10860 10861# ---------------------------- 10862 10863"(?=a*(*ACCEPT)b)c" 10864 c 10865 0: c 10866 c\=notempty 10867 0: c 10868 10869/(?1)c(?(DEFINE)((*ACCEPT)b))/ 10870 c 10871 0: c 10872 c\=notempty 10873 0: c 10874 10875/(?>(*ACCEPT)b)c/ 10876 c 10877 0: 10878\= Expect no match 10879 c\=notempty 10880No match 10881 10882/(?:(?>(a)))+a%/allaftertext 10883 %aa% 10884 0: aa% 10885 0+ 10886 1: a 10887 1+ a% 10888 10889/(a)b|ac/allaftertext 10890 ac\=ovector=1 10891 0: ac 10892 0+ 10893 10894/(a)(b)x|abc/allaftertext 10895 abc\=ovector=2 10896 0: abc 10897 0+ 10898 10899/(a)bc|(a)(b)\2/ 10900 abc\=ovector=1 10901Matched, but too many substrings 10902 0: abc 10903 abc\=ovector=2 10904 0: abc 10905 1: a 10906 aba\=ovector=1 10907Matched, but too many substrings 10908 0: aba 10909 aba\=ovector=2 10910Matched, but too many substrings 10911 0: aba 10912 1: <unset> 10913 aba\=ovector=3 10914Matched, but too many substrings 10915 0: aba 10916 1: <unset> 10917 2: a 10918 aba\=ovector=4 10919 0: aba 10920 1: <unset> 10921 2: a 10922 3: b 10923 10924/(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/I 10925Capturing subpattern count = 2 10926May match empty string 10927Subject length lower bound = 0 10928 10929/(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/I 10930Capturing subpattern count = 2 10931Starting code units: a b 10932Subject length lower bound = 3 10933 10934/(a(?2)|b)(b(?1)|a)(?1)(?2)/I 10935Capturing subpattern count = 2 10936Starting code units: a b 10937Subject length lower bound = 4 10938 10939/(abc)(?1)/I 10940Capturing subpattern count = 1 10941First code unit = 'a' 10942Last code unit = 'c' 10943Subject length lower bound = 6 10944 10945/(?:(foo)|(bar)|(baz))X/allcaptures 10946 bazfooX 10947 0: fooX 10948 1: foo 10949 2: <unset> 10950 3: <unset> 10951 foobazbarX 10952 0: barX 10953 1: <unset> 10954 2: bar 10955 3: <unset> 10956 barfooX 10957 0: fooX 10958 1: foo 10959 2: <unset> 10960 3: <unset> 10961 bazX 10962 0: bazX 10963 1: <unset> 10964 2: <unset> 10965 3: baz 10966 foobarbazX 10967 0: bazX 10968 1: <unset> 10969 2: <unset> 10970 3: baz 10971 bazfooX\=ovector=0 10972 0: fooX 10973 1: foo 10974 2: <unset> 10975 3: <unset> 10976 bazfooX\=ovector=1 10977Matched, but too many substrings 10978 0: fooX 10979 bazfooX\=ovector=2 10980 0: fooX 10981 1: foo 10982 bazfooX\=ovector=3 10983 0: fooX 10984 1: foo 10985 2: <unset> 10986 10987/(?=abc){3}abc/B 10988------------------------------------------------------------------ 10989 Bra 10990 Assert 10991 abc 10992 Ket 10993 abc 10994 Ket 10995 End 10996------------------------------------------------------------------ 10997 10998/(?=abc)+abc/B 10999------------------------------------------------------------------ 11000 Bra 11001 Assert 11002 abc 11003 Ket 11004 abc 11005 Ket 11006 End 11007------------------------------------------------------------------ 11008 11009/(?=abc)++abc/B 11010------------------------------------------------------------------ 11011 Bra 11012 Assert 11013 abc 11014 Ket 11015 abc 11016 Ket 11017 End 11018------------------------------------------------------------------ 11019 11020/(?=abc){0}xyz/B 11021------------------------------------------------------------------ 11022 Bra 11023 Skip zero 11024 Assert 11025 abc 11026 Ket 11027 xyz 11028 Ket 11029 End 11030------------------------------------------------------------------ 11031 11032/(?=(a))?./B 11033------------------------------------------------------------------ 11034 Bra 11035 Brazero 11036 Assert 11037 CBra 1 11038 a 11039 Ket 11040 Ket 11041 Any 11042 Ket 11043 End 11044------------------------------------------------------------------ 11045 11046/(?=(a))??./B 11047------------------------------------------------------------------ 11048 Bra 11049 Braminzero 11050 Assert 11051 CBra 1 11052 a 11053 Ket 11054 Ket 11055 Any 11056 Ket 11057 End 11058------------------------------------------------------------------ 11059 11060/^(?=(a)){0}b(?1)/B 11061------------------------------------------------------------------ 11062 Bra 11063 ^ 11064 Skip zero 11065 Assert 11066 CBra 1 11067 a 11068 Ket 11069 Ket 11070 b 11071 Recurse 11072 Ket 11073 End 11074------------------------------------------------------------------ 11075 11076/(?(DEFINE)(a))?b(?1)/B 11077------------------------------------------------------------------ 11078 Bra 11079 Cond 11080 Cond false 11081 CBra 1 11082 a 11083 Ket 11084 Ket 11085 b 11086 Recurse 11087 Ket 11088 End 11089------------------------------------------------------------------ 11090 11091/^(?=(?1))?[az]([abc])d/B 11092------------------------------------------------------------------ 11093 Bra 11094 ^ 11095 Brazero 11096 Assert 11097 Recurse 11098 Ket 11099 [az] 11100 CBra 1 11101 [a-c] 11102 Ket 11103 d 11104 Ket 11105 End 11106------------------------------------------------------------------ 11107 11108/^(?!a){0}\w+/B 11109------------------------------------------------------------------ 11110 Bra 11111 ^ 11112 Skip zero 11113 Assert not 11114 a 11115 Ket 11116 \w++ 11117 Ket 11118 End 11119------------------------------------------------------------------ 11120 11121/(?<=(abc))?xyz/B 11122------------------------------------------------------------------ 11123 Bra 11124 Brazero 11125 AssertB 11126 Reverse 11127 CBra 1 11128 abc 11129 Ket 11130 Ket 11131 xyz 11132 Ket 11133 End 11134------------------------------------------------------------------ 11135 11136/[:a[:abc]b:]/B 11137------------------------------------------------------------------ 11138 Bra 11139 [:[a-c] 11140 b:] 11141 Ket 11142 End 11143------------------------------------------------------------------ 11144 11145/^(a(*:A)(d|e(*:B))z|aeq)/auto_callout 11146 adz 11147--->adz 11148 +0 ^ ^ 11149 +1 ^ ( 11150 +2 ^ a 11151 +3 ^^ (*:A) 11152 +8 ^^ ( 11153Latest Mark: A 11154 +9 ^^ d 11155+10 ^ ^ | 11156+18 ^ ^ z 11157+19 ^ ^ | 11158+24 ^ ^ End of pattern 11159 0: adz 11160 1: adz 11161 2: d 11162 aez 11163--->aez 11164 +0 ^ ^ 11165 +1 ^ ( 11166 +2 ^ a 11167 +3 ^^ (*:A) 11168 +8 ^^ ( 11169Latest Mark: A 11170 +9 ^^ d 11171+11 ^^ e 11172+12 ^ ^ (*:B) 11173+17 ^ ^ ) 11174Latest Mark: B 11175+18 ^ ^ z 11176+19 ^ ^ | 11177+24 ^ ^ End of pattern 11178 0: aez 11179 1: aez 11180 2: e 11181 aeqwerty 11182--->aeqwerty 11183 +0 ^ ^ 11184 +1 ^ ( 11185 +2 ^ a 11186 +3 ^^ (*:A) 11187 +8 ^^ ( 11188Latest Mark: A 11189 +9 ^^ d 11190+11 ^^ e 11191+12 ^ ^ (*:B) 11192+17 ^ ^ ) 11193Latest Mark: B 11194+18 ^ ^ z 11195+20 ^ a 11196+21 ^^ e 11197+22 ^ ^ q 11198+23 ^ ^ ) 11199+24 ^ ^ End of pattern 11200 0: aeq 11201 1: aeq 11202 11203/.(*F)/ 11204\= Expect no match 11205 abc\=ph 11206No match 11207 11208/\btype\b\W*?\btext\b\W*?\bjavascript\b/I 11209Capturing subpattern count = 0 11210Max lookbehind = 1 11211First code unit = 't' 11212Last code unit = 't' 11213Subject length lower bound = 18 11214 11215/\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/I 11216Capturing subpattern count = 0 11217Max lookbehind = 1 11218Starting code units: < o t u 11219Subject length lower bound = 8 11220 11221/a(*SKIP)c|b(*ACCEPT)|/I,aftertext 11222Capturing subpattern count = 0 11223May match empty string 11224Subject length lower bound = 0 11225 a 11226 0: 11227 0+ 11228 11229/a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/I 11230Capturing subpattern count = 0 11231Starting code units: a b x 11232Subject length lower bound = 0 11233 ax 11234 0: x 11235 11236'a*(*ACCEPT)b'aftertext 11237 abc\=notempty_atstart 11238 0: a 11239 0+ bc 11240 bbb\=notempty_atstart 11241 0: 11242 0+ bb 11243\= Expect no match 11244 \=notempty_atstart 11245No match 11246 11247/(*ACCEPT)a/I,aftertext 11248Capturing subpattern count = 0 11249Subject length lower bound = 0 11250 bax 11251 0: 11252 0+ bax 11253 11254/z(*ACCEPT)a/I,aftertext 11255Capturing subpattern count = 0 11256First code unit = 'z' 11257Subject length lower bound = 0 11258 baxzbx 11259 0: z 11260 0+ bx 11261 11262/^(?>a+)(?>(z+))\w/B 11263------------------------------------------------------------------ 11264 Bra 11265 ^ 11266 Once 11267 a++ 11268 Ket 11269 Once 11270 CBra 1 11271 z++ 11272 Ket 11273 Ket 11274 \w 11275 Ket 11276 End 11277------------------------------------------------------------------ 11278 aaaazzzzb 11279 0: aaaazzzzb 11280 1: zzzz 11281\= Expect no match 11282 aazz 11283No match 11284 11285/(.)(\1|a(?2))/ 11286 bab 11287 0: bab 11288 1: b 11289 2: ab 11290 11291/\1|(.)(?R)\1/ 11292 cbbbc 11293 0: cbbbc 11294 1: c 11295 11296/(.)((?(1)c|a)|a(?2))/ 11297\= Expect no match 11298 baa 11299No match 11300 11301/(?P<abn>(?P=abn)xxx)/B 11302------------------------------------------------------------------ 11303 Bra 11304 Once 11305 CBra 1 11306 \1 11307 xxx 11308 Ket 11309 Ket 11310 Ket 11311 End 11312------------------------------------------------------------------ 11313 11314/(a\1z)/B 11315------------------------------------------------------------------ 11316 Bra 11317 Once 11318 CBra 1 11319 a 11320 \1 11321 z 11322 Ket 11323 Ket 11324 Ket 11325 End 11326------------------------------------------------------------------ 11327 11328/^a\x41z/alt_bsux,allow_empty_class,match_unset_backref,dupnames 11329 aAz 11330 0: aAz 11331\= Expect no match 11332 ax41z 11333No match 11334 11335/^a[m\x41]z/alt_bsux,allow_empty_class,match_unset_backref,dupnames 11336 aAz 11337 0: aAz 11338 11339/^a\x1z/alt_bsux,allow_empty_class,match_unset_backref,dupnames 11340 ax1z 11341 0: ax1z 11342 11343/^a\u0041z/alt_bsux,allow_empty_class,match_unset_backref,dupnames 11344 aAz 11345 0: aAz 11346\= Expect no match 11347 au0041z 11348No match 11349 11350/^a[m\u0041]z/alt_bsux,allow_empty_class,match_unset_backref,dupnames 11351 aAz 11352 0: aAz 11353 11354/^a\u041z/alt_bsux,allow_empty_class,match_unset_backref,dupnames 11355 au041z 11356 0: au041z 11357\= Expect no match 11358 aAz 11359No match 11360 11361/^a\U0041z/alt_bsux,allow_empty_class,match_unset_backref,dupnames 11362 aU0041z 11363 0: aU0041z 11364\= Expect no match 11365 aAz 11366No match 11367 11368/(?(?=c)c|d)++Y/B 11369------------------------------------------------------------------ 11370 Bra 11371 BraPos 11372 Cond 11373 Assert 11374 c 11375 Ket 11376 c 11377 Alt 11378 d 11379 Ket 11380 KetRpos 11381 Y 11382 Ket 11383 End 11384------------------------------------------------------------------ 11385 11386/(?(?=c)c|d)*+Y/B 11387------------------------------------------------------------------ 11388 Bra 11389 Braposzero 11390 BraPos 11391 Cond 11392 Assert 11393 c 11394 Ket 11395 c 11396 Alt 11397 d 11398 Ket 11399 KetRpos 11400 Y 11401 Ket 11402 End 11403------------------------------------------------------------------ 11404 11405/a[\NB]c/ 11406Failed: error 171 at offset 4: \N is not supported in a class 11407 aNc 11408 11409/a[B-\Nc]/ 11410Failed: error 150 at offset 6: invalid range in character class 11411 11412/a[B\Nc]/ 11413Failed: error 171 at offset 5: \N is not supported in a class 11414 11415/(a)(?2){0,1999}?(b)/ 11416 11417/(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/ 11418 11419# This test, with something more complicated than individual letters, causes 11420# different behaviour in Perl. Perhaps it disables some optimization; no tag is 11421# passed back for the failures, whereas in PCRE2 there is a tag. 11422 11423/(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/x,mark 11424 AABC 11425 0: AB 11426 1: A 11427 2: B 11428MK: A 11429 XXYZ 11430 0: XXY 11431 1: <unset> 11432 2: <unset> 11433 3: X 11434 4: X 11435 5: Y 11436MK: B 11437\= Expect no match 11438 XAQQ 11439No match, mark = A 11440 XAQQXZZ 11441No match, mark = A 11442 AXQQQ 11443No match, mark = A 11444 AXXQQQ 11445No match, mark = B 11446 11447# Perl doesn't give marks for these, though it does if the alternatives are 11448# replaced by single letters. 11449 11450/(b|q)(*:m)f|a(*:n)w/mark 11451 aw 11452 0: aw 11453MK: n 11454\= Expect no match 11455 abc 11456No match, mark = m 11457 11458/(q|b)(*:m)f|a(*:n)w/mark 11459 aw 11460 0: aw 11461MK: n 11462\= Expect no match 11463 abc 11464No match, mark = m 11465 11466# After a partial match, the behaviour is as for a failure. 11467 11468/^a(*:X)bcde/mark 11469 abc\=ps 11470Partial match, mark=X: abc 11471 11472# These are here because Perl doesn't return a mark, except for the first. 11473 11474/(?=(*:x))(q|)/aftertext,mark 11475 abc 11476 0: 11477 0+ abc 11478 1: 11479MK: x 11480 11481/(?=(*:x))((*:y)q|)/aftertext,mark 11482 abc 11483 0: 11484 0+ abc 11485 1: 11486MK: x 11487 11488/(?=(*:x))(?:(*:y)q|)/aftertext,mark 11489 abc 11490 0: 11491 0+ abc 11492MK: x 11493 11494/(?=(*:x))(?>(*:y)q|)/aftertext,mark 11495 abc 11496 0: 11497 0+ abc 11498MK: x 11499 11500/(?=a(*:x))(?!a(*:y)c)/aftertext,mark 11501 ab 11502 0: 11503 0+ ab 11504MK: x 11505 11506/(?=a(*:x))(?=a(*:y)c|)/aftertext,mark 11507 ab 11508 0: 11509 0+ ab 11510MK: x 11511 11512/(..)\1/ 11513 ab\=ps 11514Partial match: ab 11515 aba\=ps 11516Partial match: aba 11517 abab\=ps 11518 0: abab 11519 1: ab 11520 11521/(..)\1/i 11522 ab\=ps 11523Partial match: ab 11524 abA\=ps 11525Partial match: abA 11526 aBAb\=ps 11527 0: aBAb 11528 1: aB 11529 11530/(..)\1{2,}/ 11531 ab\=ps 11532Partial match: ab 11533 aba\=ps 11534Partial match: aba 11535 abab\=ps 11536Partial match: abab 11537 ababa\=ps 11538Partial match: ababa 11539 ababab\=ps 11540 0: ababab 11541 1: ab 11542 ababab\=ph 11543Partial match: ababab 11544 abababa\=ps 11545 0: ababab 11546 1: ab 11547 abababa\=ph 11548Partial match: abababa 11549 11550/(..)\1{2,}/i 11551 ab\=ps 11552Partial match: ab 11553 aBa\=ps 11554Partial match: aBa 11555 aBAb\=ps 11556Partial match: aBAb 11557 AbaBA\=ps 11558Partial match: AbaBA 11559 abABAb\=ps 11560 0: abABAb 11561 1: ab 11562 aBAbaB\=ph 11563Partial match: aBAbaB 11564 abABabA\=ps 11565 0: abABab 11566 1: ab 11567 abaBABa\=ph 11568Partial match: abaBABa 11569 11570/(..)\1{2,}?x/i 11571 ab\=ps 11572Partial match: ab 11573 abA\=ps 11574Partial match: abA 11575 aBAb\=ps 11576Partial match: aBAb 11577 abaBA\=ps 11578Partial match: abaBA 11579 abAbaB\=ps 11580Partial match: abAbaB 11581 abaBabA\=ps 11582Partial match: abaBabA 11583 abAbABaBx\=ps 11584 0: abAbABaBx 11585 1: ab 11586 11587/^(..)\1/ 11588 aba\=ps 11589Partial match: aba 11590 11591/^(..)\1{2,3}x/ 11592 aba\=ps 11593Partial match: aba 11594 ababa\=ps 11595Partial match: ababa 11596 ababa\=ph 11597Partial match: ababa 11598 abababx 11599 0: abababx 11600 1: ab 11601 ababababx 11602 0: ababababx 11603 1: ab 11604 11605/^(..)\1{2,3}?x/ 11606 aba\=ps 11607Partial match: aba 11608 ababa\=ps 11609Partial match: ababa 11610 ababa\=ph 11611Partial match: ababa 11612 abababx 11613 0: abababx 11614 1: ab 11615 ababababx 11616 0: ababababx 11617 1: ab 11618 11619/^(..)(\1{2,3})ab/ 11620 abababab 11621 0: abababab 11622 1: ab 11623 2: abab 11624 11625/^\R/ 11626 \r\=ps 11627 0: \x0d 11628 \r\=ph 11629Partial match: \x0d 11630 11631/^\R{2,3}x/ 11632 \r\=ps 11633Partial match: \x0d 11634 \r\=ph 11635Partial match: \x0d 11636 \r\r\=ps 11637Partial match: \x0d\x0d 11638 \r\r\=ph 11639Partial match: \x0d\x0d 11640 \r\r\r\=ps 11641Partial match: \x0d\x0d\x0d 11642 \r\r\r\=ph 11643Partial match: \x0d\x0d\x0d 11644 \r\rx 11645 0: \x0d\x0dx 11646 \r\r\rx 11647 0: \x0d\x0d\x0dx 11648 11649/^\R{2,3}?x/ 11650 \r\=ps 11651Partial match: \x0d 11652 \r\=ph 11653Partial match: \x0d 11654 \r\r\=ps 11655Partial match: \x0d\x0d 11656 \r\r\=ph 11657Partial match: \x0d\x0d 11658 \r\r\r\=ps 11659Partial match: \x0d\x0d\x0d 11660 \r\r\r\=ph 11661Partial match: \x0d\x0d\x0d 11662 \r\rx 11663 0: \x0d\x0dx 11664 \r\r\rx 11665 0: \x0d\x0d\x0dx 11666 11667/^\R?x/ 11668 \r\=ps 11669Partial match: \x0d 11670 \r\=ph 11671Partial match: \x0d 11672 x 11673 0: x 11674 \rx 11675 0: \x0dx 11676 11677/^\R+x/ 11678 \r\=ps 11679Partial match: \x0d 11680 \r\=ph 11681Partial match: \x0d 11682 \r\n\=ps 11683Partial match: \x0d\x0a 11684 \r\n\=ph 11685Partial match: \x0d\x0a 11686 \rx 11687 0: \x0dx 11688 11689/^a$/newline=crlf 11690 a\r\=ps 11691Partial match: a\x0d 11692 a\r\=ph 11693Partial match: a\x0d 11694 11695/^a$/m,newline=crlf 11696 a\r\=ps 11697Partial match: a\x0d 11698 a\r\=ph 11699Partial match: a\x0d 11700 11701/^(a$|a\r)/newline=crlf 11702 a\r\=ps 11703 0: a\x0d 11704 1: a\x0d 11705 a\r\=ph 11706Partial match: a\x0d 11707 11708/^(a$|a\r)/m,newline=crlf 11709 a\r\=ps 11710 0: a\x0d 11711 1: a\x0d 11712 a\r\=ph 11713Partial match: a\x0d 11714 11715/./newline=crlf 11716 \r\=ps 11717 0: \x0d 11718 \r\=ph 11719Partial match: \x0d 11720 11721/.{2,3}/newline=crlf 11722 \r\=ps 11723Partial match: \x0d 11724 \r\=ph 11725Partial match: \x0d 11726 \r\r\=ps 11727 0: \x0d\x0d 11728 \r\r\=ph 11729Partial match: \x0d\x0d 11730 \r\r\r\=ps 11731 0: \x0d\x0d\x0d 11732 \r\r\r\=ph 11733Partial match: \x0d\x0d\x0d 11734 11735/.{2,3}?/newline=crlf 11736 \r\=ps 11737Partial match: \x0d 11738 \r\=ph 11739Partial match: \x0d 11740 \r\r\=ps 11741 0: \x0d\x0d 11742 \r\r\=ph 11743Partial match: \x0d\x0d 11744 \r\r\r\=ps 11745 0: \x0d\x0d 11746 \r\r\r\=ph 11747 0: \x0d\x0d 11748 11749"AB(C(D))(E(F))?(?(?=\2)(?=\4))" 11750 ABCDGHI\=ovector=01 11751Matched, but too many substrings 11752 0: ABCD 11753 11754# These are all run as real matches in test 1; here we are just checking the 11755# settings of the anchored and startline bits. 11756 11757/(?>.*?a)(?<=ba)/I 11758Capturing subpattern count = 0 11759Max lookbehind = 2 11760Last code unit = 'a' 11761Subject length lower bound = 1 11762 11763/(?:.*?a)(?<=ba)/I 11764Capturing subpattern count = 0 11765Max lookbehind = 2 11766First code unit at start or follows newline 11767Last code unit = 'a' 11768Subject length lower bound = 1 11769 11770/.*?a(*PRUNE)b/I 11771Capturing subpattern count = 0 11772Last code unit = 'b' 11773Subject length lower bound = 2 11774 11775/.*?a(*PRUNE)b/Is 11776Capturing subpattern count = 0 11777Options: dotall 11778Last code unit = 'b' 11779Subject length lower bound = 2 11780 11781/^a(*PRUNE)b/Is 11782Capturing subpattern count = 0 11783Compile options: dotall 11784Overall options: anchored dotall 11785First code unit = 'a' 11786Subject length lower bound = 2 11787 11788/.*?a(*SKIP)b/I 11789Capturing subpattern count = 0 11790Last code unit = 'b' 11791Subject length lower bound = 2 11792 11793/(?>.*?a)b/Is 11794Capturing subpattern count = 0 11795Options: dotall 11796Last code unit = 'b' 11797Subject length lower bound = 2 11798 11799/(?>.*?a)b/I 11800Capturing subpattern count = 0 11801Last code unit = 'b' 11802Subject length lower bound = 2 11803 11804/(?>^a)b/Is 11805Capturing subpattern count = 0 11806Compile options: dotall 11807Overall options: anchored dotall 11808First code unit = 'a' 11809Subject length lower bound = 2 11810 11811/(?>.*?)(?<=(abcd)|(wxyz))/I 11812Capturing subpattern count = 2 11813Max lookbehind = 4 11814May match empty string 11815Subject length lower bound = 0 11816 11817/(?>.*)(?<=(abcd)|(wxyz))/I 11818Capturing subpattern count = 2 11819Max lookbehind = 4 11820May match empty string 11821Subject length lower bound = 0 11822 11823"(?>.*)foo"I 11824Capturing subpattern count = 0 11825Last code unit = 'o' 11826Subject length lower bound = 3 11827 11828"(?>.*?)foo"I 11829Capturing subpattern count = 0 11830Last code unit = 'o' 11831Subject length lower bound = 3 11832 11833/(?>^abc)/Im 11834Capturing subpattern count = 0 11835Options: multiline 11836First code unit at start or follows newline 11837Last code unit = 'c' 11838Subject length lower bound = 3 11839 11840/(?>.*abc)/Im 11841Capturing subpattern count = 0 11842Options: multiline 11843Last code unit = 'c' 11844Subject length lower bound = 3 11845 11846/(?:.*abc)/Im 11847Capturing subpattern count = 0 11848Options: multiline 11849First code unit at start or follows newline 11850Last code unit = 'c' 11851Subject length lower bound = 3 11852 11853/(?:(a)+(?C1)bb|aa(?C2)b)/ 11854 aab\=callout_capture 11855Callout 1: last capture = 1 11856 1: a 11857--->aab 11858 ^ ^ b 11859Callout 1: last capture = 1 11860 1: a 11861--->aab 11862 ^^ b 11863Callout 2: last capture = 0 11864--->aab 11865 ^ ^ b 11866 0: aab 11867 11868/(?:(a)++(?C1)bb|aa(?C2)b)/ 11869 aab\=callout_capture 11870Callout 1: last capture = 1 11871 1: a 11872--->aab 11873 ^ ^ b 11874Callout 2: last capture = 0 11875--->aab 11876 ^ ^ b 11877 0: aab 11878 11879/(?:(?>(a))(?C1)bb|aa(?C2)b)/ 11880 aab\=callout_capture 11881Callout 1: last capture = 1 11882 1: a 11883--->aab 11884 ^^ b 11885Callout 2: last capture = 0 11886--->aab 11887 ^ ^ b 11888 0: aab 11889 11890/(?:(?1)(?C1)x|ab(?C2))((a)){0}/ 11891 aab\=callout_capture 11892Callout 1: last capture = 0 11893--->aab 11894 ^^ x 11895Callout 1: last capture = 0 11896--->aab 11897 ^^ x 11898Callout 2: last capture = 0 11899--->aab 11900 ^ ^ ) 11901 0: ab 11902 11903/(?1)(?C1)((a)(?C2)){0}/ 11904 aab\=callout_capture 11905Callout 2: last capture = 2 11906 1: <unset> 11907 2: a 11908--->aab 11909 ^^ ){0} 11910Callout 1: last capture = 0 11911--->aab 11912 ^^ ( 11913 0: a 11914 11915/(?:(a)+(?C1)bb|aa(?C2)b)++/ 11916 aab\=callout_capture 11917Callout 1: last capture = 1 11918 1: a 11919--->aab 11920 ^ ^ b 11921Callout 1: last capture = 1 11922 1: a 11923--->aab 11924 ^^ b 11925Callout 2: last capture = 0 11926--->aab 11927 ^ ^ b 11928 0: aab 11929 aab\=callout_capture,ovector=1 11930Callout 1: last capture = 1 11931 1: a 11932--->aab 11933 ^ ^ b 11934Callout 1: last capture = 1 11935 1: a 11936--->aab 11937 ^^ b 11938Callout 2: last capture = 0 11939--->aab 11940 ^ ^ b 11941 0: aab 11942 11943/(ab)x|ab/ 11944 ab\=ovector=0 11945 0: ab 11946 ab\=ovector=1 11947 0: ab 11948 11949/(?<=123)(*MARK:xx)abc/mark 11950 xxxx123a\=ph 11951Partial match, mark=xx: 123a 11952 <<< 11953 xxxx123a\=ps 11954Partial match, mark=xx: 123a 11955 <<< 11956 11957/123\Kabc/startchar 11958 xxxx123a\=ph 11959Partial match: 123a 11960 xxxx123a\=ps 11961Partial match: 123a 11962 11963/^(?(?=a)aa|bb)/auto_callout 11964 bb 11965--->bb 11966 +0 ^ ^ 11967 +1 ^ (? 11968 +3 ^ (?= 11969 +6 ^ a 11970+11 ^ b 11971+12 ^^ b 11972+13 ^ ^ ) 11973+14 ^ ^ End of pattern 11974 0: bb 11975 11976/(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/ 11977 bb 11978--->bb 11979 1 ^ ^ 11980 2 ^ (? 11981 99 ^ (?= 11982 3 ^ a 11983 8 ^ b 11984 9 ^^ b 11985 10 ^ ^ ) 11986 11 ^ ^ End of pattern 11987 0: bb 11988 11989# Perl seems to have a bug with this one. 11990 11991/aaaaa(*COMMIT)(*PRUNE)b|a+c/ 11992 aaaaaac 11993 0: aaaac 11994 11995# Here are some that Perl treats differently because of the way it handles 11996# backtracking verbs. 11997 11998/(?!a(*COMMIT)b)ac|ad/ 11999 ac 12000 0: ac 12001 ad 12002 0: ad 12003 12004/^(?!a(*THEN)b|ac)../ 12005 ad 12006 0: ad 12007\= Expect no match 12008 ac 12009No match 12010 12011/^(?=a(*THEN)b|ac)/ 12012 ac 12013 0: 12014 12015/\A.*?(?:a|b(*THEN)c)/ 12016 ba 12017 0: ba 12018 12019/\A.*?(?:a|b(*THEN)c)++/ 12020 ba 12021 0: ba 12022 12023/\A.*?(?:a|b(*THEN)c|d)/ 12024 ba 12025 0: ba 12026 12027/(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/ 12028 aac 12029 0: aac 12030 12031/\A.*?(a|b(*THEN)c)/ 12032 ba 12033 0: ba 12034 1: a 12035 12036/^(A(*THEN)B|A(*THEN)D)/ 12037 AD 12038 0: AD 12039 1: AD 12040 12041/(?!b(*THEN)a)bn|bnn/ 12042 bnn 12043 0: bn 12044 12045/(?(?=b(*SKIP)a)bn|bnn)/ 12046 bnn 12047 0: bnn 12048 12049/(?=b(*THEN)a|)bn|bnn/ 12050 bnn 12051 0: bn 12052 12053# This test causes a segfault with Perl 5.18.0 12054 12055/^(?=(a)){0}b(?1)/ 12056 backgammon 12057 0: ba 12058 12059/(?|(?<n>f)|(?<n>b))/I,dupnames 12060Capturing subpattern count = 1 12061Named capturing subpatterns: 12062 n 1 12063Options: dupnames 12064Starting code units: b f 12065Subject length lower bound = 1 12066 12067/(?<a>abc)(?<a>z)\k<a>()/IB,dupnames 12068------------------------------------------------------------------ 12069 Bra 12070 CBra 1 12071 abc 12072 Ket 12073 CBra 2 12074 z 12075 Ket 12076 \k<a>2 12077 CBra 3 12078 Ket 12079 Ket 12080 End 12081------------------------------------------------------------------ 12082Capturing subpattern count = 3 12083Max back reference = 2 12084Named capturing subpatterns: 12085 a 1 12086 a 2 12087Options: dupnames 12088First code unit = 'a' 12089Last code unit = 'z' 12090Subject length lower bound = 5 12091 12092/a*[bcd]/B 12093------------------------------------------------------------------ 12094 Bra 12095 a*+ 12096 [b-d] 12097 Ket 12098 End 12099------------------------------------------------------------------ 12100 12101/[bcd]*a/B 12102------------------------------------------------------------------ 12103 Bra 12104 [b-d]*+ 12105 a 12106 Ket 12107 End 12108------------------------------------------------------------------ 12109 12110# A complete set of tests for auto-possessification of character types, but 12111# omitting \C because it might be disabled (it has its own tests). 12112 12113/\D+\D \D+\d \D+\S \D+\s \D+\W \D+\w \D+. \D+\R \D+\H \D+\h \D+\V \D+\v \D+\Z \D+\z \D+$/Bx 12114------------------------------------------------------------------ 12115 Bra 12116 \D+ 12117 \D 12118 \D++ 12119 \d 12120 \D+ 12121 \S 12122 \D+ 12123 \s 12124 \D+ 12125 \W 12126 \D+ 12127 \w 12128 \D+ 12129 Any 12130 \D+ 12131 \R 12132 \D+ 12133 \H 12134 \D+ 12135 \h 12136 \D+ 12137 \V 12138 \D+ 12139 \v 12140 \D+ 12141 \Z 12142 \D++ 12143 \z 12144 \D+ 12145 $ 12146 Ket 12147 End 12148------------------------------------------------------------------ 12149 12150/\d+\D \d+\d \d+\S \d+\s \d+\W \d+\w \d+. \d+\R \d+\H \d+\h \d+\V \d+\v \d+\Z \d+\z \d+$/Bx 12151------------------------------------------------------------------ 12152 Bra 12153 \d++ 12154 \D 12155 \d+ 12156 \d 12157 \d+ 12158 \S 12159 \d++ 12160 \s 12161 \d++ 12162 \W 12163 \d+ 12164 \w 12165 \d+ 12166 Any 12167 \d++ 12168 \R 12169 \d+ 12170 \H 12171 \d++ 12172 \h 12173 \d+ 12174 \V 12175 \d++ 12176 \v 12177 \d++ 12178 \Z 12179 \d++ 12180 \z 12181 \d++ 12182 $ 12183 Ket 12184 End 12185------------------------------------------------------------------ 12186 12187/\S+\D \S+\d \S+\S \S+\s \S+\W \S+\w \S+. \S+\R \S+\H \S+\h \S+\V \S+\v \S+\Z \S+\z \S+$/Bx 12188------------------------------------------------------------------ 12189 Bra 12190 \S+ 12191 \D 12192 \S+ 12193 \d 12194 \S+ 12195 \S 12196 \S++ 12197 \s 12198 \S+ 12199 \W 12200 \S+ 12201 \w 12202 \S+ 12203 Any 12204 \S++ 12205 \R 12206 \S+ 12207 \H 12208 \S++ 12209 \h 12210 \S+ 12211 \V 12212 \S++ 12213 \v 12214 \S++ 12215 \Z 12216 \S++ 12217 \z 12218 \S++ 12219 $ 12220 Ket 12221 End 12222------------------------------------------------------------------ 12223 12224/\s+\D \s+\d \s+\S \s+\s \s+\W \s+\w \s+. \s+\R \s+\H \s+\h \s+\V \s+\v \s+\Z \s+\z \s+$/Bx 12225------------------------------------------------------------------ 12226 Bra 12227 \s+ 12228 \D 12229 \s++ 12230 \d 12231 \s++ 12232 \S 12233 \s+ 12234 \s 12235 \s+ 12236 \W 12237 \s++ 12238 \w 12239 \s+ 12240 Any 12241 \s+ 12242 \R 12243 \s+ 12244 \H 12245 \s+ 12246 \h 12247 \s+ 12248 \V 12249 \s+ 12250 \v 12251 \s+ 12252 \Z 12253 \s++ 12254 \z 12255 \s+ 12256 $ 12257 Ket 12258 End 12259------------------------------------------------------------------ 12260 12261/\W+\D \W+\d \W+\S \W+\s \W+\W \W+\w \W+. \W+\R \W+\H \W+\h \W+\V \W+\v \W+\Z \W+\z \W+$/Bx 12262------------------------------------------------------------------ 12263 Bra 12264 \W+ 12265 \D 12266 \W++ 12267 \d 12268 \W+ 12269 \S 12270 \W+ 12271 \s 12272 \W+ 12273 \W 12274 \W++ 12275 \w 12276 \W+ 12277 Any 12278 \W+ 12279 \R 12280 \W+ 12281 \H 12282 \W+ 12283 \h 12284 \W+ 12285 \V 12286 \W+ 12287 \v 12288 \W+ 12289 \Z 12290 \W++ 12291 \z 12292 \W+ 12293 $ 12294 Ket 12295 End 12296------------------------------------------------------------------ 12297 12298/\w+\D \w+\d \w+\S \w+\s \w+\W \w+\w \w+. \w+\R \w+\H \w+\h \w+\V \w+\v \w+\Z \w+\z \w+$/Bx 12299------------------------------------------------------------------ 12300 Bra 12301 \w+ 12302 \D 12303 \w+ 12304 \d 12305 \w+ 12306 \S 12307 \w++ 12308 \s 12309 \w++ 12310 \W 12311 \w+ 12312 \w 12313 \w+ 12314 Any 12315 \w++ 12316 \R 12317 \w+ 12318 \H 12319 \w++ 12320 \h 12321 \w+ 12322 \V 12323 \w++ 12324 \v 12325 \w++ 12326 \Z 12327 \w++ 12328 \z 12329 \w++ 12330 $ 12331 Ket 12332 End 12333------------------------------------------------------------------ 12334 12335/\R+\D \R+\d \R+\S \R+\s \R+\W \R+\w \R+. \R+\R \R+\H \R+\h \R+\V \R+\v \R+\Z \R+\z \R+$/Bx 12336------------------------------------------------------------------ 12337 Bra 12338 \R+ 12339 \D 12340 \R++ 12341 \d 12342 \R+ 12343 \S 12344 \R++ 12345 \s 12346 \R+ 12347 \W 12348 \R++ 12349 \w 12350 \R++ 12351 Any 12352 \R+ 12353 \R 12354 \R+ 12355 \H 12356 \R++ 12357 \h 12358 \R+ 12359 \V 12360 \R+ 12361 \v 12362 \R+ 12363 \Z 12364 \R++ 12365 \z 12366 \R+ 12367 $ 12368 Ket 12369 End 12370------------------------------------------------------------------ 12371 12372/\H+\D \H+\d \H+\S \H+\s \H+\W \H+\w \H+. \H+\R \H+\H \H+\h \H+\V \H+\v \H+\Z \H+\z \H+$/Bx 12373------------------------------------------------------------------ 12374 Bra 12375 \H+ 12376 \D 12377 \H+ 12378 \d 12379 \H+ 12380 \S 12381 \H+ 12382 \s 12383 \H+ 12384 \W 12385 \H+ 12386 \w 12387 \H+ 12388 Any 12389 \H+ 12390 \R 12391 \H+ 12392 \H 12393 \H++ 12394 \h 12395 \H+ 12396 \V 12397 \H+ 12398 \v 12399 \H+ 12400 \Z 12401 \H++ 12402 \z 12403 \H+ 12404 $ 12405 Ket 12406 End 12407------------------------------------------------------------------ 12408 12409/\h+\D \h+\d \h+\S \h+\s \h+\W \h+\w \h+. \h+\R \h+\H \h+\h \h+\V \h+\v \h+\Z \h+\z \h+$/Bx 12410------------------------------------------------------------------ 12411 Bra 12412 \h+ 12413 \D 12414 \h++ 12415 \d 12416 \h++ 12417 \S 12418 \h+ 12419 \s 12420 \h+ 12421 \W 12422 \h++ 12423 \w 12424 \h+ 12425 Any 12426 \h++ 12427 \R 12428 \h++ 12429 \H 12430 \h+ 12431 \h 12432 \h+ 12433 \V 12434 \h++ 12435 \v 12436 \h+ 12437 \Z 12438 \h++ 12439 \z 12440 \h+ 12441 $ 12442 Ket 12443 End 12444------------------------------------------------------------------ 12445 12446/\V+\D \V+\d \V+\S \V+\s \V+\W \V+\w \V+. \V+\R \V+\H \V+\h \V+\V \V+\v \V+\Z \V+\z \V+$/Bx 12447------------------------------------------------------------------ 12448 Bra 12449 \V+ 12450 \D 12451 \V+ 12452 \d 12453 \V+ 12454 \S 12455 \V+ 12456 \s 12457 \V+ 12458 \W 12459 \V+ 12460 \w 12461 \V+ 12462 Any 12463 \V++ 12464 \R 12465 \V+ 12466 \H 12467 \V+ 12468 \h 12469 \V+ 12470 \V 12471 \V++ 12472 \v 12473 \V+ 12474 \Z 12475 \V++ 12476 \z 12477 \V+ 12478 $ 12479 Ket 12480 End 12481------------------------------------------------------------------ 12482 12483/\v+\D \v+\d \v+\S \v+\s \v+\W \v+\w \v+. \v+\R \v+\H \v+\h \v+\V \v+\v \v+\Z \v+\z \v+$/Bx 12484------------------------------------------------------------------ 12485 Bra 12486 \v+ 12487 \D 12488 \v++ 12489 \d 12490 \v++ 12491 \S 12492 \v+ 12493 \s 12494 \v+ 12495 \W 12496 \v++ 12497 \w 12498 \v+ 12499 Any 12500 \v+ 12501 \R 12502 \v+ 12503 \H 12504 \v++ 12505 \h 12506 \v++ 12507 \V 12508 \v+ 12509 \v 12510 \v+ 12511 \Z 12512 \v++ 12513 \z 12514 \v+ 12515 $ 12516 Ket 12517 End 12518------------------------------------------------------------------ 12519 12520/ a+\D a+\d a+\S a+\s a+\W a+\w a+. a+\R a+\H a+\h a+\V a+\v a+\Z a+\z a+$/Bx 12521------------------------------------------------------------------ 12522 Bra 12523 a+ 12524 \D 12525 a++ 12526 \d 12527 a+ 12528 \S 12529 a++ 12530 \s 12531 a++ 12532 \W 12533 a+ 12534 \w 12535 a+ 12536 Any 12537 a++ 12538 \R 12539 a+ 12540 \H 12541 a++ 12542 \h 12543 a+ 12544 \V 12545 a++ 12546 \v 12547 a++ 12548 \Z 12549 a++ 12550 \z 12551 a++ 12552 $ 12553 Ket 12554 End 12555------------------------------------------------------------------ 12556 12557/\n+\D \n+\d \n+\S \n+\s \n+\W \n+\w \n+. \n+\R \n+\H \n+\h \n+\V \n+\v \n+\Z \n+\z \n+$/Bx 12558------------------------------------------------------------------ 12559 Bra 12560 \x0a+ 12561 \D 12562 \x0a++ 12563 \d 12564 \x0a++ 12565 \S 12566 \x0a+ 12567 \s 12568 \x0a+ 12569 \W 12570 \x0a++ 12571 \w 12572 \x0a+ 12573 Any 12574 \x0a+ 12575 \R 12576 \x0a+ 12577 \H 12578 \x0a++ 12579 \h 12580 \x0a++ 12581 \V 12582 \x0a+ 12583 \v 12584 \x0a+ 12585 \Z 12586 \x0a++ 12587 \z 12588 \x0a+ 12589 $ 12590 Ket 12591 End 12592------------------------------------------------------------------ 12593 12594/ .+\D .+\d .+\S .+\s .+\W .+\w .+. .+\R .+\H .+\h .+\V .+\v .+\Z .+\z .+$/Bx 12595------------------------------------------------------------------ 12596 Bra 12597 Any+ 12598 \D 12599 Any+ 12600 \d 12601 Any+ 12602 \S 12603 Any+ 12604 \s 12605 Any+ 12606 \W 12607 Any+ 12608 \w 12609 Any+ 12610 Any 12611 Any++ 12612 \R 12613 Any+ 12614 \H 12615 Any+ 12616 \h 12617 Any+ 12618 \V 12619 Any+ 12620 \v 12621 Any+ 12622 \Z 12623 Any++ 12624 \z 12625 Any+ 12626 $ 12627 Ket 12628 End 12629------------------------------------------------------------------ 12630 12631/ .+\D .+\d .+\S .+\s .+\W .+\w .+. .+\R .+\H .+\h .+\V .+\v .+\Z .+\z .+$/Bsx 12632------------------------------------------------------------------ 12633 Bra 12634 AllAny+ 12635 \D 12636 AllAny+ 12637 \d 12638 AllAny+ 12639 \S 12640 AllAny+ 12641 \s 12642 AllAny+ 12643 \W 12644 AllAny+ 12645 \w 12646 AllAny+ 12647 AllAny 12648 AllAny+ 12649 \R 12650 AllAny+ 12651 \H 12652 AllAny+ 12653 \h 12654 AllAny+ 12655 \V 12656 AllAny+ 12657 \v 12658 AllAny+ 12659 \Z 12660 AllAny++ 12661 \z 12662 AllAny+ 12663 $ 12664 Ket 12665 End 12666------------------------------------------------------------------ 12667 12668/ \D+$ \d+$ \S+$ \s+$ \W+$ \w+$ \R+$ \H+$ \h+$ \V+$ \v+$ a+$ \n+$ .+$ .+$/Bmx 12669------------------------------------------------------------------ 12670 Bra 12671 \D+ 12672 /m $ 12673 \d++ 12674 /m $ 12675 \S++ 12676 /m $ 12677 \s+ 12678 /m $ 12679 \W+ 12680 /m $ 12681 \w++ 12682 /m $ 12683 \R+ 12684 /m $ 12685 \H+ 12686 /m $ 12687 \h+ 12688 /m $ 12689 \V+ 12690 /m $ 12691 \v+ 12692 /m $ 12693 a+ 12694 /m $ 12695 \x0a+ 12696 /m $ 12697 Any+ 12698 /m $ 12699 Any+ 12700 /m $ 12701 Ket 12702 End 12703------------------------------------------------------------------ 12704 12705/(?=a+)a(a+)++a/B 12706------------------------------------------------------------------ 12707 Bra 12708 Assert 12709 a++ 12710 Ket 12711 a 12712 CBraPos 1 12713 a+ 12714 KetRpos 12715 a 12716 Ket 12717 End 12718------------------------------------------------------------------ 12719 12720/a+(bb|cc)a+(?:bb|cc)a+(?>bb|cc)a+(?:bb|cc)+a+(aa)a+(?:bb|aa)/B 12721------------------------------------------------------------------ 12722 Bra 12723 a++ 12724 CBra 1 12725 bb 12726 Alt 12727 cc 12728 Ket 12729 a++ 12730 Bra 12731 bb 12732 Alt 12733 cc 12734 Ket 12735 a++ 12736 Once 12737 bb 12738 Alt 12739 cc 12740 Ket 12741 a++ 12742 Bra 12743 bb 12744 Alt 12745 cc 12746 KetRmax 12747 a+ 12748 CBra 2 12749 aa 12750 Ket 12751 a+ 12752 Bra 12753 bb 12754 Alt 12755 aa 12756 Ket 12757 Ket 12758 End 12759------------------------------------------------------------------ 12760 12761/a+(bb|cc)?#a+(?:bb|cc)??#a+(?:bb|cc)?+#a+(?:bb|cc)*#a+(bb|cc)?a#a+(?:aa)?/B 12762------------------------------------------------------------------ 12763 Bra 12764 a++ 12765 Brazero 12766 CBra 1 12767 bb 12768 Alt 12769 cc 12770 Ket 12771 # 12772 a++ 12773 Braminzero 12774 Bra 12775 bb 12776 Alt 12777 cc 12778 Ket 12779 # 12780 a++ 12781 Once 12782 Brazero 12783 Bra 12784 bb 12785 Alt 12786 cc 12787 Ket 12788 Ket 12789 # 12790 a++ 12791 Brazero 12792 Bra 12793 bb 12794 Alt 12795 cc 12796 KetRmax 12797 # 12798 a+ 12799 Brazero 12800 CBra 2 12801 bb 12802 Alt 12803 cc 12804 Ket 12805 a# 12806 a+ 12807 Brazero 12808 Bra 12809 aa 12810 Ket 12811 Ket 12812 End 12813------------------------------------------------------------------ 12814 12815/a+(?:bb)?a#a+(?:|||)#a+(?:|b)a#a+(?:|||)?a/B 12816------------------------------------------------------------------ 12817 Bra 12818 a+ 12819 Brazero 12820 Bra 12821 bb 12822 Ket 12823 a# 12824 a++ 12825 Bra 12826 Alt 12827 Alt 12828 Alt 12829 Ket 12830 # 12831 a+ 12832 Bra 12833 Alt 12834 b 12835 Ket 12836 a# 12837 a+ 12838 Brazero 12839 Bra 12840 Alt 12841 Alt 12842 Alt 12843 Ket 12844 a 12845 Ket 12846 End 12847------------------------------------------------------------------ 12848 12849/[ab]*/B 12850------------------------------------------------------------------ 12851 Bra 12852 [ab]*+ 12853 Ket 12854 End 12855------------------------------------------------------------------ 12856 aaaa 12857 0: aaaa 12858 12859/[ab]*?/B 12860------------------------------------------------------------------ 12861 Bra 12862 [ab]*? 12863 Ket 12864 End 12865------------------------------------------------------------------ 12866 aaaa 12867 0: 12868 12869/[ab]?/B 12870------------------------------------------------------------------ 12871 Bra 12872 [ab]?+ 12873 Ket 12874 End 12875------------------------------------------------------------------ 12876 aaaa 12877 0: a 12878 12879/[ab]??/B 12880------------------------------------------------------------------ 12881 Bra 12882 [ab]?? 12883 Ket 12884 End 12885------------------------------------------------------------------ 12886 aaaa 12887 0: 12888 12889/[ab]+/B 12890------------------------------------------------------------------ 12891 Bra 12892 [ab]++ 12893 Ket 12894 End 12895------------------------------------------------------------------ 12896 aaaa 12897 0: aaaa 12898 12899/[ab]+?/B 12900------------------------------------------------------------------ 12901 Bra 12902 [ab]+? 12903 Ket 12904 End 12905------------------------------------------------------------------ 12906 aaaa 12907 0: a 12908 12909/[ab]{2,3}/B 12910------------------------------------------------------------------ 12911 Bra 12912 [ab]{2,3}+ 12913 Ket 12914 End 12915------------------------------------------------------------------ 12916 aaaa 12917 0: aaa 12918 12919/[ab]{2,3}?/B 12920------------------------------------------------------------------ 12921 Bra 12922 [ab]{2,3}? 12923 Ket 12924 End 12925------------------------------------------------------------------ 12926 aaaa 12927 0: aa 12928 12929/[ab]{2,}/B 12930------------------------------------------------------------------ 12931 Bra 12932 [ab]{2,}+ 12933 Ket 12934 End 12935------------------------------------------------------------------ 12936 aaaa 12937 0: aaaa 12938 12939/[ab]{2,}?/B 12940------------------------------------------------------------------ 12941 Bra 12942 [ab]{2,}? 12943 Ket 12944 End 12945------------------------------------------------------------------ 12946 aaaa 12947 0: aa 12948 12949/\d+\s{0,5}=\s*\S?=\w{0,4}\W*/B 12950------------------------------------------------------------------ 12951 Bra 12952 \d++ 12953 \s{0,5}+ 12954 = 12955 \s*+ 12956 \S? 12957 = 12958 \w{0,4}+ 12959 \W*+ 12960 Ket 12961 End 12962------------------------------------------------------------------ 12963 12964/[a-d]{5,12}[e-z0-9]*#[^a-z]+[b-y]*a[2-7]?[^0-9a-z]+/B 12965------------------------------------------------------------------ 12966 Bra 12967 [a-d]{5,12}+ 12968 [0-9e-z]*+ 12969 # 12970 [\x00-`{-\xff] (neg)++ 12971 [b-y]*+ 12972 a 12973 [2-7]?+ 12974 [\x00-/:-`{-\xff] (neg)++ 12975 Ket 12976 End 12977------------------------------------------------------------------ 12978 12979/[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/B 12980------------------------------------------------------------------ 12981 Bra 12982 [a-z]*+ 12983 \s 12984 # 12985 [\x09 ]?+ 12986 \S 12987 # 12988 [a-c]* 12989 \S 12990 # 12991 [C-G]++ 12992 \d 12993 # 12994 [4-8]*+ 12995 \D 12996 # 12997 [,4-9]* 12998 \D 12999 # 13000 [!$]{0,5}+ 13001 \w 13002 # 13003 [M-Xf-l]++ 13004 \W 13005 # 13006 [,a-c]? 13007 \W 13008 Ket 13009 End 13010------------------------------------------------------------------ 13011 13012/a+(aa|bb)*c#a*(bb|cc)*a#a?(bb|cc)*d#[a-f]*(g|hh)*f/B 13013------------------------------------------------------------------ 13014 Bra 13015 a+ 13016 Brazero 13017 CBra 1 13018 aa 13019 Alt 13020 bb 13021 KetRmax 13022 c# 13023 a* 13024 Brazero 13025 CBra 2 13026 bb 13027 Alt 13028 cc 13029 KetRmax 13030 a# 13031 a?+ 13032 Brazero 13033 CBra 3 13034 bb 13035 Alt 13036 cc 13037 KetRmax 13038 d# 13039 [a-f]* 13040 Brazero 13041 CBra 4 13042 g 13043 Alt 13044 hh 13045 KetRmax 13046 f 13047 Ket 13048 End 13049------------------------------------------------------------------ 13050 13051/[a-f]*(g|hh|i)*i#[a-x]{4,}(y{0,6})*y#[a-k]+(ll|mm)+n/B 13052------------------------------------------------------------------ 13053 Bra 13054 [a-f]*+ 13055 Brazero 13056 CBra 1 13057 g 13058 Alt 13059 hh 13060 Alt 13061 i 13062 KetRmax 13063 i# 13064 [a-x]{4,} 13065 Brazero 13066 SCBra 2 13067 y{0,6} 13068 KetRmax 13069 y# 13070 [a-k]++ 13071 CBra 3 13072 ll 13073 Alt 13074 mm 13075 KetRmax 13076 n 13077 Ket 13078 End 13079------------------------------------------------------------------ 13080 13081/[a-f]*(?>gg|hh)+#[a-f]*(?>gg|hh)?#[a-f]*(?>gg|hh)*a#[a-f]*(?>gg|hh)*h/B 13082------------------------------------------------------------------ 13083 Bra 13084 [a-f]*+ 13085 Once 13086 gg 13087 Alt 13088 hh 13089 KetRmax 13090 # 13091 [a-f]*+ 13092 Brazero 13093 Once 13094 gg 13095 Alt 13096 hh 13097 Ket 13098 # 13099 [a-f]* 13100 Brazero 13101 Once 13102 gg 13103 Alt 13104 hh 13105 KetRmax 13106 a# 13107 [a-f]*+ 13108 Brazero 13109 Once 13110 gg 13111 Alt 13112 hh 13113 KetRmax 13114 h 13115 Ket 13116 End 13117------------------------------------------------------------------ 13118 13119/[a-c]*d/IB 13120------------------------------------------------------------------ 13121 Bra 13122 [a-c]*+ 13123 d 13124 Ket 13125 End 13126------------------------------------------------------------------ 13127Capturing subpattern count = 0 13128Starting code units: a b c d 13129Last code unit = 'd' 13130Subject length lower bound = 1 13131 13132/[a-c]+d/IB 13133------------------------------------------------------------------ 13134 Bra 13135 [a-c]++ 13136 d 13137 Ket 13138 End 13139------------------------------------------------------------------ 13140Capturing subpattern count = 0 13141Starting code units: a b c 13142Last code unit = 'd' 13143Subject length lower bound = 2 13144 13145/[a-c]?d/IB 13146------------------------------------------------------------------ 13147 Bra 13148 [a-c]?+ 13149 d 13150 Ket 13151 End 13152------------------------------------------------------------------ 13153Capturing subpattern count = 0 13154Starting code units: a b c d 13155Last code unit = 'd' 13156Subject length lower bound = 1 13157 13158/[a-c]{4,6}d/IB 13159------------------------------------------------------------------ 13160 Bra 13161 [a-c]{4,6}+ 13162 d 13163 Ket 13164 End 13165------------------------------------------------------------------ 13166Capturing subpattern count = 0 13167Starting code units: a b c 13168Last code unit = 'd' 13169Subject length lower bound = 5 13170 13171/[a-c]{0,6}d/IB 13172------------------------------------------------------------------ 13173 Bra 13174 [a-c]{0,6}+ 13175 d 13176 Ket 13177 End 13178------------------------------------------------------------------ 13179Capturing subpattern count = 0 13180Starting code units: a b c d 13181Last code unit = 'd' 13182Subject length lower bound = 1 13183 13184# End of special auto-possessive tests 13185 13186/^A\o{1239}B/ 13187Failed: error 164 at offset 8: non-octal character in \o{} (closing brace missing?) 13188 A\123B 13189 13190/^A\oB/ 13191Failed: error 155 at offset 4: missing opening brace after \o 13192 13193/^A\x{zz}B/ 13194Failed: error 167 at offset 5: non-hex character in \x{} (closing brace missing?) 13195 13196/^A\x{12Z/ 13197Failed: error 167 at offset 7: non-hex character in \x{} (closing brace missing?) 13198 13199/^A\x{/ 13200Failed: error 178 at offset 5: digits missing in \x{} or \o{} or \N{U+} 13201 13202/[ab]++/B,no_auto_possess 13203------------------------------------------------------------------ 13204 Bra 13205 [ab]++ 13206 Ket 13207 End 13208------------------------------------------------------------------ 13209 13210/[^ab]*+/B,no_auto_possess 13211------------------------------------------------------------------ 13212 Bra 13213 [\x00-`c-\xff] (neg)*+ 13214 Ket 13215 End 13216------------------------------------------------------------------ 13217 13218/a{4}+/B,no_auto_possess 13219------------------------------------------------------------------ 13220 Bra 13221 a{4} 13222 Ket 13223 End 13224------------------------------------------------------------------ 13225 13226/a{4}+/Bi,no_auto_possess 13227------------------------------------------------------------------ 13228 Bra 13229 /i a{4} 13230 Ket 13231 End 13232------------------------------------------------------------------ 13233 13234/[a-[:digit:]]+/ 13235Failed: error 150 at offset 4: invalid range in character class 13236 13237/[A-[:digit:]]+/ 13238Failed: error 150 at offset 4: invalid range in character class 13239 13240/[a-[.xxx.]]+/ 13241Failed: error 150 at offset 4: invalid range in character class 13242 13243/[a-[=xxx=]]+/ 13244Failed: error 150 at offset 4: invalid range in character class 13245 13246/[a-[!xxx!]]+/ 13247Failed: error 108 at offset 3: range out of order in character class 13248 13249/[A-[!xxx!]]+/ 13250 A]]] 13251 0: A]]] 13252 13253/[a-\d]+/ 13254Failed: error 150 at offset 5: invalid range in character class 13255 13256/(?<0abc>xx)/ 13257Failed: error 144 at offset 3: group name must start with a non-digit 13258 13259/(?&1abc)xx(?<1abc>y)/ 13260Failed: error 144 at offset 3: group name must start with a non-digit 13261 13262/(?<ab-cd>xx)/ 13263Failed: error 142 at offset 5: syntax error in subpattern name (missing terminator) 13264 13265/(?'0abc'xx)/ 13266Failed: error 144 at offset 3: group name must start with a non-digit 13267 13268/(?P<0abc>xx)/ 13269Failed: error 144 at offset 4: group name must start with a non-digit 13270 13271/\k<5ghj>/ 13272Failed: error 144 at offset 3: group name must start with a non-digit 13273 13274/\k'5ghj'/ 13275Failed: error 144 at offset 3: group name must start with a non-digit 13276 13277/\k{2fgh}/ 13278Failed: error 144 at offset 3: group name must start with a non-digit 13279 13280/(?P=8yuki)/ 13281Failed: error 144 at offset 4: group name must start with a non-digit 13282 13283/\g{4df}/ 13284Failed: error 157 at offset 2: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number 13285 13286/(?&1abc)xx(?<1abc>y)/ 13287Failed: error 144 at offset 3: group name must start with a non-digit 13288 13289/(?P>1abc)xx(?<1abc>y)/ 13290Failed: error 144 at offset 4: group name must start with a non-digit 13291 13292/\g'3gh'/ 13293Failed: error 157 at offset 2: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number 13294 13295/\g<5fg>/ 13296Failed: error 157 at offset 2: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number 13297 13298/(?(<4gh>)abc)/ 13299Failed: error 144 at offset 4: group name must start with a non-digit 13300 13301/(?('4gh')abc)/ 13302Failed: error 144 at offset 4: group name must start with a non-digit 13303 13304/(?(4gh)abc)/ 13305Failed: error 124 at offset 4: missing closing parenthesis for condition 13306 13307/(?(R&6yh)abc)/ 13308Failed: error 144 at offset 5: group name must start with a non-digit 13309 13310/(((a\2)|(a*)\g<-1>))*a?/B 13311------------------------------------------------------------------ 13312 Bra 13313 Brazero 13314 SCBra 1 13315 Once 13316 CBra 2 13317 CBra 3 13318 a 13319 \2 13320 Ket 13321 Alt 13322 CBra 4 13323 a* 13324 Ket 13325 Recurse 13326 Ket 13327 Ket 13328 KetRmax 13329 a?+ 13330 Ket 13331 End 13332------------------------------------------------------------------ 13333 13334# Test the ugly "start or end of word" compatibility syntax. 13335 13336/[[:<:]]red[[:>:]]/B 13337------------------------------------------------------------------ 13338 Bra 13339 \b 13340 Assert 13341 \w 13342 Ket 13343 red 13344 \b 13345 AssertB 13346 Reverse 13347 \w 13348 Ket 13349 Ket 13350 End 13351------------------------------------------------------------------ 13352 little red riding hood 13353 0: red 13354 a /red/ thing 13355 0: red 13356 red is a colour 13357 0: red 13358 put it all on red 13359 0: red 13360\= Expect no match 13361 no reduction 13362No match 13363 Alfred Winifred 13364No match 13365 13366/[a[:<:]] should give error/ 13367Failed: error 130 at offset 4: unknown POSIX class name 13368 13369/(?=ab\K)/aftertext 13370 abcd\=startchar 13371Start of matched string is beyond its end - displaying from end to start. 13372 0: ab 13373 0+ abcd 13374 13375/abcd/newline=lf,firstline 13376\= Expect no match 13377 xx\nxabcd 13378No match 13379 13380# Test stack guard external calls. 13381 13382/(((a)))/stackguard=1 13383Failed: error 133 at offset 7: parentheses are too deeply nested (stack check) 13384 13385/(((a)))/stackguard=2 13386Failed: error 133 at offset 7: parentheses are too deeply nested (stack check) 13387 13388/(((a)))/stackguard=3 13389 13390/(((((a)))))/ 13391 13392# End stack guard tests 13393 13394/^\w+(?>\s*)(?<=\w)/B 13395------------------------------------------------------------------ 13396 Bra 13397 ^ 13398 \w+ 13399 Once 13400 \s*+ 13401 Ket 13402 AssertB 13403 Reverse 13404 \w 13405 Ket 13406 Ket 13407 End 13408------------------------------------------------------------------ 13409 13410/\othing/ 13411Failed: error 155 at offset 2: missing opening brace after \o 13412 13413/\o{}/ 13414Failed: error 178 at offset 3: digits missing in \x{} or \o{} or \N{U+} 13415 13416/\o{whatever}/ 13417Failed: error 164 at offset 3: non-octal character in \o{} (closing brace missing?) 13418 13419/\xthing/ 13420 13421/\x{}/ 13422Failed: error 178 at offset 3: digits missing in \x{} or \o{} or \N{U+} 13423 13424/\x{whatever}/ 13425Failed: error 167 at offset 3: non-hex character in \x{} (closing brace missing?) 13426 13427/A\8B/ 13428Failed: error 115 at offset 2: reference to non-existent subpattern 13429 13430/A\9B/ 13431Failed: error 115 at offset 2: reference to non-existent subpattern 13432 13433# This one is here because Perl fails to match "12" for this pattern when the $ 13434# is present. 13435 13436/^(?(?=abc)\w{3}:|\d\d)$/ 13437 abc: 13438 0: abc: 13439 12 13440 0: 12 13441\= Expect no match 13442 123 13443No match 13444 xyz 13445No match 13446 13447# Perl gets this one wrong, giving "a" as the after text for ca and failing to 13448# match for cd. 13449 13450/(?(?=ab)ab)/aftertext 13451 abxxx 13452 0: ab 13453 0+ xxx 13454 ca 13455 0: 13456 0+ ca 13457 cd 13458 0: 13459 0+ cd 13460 13461# This should test both paths for processing OP_RECURSE. 13462 13463/(?(R)a+|(?R)b)/ 13464 aaaabcde 13465 0: aaaab 13466 aaaabcde\=ovector=100 13467 0: aaaab 13468 13469/a*?b*?/ 13470 ab 13471 0: 13472 13473/(*NOTEMPTY)a*?b*?/ 13474 ab 13475 0: a 13476 ba 13477 0: b 13478 cb 13479 0: b 13480 13481/(*NOTEMPTY_ATSTART)a*?b*?/aftertext 13482 ab 13483 0: a 13484 0+ b 13485 cdab 13486 0: 13487 0+ dab 13488 13489/(?(VERSION>=10.0)yes|no)/I 13490Capturing subpattern count = 0 13491Subject length lower bound = 2 13492 yesno 13493 0: yes 13494 13495/(?(VERSION>=10.04)yes|no)/ 13496 yesno 13497 0: yes 13498 13499/(?(VERSION=8)yes){3}/BI,aftertext 13500------------------------------------------------------------------ 13501 Bra 13502 Cond 13503 Cond false 13504 yes 13505 Ket 13506 Ket 13507 End 13508------------------------------------------------------------------ 13509Capturing subpattern count = 0 13510May match empty string 13511Subject length lower bound = 0 13512 yesno 13513 0: 13514 0+ yesno 13515 13516/(?(VERSION=8)yes|no){3}/I 13517Capturing subpattern count = 0 13518Subject length lower bound = 6 13519 yesnononoyes 13520 0: nonono 13521\= Expect no match 13522 yesno 13523No match 13524 13525/(?:(?<VERSION>abc)|xyz)(?(VERSION)yes|no)/I 13526Capturing subpattern count = 1 13527Max back reference = 1 13528Named capturing subpatterns: 13529 VERSION 1 13530Starting code units: a x 13531Subject length lower bound = 5 13532 abcyes 13533 0: abcyes 13534 1: abc 13535 xyzno 13536 0: xyzno 13537\= Expect no match 13538 abcno 13539No match 13540 xyzyes 13541No match 13542 13543/(?(VERSION<10)yes|no)/ 13544Failed: error 179 at offset 10: syntax error or number too big in (?(VERSION condition 13545 13546/(?(VERSION>10)yes|no)/ 13547Failed: error 179 at offset 11: syntax error or number too big in (?(VERSION condition 13548 13549/(?(VERSION>=10.0.0)yes|no)/ 13550Failed: error 179 at offset 16: syntax error or number too big in (?(VERSION condition 13551 13552/(?(VERSION=10.101)yes|no)/ 13553Failed: error 179 at offset 16: syntax error or number too big in (?(VERSION condition 13554 13555/abcd/I 13556Capturing subpattern count = 0 13557First code unit = 'a' 13558Last code unit = 'd' 13559Subject length lower bound = 4 13560 13561/abcd/I,no_start_optimize 13562Capturing subpattern count = 0 13563Options: no_start_optimize 13564Subject length lower bound = 0 13565 13566/(|ab)*?d/I 13567Capturing subpattern count = 1 13568Starting code units: a d 13569Last code unit = 'd' 13570Subject length lower bound = 1 13571 abd 13572 0: abd 13573 1: ab 13574 xyd 13575 0: d 13576 13577/(|ab)*?d/I,no_start_optimize 13578Capturing subpattern count = 1 13579Options: no_start_optimize 13580Subject length lower bound = 0 13581 abd 13582 0: abd 13583 1: ab 13584 xyd 13585 0: d 13586 13587/\k<A>*(?<A>aa)(?<A>bb)/match_unset_backref,dupnames 13588 aabb 13589 0: aabb 13590 1: aa 13591 2: bb 13592 13593/(((((a)))))/parens_nest_limit=2 13594Failed: error 119 at offset 3: parentheses are too deeply nested 13595 13596/abc/replace=XYZ 13597 123123 13598 0: 123123 13599 123abc123 13600 1: 123XYZ123 13601 123abc123abc123 13602 1: 123XYZ123abc123 13603 123123\=zero_terminate 13604 0: 123123 13605 123abc123\=zero_terminate 13606 1: 123XYZ123 13607 123abc123abc123\=zero_terminate 13608 1: 123XYZ123abc123 13609 13610/abc/g,replace=XYZ 13611 123abc123 13612 1: 123XYZ123 13613 123abc123abc123 13614 2: 123XYZ123XYZ123 13615 13616/abc/replace=X$$Z 13617 123abc123 13618 1: 123X$Z123 13619 13620/abc/g,replace=X$$Z 13621 123abc123abc123 13622 2: 123X$Z123X$Z123 13623 13624/a(b)c(d)e/replace=X$1Y${2}Z 13625 "abcde" 13626 1: "XbYdZ" 13627 13628/a(b)c(d)e/replace=X$1Y${2}Z,global 13629 "abcde-abcde" 13630 2: "XbYdZ-XbYdZ" 13631 13632/a(?<ONE>b)c(?<TWO>d)e/replace=X$ONE+${TWO}Z 13633 "abcde" 13634 1: "Xb+dZ" 13635 13636/a(?<ONE>b)c(?<TWO>d)e/g,replace=X$ONE+${TWO}Z 13637 "abcde-abcde-" 13638 2: "Xb+dZ-Xb+dZ-" 13639 13640/abc/replace=a$++ 13641 123abc 13642Failed: error -35 at offset 2 in replacement: invalid replacement string 13643 13644/abc/replace=a$bad 13645 123abc 13646Failed: error -49 at offset 5 in replacement: unknown substring 13647 13648/abc/replace=a${A234567890123456789_123456789012}z 13649 123abc 13650Failed: error -49 at offset 36 in replacement: unknown substring 13651 13652/abc/replace=a${A23456789012345678901234567890123}z 13653 123abc 13654Failed: error -35 at offset 35 in replacement: invalid replacement string 13655 13656/abc/replace=a${bcd 13657 123abc 13658Failed: error -58 at offset 6 in replacement: expected closing curly bracket in replacement string 13659 13660/abc/replace=a${b+d}z 13661 123abc 13662Failed: error -58 at offset 4 in replacement: expected closing curly bracket in replacement string 13663 13664/abc/replace=[10]XYZ 13665 123abc123 13666 1: 123XYZ123 13667 13668/abc/replace=[9]XYZ 13669 123abc123 13670Failed: error -48: no more memory 13671 13672/abc/replace=xyz 13673 1abc2\=partial_hard 13674Failed: error -34: bad option value 13675 13676/abc/replace=xyz 13677 123abc456 13678 1: 123xyz456 13679 123abc456\=replace=pqr 13680 1: 123pqr456 13681 123abc456abc789 13682 1: 123xyz456abc789 13683 123abc456abc789\=g 13684 2: 123xyz456xyz789 13685 13686/(?<=abc)(|def)/g,replace=<$0> 13687 123abcxyzabcdef789abcpqr 13688 4: 123abc<>xyzabc<><def>789abc<>pqr 13689 13690/./replace=$0 13691 a 13692 1: a 13693 13694/(.)(.)/replace=$2+$1 13695 abc 13696 1: b+ac 13697 13698/(?<A>.)(?<B>.)/replace=$B+$A 13699 abc 13700 1: b+ac 13701 13702/(.)(.)/g,replace=$2$1 13703 abcdefgh 13704 4: badcfehg 13705 13706/(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=${*MARK} 13707 apple lemon blackberry 13708 3: pear orange strawberry 13709 apple strudel 13710 1: pear strudel 13711 fruitless 13712 0: fruitless 13713 13714/(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/replace=${*MARK} sauce, 13715 apple lemon blackberry 13716 1: pear sauce lemon blackberry 13717 13718/(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=<$*MARK> 13719 apple lemon blackberry 13720 3: <pear> <orange> <strawberry> 13721 apple strudel 13722 1: <pear> strudel 13723 fruitless 13724 0: fruitless 13725 13726/(*:pear)apple/g,replace=${*MARKING} 13727 apple lemon blackberry 13728Failed: error -35 at offset 11 in replacement: invalid replacement string 13729 13730/(*:pear)apple/g,replace=${*MARK-time 13731 apple lemon blackberry 13732Failed: error -58 at offset 7 in replacement: expected closing curly bracket in replacement string 13733 13734/(*:pear)apple/g,replace=${*mark} 13735 apple lemon blackberry 13736Failed: error -35 at offset 8 in replacement: invalid replacement string 13737 13738/(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=<$*MARKET> 13739 apple lemon blackberry 13740Failed: error -35 at offset 9 in replacement: invalid replacement string 13741 13742/(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=[22]${*MARK} 13743 apple lemon blackberry 13744Failed: error -48: no more memory 13745 apple lemon blackberry\=substitute_overflow_length 13746Failed: error -48: no more memory: 23 code units are needed 13747 13748/(*:pear)apple|(*:orange)lemon|(*:strawberry)blackberry/g,replace=[23]${*MARK} 13749 apple lemon blackberry 13750 3: pear orange strawberry 13751 13752/abc/ 13753 123abc123\=replace=[9]XYZ 13754Failed: error -48: no more memory 13755 123abc123\=substitute_overflow_length,replace=[9]XYZ 13756Failed: error -48: no more memory: 10 code units are needed 13757 123abc123\=substitute_overflow_length,replace=[6]XYZ 13758Failed: error -48: no more memory: 10 code units are needed 13759 123abc123\=substitute_overflow_length,replace=[1]XYZ 13760Failed: error -48: no more memory: 10 code units are needed 13761 123abc123\=substitute_overflow_length,replace=[0]XYZ 13762Failed: error -48: no more memory: 10 code units are needed 13763 13764/a(b)c/ 13765 123abc123\=replace=[9]x$1z 13766Failed: error -48: no more memory 13767 123abc123\=substitute_overflow_length,replace=[9]x$1z 13768Failed: error -48: no more memory: 10 code units are needed 13769 123abc123\=substitute_overflow_length,replace=[6]x$1z 13770Failed: error -48: no more memory: 10 code units are needed 13771 123abc123\=substitute_overflow_length,replace=[1]x$1z 13772Failed: error -48: no more memory: 10 code units are needed 13773 123abc123\=substitute_overflow_length,replace=[0]x$1z 13774Failed: error -48: no more memory: 10 code units are needed 13775 13776"((?=(?(?=(?(?=(?(?=()))))))))" 13777 a 13778 0: 13779 1: 13780 2: 13781 13782"(?(?=)==)(((((((((?=)))))))))" 13783\= Expect no match 13784 a 13785No match 13786 13787/(a)(b)|(c)/ 13788 XcX\=ovector=2,get=1,get=2,get=3,get=4,getall 13789Matched, but too many substrings 13790 0: c 13791 1: <unset> 13792Get substring 1 failed (-55): requested value is not set 13793Get substring 2 failed (-54): requested value is not available 13794Get substring 3 failed (-54): requested value is not available 13795Get substring 4 failed (-49): unknown substring 13796 0L c 13797 1L 13798 13799/x(?=ab\K)/ 13800 xab\=get=0 13801Start of matched string is beyond its end - displaying from end to start. 13802 0: ab 13803 0G (0) 13804 xab\=copy=0 13805Start of matched string is beyond its end - displaying from end to start. 13806 0: ab 13807 0C (0) 13808 xab\=getall 13809Start of matched string is beyond its end - displaying from end to start. 13810 0: ab 13811 0L 13812 13813/(?<A>a)|(?<A>b)/dupnames 13814 a\=ovector=1,copy=A,get=A,get=2 13815Matched, but too many substrings 13816 0: a 13817Copy substring 'A' failed (-54): requested value is not available 13818Get substring 2 failed (-54): requested value is not available 13819Get substring 'A' failed (-54): requested value is not available 13820 a\=ovector=2,copy=A,get=A,get=2 13821 0: a 13822 1: a 13823 C a (1) A (non-unique) 13824Get substring 2 failed (-54): requested value is not available 13825 G a (1) A (non-unique) 13826 b\=ovector=2,copy=A,get=A,get=2 13827Matched, but too many substrings 13828 0: b 13829 1: <unset> 13830Copy substring 'A' failed (-55): requested value is not set 13831Get substring 2 failed (-54): requested value is not available 13832Get substring 'A' failed (-55): requested value is not set 13833 13834/a(b)c(d)/ 13835 abc\=ph,copy=0,copy=1,getall 13836Partial match: abc 13837 0C abc (3) 13838Copy substring 1 failed (-2): partial match 13839get substring list failed (-2): partial match 13840 13841/^abc/info 13842Capturing subpattern count = 0 13843Compile options: <none> 13844Overall options: anchored 13845First code unit = 'a' 13846Subject length lower bound = 3 13847 13848/^abc/info,no_dotstar_anchor 13849Capturing subpattern count = 0 13850Compile options: no_dotstar_anchor 13851Overall options: anchored no_dotstar_anchor 13852First code unit = 'a' 13853Subject length lower bound = 3 13854 13855/.*\d/info,auto_callout 13856Capturing subpattern count = 0 13857Options: auto_callout 13858First code unit at start or follows newline 13859Subject length lower bound = 1 13860\= Expect no match 13861 aaa 13862--->aaa 13863 +0 ^ .* 13864 +2 ^ ^ \d 13865 +2 ^ ^ \d 13866 +2 ^^ \d 13867 +2 ^ \d 13868No match 13869 13870/.*\d/info,no_dotstar_anchor,auto_callout 13871Capturing subpattern count = 0 13872Options: auto_callout no_dotstar_anchor 13873Subject length lower bound = 1 13874\= Expect no match 13875 aaa 13876--->aaa 13877 +0 ^ .* 13878 +2 ^ ^ \d 13879 +2 ^ ^ \d 13880 +2 ^^ \d 13881 +2 ^ \d 13882 +0 ^ .* 13883 +2 ^ ^ \d 13884 +2 ^^ \d 13885 +2 ^ \d 13886 +0 ^ .* 13887 +2 ^^ \d 13888 +2 ^ \d 13889No match 13890 13891/.*\d/dotall,info 13892Capturing subpattern count = 0 13893Compile options: dotall 13894Overall options: anchored dotall 13895Subject length lower bound = 1 13896 13897/.*\d/dotall,no_dotstar_anchor,info 13898Capturing subpattern count = 0 13899Options: dotall no_dotstar_anchor 13900Subject length lower bound = 1 13901 13902/(*NO_DOTSTAR_ANCHOR)(?s).*\d/info 13903Capturing subpattern count = 0 13904Compile options: <none> 13905Overall options: no_dotstar_anchor 13906Subject length lower bound = 1 13907 13908'^(?:(a)|b)(?(1)A|B)' 13909 aA123\=ovector=1 13910Matched, but too many substrings 13911 0: aA 13912 aA123\=ovector=2 13913 0: aA 13914 1: a 13915 13916'^(?:(?<AA>a)|b)(?(<AA>)A|B)' 13917 aA123\=ovector=1 13918Matched, but too many substrings 13919 0: aA 13920 aA123\=ovector=2 13921 0: aA 13922 1: a 13923 13924'^(?<AA>)(?:(?<AA>a)|b)(?(<AA>)A|B)'dupnames 13925 aA123\=ovector=1 13926Matched, but too many substrings 13927 0: aA 13928 aA123\=ovector=2 13929Matched, but too many substrings 13930 0: aA 13931 1: 13932 aA123\=ovector=3 13933 0: aA 13934 1: 13935 2: a 13936 13937'^(?:(?<AA>X)|)(?:(?<AA>a)|b)\k{AA}'dupnames 13938 aa123\=ovector=1 13939Matched, but too many substrings 13940 0: aa 13941 aa123\=ovector=2 13942Matched, but too many substrings 13943 0: aa 13944 1: <unset> 13945 aa123\=ovector=3 13946 0: aa 13947 1: <unset> 13948 2: a 13949 13950/(?<N111>(?J)(?<N111>1(111111)11|)1|1|)(?(<N111>)1)/ 13951 13952/(?<N>(?J)(?<N>))(?-J)\k<N>/ 13953 13954# Quantifiers are not allowed on condition assertions, but are otherwise 13955# OK in conditions. 13956 13957/(?(?=0)?)+/ 13958Failed: error 109 at offset 7: quantifier does not follow a repeatable item 13959 13960/(?(?=0)(?=00)?00765)/ 13961 00765 13962 0: 00765 13963 13964/(?(?=0)(?=00)?00765|(?!3).56)/ 13965 00765 13966 0: 00765 13967 456 13968 0: 456 13969\= Expect no match 13970 356 13971No match 13972 13973'^(a)*+(\w)' 13974 g 13975 0: g 13976 1: <unset> 13977 2: g 13978 g\=ovector=1 13979Matched, but too many substrings 13980 0: g 13981 13982'^(?:a)*+(\w)' 13983 g 13984 0: g 13985 1: g 13986 g\=ovector=1 13987Matched, but too many substrings 13988 0: g 13989 13990# These two pattern showeds up compile-time bugs 13991 13992"((?2){0,1999}())?" 13993 13994/((?+1)(\1))/B 13995------------------------------------------------------------------ 13996 Bra 13997 Once 13998 CBra 1 13999 Recurse 14000 CBra 2 14001 \1 14002 Ket 14003 Ket 14004 Ket 14005 Ket 14006 End 14007------------------------------------------------------------------ 14008 14009# Callouts with string arguments 14010 14011/a(?C"/ 14012Failed: error 181 at offset 4: missing terminating delimiter for callout with string argument 14013 14014/a(?C"a/ 14015Failed: error 181 at offset 4: missing terminating delimiter for callout with string argument 14016 14017/a(?C"a"/ 14018Failed: error 139 at offset 7: closing parenthesis for (?C expected 14019 14020/a(?C"a"bcde(?C"b")xyz/ 14021Failed: error 139 at offset 7: closing parenthesis for (?C expected 14022 14023/a(?C"a)b""c")/B 14024------------------------------------------------------------------ 14025 Bra 14026 a 14027 CalloutStr "a)b"c" 5 13 0 14028 Ket 14029 End 14030------------------------------------------------------------------ 14031 14032/ab(?C" any text with spaces ")cde/B 14033------------------------------------------------------------------ 14034 Bra 14035 ab 14036 CalloutStr " any text with spaces " 6 30 1 14037 cde 14038 Ket 14039 End 14040------------------------------------------------------------------ 14041 abcde 14042Callout (6): " any text with spaces " 14043--->abcde 14044 ^ ^ c 14045 0: abcde 14046 12abcde 14047Callout (6): " any text with spaces " 14048--->12abcde 14049 ^ ^ c 14050 0: abcde 14051 14052/^a(b)c(?C1)def/ 14053 abcdef 14054--->abcdef 14055 1 ^ ^ d 14056 0: abcdef 14057 1: b 14058 14059/^a(b)c(?C"AB")def/ 14060 abcdef 14061Callout (10): "AB" 14062--->abcdef 14063 ^ ^ d 14064 0: abcdef 14065 1: b 14066 14067/^a(b)c(?C1)def/ 14068 abcdef\=callout_capture 14069Callout 1: last capture = 1 14070 1: b 14071--->abcdef 14072 ^ ^ d 14073 0: abcdef 14074 1: b 14075 14076/^a(b)c(?C{AB})def/B 14077------------------------------------------------------------------ 14078 Bra 14079 ^ 14080 a 14081 CBra 1 14082 b 14083 Ket 14084 c 14085 CalloutStr {AB} 10 14 1 14086 def 14087 Ket 14088 End 14089------------------------------------------------------------------ 14090 abcdef\=callout_capture 14091Callout (10): {AB} last capture = 1 14092 1: b 14093--->abcdef 14094 ^ ^ d 14095 0: abcdef 14096 1: b 14097 14098/(?C`a``b`)(?C'a''b')(?C"a""b")(?C^a^^b^)(?C%a%%b%)(?C#a##b#)(?C$a$$b$)(?C{a}}b})/B,callout_info 14099------------------------------------------------------------------ 14100 Bra 14101 CalloutStr `a`b` 4 10 0 14102 CalloutStr 'a'b' 14 20 0 14103 CalloutStr "a"b" 24 30 0 14104 CalloutStr ^a^b^ 34 40 0 14105 CalloutStr %a%b% 44 50 0 14106 CalloutStr #a#b# 54 60 0 14107 CalloutStr $a$b$ 64 70 0 14108 CalloutStr {a}b} 74 80 0 14109 Ket 14110 End 14111------------------------------------------------------------------ 14112Callout `a`b` ( 14113Callout 'a'b' ( 14114Callout "a"b" ( 14115Callout ^a^b^ ( 14116Callout %a%b% ( 14117Callout #a#b# ( 14118Callout $a$b$ ( 14119Callout {a}b} 14120 14121/(?:a(?C`code`)){3}/B 14122------------------------------------------------------------------ 14123 Bra 14124 Bra 14125 a 14126 CalloutStr `code` 8 14 4 14127 Ket 14128 Bra 14129 a 14130 CalloutStr `code` 8 14 4 14131 Ket 14132 Bra 14133 a 14134 CalloutStr `code` 8 14 4 14135 Ket 14136 Ket 14137 End 14138------------------------------------------------------------------ 14139 14140/^(?(?C25)(?=abc)abcd|xyz)/B,callout_info 14141------------------------------------------------------------------ 14142 Bra 14143 ^ 14144 Cond 14145 Callout 25 9 3 14146 Assert 14147 abc 14148 Ket 14149 abcd 14150 Alt 14151 xyz 14152 Ket 14153 Ket 14154 End 14155------------------------------------------------------------------ 14156Callout 25 (?= 14157 abcdefg 14158--->abcdefg 14159 25 ^ (?= 14160 0: abcd 14161 xyz123 14162--->xyz123 14163 25 ^ (?= 14164 0: xyz 14165 14166/^(?(?C$abc$)(?=abc)abcd|xyz)/B 14167------------------------------------------------------------------ 14168 Bra 14169 ^ 14170 Cond 14171 CalloutStr $abc$ 7 12 3 14172 Assert 14173 abc 14174 Ket 14175 abcd 14176 Alt 14177 xyz 14178 Ket 14179 Ket 14180 End 14181------------------------------------------------------------------ 14182 abcdefg 14183Callout (7): $abc$ 14184--->abcdefg 14185 ^ (?= 14186 0: abcd 14187 xyz123 14188Callout (7): $abc$ 14189--->xyz123 14190 ^ (?= 14191 0: xyz 14192 14193/^ab(?C'first')cd(?C"second")ef/ 14194 abcdefg 14195Callout (7): 'first' 14196--->abcdefg 14197 ^ ^ c 14198Callout (20): "second" 14199--->abcdefg 14200 ^ ^ e 14201 0: abcdef 14202 14203/(?:a(?C`code`)){3}X/ 14204 aaaXY 14205Callout (8): `code` 14206--->aaaXY 14207 ^^ ){3} 14208Callout (8): `code` 14209--->aaaXY 14210 ^ ^ ){3} 14211Callout (8): `code` 14212--->aaaXY 14213 ^ ^ ){3} 14214 0: aaaX 14215 14216# Binary zero in callout string 14217# a ( ? C ' x z ' ) b 14218/ 61 28 3f 43 27 78 00 7a 27 29 62/hex,callout_info 14219Callout 'x\x00z' b 14220 abcdefgh 14221Callout (5): 'x\x00z' 14222--->abcdefgh 14223 ^^ b 14224 0: ab 14225 14226/(?(?!)^)/ 14227 14228/(?(?!)a|b)/ 14229 bbb 14230 0: b 14231\= Expect no match 14232 aaa 14233No match 14234 14235# JIT gives a different error message for the infinite recursion 14236 14237"(*NO_JIT)((?2)+)((?1)){" 14238 abcd{ 14239Failed: error -52: nested recursion at the same subject position 14240 14241# Perl fails to diagnose the absence of an assertion 14242 14243"(?(?<E>.*!.*)?)" 14244Failed: error 128 at offset 2: assertion expected after (?( or (?(?C) 14245 14246"X((?2)()*+){2}+"B 14247------------------------------------------------------------------ 14248 Bra 14249 X 14250 Once 14251 CBra 1 14252 Recurse 14253 Braposzero 14254 SCBraPos 2 14255 KetRpos 14256 Ket 14257 CBra 1 14258 Recurse 14259 Braposzero 14260 SCBraPos 2 14261 KetRpos 14262 Ket 14263 Ket 14264 Ket 14265 End 14266------------------------------------------------------------------ 14267 14268"X((?2)()*+){2}"B 14269------------------------------------------------------------------ 14270 Bra 14271 X 14272 CBra 1 14273 Recurse 14274 Braposzero 14275 SCBraPos 2 14276 KetRpos 14277 Ket 14278 CBra 1 14279 Recurse 14280 Braposzero 14281 SCBraPos 2 14282 KetRpos 14283 Ket 14284 Ket 14285 End 14286------------------------------------------------------------------ 14287 14288/(?<=\bABQ(3(?-7)))/ 14289Failed: error 115 at offset 15: reference to non-existent subpattern 14290 14291/(?<=\bABQ(3(?+7)))/ 14292Failed: error 115 at offset 15: reference to non-existent subpattern 14293 14294";(?<=()((?3))((?2)))" 14295Failed: error 125 at offset 1: lookbehind assertion is not fixed length 14296 14297# Perl loops on this (PCRE2 used to!) 14298 14299/(?<=\Ka)/g,aftertext 14300 aaaaa 14301 0: a 14302 0+ aaaa 14303 0: a 14304 0+ aaa 14305 0: a 14306 0+ aa 14307 0: a 14308 0+ a 14309 0: a 14310 0+ 14311 14312/(?<=\Ka)/altglobal,aftertext 14313 aaaaa 14314 0: a 14315 0+ aaaa 14316 0: a 14317 0+ aaa 14318 0: a 14319 0+ aa 14320 0: a 14321 0+ a 14322 0: a 14323 0+ 14324 14325/((?2){73}(?2))((?1))/info 14326Capturing subpattern count = 2 14327May match empty string 14328Subject length lower bound = 0 14329 14330/abc/ 14331\= Expect no match 14332 \[9x!xxx(]{9999} 14333No match 14334 14335/(abc)*/ 14336 \[abc]{5} 14337 0: abcabcabcabcabc 14338 1: abc 14339 14340/^/gm 14341 \n\n\n 14342 0: 14343 0: 14344 0: 14345 14346/^/gm,alt_circumflex 14347 \n\n\n 14348 0: 14349 0: 14350 0: 14351 0: 14352 14353/((((((((x))))))))\81/ 14354Failed: error 115 at offset 19: reference to non-existent subpattern 14355 xx1 14356 14357/((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((x))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))\80/ 14358 xx 14359Matched, but too many substrings 14360 0: xx 14361 1: x 14362 2: x 14363 3: x 14364 4: x 14365 5: x 14366 6: x 14367 7: x 14368 8: x 14369 9: x 1437010: x 1437111: x 1437212: x 1437313: x 1437414: x 14375 14376/\80/ 14377Failed: error 115 at offset 2: reference to non-existent subpattern 14378 14379/A\8B\9C/ 14380Failed: error 115 at offset 2: reference to non-existent subpattern 14381 A8B9C 14382 14383/(?x:((?'a')) # comment (with parentheses) and | vertical 14384(?-x:#not a comment (?'b')) # this is a comment () 14385(?'c')) # not a comment (?'d')/info 14386Capturing subpattern count = 5 14387Named capturing subpatterns: 14388 a 2 14389 b 3 14390 c 4 14391 d 5 14392First code unit = '#' 14393Last code unit = ' ' 14394Subject length lower bound = 32 14395 14396/(?|(?'a')(2)(?'b')|(?'a')(?'a')(3))/I,dupnames 14397Capturing subpattern count = 3 14398Named capturing subpatterns: 14399 a 1 14400 a 2 14401 b 3 14402Options: dupnames 14403Starting code units: 2 3 14404Subject length lower bound = 1 14405 A23B 14406 0: 2 14407 1: 14408 2: 2 14409 3: 14410 B32A 14411 0: 3 14412 1: 14413 2: 14414 3: 3 14415 14416# These are some patterns that used to cause buffer overflows or other errors 14417# while compiling. 14418 14419/.((?2)(?R)|\1|$)()/B 14420------------------------------------------------------------------ 14421 Bra 14422 Any 14423 Once 14424 CBra 1 14425 Recurse 14426 Recurse 14427 Alt 14428 \1 14429 Alt 14430 $ 14431 Ket 14432 Ket 14433 CBra 2 14434 Ket 14435 Ket 14436 End 14437------------------------------------------------------------------ 14438 14439/.((?3)(?R)()(?2)|\1|$)()/B 14440------------------------------------------------------------------ 14441 Bra 14442 Any 14443 Once 14444 CBra 1 14445 Recurse 14446 Recurse 14447 CBra 2 14448 Ket 14449 Recurse 14450 Alt 14451 \1 14452 Alt 14453 $ 14454 Ket 14455 Ket 14456 CBra 3 14457 Ket 14458 Ket 14459 End 14460------------------------------------------------------------------ 14461 14462/(\9*+(?2);\3++()2|)++{/ 14463Failed: error 115 at offset 2: reference to non-existent subpattern 14464 14465/\V\x85\9*+((?2)\3++()2)*:2/ 14466Failed: error 115 at offset 7: reference to non-existent subpattern 14467 14468/(((?(R)){0,2}) (?'x'((?'R')((?'R')))))/dupnames 14469 14470/(((?(X)){0,2}) (?'x'((?'X')((?'X')))))/dupnames 14471 14472/(((?(R)){0,2}) (?'x'((?'X')((?'R')))))/ 14473 14474"(?J)(?'d'(?'d'\g{d}))" 14475 14476"(?=!((?2)(?))({8(?<=(?1){29}8bbbb\x16\xd\xc6^($(\xa9H4){4}h}?1)B))\x15')" 14477Failed: error 125 at offset 16: lookbehind assertion is not fixed length 14478 14479/A(?'')Z/ 14480Failed: error 162 at offset 4: subpattern name expected 14481 14482"(?J:(?|(?'R')(\k'R')|((?'R'))))" 14483 14484/(?<=|(\,\$(?73591620449005828816)\xa8.{7}){6}\x09)/ 14485Failed: error 161 at offset 17: group number is too big 14486 14487/^(?:(?(1)x|)+)+$()/B 14488------------------------------------------------------------------ 14489 Bra 14490 ^ 14491 SBra 14492 SCond 14493 1 Cond ref 14494 x 14495 Alt 14496 KetRmax 14497 KetRmax 14498 $ 14499 CBra 1 14500 Ket 14501 Ket 14502 End 14503------------------------------------------------------------------ 14504 14505/[[:>:]](?<)/ 14506Failed: error 162 at offset 10: subpattern name expected 14507 14508/((?x)(*:0))#(?'/ 14509Failed: error 162 at offset 15: subpattern name expected 14510 14511/(?C$[$)(?<]/ 14512Failed: error 162 at offset 10: subpattern name expected 14513 14514/(?C$)$)(?<]/ 14515Failed: error 162 at offset 10: subpattern name expected 14516 14517/(?(R))*+/B 14518------------------------------------------------------------------ 14519 Bra 14520 Braposzero 14521 SBraPos 14522 SCond 14523 Cond recurse any 14524 Ket 14525 KetRpos 14526 Ket 14527 End 14528------------------------------------------------------------------ 14529 abcd 14530 0: 14531 14532/((?x)(?#))#(?'/ 14533Failed: error 162 at offset 14: subpattern name expected 14534 14535/((?x)(?#))#(?'abc')/I 14536Capturing subpattern count = 2 14537Named capturing subpatterns: 14538 abc 2 14539First code unit = '#' 14540Subject length lower bound = 1 14541 14542/[[:\\](?<[::]/ 14543Failed: error 162 at offset 9: subpattern name expected 14544 14545/[[:\\](?'abc')[a:]/I 14546Capturing subpattern count = 1 14547Named capturing subpatterns: 14548 abc 1 14549Starting code units: : [ \ 14550Subject length lower bound = 2 14551 14552"[[[.\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[[[:[::::::[[[:[[[[[[[[:[[::[::::[[:::::::[[:[[[[[[[:[[::[:[[:[~" 14553Failed: error 106 at offset 353: missing terminating ] for character class 14554 14555/()(?(R)0)*+/B 14556------------------------------------------------------------------ 14557 Bra 14558 CBra 1 14559 Ket 14560 Braposzero 14561 SBraPos 14562 SCond 14563 Cond recurse any 14564 0 14565 Ket 14566 KetRpos 14567 Ket 14568 End 14569------------------------------------------------------------------ 14570 14571/(?R-:(?</ 14572Failed: error 158 at offset 3: (?R (recursive pattern call) must be followed by a closing parenthesis 14573 14574/(?R-:(?<)/ 14575Failed: error 158 at offset 3: (?R (recursive pattern call) must be followed by a closing parenthesis 14576 14577/(?(?C{\Q})(?!(?'/ 14578Failed: error 162 at offset 16: subpattern name expected 14579 14580/(?(?C{\Q})(?!(?'abc')))/I 14581Capturing subpattern count = 1 14582Named capturing subpatterns: 14583 abc 1 14584May match empty string 14585Subject length lower bound = 0 14586 14587/(?1){3918}(((((0(\k'R'))))(?J)(?'R'(?'R'\3){99})))/I 14588Capturing subpattern count = 8 14589Max back reference = 8 14590Named capturing subpatterns: 14591 R 7 14592 R 8 14593Duplicate name status changes 14594Last code unit = '0' 14595Subject length lower bound = 65535 14596 14597/(?|(aaa)|(b))\g{1}/I 14598Capturing subpattern count = 1 14599Max back reference = 1 14600Starting code units: a b 14601Subject length lower bound = 0 14602 14603/(?|(aaa)|(b))(?1)/I 14604Capturing subpattern count = 1 14605Starting code units: a b 14606Subject length lower bound = 4 14607 14608/(?|(aaa)|(b))/I 14609Capturing subpattern count = 1 14610Starting code units: a b 14611Subject length lower bound = 1 14612 14613/(?|(?'a'aaa)|(?'a'b))\k'a'/I 14614Capturing subpattern count = 1 14615Max back reference = 1 14616Named capturing subpatterns: 14617 a 1 14618Starting code units: a b 14619Subject length lower bound = 0 14620 14621/(?|(?'a'aaa)|(?'a'b))(?'a'cccc)\k'a'/I,dupnames 14622Capturing subpattern count = 2 14623Max back reference = 2 14624Named capturing subpatterns: 14625 a 1 14626 a 2 14627Options: dupnames 14628Starting code units: a b 14629Last code unit = 'c' 14630Subject length lower bound = 0 14631 14632/ab{3cd/ 14633 ab{3cd 14634 0: ab{3cd 14635 14636/ab{3,cd/ 14637 ab{3,cd 14638 0: ab{3,cd 14639 14640/ab{3,4a}cd/ 14641 ab{3,4a}cd 14642 0: ab{3,4a}cd 14643 14644/{4,5a}bc/ 14645 {4,5a}bc 14646 0: {4,5a}bc 14647 14648/\x0{ab}/ 14649 \0{ab} 14650 0: \x00{ab} 14651 14652/^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/ 14653 ababababbbabZXXXX 14654 0: ababababbbabZ 14655 1: ab 14656 2: b 14657 14658/.*?a(*PRUNE)b/ 14659 aab 14660 0: ab 14661 14662/.*?a(*PRUNE)b/s 14663 aab 14664 0: ab 14665 14666/^a(*PRUNE)b/s 14667\= Expect no match 14668 aab 14669No match 14670 14671/.*?a(*SKIP)b/ 14672 aab 14673 0: ab 14674 14675/(?(8000000000/ 14676Failed: error 161 at offset 8: group number is too big 14677 14678/((?(R8000000000)))/ 14679Failed: error 161 at offset 9: group number is too big 14680 14681/0(?0)|(1)(*THEN)(*SKIP:0)(*FAIL)/ 14682\= Expect no match 14683 01 14684No match 14685 14686/(?(1)()\983040\2)/ 14687Failed: error 161 at offset 14: group number is too big 14688 14689/(*LIMIT_MATCH=)abc/ 14690Failed: error 160 at offset 14: (*VERB) not recognized or malformed 14691 14692/(*CRLF)(*LIMIT_MATCH=)abc/ 14693Failed: error 160 at offset 21: (*VERB) not recognized or malformed 14694 14695/(?:ab)?(?:ab)(?:ab)/ 14696 abab 14697 0: abab 14698 ababab 14699 0: ababab 14700\= Expect no match 14701 aba 14702No match 14703 14704/((*MARK:A))++a(*SKIP:B)b/ 14705\= Expect no match 14706 aacb 14707No match 14708 14709/(*MARK:a\zb)z/alt_verbnames 14710Failed: error 140 at offset 10: invalid escape sequence in (*VERB) name 14711 14712/(*:ab\t(d\)c)xxx/ 14713Failed: error 122 at offset 12: unmatched closing parenthesis 14714 14715/(*:ab\t(d\)c)xxx/alt_verbnames,mark 14716 cxxxz 14717 0: xxx 14718MK: ab\x09(d)c 14719 14720/(*:A\Qxx)x\EB)x/alt_verbnames,mark 14721 x 14722 0: x 14723MK: Axx)xB 14724 14725/(*:A\ExxxB)x/alt_verbnames,mark 14726 x 14727 0: x 14728MK: AxxxB 14729 14730/(*: A \ and #comment 14731 \ B)x/x,alt_verbnames,mark 14732 x 14733 0: x 14734MK: A and B 14735 14736/(*: A \ and #comment 14737 \ B)x/alt_verbnames,mark 14738 x 14739 0: x 14740MK: A and #comment\x0a B 14741 14742/(*: A \ and #comment 14743 \ B)x/x,mark 14744 x 14745 0: x 14746MK: A \ and #comment\x0a \ B 14747 14748/(*: A \ and #comment 14749 \ B)x/mark 14750 x 14751 0: x 14752MK: A \ and #comment\x0a \ B 14753 14754/(*:A 14755B)x/alt_verbnames,mark 14756 x 14757 0: x 14758MK: A\x0aB 14759 14760/(*:abc\Qpqr)/alt_verbnames 14761Failed: error 160 at offset 12: (*VERB) not recognized or malformed 14762 14763/abc/use_offset_limit 14764 1234abcde\=offset_limit=100 14765 0: abc 14766 1234abcde\=offset_limit=9 14767 0: abc 14768 1234abcde\=offset_limit=4 14769 0: abc 14770 1234abcde\=offset_limit=4,offset=4 14771 0: abc 14772\= Expect no match 14773 1234abcde\=offset_limit=4,offset=5 14774No match 14775 1234abcde\=offset_limit=3 14776No match 14777 14778/(?<=abc)/use_offset_limit 14779 1234abc\=offset_limit=7 14780 0: 14781\= Expect no match 14782 1234abc\=offset_limit=6 14783No match 14784 14785/A/g,replace=-,use_offset_limit 14786 XAXAXAXAXA\=offset_limit=4 14787 2: X-X-XAXAXA 14788 14789/abc/ 14790\= Expect error 14791 1234abcde\=offset_limit=4 14792Failed: error -56: offset limit set without PCRE2_USE_OFFSET_LIMIT 14793 14794/^\w/m,use_offset_limit 14795 \n..\naa\=offset_limit=3 14796No match 14797 \n..\naa\=offset_limit=4 14798 0: a 14799 14800/abcd/null_context 14801 abcd\=null_context 14802 0: abcd 14803\= Expect error 14804 abcd\=null_context,find_limits 14805** Not allowed together: find_limits null_context 14806 abcd\=allusedtext,startchar 14807** Not allowed together: allusedtext startchar 14808 14809/abcd/replace=w\rx\x82y\o{333}z(\Q12\$34$$\x34\E5$$),substitute_extended 14810 abcd 14811 1: w\x0dx\x82y\xdbz(12\$34$$\x345$) 14812 14813/a(bc)(DE)/replace=a\u$1\U$1\E$1\l$2\L$2\Eab\Uab\LYZ\EDone,substitute_extended 14814 abcDE 14815 1: aBcBCbcdEdeabAByzDone 14816 14817/abcd/replace=xy\kz,substitute_extended 14818 abcd 14819Failed: error -57 at offset 4 in replacement: bad escape sequence in replacement string 14820 14821/a(?:(b)|(c))/substitute_extended,replace=X${1:+1:-1}X${2:+2:-2} 14822 ab 14823 1: X1X-2 14824 ac 14825 1: X-1X2 14826 ab\=replace=${1:+$1\:$1:$2} 14827 1: b:b 14828 ac\=replace=${1:+$1\:$1:$2} 14829 1: c 14830 14831/a(?:(b)|(c))/substitute_extended,replace=X${1:-1:-1}X${2:-2:-2} 14832 ab 14833 1: XbX2:-2 14834 ac 14835 1: X1:-1Xc 14836 14837/(a)/substitute_extended,replace=>${1:+\Q$1:{}$$\E+\U$1}< 14838 a 14839 1: >$1:{}$$+A< 14840 14841/X(b)Y/substitute_extended 14842 XbY\=replace=x${1:+$1\U$1}y 14843 1: xbBY 14844 XbY\=replace=\Ux${1:+$1$1}y 14845 1: XBBY 14846 14847/a/substitute_extended,replace=${*MARK:+a:b} 14848 a 14849Failed: error -58 at offset 7 in replacement: expected closing curly bracket in replacement string 14850 14851/(abcd)/replace=${1:+xy\kz},substitute_extended 14852 abcd 14853Failed: error -57 at offset 8 in replacement: bad escape sequence in replacement string 14854 14855/(abcd)/ 14856 abcd\=replace=${1:+xy\kz},substitute_extended 14857Failed: error -57 at offset 8 in replacement: bad escape sequence in replacement string 14858 14859/abcd/substitute_extended,replace=>$1< 14860 abcd 14861Failed: error -49 at offset 3 in replacement: unknown substring 14862 14863/abcd/substitute_extended,replace=>xxx${xyz}<<< 14864 abcd 14865Failed: error -49 at offset 10 in replacement: unknown substring 14866 14867/(?J)(?:(?<A>a)|(?<A>b))/replace=<$A> 14868 [a] 14869 1: [<a>] 14870 [b] 14871 1: [<b>] 14872\= Expect error 14873 (a)\=ovector=1 14874Failed: error -54 at offset 3 in replacement: requested value is not available 14875 14876/(a)|(b)/replace=<$1> 14877\= Expect error 14878 b 14879Failed: error -55 at offset 3 in replacement: requested value is not set 14880 14881/(aa)(BB)/substitute_extended,replace=\U$1\L$2\E$1..\U$1\l$2$1 14882 aaBB 14883 1: AAbbaa..AAbBaa 14884 14885/^(o(\1{72}{\"{\\{00000059079}\d*){74}}){19}/I 14886Capturing subpattern count = 2 14887Max back reference = 1 14888Compile options: <none> 14889Overall options: anchored 14890First code unit = 'o' 14891Last code unit = '}' 14892Subject length lower bound = 65535 14893 14894/((p(?'K/ 14895Failed: error 142 at offset 7: syntax error in subpattern name (missing terminator) 14896 14897/((p(?'K/no_auto_capture 14898Failed: error 142 at offset 7: syntax error in subpattern name (missing terminator) 14899 14900/abc/replace=A$3123456789Z 14901 abc 14902Failed: error -49 at offset 3 in replacement: unknown substring 14903 14904/(?<!a{65535}a{5})x/I 14905Failed: error 187 at offset 0: lookbehind assertion is too long 14906 14907/(?<!a{65535})x/I 14908Capturing subpattern count = 0 14909Max lookbehind = 65535 14910First code unit = 'x' 14911Subject length lower bound = 1 14912 14913/(?=a\K)/replace=z 14914 BaCaD 14915Failed: error -60: match with end before start or start moved backwards is not supported 14916 14917/(?<=\K.)/g,replace=- 14918 ab 14919Failed: error -60: match with end before start or start moved backwards is not supported 14920 14921/(?'abcdefghijklmnopqrstuvwxyzABCDEFG'toolong)/ 14922Failed: error 148 at offset 36: subpattern name is too long (maximum 32 characters) 14923 14924/(?'abcdefghijklmnopqrstuvwxyzABCDEF'justright)/ 14925 14926# These two use zero-termination 14927/abcd/max_pattern_length=3 14928Failed: error 188 at offset 0: pattern string is longer than the limit set by the application 14929 14930/abc/max_pattern_length=3 14931 14932# These two, being hex, pass the length 14933/abcdefab/hex,max_pattern_length=3 14934Failed: error 188 at offset 0: pattern string is longer than the limit set by the application 14935 14936/abcdef/hex,max_pattern_length=3 14937 14938# These patterns used to take a long time to compile 14939 14940"(.*) 14941((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2)) 14942((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2)) 14943((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))"xI 14944Capturing subpattern count = 12 14945May match empty string 14946Options: extended 14947First code unit at start or follows newline 14948Subject length lower bound = 0 14949 14950"(?<=a() 14951((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2)) 14952((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2)) 14953((?-2)(?-2))((?-2)(?-2))((?-2)(?-2)) 14954a)"xI 14955Capturing subpattern count = 12 14956Max lookbehind = 2 14957May match empty string 14958Options: extended 14959Subject length lower bound = 0 14960 14961"(?|()|())(.*) 14962((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2)) 14963((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2)) 14964((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))"xI 14965Capturing subpattern count = 13 14966May match empty string 14967Options: extended 14968Subject length lower bound = 0 14969 14970"(?|()|())(?<=a() 14971((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2)) 14972((?-2)(?-2))((?-2)(?-2))((?-2)(?-2))((?-2)(?-2)) 14973((?-2)(?-2))((?-2)(?-2))((?-2)(?-2)) 14974a)"xI 14975Failed: error 135 at offset 9: lookbehind is too complicated 14976 14977# Test the use of malloc for caching group information when there are more 14978# groups than fit into the on-stack workspace. 14979 14980/\[()]{1024}/I,expand 14981Expanded: ()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()() 14982Capturing subpattern count = 1024 14983May match empty string 14984Subject length lower bound = 0 14985 14986# Test minlength capped at 65535 14987 14988/(A{65000})\1{65000}/I 14989Capturing subpattern count = 1 14990Max back reference = 1 14991First code unit = 'A' 14992Last code unit = 'A' 14993Subject length lower bound = 65535 14994 14995# Test group scans when numbers are not unique 14996 14997/(?|()+|(a)+)/BI 14998------------------------------------------------------------------ 14999 Bra 15000 Bra 15001 SCBra 1 15002 KetRmax 15003 Alt 15004 CBra 1 15005 a 15006 KetRmax 15007 Ket 15008 Ket 15009 End 15010------------------------------------------------------------------ 15011Capturing subpattern count = 1 15012May match empty string 15013Subject length lower bound = 0 15014 15015/(?|(a)+|()+)/BI 15016------------------------------------------------------------------ 15017 Bra 15018 Bra 15019 CBra 1 15020 a 15021 KetRmax 15022 Alt 15023 SCBra 1 15024 KetRmax 15025 Ket 15026 Ket 15027 End 15028------------------------------------------------------------------ 15029Capturing subpattern count = 1 15030May match empty string 15031Subject length lower bound = 0 15032 15033/(?|()|(a))/BI 15034------------------------------------------------------------------ 15035 Bra 15036 Bra 15037 CBra 1 15038 Ket 15039 Alt 15040 CBra 1 15041 a 15042 Ket 15043 Ket 15044 Ket 15045 End 15046------------------------------------------------------------------ 15047Capturing subpattern count = 1 15048May match empty string 15049Subject length lower bound = 0 15050 15051/(?|(a)|())/BI 15052------------------------------------------------------------------ 15053 Bra 15054 Bra 15055 CBra 1 15056 a 15057 Ket 15058 Alt 15059 CBra 1 15060 Ket 15061 Ket 15062 Ket 15063 End 15064------------------------------------------------------------------ 15065Capturing subpattern count = 1 15066May match empty string 15067Subject length lower bound = 0 15068 15069# Test CRLF handling in empty string substitutions 15070 15071/^$/gm,newline=anycrlf,replace=- 15072 X\r\n\r\nY 15073 1: X\x0d\x0a-\x0d\x0aY 15074 15075/^$/gm,newline=crlf,replace=- 15076 X\r\n\r\nY 15077 1: X\x0d\x0a-\x0d\x0aY 15078 15079/^$/gm,newline=any,replace=- 15080 X\r\n\r\nY 15081 1: X\x0d\x0a-\x0d\x0aY 15082 15083"(*ANYCRLF)(?m)^(.*[^0-9\r\n].*|)$"g,replace=NaN 15084 15\r\nfoo\r\n20\r\nbar\r\nbaz\r\n\r\n20 15085 4: 15\x0d\x0aNaN\x0d\x0a20\x0d\x0aNaN\x0d\x0aNaN\x0d\x0aNaN\x0d\x0a20 15086 15087/a[[:punct:]b]/bincode 15088------------------------------------------------------------------ 15089 Bra 15090 a 15091 [!-/:-@[-`b{-~] 15092 Ket 15093 End 15094------------------------------------------------------------------ 15095 15096/a[b[:punct:]]/bincode 15097------------------------------------------------------------------ 15098 Bra 15099 a 15100 [!-/:-@[-`b{-~] 15101 Ket 15102 End 15103------------------------------------------------------------------ 15104 15105/L(?#(|++<!(2)?/B 15106------------------------------------------------------------------ 15107 Bra 15108 L?+ 15109 Ket 15110 End 15111------------------------------------------------------------------ 15112 15113/L(?#(|++<!(2)?/B,no_auto_possess 15114------------------------------------------------------------------ 15115 Bra 15116 L? 15117 Ket 15118 End 15119------------------------------------------------------------------ 15120 15121/L(?#(|++<!(2)?/B,auto_callout 15122------------------------------------------------------------------ 15123 Bra 15124 Callout 255 0 14 15125 L?+ 15126 Callout 255 14 0 15127 Ket 15128 End 15129------------------------------------------------------------------ 15130 15131/L(?#(|++<!(2)?/B,no_auto_possess,auto_callout 15132------------------------------------------------------------------ 15133 Bra 15134 Callout 255 0 14 15135 L? 15136 Callout 255 14 0 15137 Ket 15138 End 15139------------------------------------------------------------------ 15140 15141/(A*)\E+/B,auto_callout 15142------------------------------------------------------------------ 15143 Bra 15144 Callout 255 0 1 15145 SCBra 1 15146 Callout 255 1 2 15147 A* 15148 Callout 255 3 4 15149 KetRmax 15150 Callout 255 7 0 15151 Ket 15152 End 15153------------------------------------------------------------------ 15154 15155/()\Q\E*]/B,auto_callout 15156------------------------------------------------------------------ 15157 Bra 15158 Callout 255 0 1 15159 Brazero 15160 SCBra 1 15161 Callout 255 1 6 15162 KetRmax 15163 Callout 255 7 1 15164 ] 15165 Callout 255 8 0 15166 Ket 15167 End 15168------------------------------------------------------------------ 15169 a[bc]d 15170--->a[bc]d 15171 +0 ^ ( 15172 +1 ^ )\Q\E* 15173 +7 ^ ] 15174 +8 ^^ End of pattern 15175 0: ] 15176 1: 15177 15178/\x8a+f|;T?(*:;.'?`(\xeap ){![^()!y*''C*(?';]{1;(\x08)/B,alt_verbnames,dupnames,extended 15179------------------------------------------------------------------ 15180 Bra 15181 \x{8a}++ 15182 f 15183 Alt 15184 ; 15185 T? 15186 *MARK ;.'?`(\x{ea}p 15187 {! 15188 [\x00- "-&+-:<->@-BD-xz-\xff] (neg) 15189 {1; 15190 CBra 1 15191 \x08 15192 Ket 15193 Ket 15194 End 15195------------------------------------------------------------------ 15196 15197# Tests for NULL characters in comments and verb "names" and callouts 15198 15199# /A#B\x00C\x0aZ/ 15200/41 23 42 00 43 0a 5a/Bx,hex 15201------------------------------------------------------------------ 15202 Bra 15203 AZ 15204 Ket 15205 End 15206------------------------------------------------------------------ 15207 15208# /A+#B\x00C\x0a+/ 15209/41 2b 23 42 00 43 0a 2b/Bx,hex 15210------------------------------------------------------------------ 15211 Bra 15212 A++ 15213 Ket 15214 End 15215------------------------------------------------------------------ 15216 15217# /A(*:B\x00W#X\00Y\x0aC)Z/ 15218/41 28 2a 3a 42 00 57 23 58 00 59 0a 43 29 5a/Bx,hex,alt_verbnames 15219------------------------------------------------------------------ 15220 Bra 15221 A 15222 *MARK B\x{0}WC 15223 Z 15224 Ket 15225 End 15226------------------------------------------------------------------ 15227 15228# /A(*:B\x00W#X\00Y\x0aC)Z/ 15229/41 28 2a 3a 42 00 57 23 58 00 59 0a 43 29 5a/Bx,hex 15230------------------------------------------------------------------ 15231 Bra 15232 A 15233 *MARK B\x{0}W#X\x{0}Y\x{a}C 15234 Z 15235 Ket 15236 End 15237------------------------------------------------------------------ 15238 15239# /A(?C{X\x00Y})B/ 15240/41 28 3f 43 7b 58 00 59 7d 29 42/B,hex 15241------------------------------------------------------------------ 15242 Bra 15243 A 15244 CalloutStr {X\x{0}Y} 5 10 1 15245 B 15246 Ket 15247 End 15248------------------------------------------------------------------ 15249 15250# /A(?#X\x00Y)B/ 15251/41 28 3f 23 7b 00 7d 29 42/B,hex 15252------------------------------------------------------------------ 15253 Bra 15254 AB 15255 Ket 15256 End 15257------------------------------------------------------------------ 15258 15259# Tests for leading comment in extended patterns 15260 15261/ (?-x):?/extended 15262 15263/(?-x):?/extended 15264 15265/0b 28 3f 2d 78 29 3a/hex,extended 15266 15267/#comment 15268(?-x):?/extended 15269 15270/(8(*:6^\x09x\xa6l\)6!|\xd0:[^:|)\x09d\Z\d{85*m(?'(?<1!)*\W[*\xff]!!h\w]*\xbe;/alt_bsux,alt_verbnames,allow_empty_class,dollar_endonly,extended,multiline,never_utf,no_dotstar_anchor,no_start_optimize 15271Failed: error 162 at offset 49: subpattern name expected 15272 15273/a|(b)c/replace=>$1<,substitute_unset_empty 15274 cat 15275 1: c><t 15276 xbcom 15277 1: x>b<om 15278 15279/a|(b)c/ 15280 cat\=replace=>$1< 15281Failed: error -55 at offset 3 in replacement: requested value is not set 15282 cat\=replace=>$1<,substitute_unset_empty 15283 1: c><t 15284 xbcom\=replace=>$1<,substitute_unset_empty 15285 1: x>b<om 15286 15287/a|(b)c/substitute_extended 15288 cat\=replace=>${2:-xx}< 15289Failed: error -49 at offset 9 in replacement: unknown substring 15290 cat\=replace=>${2:-xx}<,substitute_unknown_unset 15291 1: c>xx<t 15292 cat\=replace=>${X:-xx}<,substitute_unknown_unset 15293 1: c>xx<t 15294 15295/a|(?'X'b)c/replace=>$X<,substitute_unset_empty 15296 cat 15297 1: c><t 15298 xbcom 15299 1: x>b<om 15300 15301/a|(?'X'b)c/replace=>$Y<,substitute_unset_empty 15302 cat 15303Failed: error -49 at offset 3 in replacement: unknown substring 15304 cat\=substitute_unknown_unset 15305 1: c><t 15306 cat\=substitute_unknown_unset,-substitute_unset_empty 15307Failed: error -55 at offset 3 in replacement: requested value is not set 15308 15309/a|(b)c/replace=>$2<,substitute_unset_empty 15310 cat 15311Failed: error -49 at offset 3 in replacement: unknown substring 15312 cat\=substitute_unknown_unset 15313 1: c><t 15314 cat\=substitute_unknown_unset,-substitute_unset_empty 15315Failed: error -55 at offset 3 in replacement: requested value is not set 15316 15317/()()()/use_offset_limit 15318 \=ovector=11000000000 15319** Invalid value in 'ovector=11000000000' 15320 \=callout_fail=11000000000 15321** Invalid value in 'callout_fail=11000000000' 15322 \=callout_fail=1:11000000000 15323** Invalid value in 'callout_fail=1:11000000000' 15324 \=callout_data=11000000000 15325** Invalid value in 'callout_data=11000000000' 15326 \=callout_data=-11000000000 15327** Invalid value in 'callout_data=-11000000000' 15328 \=offset_limit=1100000000000000000000 15329** Invalid value in 'offset_limit=1100000000000000000000' 15330 \=copy=11000000000 15331** Invalid value in 'copy=11000000000' 15332 15333/(*MARK:A\x00b)/mark 15334 abc 15335 0: 15336MK: A\x00b 15337 15338/(*MARK:A\x00b)/mark,alt_verbnames 15339 abc 15340 0: 15341MK: A\x00b 15342 15343/"(*MARK:A" 00 "b)"/mark,hex 15344 abc 15345 0: 15346MK: A\x00b 15347 15348/"(*MARK:A" 00 "b)"/mark,hex,alt_verbnames 15349 abc 15350 0: 15351MK: A\x00b 15352 15353/efg/hex 15354** Unexpected non-hex-digit 'g' at offset 2 in hex pattern: quote missing? 15355 15356/eff/hex 15357** Odd number of digits in hex pattern 15358 15359/effg/hex 15360** Unexpected non-hex-digit 'g' at offset 3 in hex pattern: quote missing? 15361 15362/(?J)(?'a'))(?'a')/ 15363Failed: error 122 at offset 10: unmatched closing parenthesis 15364 15365/(?<=((?C)0))/ 15366 9010 15367--->9010 15368 0 ^ 0 15369 0 ^ 0 15370 0: 15371 1: 0 15372\= Expect no match 15373 abc 15374--->abc 15375 0 ^ 0 15376 0 ^ 0 15377 0 ^ 0 15378No match 15379 15380/aaa/ 15381\[abc]{10000000000000000000000000000} 15382** Repeat count too large 15383\[a]{3} 15384 0: aaa 15385 15386/\[AB]{6000000000000000000000}/expand 15387** Pattern repeat count too large 15388 15389# Hex uses pattern length, not zero-terminated. This tests for overrunning 15390# the given length of a pattern. 15391 15392/'(*U'/hex 15393Failed: error 160 at offset 3: (*VERB) not recognized or malformed 15394 15395/'(*'/hex 15396Failed: error 109 at offset 1: quantifier does not follow a repeatable item 15397 15398/'('/hex 15399Failed: error 114 at offset 1: missing closing parenthesis 15400 15401//hex 15402 15403# These tests are here because Perl never allows a back reference in a 15404# lookbehind. PCRE2 supports some limited cases. 15405 15406/([ab])...(?<=\1)z/ 15407 a11az 15408 0: a11az 15409 1: a 15410 b11bz 15411 0: b11bz 15412 1: b 15413\= Expect no match 15414 b11az 15415No match 15416 15417/(?|([ab]))...(?<=\1)z/ 15418Failed: error 125 at offset 13: lookbehind assertion is not fixed length 15419 15420/([ab])(\1)...(?<=\2)z/ 15421 aa11az 15422 0: aa11az 15423 1: a 15424 2: a 15425 15426/(a\2)(b\1)(?<=\2)/ 15427Failed: error 125 at offset 10: lookbehind assertion is not fixed length 15428 15429/(?<A>[ab])...(?<=\k'A')z/ 15430 a11az 15431 0: a11az 15432 1: a 15433 b11bz 15434 0: b11bz 15435 1: b 15436\= Expect no match 15437 b11az 15438No match 15439 15440/(?<A>[ab])...(?<=\k'A')(?<A>)z/dupnames 15441Failed: error 125 at offset 13: lookbehind assertion is not fixed length 15442 15443# Perl does not support \g+n 15444 15445/((\g+1X)?([ab]))+/ 15446 aaXbbXa 15447 0: aaXbbXa 15448 1: bXa 15449 2: bX 15450 3: a 15451 15452/ab(?C1)c/auto_callout 15453 abc 15454--->abc 15455 +0 ^ a 15456 +1 ^^ b 15457 1 ^ ^ c 15458 +8 ^ ^ End of pattern 15459 0: abc 15460 15461/'ab(?C1)c'/hex,auto_callout 15462 abc 15463--->abc 15464 +0 ^ a 15465 +1 ^^ b 15466 1 ^ ^ c 15467 +8 ^ ^ End of pattern 15468 0: abc 15469 15470# Perl accepts these, but gives a warning. We can't warn, so give an error. 15471 15472/[a-[:digit:]]+/ 15473Failed: error 150 at offset 4: invalid range in character class 15474 a-a9-a 15475 15476/[A-[:digit:]]+/ 15477Failed: error 150 at offset 4: invalid range in character class 15478 A-A9-A 15479 15480/[a-\d]+/ 15481Failed: error 150 at offset 5: invalid range in character class 15482 a-a9-a 15483 15484/(?<RA>abc)(?(R)xyz)/B 15485------------------------------------------------------------------ 15486 Bra 15487 CBra 1 15488 abc 15489 Ket 15490 Cond 15491 Cond recurse any 15492 xyz 15493 Ket 15494 Ket 15495 End 15496------------------------------------------------------------------ 15497 15498/(?<R>abc)(?(R)xyz)/B 15499------------------------------------------------------------------ 15500 Bra 15501 CBra 1 15502 abc 15503 Ket 15504 Cond 15505 1 Cond ref 15506 xyz 15507 Ket 15508 Ket 15509 End 15510------------------------------------------------------------------ 15511 15512/(?=.*[A-Z])/I 15513Capturing subpattern count = 0 15514May match empty string 15515Subject length lower bound = 0 15516 15517/()(?<=(?0))/ 15518Failed: error 125 at offset 2: lookbehind assertion is not fixed length 15519 15520/(?<!|!(?<!))/ 15521 15522/(?<!|!|!||||||(?<!)||(?<!)!|!||(?<!)!|!(?<!)!|!|!|!||||!!|<!)!|!||||!|/ 15523 15524/{2,2{2,2/use_length 15525 15526/.>*?\g'0/use_length 15527Failed: error 157 at offset 6: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number 15528 15529/.>*?\g'0/ 15530Failed: error 157 at offset 6: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number 15531 15532/{�̈́�̈́�{'{22{2{{2{'{22{{22{2{'{22{2{{2{{222{{2{'{22{2{22{2{'{22{2{{2{'{22{2{22{2{'{'{22{2{22{2{'{22{2{{2{'{22{2{22{2{'{222{2Ą̈́�̈́�{'{22{2{{2{'{22{{11{2{'{22{2{{2{{'{22{2{{2{'{22{{22{1{'{22{2{{2{{222{{2{'{22{2{22{2{'{/auto_callout 15533 15534// 15535\=get=i00000000000000000000000000000000 15536** Group name in 'get' is too long 15537\=get=i2345678901234567890123456789012,get=i1245678901234567890123456789012 15538** Too many characters in named 'get' modifiers 15539 15540"(?(?C))" 15541Failed: error 128 at offset 6: assertion expected after (?( or (?(?C) 15542 15543/(?(?(?(?(?(?))))))/ 15544Failed: error 128 at offset 2: assertion expected after (?( or (?(?C) 15545 15546/(?<=(?1))((?s))/anchored 15547 15548/(*:ab)*/ 15549Failed: error 109 at offset 6: quantifier does not follow a repeatable item 15550 15551%(*:(:(svvvvvvvvvv:]*[ Z!*;[]*[^[]*!^[+.+{{2,7}' _\\\\\\\\\\\\\)?.:.. *w////\\\Q\\\\\\\\\\\\\\\T\\\\\+/?/////'+\\\EEE?/////'+/*+/[^K]?]//(w)%never_backslash_c,alt_verbnames,auto_callout 15552 15553/./newline=crlf 15554 \=ph 15555No match 15556 15557/(\x0e00\000000\xc)/replace=\P,substitute_extended 15558 \x0e00\000000\xc 15559Failed: error -57 at offset 2 in replacement: bad escape sequence in replacement string 15560 15561//replace=0 15562 \=offset=7 15563Failed: error -33: bad offset value 15564 15565/(?<=\G.)/g,replace=+ 15566 abc 15567 3: a+b+c+ 15568 15569".+\QX\E+"B,no_auto_possess 15570------------------------------------------------------------------ 15571 Bra 15572 Any+ 15573 X+ 15574 Ket 15575 End 15576------------------------------------------------------------------ 15577 15578".+\QX\E+"B,auto_callout,no_auto_possess 15579------------------------------------------------------------------ 15580 Bra 15581 Callout 255 0 4 15582 Any+ 15583 Callout 255 4 4 15584 X+ 15585 Callout 255 8 0 15586 Ket 15587 End 15588------------------------------------------------------------------ 15589 15590# This one is here because Perl gives an 'unmatched )' error which goes away 15591# if one of the \) sequences is removed - which is weird. PCRE finds it too 15592# complicated to find a minimum matching length. 15593 15594"()X|((((((((()))))))((((())))))\2())((((((\2\2)))\2)(\22((((\2\2)2))\2)))(2\ZZZ)+:)Z^|91ZiZZnter(ZZ |91Z(ZZ ZZ(\r2Z( or#(\Z2(Z\Z(\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)2))\2Z+:)Z|91Z(ZZ ZZ(\r2Z( or#(\Z2(Z\Z((Z*(\2(Z\':))\0)i|||||||||||||||loZ\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)2))\2Z)))int \)\0nte!rnal errpr\2\\21r(2\ZZZ)+:)Z!|91Z(ZZ ZZ(\r2Z( or#(\Z2(Z\Z(\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)2))\2Z)))int \)\0(2\ZZZ)+:)Z^|91ZiZZnter(ZZ |91Z(ZZ ZZ(\r2Z( or#(\Z2(Z\Z(\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)2))\2Z)))int \)\0(2\ZZZ)+:)Z^)))int \)\0(2\ZZZ)+:)Z^|91ZiZZnter(ZZernZal ZZ(\r2Z( or#(\Z2(Z\Z(\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)2))\2Z)))int \))\ZZ(\r2Z( or#(\Z2(Z\Z(\2\2)2))\2Z)Z(\22Z((\Z2(Z\Z(\2\2)))\2))))((((((\2\2))))))"I 15595Capturing subpattern count = 108 15596Max back reference = 22 15597Contains explicit CR or LF match 15598Subject length lower bound = 1 15599 15600# This checks that new code for handling groups that may match an empty string 15601# works on a very large number of alternatives. This pattern used to provoke a 15602# complaint that it was too complicated. 15603 15604/(?:\[A|B|C|D|E|F|G|H|I|J|]{200}Z)/expand 15605 15606# This one used to compile rubbish instead of a compile error, and then 15607# behave unpredictably at match time. 15608 15609/.+(?(?C'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'))?!XXXX.=X/ 15610Failed: error 128 at offset 63: assertion expected after (?( or (?(?C) 15611 .+(?(?C'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'))?!XXXX.=X 15612 15613/[:[:alnum:]-[[a:lnum:]+/ 15614Failed: error 150 at offset 11: invalid range in character class 15615 15616/((?(?C'')\QX\E(?!((?(?C'')(?!X=X));=)r*X=X));=)/ 15617Failed: error 128 at offset 11: assertion expected after (?( or (?(?C) 15618 15619/((?(?C'')\Q\E(?!((?(?C'')(?!X=X));=)r*X=X));=)/ 15620 15621/abcd/auto_callout 15622 abcd\=callout_error=255:2 15623--->abcd 15624 +0 ^ a 15625 +1 ^^ b 15626Failed: error -37: callout error code 15627 15628/()(\g+65534)/ 15629Failed: error 161 at offset 11: group number is too big 15630 15631/()(\g+65533)/ 15632Failed: error 115 at offset 10: reference to non-existent subpattern 15633 15634/�\x00\x00\x00�(\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\2*\x00k\d+\x00\x00\x00\x00\x00\x00\2*\x00\x00\1*.){36}int^\x00\x00��\x00�(\1{50779}?)J\w2/I 15635Capturing subpattern count = 2 15636Max back reference = 2 15637First code unit = \xc1 15638Last code unit = '2' 15639Subject length lower bound = 65535 15640 15641/(a)(b)\2\1\1\1\1/I 15642Capturing subpattern count = 2 15643Max back reference = 2 15644First code unit = 'a' 15645Last code unit = 'b' 15646Subject length lower bound = 7 15647 15648/(?<a>a)(?<b>b)\g{b}\g{a}\g{a}\g{a}\g{a}(?<a>xx)(?<b>zz)/I,dupnames 15649Capturing subpattern count = 4 15650Max back reference = 4 15651Named capturing subpatterns: 15652 a 1 15653 a 3 15654 b 2 15655 b 4 15656Options: dupnames 15657First code unit = 'a' 15658Last code unit = 'z' 15659Subject length lower bound = 11 15660 15661// 15662 \=ovector=7777777777 15663** Invalid value in 'ovector=7777777777' 15664 15665# This is here because Perl matches, even though a COMMIT is encountered 15666# outside of the recursion. 15667 15668/(?1)(A(*COMMIT)|B)D/ 15669 BAXBAD 15670No match 15671 15672"(?1){2}(a)"B 15673------------------------------------------------------------------ 15674 Bra 15675 Recurse 15676 Recurse 15677 CBra 1 15678 a 15679 Ket 15680 Ket 15681 End 15682------------------------------------------------------------------ 15683 15684"(?1){2,4}(a)"B 15685------------------------------------------------------------------ 15686 Bra 15687 Recurse 15688 Recurse 15689 Brazero 15690 Bra 15691 Bra 15692 Recurse 15693 Ket 15694 Brazero 15695 Bra 15696 Recurse 15697 Ket 15698 Ket 15699 CBra 1 15700 a 15701 Ket 15702 Ket 15703 End 15704------------------------------------------------------------------ 15705 15706# This test differs from Perl for the first subject. Perl ends up with 15707# $1 set to 'B'; PCRE2 has it unset (which I think is right). 15708 15709/^(?: 15710(?:A| (?:B|B(*ACCEPT)) (?<=(.)) D) 15711(Z) 15712)+$/x 15713 AZB 15714 0: AZB 15715 1: <unset> 15716 2: Z 15717 AZBDZ 15718 0: AZBDZ 15719 1: B 15720 2: Z 15721 15722# The first of these, when run by Perl, gives the mark 'aa', which is wrong. 15723 15724'(?>a(*:aa))b|ac' mark 15725 ac 15726 0: ac 15727 15728'(?:a(*:aa))b|ac' mark 15729 ac 15730 0: ac 15731 15732/(R?){65}/ 15733 (R?){65} 15734 0: 15735 1: 15736 15737/\[(a)]{60}/expand 15738 aaaa 15739No match 15740 15741/(?<!\1((?U)1((?U))))(*F)/never_backslash_c,alt_bsux,anchored,extended 15742 15743/\g{3/ 15744Failed: error 157 at offset 2: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number 15745 15746/(a(?C1)(b)(c)d)+/ 15747 abcdabcd\=callout_capture 15748Callout 1: last capture = 0 15749--->abcdabcd 15750 ^^ ( 15751Callout 1: last capture = 1 15752 1: abcd 15753 2: b 15754 3: c 15755--->abcdabcd 15756 ^ ^ ( 15757 0: abcdabcd 15758 1: abcd 15759 2: b 15760 3: c 15761 15762# Perl matches this one, but PCRE does not because (*ACCEPT) clears out any 15763# pending backtracks in the recursion. 15764 15765/^ (?(DEFINE) (..(*ACCEPT)|...) ) (?1)$/x 15766\= Expect no match 15767 abc 15768No match 15769 15770# Perl gives no match for this one 15771 15772/(a(*MARK:m)(*ACCEPT)){0}(?1)/mark 15773 abc 15774 0: a 15775MK: m 15776 15777/abc/endanchored 15778 xyzabc 15779 0: abc 15780\= Expect no match 15781 xyzabcdef 15782No match 15783\= Expect error 15784 xyzabc\=ph 15785Failed: error -34: bad option value 15786 15787/abc/ 15788 xyzabc\=endanchored 15789 0: abc 15790\= Expect no match 15791 xyzabcdef\=endanchored 15792No match 15793\= Expect error 15794 xyzabc\=ps,endanchored 15795Failed: error -34: bad option value 15796 15797/abc(*ACCEPT)d/endanchored 15798 xyzabc 15799 0: abc 15800\= Expect no match 15801 xyzabcdef 15802No match 15803 15804/abc|bcd/endanchored 15805 xyzabcd 15806 0: bcd 15807\= Expect no match 15808 xyzabcdef 15809No match 15810 15811/a(*ACCEPT)x|aa/endanchored 15812 aaa 15813 0: a 15814 15815# Check auto-anchoring when there is a group that is never obeyed at 15816# the start of a branch. 15817 15818/(?(DEFINE)(a))^bc/I 15819Capturing subpattern count = 1 15820Compile options: <none> 15821Overall options: anchored 15822First code unit = 'b' 15823Subject length lower bound = 2 15824 15825/(a){0}.*bc/sI 15826Capturing subpattern count = 1 15827Compile options: dotall 15828Overall options: anchored dotall 15829Last code unit = 'c' 15830Subject length lower bound = 2 15831 15832# This should be anchored, as the condition is always false and there is 15833# no alternative branch. 15834 15835/(?(VERSION>=999)yes)^bc/I 15836Capturing subpattern count = 0 15837Compile options: <none> 15838Overall options: anchored 15839Subject length lower bound = 2 15840 15841# This should not be anchored. 15842 15843/(?(VERSION>=999)yes|no)^bc/I 15844Capturing subpattern count = 0 15845Last code unit = 'c' 15846Subject length lower bound = 4 15847 15848/(*LIMIT_HEAP=0)xxx/I 15849Capturing subpattern count = 0 15850Heap limit = 0 15851First code unit = 'x' 15852Last code unit = 'x' 15853Subject length lower bound = 3 15854 15855/\d{0,3}(*:abc)(?C1)xxx/callout_info 15856Callout 1 x 15857 15858# ---------------------------------------------------------------------- 15859 15860# These are a whole pile of tests that touch lines of code that are not 15861# used by any other tests (at least when these were created). 15862 15863/^a+?x/i,no_start_optimize,no_auto_possess 15864\= Expect no match 15865 aaa 15866No match 15867 15868/^[^a]{3,}?x/i,no_start_optimize,no_auto_possess 15869\= Expect no match 15870 bbb 15871No match 15872 cc 15873No match 15874 15875/^X\S/no_start_optimize,no_auto_possess 15876\= Expect no match 15877 X 15878No match 15879 15880/^X\W/no_start_optimize,no_auto_possess 15881\= Expect no match 15882 X 15883No match 15884 15885/^X\H/no_start_optimize,no_auto_possess 15886\= Expect no match 15887 X 15888No match 15889 15890/^X\h/no_start_optimize,no_auto_possess 15891\= Expect no match 15892 X 15893No match 15894 15895/^X\V/no_start_optimize,no_auto_possess 15896\= Expect no match 15897 X 15898No match 15899 15900/^X\v/no_start_optimize,no_auto_possess 15901\= Expect no match 15902 X 15903No match 15904 15905/^X\h/no_start_optimize,no_auto_possess 15906\= Expect no match 15907 XY 15908No match 15909 15910/^X\V/no_start_optimize,no_auto_possess 15911\= Expect no match 15912 X\n 15913No match 15914 15915/^X\v/no_start_optimize,no_auto_possess 15916\= Expect no match 15917 XX 15918No match 15919 15920/^X.+?/s,no_start_optimize,no_auto_possess 15921\= Expect no match 15922 X 15923No match 15924 15925/^X\R+?/no_start_optimize,no_auto_possess 15926\= Expect no match 15927 XX 15928No match 15929 15930/^X\H+?/no_start_optimize,no_auto_possess 15931\= Expect no match 15932 X 15933No match 15934 15935/^X\h+?/no_start_optimize,no_auto_possess 15936\= Expect no match 15937 X 15938No match 15939 15940/^X\V+?/no_start_optimize,no_auto_possess 15941\= Expect no match 15942 X 15943No match 15944 X\n 15945No match 15946 15947/^X\D+?/no_start_optimize,no_auto_possess 15948\= Expect no match 15949 X 15950No match 15951 X9 15952No match 15953 15954/^X\S+?/no_start_optimize,no_auto_possess 15955\= Expect no match 15956 X 15957No match 15958 X\n 15959No match 15960 15961/^X\W+?/no_start_optimize,no_auto_possess 15962\= Expect no match 15963 X 15964No match 15965 XX 15966No match 15967 15968/^X.+?Z/no_start_optimize,no_auto_possess 15969\= Expect no match 15970 XY\n 15971No match 15972 15973/(*CRLF)^X.+?Z/no_start_optimize,no_auto_possess 15974\= Expect no match 15975 XY\r\=ps 15976Partial match: XY\x0d 15977 15978/^X\R+?Z/no_start_optimize,no_auto_possess 15979\= Expect no match 15980 X\nX 15981No match 15982 X\n\r\n 15983No match 15984 X\n\rY 15985No match 15986 X\n\nY 15987No match 15988 X\n\x{0c}Y 15989No match 15990 15991/(*BSR_ANYCRLF)^X\R+?Z/no_start_optimize,no_auto_possess 15992\= Expect no match 15993 X\nX 15994No match 15995 X\n\r\n 15996No match 15997 X\n\rY 15998No match 15999 X\n\nY 16000No match 16001 X\n\x{0c}Y 16002No match 16003 16004/^X\H+?Z/no_start_optimize,no_auto_possess 16005\= Expect no match 16006 XY\t 16007No match 16008 XYY 16009No match 16010 16011/^X\h+?Z/no_start_optimize,no_auto_possess 16012\= Expect no match 16013 X\t\t 16014No match 16015 X\tY 16016No match 16017 16018/^X\V+?Z/no_start_optimize,no_auto_possess 16019\= Expect no match 16020 XY\n 16021No match 16022 XYY 16023No match 16024 16025/^X\v+?Z/no_start_optimize,no_auto_possess 16026\= Expect no match 16027 X\n\n 16028No match 16029 X\nY 16030No match 16031 16032/^X\D+?Z/no_start_optimize,no_auto_possess 16033\= Expect no match 16034 XY9 16035No match 16036 XYY 16037No match 16038 16039/^X\d+?Z/no_start_optimize,no_auto_possess 16040\= Expect no match 16041 X99 16042No match 16043 X9Y 16044No match 16045 16046/^X\S+?Z/no_start_optimize,no_auto_possess 16047\= Expect no match 16048 XY\n 16049No match 16050 XYY 16051No match 16052 16053/^X\s+?Z/no_start_optimize,no_auto_possess 16054\= Expect no match 16055 X\n\n 16056No match 16057 X\nY 16058No match 16059 16060/^X\W+?Z/no_start_optimize,no_auto_possess 16061\= Expect no match 16062 X.A 16063No match 16064 X++ 16065No match 16066 16067/^X\w+?Z/no_start_optimize,no_auto_possess 16068\= Expect no match 16069 Xa. 16070No match 16071 Xaa 16072No match 16073 16074/^X.{1,3}Z/s,no_start_optimize,no_auto_possess 16075\= Expect no match 16076 Xa.bd 16077No match 16078 16079/^X\h+Z/no_start_optimize,no_auto_possess 16080\= Expect no match 16081 X\t\t 16082No match 16083 X\tY 16084No match 16085 16086/^X\V+Z/no_start_optimize,no_auto_possess 16087\= Expect no match 16088 XY\n 16089No match 16090 XYY 16091No match 16092 16093/^(X(*THEN)Y|AB){0}(?1)/ 16094 ABX 16095 0: AB 16096\= Expect no match 16097 XAB 16098No match 16099 16100/^(?!A(?C1)B)C/ 16101 ABC\=callout_error=1,no_jit 16102No match 16103 16104/^(?!A(?C1)B)C/no_start_optimize 16105 ABC\=callout_error=1 16106--->ABC 16107 1 ^^ B 16108Failed: error -37: callout error code 16109 16110/^(?(?!A(?C1)B)C)/ 16111 ABC\=callout_error=1 16112--->ABC 16113 1 ^^ B 16114Failed: error -37: callout error code 16115 16116# ---------------------------------------------------------------------- 16117 16118/[a b c]/BxxI 16119------------------------------------------------------------------ 16120 Bra 16121 [a-c] 16122 Ket 16123 End 16124------------------------------------------------------------------ 16125Capturing subpattern count = 0 16126Options: extended_more 16127Starting code units: a b c 16128Subject length lower bound = 1 16129 16130/[a b c]/BxxxI 16131------------------------------------------------------------------ 16132 Bra 16133 [a-c] 16134 Ket 16135 End 16136------------------------------------------------------------------ 16137Capturing subpattern count = 0 16138Options: extended extended_more 16139Starting code units: a b c 16140Subject length lower bound = 1 16141 16142/[a b c]/B,extended_more 16143------------------------------------------------------------------ 16144 Bra 16145 [a-c] 16146 Ket 16147 End 16148------------------------------------------------------------------ 16149 16150/[ a b c ]/B,extended_more 16151------------------------------------------------------------------ 16152 Bra 16153 [a-c] 16154 Ket 16155 End 16156------------------------------------------------------------------ 16157 16158/[a b](?xx: [ 12 ] (?-xx:[ 34 ]) )y z/B 16159------------------------------------------------------------------ 16160 Bra 16161 [ ab] 16162 Bra 16163 [12] 16164 Bra 16165 [ 34] 16166 Ket 16167 Ket 16168 y z 16169 Ket 16170 End 16171------------------------------------------------------------------ 16172 16173# Unsetting /x also unsets /xx 16174 16175/[a b](?xx: [ 12 ] (?-x:[ 34 ]) )y z/B 16176------------------------------------------------------------------ 16177 Bra 16178 [ ab] 16179 Bra 16180 [12] 16181 Bra 16182 [ 34] 16183 Ket 16184 Ket 16185 y z 16186 Ket 16187 End 16188------------------------------------------------------------------ 16189 16190/(a)(?-n:(b))(c)/nB 16191------------------------------------------------------------------ 16192 Bra 16193 Bra 16194 a 16195 Ket 16196 Bra 16197 CBra 1 16198 b 16199 Ket 16200 Ket 16201 Bra 16202 c 16203 Ket 16204 Ket 16205 End 16206------------------------------------------------------------------ 16207 16208# ---------------------------------------------------------------------- 16209# These test the dangerous PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL option. 16210 16211/\j\x{z}\o{82}\L\uabcd\u\U\g{\g/B,\bad_escape_is_literal 16212** Unrecognized modifier '\' in '\bad_escape_is_literal' 16213 16214/\N{\c/IB,bad_escape_is_literal 16215------------------------------------------------------------------ 16216 Bra 16217 N{c 16218 Ket 16219 End 16220------------------------------------------------------------------ 16221Capturing subpattern count = 0 16222Extra options: bad_escape_is_literal 16223First code unit = 'N' 16224Last code unit = 'c' 16225Subject length lower bound = 3 16226 16227/[\j\x{z}\o\gA-\Nb-\g]/B,bad_escape_is_literal 16228------------------------------------------------------------------ 16229 Bra 16230 [A-Nb-gjoxz{}] 16231 Ket 16232 End 16233------------------------------------------------------------------ 16234 16235/[Q-\N]/B,bad_escape_is_literal 16236Failed: error 108 at offset 4: range out of order in character class 16237 16238# ---------------------------------------------------------------------- 16239 16240/a\b(c/literal 16241 a\\b(c 16242 0: a\b(c 16243 16244/a\b(c/literal,caseless 16245 a\\b(c 16246 0: a\b(c 16247 a\\B(c 16248 0: a\B(c 16249 16250/a\b(c/literal,firstline 16251 XYYa\\b(c 16252 0: a\b(c 16253\= Expect no match 16254 X\na\\b(c 16255No match 16256 16257/a\b?c/literal,use_offset_limit 16258 XXXXa\\b?c\=offset_limit=4 16259 0: a\b?c 16260\= Expect no match 16261 XXXXa\\b?c\=offset_limit=3 16262No match 16263 16264/a\b(c/literal,anchored,endanchored 16265 a\\b(c 16266 0: a\b(c 16267\= Expect no match 16268 Xa\\b(c 16269No match 16270 a\\b(cX 16271No match 16272 Xa\\b(cX 16273No match 16274 16275//literal,extended 16276Failed: error 192 at offset 0: invalid option bits with PCRE2_LITERAL 16277 16278/a\b(c/literal,auto_callout,no_start_optimize 16279 XXXXa\\b(c 16280--->XXXXa\b(c 16281 +0 ^ a 16282 +0 ^ a 16283 +0 ^ a 16284 +0 ^ a 16285 +0 ^ a 16286 +1 ^^ \ 16287 +2 ^ ^ b 16288 +3 ^ ^ ( 16289 +4 ^ ^ c 16290 +5 ^ ^ End of pattern 16291 0: a\b(c 16292 16293/a\b(c/literal,auto_callout 16294 XXXXa\\b(c 16295--->XXXXa\b(c 16296 +0 ^ a 16297 +1 ^^ \ 16298 +2 ^ ^ b 16299 +3 ^ ^ ( 16300 +4 ^ ^ c 16301 +5 ^ ^ End of pattern 16302 0: a\b(c 16303 16304/(*CR)abc/literal 16305 (*CR)abc 16306 0: (*CR)abc 16307 16308/cat|dog/I,match_word 16309Capturing subpattern count = 0 16310Max lookbehind = 1 16311Extra options: match_word 16312Starting code units: c d 16313Subject length lower bound = 3 16314 the cat sat 16315 0: cat 16316\= Expect no match 16317 caterpillar 16318No match 16319 snowcat 16320No match 16321 syndicate 16322No match 16323 16324/(cat)|dog/I,match_line,literal 16325Capturing subpattern count = 0 16326Compile options: literal 16327Overall options: anchored literal 16328Extra options: match_line 16329First code unit = '(' 16330Subject length lower bound = 9 16331 (cat)|dog 16332 0: (cat)|dog 16333\= Expect no match 16334 the cat sat 16335No match 16336 caterpillar 16337No match 16338 snowcat 16339No match 16340 syndicate 16341No match 16342 16343/a whole line/match_line,multiline 16344 Rhubarb \na whole line\n custard 16345 0: a whole line 16346\= Expect no match 16347 Not a whole line 16348No match 16349 16350# Perl gets this wrong, failing to capture 'b' in group 1. 16351 16352/^(b+|a){1,2}?bc/ 16353 bbc 16354 0: bbc 16355 1: b 16356 16357# And again here, for the "babc" subject string. 16358 16359/^(b*|ba){1,2}?bc/ 16360 babc 16361 0: babc 16362 1: ba 16363 bbabc 16364 0: bbabc 16365 1: ba 16366 bababc 16367 0: bababc 16368 1: ba 16369\= Expect no match 16370 bababbc 16371No match 16372 babababc 16373No match 16374 16375/[[:digit:]-a]/ 16376Failed: error 150 at offset 10: invalid range in character class 16377 16378/[[:digit:]-[:print:]]/ 16379Failed: error 150 at offset 10: invalid range in character class 16380 16381/[\d-a]/ 16382Failed: error 150 at offset 3: invalid range in character class 16383 16384/[\H-z]/ 16385Failed: error 150 at offset 3: invalid range in character class 16386 16387/[\d-[:print:]]/ 16388Failed: error 150 at offset 3: invalid range in character class 16389 16390# Perl gets the second of these wrong, giving no match. 16391 16392"(?<=(a))\1?b"I 16393Capturing subpattern count = 1 16394Max back reference = 1 16395Max lookbehind = 1 16396Last code unit = 'b' 16397Subject length lower bound = 1 16398 ab 16399 0: b 16400 1: a 16401 aaab 16402 0: ab 16403 1: a 16404 16405"(?=(a))\1?b"I 16406Capturing subpattern count = 1 16407Max back reference = 1 16408First code unit = 'a' 16409Last code unit = 'b' 16410Subject length lower bound = 1 16411 ab 16412 0: ab 16413 1: a 16414 aaab 16415 0: ab 16416 1: a 16417 16418# JIT does not support callout_extra 16419 16420/(*NO_JIT)(a+)b/auto_callout,no_start_optimize,no_auto_possess 16421\= Expect no match 16422 aac\=callout_extra 16423New match attempt 16424--->aac 16425 +9 ^ ( 16426+10 ^ a+ 16427+12 ^ ^ ) 16428+13 ^ ^ b 16429Backtrack 16430--->aac 16431+12 ^^ ) 16432+13 ^^ b 16433Backtrack 16434No other matching paths 16435New match attempt 16436--->aac 16437 +9 ^ ( 16438+10 ^ a+ 16439+12 ^^ ) 16440+13 ^^ b 16441Backtrack 16442No other matching paths 16443New match attempt 16444--->aac 16445 +9 ^ ( 16446+10 ^ a+ 16447Backtrack 16448No other matching paths 16449New match attempt 16450--->aac 16451 +9 ^ ( 16452+10 ^ a+ 16453No match 16454 16455/(*NO_JIT)a+(?C'XXX')b/no_start_optimize,no_auto_possess 16456\= Expect no match 16457 aac\=callout_extra 16458New match attempt 16459Callout (15): 'XXX' 16460--->aac 16461 ^ ^ b 16462Backtrack 16463Callout (15): 'XXX' 16464--->aac 16465 ^^ b 16466Backtrack 16467No other matching paths 16468New match attempt 16469Callout (15): 'XXX' 16470--->aac 16471 ^^ b 16472No match 16473 16474/\n/firstline 16475 xyz\nabc 16476 0: \x0a 16477 16478/\nabc/firstline 16479 xyz\nabc 16480 0: \x0aabc 16481 16482/\x{0a}abc/firstline,newline=crlf 16483\= Expect no match 16484 xyz\r\nabc 16485No match 16486 16487/[abc]/firstline 16488\= Expect no match 16489 \na 16490No match 16491 16492# These tests are matched in test 1 as they are Perl compatible. Here we are 16493# looking at what does and does not get auto-possessified. 16494 16495/(?(DEFINE)(?<optional_a>a?))^(?&optional_a)a$/B 16496------------------------------------------------------------------ 16497 Bra 16498 Cond 16499 Cond false 16500 CBra 1 16501 a? 16502 Ket 16503 Ket 16504 ^ 16505 Recurse 16506 a 16507 $ 16508 Ket 16509 End 16510------------------------------------------------------------------ 16511 16512/(?(DEFINE)(?<optional_a>a?)X)^(?&optional_a)a$/B 16513------------------------------------------------------------------ 16514 Bra 16515 Cond 16516 Cond false 16517 CBra 1 16518 a? 16519 Ket 16520 X 16521 Ket 16522 ^ 16523 Recurse 16524 a 16525 $ 16526 Ket 16527 End 16528------------------------------------------------------------------ 16529 16530/^(a?)b(?1)a/B 16531------------------------------------------------------------------ 16532 Bra 16533 ^ 16534 CBra 1 16535 a? 16536 Ket 16537 b 16538 Recurse 16539 a 16540 Ket 16541 End 16542------------------------------------------------------------------ 16543 16544/^(a?)+b(?1)a/B 16545------------------------------------------------------------------ 16546 Bra 16547 ^ 16548 SCBra 1 16549 a? 16550 KetRmax 16551 b 16552 Recurse 16553 a 16554 Ket 16555 End 16556------------------------------------------------------------------ 16557 16558/^(a?)++b(?1)a/B 16559------------------------------------------------------------------ 16560 Bra 16561 ^ 16562 SCBraPos 1 16563 a? 16564 KetRpos 16565 b 16566 Recurse 16567 a 16568 Ket 16569 End 16570------------------------------------------------------------------ 16571 16572/^(a?)+b/B 16573------------------------------------------------------------------ 16574 Bra 16575 ^ 16576 SCBra 1 16577 a? 16578 KetRmax 16579 b 16580 Ket 16581 End 16582------------------------------------------------------------------ 16583 16584/(?=a+)a(a+)++b/B 16585------------------------------------------------------------------ 16586 Bra 16587 Assert 16588 a++ 16589 Ket 16590 a 16591 CBraPos 1 16592 a++ 16593 KetRpos 16594 b 16595 Ket 16596 End 16597------------------------------------------------------------------ 16598 16599/(?<=(?=.){4,5}x)/B 16600------------------------------------------------------------------ 16601 Bra 16602 AssertB 16603 Reverse 16604 Assert 16605 Any 16606 Ket 16607 x 16608 Ket 16609 Ket 16610 End 16611------------------------------------------------------------------ 16612 16613# Perl behaves differently with these when optimization is turned off 16614 16615/a(*PRUNE:X)bc|qq/mark,no_start_optimize 16616\= Expect no match 16617 axy 16618No match, mark = X 16619 16620/a(*THEN:X)bc|qq/mark,no_start_optimize 16621\= Expect no match 16622 axy 16623No match, mark = X 16624 16625/(?^x-i)AB/ 16626Failed: error 194 at offset 4: invalid hyphen in option setting 16627 16628/(?^-i)AB/ 16629Failed: error 194 at offset 3: invalid hyphen in option setting 16630 16631/(?x-i-i)/ 16632Failed: error 194 at offset 5: invalid hyphen in option setting 16633 16634/(?(?=^))b/I 16635Capturing subpattern count = 0 16636Last code unit = 'b' 16637Subject length lower bound = 1 16638 abc 16639 0: b 16640 16641/(?(?=^)|)b/I 16642Capturing subpattern count = 0 16643First code unit = 'b' 16644Subject length lower bound = 1 16645 abc 16646 0: b 16647 16648/(?(?=^)|^)b/I 16649Capturing subpattern count = 0 16650Compile options: <none> 16651Overall options: anchored 16652First code unit = 'b' 16653Subject length lower bound = 1 16654 bbc 16655 0: b 16656\= Expect no match 16657 abc 16658No match 16659 16660/(?(1)^|^())/I 16661Capturing subpattern count = 1 16662Max back reference = 1 16663May match empty string 16664Compile options: <none> 16665Overall options: anchored 16666Subject length lower bound = 0 16667 16668/(?(1)^())b/I 16669Capturing subpattern count = 1 16670Max back reference = 1 16671Last code unit = 'b' 16672Subject length lower bound = 1 16673 16674/(?(1)^())+b/I,aftertext 16675Capturing subpattern count = 1 16676Max back reference = 1 16677Last code unit = 'b' 16678Subject length lower bound = 1 16679 abc 16680 0: b 16681 0+ c 16682 16683/(?(1)^()|^)+b/I,aftertext 16684Capturing subpattern count = 1 16685Max back reference = 1 16686Compile options: <none> 16687Overall options: anchored 16688First code unit = 'b' 16689Subject length lower bound = 1 16690 bbc 16691 0: b 16692 0+ bc 16693\= Expect no match 16694 abc 16695No match 16696 16697/(?(1)^()|^)*b/I,aftertext 16698Capturing subpattern count = 1 16699Max back reference = 1 16700First code unit = 'b' 16701Subject length lower bound = 1 16702 bbc 16703 0: b 16704 0+ bc 16705 abc 16706 0: b 16707 0+ c 16708 xbc 16709 0: b 16710 0+ c 16711 16712/(?(1)^())+b/I,aftertext 16713Capturing subpattern count = 1 16714Max back reference = 1 16715Last code unit = 'b' 16716Subject length lower bound = 1 16717 abc 16718 0: b 16719 0+ c 16720 16721/(?(1)^a()|^a)+b/I,aftertext 16722Capturing subpattern count = 1 16723Max back reference = 1 16724Compile options: <none> 16725Overall options: anchored 16726First code unit = 'a' 16727Last code unit = 'b' 16728Subject length lower bound = 2 16729 abc 16730 0: ab 16731 0+ c 16732\= Expect no match 16733 bbc 16734No match 16735 16736/(?(1)^|^(a))+b/I,aftertext 16737Capturing subpattern count = 1 16738Max back reference = 1 16739Compile options: <none> 16740Overall options: anchored 16741Last code unit = 'b' 16742Subject length lower bound = 1 16743 abc 16744 0: ab 16745 0+ c 16746 1: a 16747\= Expect no match 16748 bbc 16749No match 16750 16751/(?(1)^a()|^a)*b/I,aftertext 16752Capturing subpattern count = 1 16753Max back reference = 1 16754Last code unit = 'b' 16755Subject length lower bound = 1 16756 abc 16757 0: ab 16758 0+ c 16759 bbc 16760 0: b 16761 0+ bc 16762 xbc 16763 0: b 16764 0+ c 16765 16766# End of testinput2 16767Error -70: PCRE2_ERROR_BADDATA (unknown error number) 16768Error -62: bad serialized data 16769Error -2: partial match 16770Error -1: no match 16771Error 0: PCRE2_ERROR_BADDATA (unknown error number) 16772Error 100: no error 16773Error 101: \ at end of pattern 16774Error 191: PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES is not allowed in UTF-16 mode 16775Error 200: PCRE2_ERROR_BADDATA (unknown error number) 16776