Parent Directory
|
Revision Log
|
Patch
| revision 411 by ph10, Fri Apr 10 15:40:21 2009 UTC | revision 598 by ph10, Sat May 7 15:37:31 2011 UTC | |
|---|---|---|
| # | Line 1 | Line 1 |
| 1 | /-- This set of tests is not Perl-compatible. It checks on special features | |
| 2 | of PCRE's API, error diagnostics, and the compiled code of some patterns. | |
| 3 | It also checks the non-Perl syntax the PCRE supports (Python, .NET, | |
| 4 | Oniguruma). Finally, there are some tests where PCRE and Perl differ, | |
| 5 | either because PCRE can't be compatible, or there is a possible Perl | |
| 6 | bug. --/ | |
| 7 | ||
| 8 | /-- Originally, the Perl >= 5.10 things were in here too, but now I have | |
| 9 | separated many (most?) of them out into test 11. However, there may still | |
| 10 | be some that were overlooked. --/ | |
| 11 | ||
| 12 | /(a)b|/I | /(a)b|/I |
| 13 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| 14 | No options | No options |
| # | Line 40 No match | Line 51 No match |
| 51 | ||
| 52 | /a+bc/I | /a+bc/I |
| 53 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 54 | No options | No options |
| 55 | First char = 'a' | First char = 'a' |
| 56 | Need char = 'c' | Need char = 'c' |
| 57 | ||
| 58 | /a*bc/I | /a*bc/I |
| 59 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 60 | No options | No options |
| 61 | No first char | No first char |
| 62 | Need char = 'c' | Need char = 'c' |
| 63 | ||
| 64 | /a{3}bc/I | /a{3}bc/I |
| 65 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 66 | No options | No options |
| 67 | First char = 'a' | First char = 'a' |
| 68 | Need char = 'c' | Need char = 'c' |
| 69 | ||
| 70 | /(abc|a+z)/I | /(abc|a+z)/I |
| 71 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 72 | No options | No options |
| 73 | First char = 'a' | First char = 'a' |
| 74 | No need char | No need char |
| # | Line 96 Failed: missing terminating ] for charac | Line 103 Failed: missing terminating ] for charac |
| 103 | /(?X)[\B]/ | /(?X)[\B]/ |
| 104 | Failed: invalid escape sequence in character class at offset 6 | Failed: invalid escape sequence in character class at offset 6 |
| 105 | ||
| 106 | /(?X)[\R]/ | |
| 107 | Failed: invalid escape sequence in character class at offset 6 | |
| 108 | ||
| 109 | /(?X)[\X]/ | |
| 110 | Failed: invalid escape sequence in character class at offset 6 | |
| 111 | ||
| 112 | /[\B]/BZ | |
| 113 | ------------------------------------------------------------------ | |
| 114 | Bra | |
| 115 | B | |
| 116 | Ket | |
| 117 | End | |
| 118 | ------------------------------------------------------------------ | |
| 119 | ||
| 120 | /[\R]/BZ | |
| 121 | ------------------------------------------------------------------ | |
| 122 | Bra | |
| 123 | R | |
| 124 | Ket | |
| 125 | End | |
| 126 | ------------------------------------------------------------------ | |
| 127 | ||
| 128 | /[\X]/BZ | |
| 129 | ------------------------------------------------------------------ | |
| 130 | Bra | |
| 131 | X | |
| 132 | Ket | |
| 133 | End | |
| 134 | ------------------------------------------------------------------ | |
| 135 | ||
| 136 | /[z-a]/ | /[z-a]/ |
| 137 | Failed: range out of order in character class at offset 3 | Failed: range out of order in character class at offset 3 |
| 138 | ||
| # | Line 113 Failed: unrecognized character after (? | Line 150 Failed: unrecognized character after (? |
| 150 | ||
| 151 | /.*b/I | /.*b/I |
| 152 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 153 | No options | No options |
| 154 | First char at start or follows newline | First char at start or follows newline |
| 155 | Need char = 'b' | Need char = 'b' |
| 156 | ||
| 157 | /.*?b/I | /.*?b/I |
| 158 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 159 | No options | No options |
| 160 | First char at start or follows newline | First char at start or follows newline |
| 161 | Need char = 'b' | Need char = 'b' |
| # | Line 140 Capturing subpattern count = 0 | Line 175 Capturing subpattern count = 0 |
| 175 | No options | No options |
| 176 | No first char | No first char |
| 177 | No need char | No need char |
| 178 | Subject length lower bound = 3 | |
| 179 | Starting byte set: c d e | Starting byte set: c d e |
| 180 | this sentence eventually mentions a cat | this sentence eventually mentions a cat |
| 181 | 0: cat | 0: cat |
| # | Line 151 Capturing subpattern count = 0 | Line 187 Capturing subpattern count = 0 |
| 187 | Options: caseless | Options: caseless |
| 188 | No first char | No first char |
| 189 | No need char | No need char |
| 190 | Subject length lower bound = 3 | |
| 191 | Starting byte set: C D E c d e | Starting byte set: C D E c d e |
| 192 | this sentence eventually mentions a CAT cat | this sentence eventually mentions a CAT cat |
| 193 | 0: CAT | 0: CAT |
| # | Line 162 Capturing subpattern count = 0 | Line 199 Capturing subpattern count = 0 |
| 199 | No options | No options |
| 200 | No first char | No first char |
| 201 | No need char | No need char |
| 202 | Subject length lower bound = 1 | |
| 203 | Starting byte set: a b c d | Starting byte set: a b c d |
| 204 | ||
| 205 | /(a|[^\dZ])/IS | /(a|[^\dZ])/IS |
| # | Line 169 Capturing subpattern count = 1 | Line 207 Capturing subpattern count = 1 |
| 207 | No options | No options |
| 208 | No first char | No first char |
| 209 | No need char | No need char |
| 210 | Subject length lower bound = 1 | |
| 211 | Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a | Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a |
| 212 | \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 | \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 |
| 213 | \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = > | \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = > |
| # | Line 189 Capturing subpattern count = 1 | Line 228 Capturing subpattern count = 1 |
| 228 | No options | No options |
| 229 | No first char | No first char |
| 230 | No need char | No need char |
| 231 | Subject length lower bound = 1 | |
| 232 | Starting byte set: \x09 \x0a \x0c \x0d \x20 a b | Starting byte set: \x09 \x0a \x0c \x0d \x20 a b |
| 233 | ||
| 234 | /(ab\2)/ | /(ab\2)/ |
| # | Line 324 No need char | Line 364 No need char |
| 364 | ||
| 365 | /.*((abc)$|(def))/I | /.*((abc)$|(def))/I |
| 366 | Capturing subpattern count = 3 | Capturing subpattern count = 3 |
| Partial matching not supported | ||
| 367 | No options | No options |
| 368 | First char at start or follows newline | First char at start or follows newline |
| 369 | No need char | No need char |
| # | Line 338 No need char | Line 377 No need char |
| 377 | 2: <unset> | 2: <unset> |
| 378 | 3: def | 3: def |
| 379 | ||
| 380 | /abc/IP | /abc/P |
| 381 | abc | abc |
| 382 | 0: abc | 0: abc |
| 383 | *** Failers | *** Failers |
| 384 | No match: POSIX code 17: match failed | No match: POSIX code 17: match failed |
| 385 | ||
| 386 | /^abc|def/IP | /^abc|def/P |
| 387 | abcdef | abcdef |
| 388 | 0: abc | 0: abc |
| 389 | abcdef\B | abcdef\B |
| 390 | 0: def | 0: def |
| 391 | ||
| 392 | /.*((abc)$|(def))/IP | /.*((abc)$|(def))/P |
| 393 | defabc | defabc |
| 394 | 0: defabc | 0: defabc |
| 395 | 1: abc | 1: abc |
| # | Line 360 No match: POSIX code 17: match failed | Line 399 No match: POSIX code 17: match failed |
| 399 | 1: def | 1: def |
| 400 | 3: def | 3: def |
| 401 | ||
| 402 | /the quick brown fox/IP | /the quick brown fox/P |
| 403 | the quick brown fox | the quick brown fox |
| 404 | 0: the quick brown fox | 0: the quick brown fox |
| 405 | *** Failers | *** Failers |
| # | Line 368 No match: POSIX code 17: match failed | Line 407 No match: POSIX code 17: match failed |
| 407 | The Quick Brown Fox | The Quick Brown Fox |
| 408 | No match: POSIX code 17: match failed | No match: POSIX code 17: match failed |
| 409 | ||
| 410 | /the quick brown fox/IPi | /the quick brown fox/Pi |
| 411 | the quick brown fox | the quick brown fox |
| 412 | 0: the quick brown fox | 0: the quick brown fox |
| 413 | The Quick Brown Fox | The Quick Brown Fox |
| 414 | 0: The Quick Brown Fox | 0: The Quick Brown Fox |
| 415 | ||
| 416 | /abc.def/IP | /abc.def/P |
| 417 | *** Failers | *** Failers |
| 418 | No match: POSIX code 17: match failed | No match: POSIX code 17: match failed |
| 419 | abc\ndef | abc\ndef |
| 420 | No match: POSIX code 17: match failed | No match: POSIX code 17: match failed |
| 421 | ||
| 422 | /abc$/IP | /abc$/P |
| 423 | abc | abc |
| 424 | 0: abc | 0: abc |
| 425 | abc\n | abc\n |
| 426 | 0: abc | 0: abc |
| 427 | ||
| 428 | /(abc)\2/IP | /(abc)\2/P |
| 429 | Failed: POSIX code 15: bad back reference at offset 7 | Failed: POSIX code 15: bad back reference at offset 7 |
| 430 | ||
| 431 | /(abc\1)/IP | /(abc\1)/P |
| 432 | abc | abc |
| 433 | No match: POSIX code 17: match failed | No match: POSIX code 17: match failed |
| 434 | ||
| # | Line 401 Failed: missing terminating ] for charac | Line 440 Failed: missing terminating ] for charac |
| 440 | ||
| 441 | /[^aeiou ]{3,}/I | /[^aeiou ]{3,}/I |
| 442 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 443 | No options | No options |
| 444 | No first char | No first char |
| 445 | No need char | No need char |
| # | Line 410 No need char | Line 448 No need char |
| 448 | ||
| 449 | /<.*>/I | /<.*>/I |
| 450 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 451 | No options | No options |
| 452 | First char = '<' | First char = '<' |
| 453 | Need char = '>' | Need char = '>' |
| # | Line 419 Need char = '>' | Line 456 Need char = '>' |
| 456 | ||
| 457 | /<.*?>/I | /<.*?>/I |
| 458 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 459 | No options | No options |
| 460 | First char = '<' | First char = '<' |
| 461 | Need char = '>' | Need char = '>' |
| # | Line 428 Need char = '>' | Line 464 Need char = '>' |
| 464 | ||
| 465 | /<.*>/IU | /<.*>/IU |
| 466 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 467 | Options: ungreedy | Options: ungreedy |
| 468 | First char = '<' | First char = '<' |
| 469 | Need char = '>' | Need char = '>' |
| # | Line 437 Need char = '>' | Line 472 Need char = '>' |
| 472 | ||
| 473 | /(?U)<.*>/I | /(?U)<.*>/I |
| 474 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 475 | Options: ungreedy | Options: ungreedy |
| 476 | First char = '<' | First char = '<' |
| 477 | Need char = '>' | Need char = '>' |
| # | Line 446 Need char = '>' | Line 480 Need char = '>' |
| 480 | ||
| 481 | /<.*?>/IU | /<.*?>/IU |
| 482 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 483 | Options: ungreedy | Options: ungreedy |
| 484 | First char = '<' | First char = '<' |
| 485 | Need char = '>' | Need char = '>' |
| # | Line 455 Need char = '>' | Line 488 Need char = '>' |
| 488 | ||
| 489 | /={3,}/IU | /={3,}/IU |
| 490 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 491 | Options: ungreedy | Options: ungreedy |
| 492 | First char = '=' | First char = '=' |
| 493 | Need char = '=' | Need char = '=' |
| # | Line 464 Need char = '=' | Line 496 Need char = '=' |
| 496 | ||
| 497 | /(?U)={3,}?/I | /(?U)={3,}?/I |
| 498 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 499 | Options: ungreedy | Options: ungreedy |
| 500 | First char = '=' | First char = '=' |
| 501 | Need char = '=' | Need char = '=' |
| # | Line 522 No need char | Line 553 No need char |
| 553 | ||
| 554 | /(?s).*/I | /(?s).*/I |
| 555 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 556 | Options: anchored dotall | Options: anchored dotall |
| 557 | No first char | No first char |
| 558 | No need char | No need char |
| # | Line 532 Capturing subpattern count = 0 | Line 562 Capturing subpattern count = 0 |
| 562 | No options | No options |
| 563 | No first char | No first char |
| 564 | No need char | No need char |
| 565 | Subject length lower bound = 1 | |
| 566 | Starting byte set: a b c d | Starting byte set: a b c d |
| 567 | ||
| 568 | /(?i)[abcd]/IS | /(?i)[abcd]/IS |
| # | Line 539 Capturing subpattern count = 0 | Line 570 Capturing subpattern count = 0 |
| 570 | Options: caseless | Options: caseless |
| 571 | No first char | No first char |
| 572 | No need char | No need char |
| 573 | Subject length lower bound = 1 | |
| 574 | Starting byte set: A B C D a b c d | Starting byte set: A B C D a b c d |
| 575 | ||
| 576 | /(?m)[xy]|(b|c)/IS | /(?m)[xy]|(b|c)/IS |
| # | Line 546 Capturing subpattern count = 1 | Line 578 Capturing subpattern count = 1 |
| 578 | Options: multiline | Options: multiline |
| 579 | No first char | No first char |
| 580 | No need char | No need char |
| 581 | Subject length lower bound = 1 | |
| 582 | Starting byte set: b c x y | Starting byte set: b c x y |
| 583 | ||
| 584 | /(^a|^b)/Im | /(^a|^b)/Im |
| # | Line 584 Failed: syntax error in subpattern name | Line 617 Failed: syntax error in subpattern name |
| 617 | /((?s)blah)\s+\1/I | /((?s)blah)\s+\1/I |
| 618 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| 619 | Max back reference = 1 | Max back reference = 1 |
| Partial matching not supported | ||
| 620 | No options | No options |
| 621 | First char = 'b' | First char = 'b' |
| 622 | Need char = 'h' | Need char = 'h' |
| # | Line 592 Need char = 'h' | Line 624 Need char = 'h' |
| 624 | /((?i)blah)\s+\1/I | /((?i)blah)\s+\1/I |
| 625 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| 626 | Max back reference = 1 | Max back reference = 1 |
| Partial matching not supported | ||
| 627 | No options | No options |
| 628 | First char = 'b' (caseless) | First char = 'b' (caseless) |
| 629 | Need char = 'h' (caseless) | Need char = 'h' (caseless) |
| # | Line 612 Capturing subpattern count = 1 | Line 643 Capturing subpattern count = 1 |
| 643 | No options | No options |
| 644 | First char = 'b' (caseless) | First char = 'b' (caseless) |
| 645 | No need char | No need char |
| 646 | Study returned NULL | Subject length lower bound = 1 |
| 647 | No set of starting bytes | |
| 648 | ||
| 649 | /(a*b|(?i:c*(?-i)d))/IS | /(a*b|(?i:c*(?-i)d))/IS |
| 650 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 651 | No options | No options |
| 652 | No first char | No first char |
| 653 | No need char | No need char |
| 654 | Subject length lower bound = 1 | |
| 655 | Starting byte set: C a b c d | Starting byte set: C a b c d |
| 656 | ||
| 657 | /a$/I | /a$/I |
| # | Line 668 Need char = 'c' | Line 700 Need char = 'c' |
| 700 | ||
| 701 | /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I | /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I |
| 702 | Capturing subpattern count = 5 | Capturing subpattern count = 5 |
| Partial matching not supported | ||
| 703 | Options: anchored | Options: anchored |
| 704 | No first char | No first char |
| 705 | No need char | No need char |
| # | Line 685 Capturing subpattern count = 0 | Line 716 Capturing subpattern count = 0 |
| 716 | No options | No options |
| 717 | No first char | No first char |
| 718 | No need char | No need char |
| 719 | Subject length lower bound = 1 | |
| 720 | Starting byte set: a b | Starting byte set: a b |
| 721 | ||
| 722 | /(?<!foo)(alpha|omega)/IS | /(?<!foo)(alpha|omega)/IS |
| # | Line 692 Capturing subpattern count = 1 | Line 724 Capturing subpattern count = 1 |
| 724 | No options | No options |
| 725 | No first char | No first char |
| 726 | Need char = 'a' | Need char = 'a' |
| 727 | Subject length lower bound = 5 | |
| 728 | Starting byte set: a o | Starting byte set: a o |
| 729 | ||
| 730 | /(?!alphabet)[ab]/IS | /(?!alphabet)[ab]/IS |
| # | Line 699 Capturing subpattern count = 0 | Line 732 Capturing subpattern count = 0 |
| 732 | No options | No options |
| 733 | No first char | No first char |
| 734 | No need char | No need char |
| 735 | Subject length lower bound = 1 | |
| 736 | Starting byte set: a b | Starting byte set: a b |
| 737 | ||
| 738 | /(?<=foo\n)^bar/Im | /(?<=foo\n)^bar/Im |
| # | Line 784 No need char | Line 818 No need char |
| 818 | ||
| 819 | /(?>.*)(?<=(abcd)|(xyz))/I | /(?>.*)(?<=(abcd)|(xyz))/I |
| 820 | Capturing subpattern count = 2 | Capturing subpattern count = 2 |
| Partial matching not supported | ||
| 821 | No options | No options |
| 822 | First char at start or follows newline | First char at start or follows newline |
| 823 | No need char | No need char |
| # | Line 854 No match | Line 887 No match |
| 887 | a | a |
| 888 | No match | No match |
| 889 | ||
| 890 | /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I | /This one is here because Perl behaves differently; see also the following/I |
| 891 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| 892 | No options | No options |
| 893 | First char = 'T' | First char = 'T' |
| # | Line 866 Max back reference = 1 | Line 899 Max back reference = 1 |
| 899 | Options: anchored | Options: anchored |
| 900 | No first char | No first char |
| 901 | No need char | No need char |
| 902 | aaaa | |
| 903 | No match | |
| 904 | aaaaaa | aaaaaa |
| 905 | 0: aaaaaa | No match |
| 906 | 1: aa | |
| 907 | /Perl does not fail these two for the final subjects. Neither did PCRE until/ | |
| 908 | /release 8.01. The problem is in backtracking into a subpattern that contains/ | |
| 909 | No match | |
| 910 | /a recursive reference to itself. PCRE has now made these into atomic patterns./ | |
| 911 | No match | |
| 912 | ||
| 913 | /^(xa|=?\1a){2}$/ | |
| 914 | xa=xaa | |
| 915 | 0: xa=xaa | |
| 916 | 1: =xaa | |
| 917 | ** Failers | |
| 918 | No match | |
| 919 | xa=xaaa | |
| 920 | No match | |
| 921 | ||
| 922 | /^(xa|=?\1a)+$/ | |
| 923 | xa=xaa | |
| 924 | 0: xa=xaa | |
| 925 | 1: =xaa | |
| 926 | ** Failers | |
| 927 | No match | |
| 928 | xa=xaaa | |
| 929 | No match | |
| 930 | ||
| 931 | /These are syntax tests from Perl 5.005/I | /These are syntax tests from Perl 5.005/I |
| 932 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| # | Line 1003 copy substring 5 failed -7 | Line 1061 copy substring 5 failed -7 |
| 1061 | ||
| 1062 | /(.{20})/I | /(.{20})/I |
| 1063 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 1064 | No options | No options |
| 1065 | No first char | No first char |
| 1066 | No need char | No need char |
| # | Line 1021 No need char | Line 1078 No need char |
| 1078 | ||
| 1079 | /(.{15})/I | /(.{15})/I |
| 1080 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 1081 | No options | No options |
| 1082 | No first char | No first char |
| 1083 | No need char | No need char |
| # | Line 1036 No need char | Line 1092 No need char |
| 1092 | ||
| 1093 | /(.{16})/I | /(.{16})/I |
| 1094 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 1095 | No options | No options |
| 1096 | No first char | No first char |
| 1097 | No need char | No need char |
| # | Line 1103 No need char | Line 1158 No need char |
| 1158 | )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ | )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ |
| 1159 | )?)?)?)?)?)?)?)?)?otherword/I | )?)?)?)?)?)?)?)?)?otherword/I |
| 1160 | Capturing subpattern count = 8 | Capturing subpattern count = 8 |
| Partial matching not supported | ||
| 1161 | Contains explicit CR or LF match | Contains explicit CR or LF match |
| 1162 | No options | No options |
| 1163 | First char = 'w' | First char = 'w' |
| # | Line 1118 Need char = 'd' | Line 1172 Need char = 'd' |
| 1172 | End | End |
| 1173 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 1174 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1175 | No options | No options |
| 1176 | First char at start or follows newline | First char at start or follows newline |
| 1177 | Need char = 'X' | Need char = 'X' |
| # | Line 1132 Need char = 'X' | Line 1185 Need char = 'X' |
| 1185 | End | End |
| 1186 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 1187 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1188 | Options: anchored dotall | Options: anchored dotall |
| 1189 | No first char | No first char |
| 1190 | Need char = 'X' | Need char = 'X' |
| # | Line 1151 Need char = 'X' | Line 1203 Need char = 'X' |
| 1203 | End | End |
| 1204 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 1205 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 1206 | No options | No options |
| 1207 | First char at start or follows newline | First char at start or follows newline |
| 1208 | No need char | No need char |
| # | Line 1170 No need char | Line 1221 No need char |
| 1221 | End | End |
| 1222 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 1223 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 1224 | Options: anchored dotall | Options: anchored dotall |
| 1225 | No first char | No first char |
| 1226 | No need char | No need char |
| # | Line 1189 No need char | Line 1239 No need char |
| 1239 | End | End |
| 1240 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 1241 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 1242 | Options: anchored dotall | Options: anchored dotall |
| 1243 | No first char | No first char |
| 1244 | No need char | No need char |
| # | Line 1211 No need char | Line 1260 No need char |
| 1260 | End | End |
| 1261 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 1262 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1263 | Options: anchored | Options: anchored |
| 1264 | No first char | No first char |
| 1265 | No need char | No need char |
| # | Line 1296 No need char | Line 1344 No need char |
| 1344 | ||
| 1345 | /.*iss/Ig+ | /.*iss/Ig+ |
| 1346 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1347 | No options | No options |
| 1348 | First char at start or follows newline | First char at start or follows newline |
| 1349 | Need char = 's' | Need char = 's' |
| # | Line 1399 Need char = 'c' | Line 1446 Need char = 'c' |
| 1446 | ||
| 1447 | /a*/I | /a*/I |
| 1448 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1449 | No options | No options |
| 1450 | No first char | No first char |
| 1451 | No need char | No need char |
| 1452 | ||
| 1453 | /a+/I | /a+/I |
| 1454 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1455 | No options | No options |
| 1456 | First char = 'a' | First char = 'a' |
| 1457 | No need char | No need char |
| 1458 | ||
| 1459 | /(baa|a+)/I | /(baa|a+)/I |
| 1460 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 1461 | No options | No options |
| 1462 | No first char | No first char |
| 1463 | Need char = 'a' | Need char = 'a' |
| 1464 | ||
| 1465 | /a{0,3}/I | /a{0,3}/I |
| 1466 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1467 | No options | No options |
| 1468 | No first char | No first char |
| 1469 | No need char | No need char |
| 1470 | ||
| 1471 | /baa{3,}/I | /baa{3,}/I |
| 1472 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1473 | No options | No options |
| 1474 | First char = 'b' | First char = 'b' |
| 1475 | Need char = 'a' | Need char = 'a' |
| 1476 | ||
| 1477 | /"([^\\"]+|\\.)*"/I | /"([^\\"]+|\\.)*"/I |
| 1478 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 1479 | No options | No options |
| 1480 | First char = '"' | First char = '"' |
| 1481 | Need char = '"' | Need char = '"' |
| # | Line 1489 Need char = 'b' | Line 1530 Need char = 'b' |
| 1530 | ||
| 1531 | /abc*/I | /abc*/I |
| 1532 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1533 | No options | No options |
| 1534 | First char = 'a' | First char = 'a' |
| 1535 | Need char = 'b' | Need char = 'b' |
| 1536 | ||
| 1537 | /ab.c*/I | /ab.c*/I |
| 1538 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1539 | No options | No options |
| 1540 | First char = 'a' | First char = 'a' |
| 1541 | Need char = 'b' | Need char = 'b' |
| 1542 | ||
| 1543 | /a.c*/I | /a.c*/I |
| 1544 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1545 | No options | No options |
| 1546 | First char = 'a' | First char = 'a' |
| 1547 | No need char | No need char |
| 1548 | ||
| 1549 | /.c*/I | /.c*/I |
| 1550 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1551 | No options | No options |
| 1552 | No first char | No first char |
| 1553 | No need char | No need char |
| 1554 | ||
| 1555 | /ac*/I | /ac*/I |
| 1556 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1557 | No options | No options |
| 1558 | First char = 'a' | First char = 'a' |
| 1559 | No need char | No need char |
| 1560 | ||
| 1561 | /(a.c*|b.c*)/I | /(a.c*|b.c*)/I |
| 1562 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 1563 | No options | No options |
| 1564 | No first char | No first char |
| 1565 | No need char | No need char |
| 1566 | ||
| 1567 | /a.c*|aba/I | /a.c*|aba/I |
| 1568 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1569 | No options | No options |
| 1570 | First char = 'a' | First char = 'a' |
| 1571 | No need char | No need char |
| 1572 | ||
| 1573 | /.+a/I | /.+a/I |
| 1574 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1575 | No options | No options |
| 1576 | No first char | No first char |
| 1577 | Need char = 'a' | Need char = 'a' |
| 1578 | ||
| 1579 | /(?=abcda)a.*/I | /(?=abcda)a.*/I |
| 1580 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1581 | No options | No options |
| 1582 | First char = 'a' | First char = 'a' |
| 1583 | Need char = 'a' | Need char = 'a' |
| 1584 | ||
| 1585 | /(?=a)a.*/I | /(?=a)a.*/I |
| 1586 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1587 | No options | No options |
| 1588 | First char = 'a' | First char = 'a' |
| 1589 | No need char | No need char |
| # | Line 1565 No need char | Line 1596 No need char |
| 1596 | ||
| 1597 | /a\d*/I | /a\d*/I |
| 1598 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1599 | No options | No options |
| 1600 | First char = 'a' | First char = 'a' |
| 1601 | No need char | No need char |
| 1602 | ||
| 1603 | /ab\d*/I | /ab\d*/I |
| 1604 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1605 | No options | No options |
| 1606 | First char = 'a' | First char = 'a' |
| 1607 | Need char = 'b' | Need char = 'b' |
| # | Line 1591 Need char = 'd' | Line 1620 Need char = 'd' |
| 1620 | ||
| 1621 | /ab\d+/I | /ab\d+/I |
| 1622 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1623 | No options | No options |
| 1624 | First char = 'a' | First char = 'a' |
| 1625 | Need char = 'b' | Need char = 'b' |
| # | Line 1666 No need char | Line 1694 No need char |
| 1694 | \Nabc | \Nabc |
| 1695 | No match | No match |
| 1696 | ||
| 1697 | /a*(b+)(z)(z)/IP | /a*(b+)(z)(z)/P |
| 1698 | aaaabbbbzzzz | aaaabbbbzzzz |
| 1699 | 0: aaaabbbbzz | 0: aaaabbbbzz |
| 1700 | 1: bbbb | 1: bbbb |
| # | Line 1698 Capturing subpattern count = 0 | Line 1726 Capturing subpattern count = 0 |
| 1726 | Options: anchored | Options: anchored |
| 1727 | No first char | No first char |
| 1728 | Need char = 'd' | Need char = 'd' |
| 1729 | Study returned NULL | Subject length lower bound = 4 |
| 1730 | No set of starting bytes | |
| 1731 | ||
| 1732 | /\( # ( at start | /\( # ( at start |
| 1733 | (?: # Non-capturing bracket | (?: # Non-capturing bracket |
| # | Line 1709 Study returned NULL | Line 1738 Study returned NULL |
| 1738 | \) # Closing ) | \) # Closing ) |
| 1739 | /Ix | /Ix |
| 1740 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1741 | Options: extended | Options: extended |
| 1742 | First char = '(' | First char = '(' |
| 1743 | Need char = ')' | Need char = ')' |
| # | Line 1738 No match | Line 1766 No match |
| 1766 | ||
| 1767 | /\( ( (?>[^()]+) | (?R) )* \) /Ixg | /\( ( (?>[^()]+) | (?R) )* \) /Ixg |
| 1768 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 1769 | Options: extended | Options: extended |
| 1770 | First char = '(' | First char = '(' |
| 1771 | Need char = ')' | Need char = ')' |
| # | Line 1753 Need char = ')' | Line 1780 Need char = ')' |
| 1780 | ||
| 1781 | /\( (?: (?>[^()]+) | (?R) ) \) /Ix | /\( (?: (?>[^()]+) | (?R) ) \) /Ix |
| 1782 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1783 | Options: extended | Options: extended |
| 1784 | First char = '(' | First char = '(' |
| 1785 | Need char = ')' | Need char = ')' |
| # | Line 1772 No match | Line 1798 No match |
| 1798 | ||
| 1799 | /\( (?: (?>[^()]+) | (?R) )? \) /Ix | /\( (?: (?>[^()]+) | (?R) )? \) /Ix |
| 1800 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 1801 | Options: extended | Options: extended |
| 1802 | First char = '(' | First char = '(' |
| 1803 | Need char = ')' | Need char = ')' |
| # | Line 1783 Need char = ')' | Line 1808 Need char = ')' |
| 1808 | ||
| 1809 | /\( ( (?>[^()]+) | (?R) )* \) /Ix | /\( ( (?>[^()]+) | (?R) )* \) /Ix |
| 1810 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 1811 | Options: extended | Options: extended |
| 1812 | First char = '(' | First char = '(' |
| 1813 | Need char = ')' | Need char = ')' |
| # | Line 1793 Need char = ')' | Line 1817 Need char = ')' |
| 1817 | ||
| 1818 | /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix | /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix |
| 1819 | Capturing subpattern count = 2 | Capturing subpattern count = 2 |
| Partial matching not supported | ||
| 1820 | Options: extended | Options: extended |
| 1821 | First char = '(' | First char = '(' |
| 1822 | Need char = ')' | Need char = ')' |
| # | Line 1804 Need char = ')' | Line 1827 Need char = ')' |
| 1827 | ||
| 1828 | /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix | /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix |
| 1829 | Capturing subpattern count = 3 | Capturing subpattern count = 3 |
| Partial matching not supported | ||
| 1830 | Options: extended | Options: extended |
| 1831 | First char = '(' | First char = '(' |
| 1832 | Need char = ')' | Need char = ')' |
| # | Line 1821 Need char = ')' | Line 1843 Need char = ')' |
| 1843 | ||
| 1844 | /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix | /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix |
| 1845 | Capturing subpattern count = 3 | Capturing subpattern count = 3 |
| Partial matching not supported | ||
| 1846 | Options: extended | Options: extended |
| 1847 | First char = '(' | First char = '(' |
| 1848 | Need char = ')' | Need char = ')' |
| # | Line 1838 Need char = ')' | Line 1859 Need char = ')' |
| 1859 | ||
| 1860 | /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix | /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix |
| 1861 | Capturing subpattern count = 11 | Capturing subpattern count = 11 |
| Partial matching not supported | ||
| 1862 | Options: extended | Options: extended |
| 1863 | First char = '(' | First char = '(' |
| 1864 | Need char = ')' | Need char = ')' |
| # | Line 1858 Need char = ')' | Line 1878 Need char = ')' |
| 1878 | ||
| 1879 | /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix | /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix |
| 1880 | Capturing subpattern count = 3 | Capturing subpattern count = 3 |
| Partial matching not supported | ||
| 1881 | Options: extended | Options: extended |
| 1882 | First char = '(' | First char = '(' |
| 1883 | Need char = ')' | Need char = ')' |
| # | Line 1866 Need char = ')' | Line 1885 Need char = ')' |
| 1885 | 0: (abcd(xyz<p>qrs)123) | 0: (abcd(xyz<p>qrs)123) |
| 1886 | 1: abcd(xyz<p>qrs)123 | 1: abcd(xyz<p>qrs)123 |
| 1887 | 2: 123 | 2: 123 |
| 3: <unset> | ||
| 1888 | ||
| 1889 | /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix | /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix |
| 1890 | Capturing subpattern count = 3 | Capturing subpattern count = 3 |
| Partial matching not supported | ||
| 1891 | Options: extended | Options: extended |
| 1892 | First char = '(' | First char = '(' |
| 1893 | Need char = ')' | Need char = ')' |
| # | Line 1942 Capturing subpattern count = 0 | Line 1959 Capturing subpattern count = 0 |
| 1959 | No options | No options |
| 1960 | No first char | No first char |
| 1961 | No need char | No need char |
| 1962 | Subject length lower bound = 1 | |
| 1963 | Starting byte set: 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 | Starting byte set: 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 |
| 1964 | _ 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 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 |
| 1965 | ||
| # | Line 2003 Contains explicit CR or LF match | Line 2021 Contains explicit CR or LF match |
| 2021 | No options | No options |
| 2022 | No first char | No first char |
| 2023 | No need char | No need char |
| 2024 | Subject length lower bound = 1 | |
| 2025 | Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 | Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 |
| 2026 | ||
| 2027 | /^[[:cntrl:]]/DZ | /^[[:cntrl:]]/DZ |
| # | Line 2249 Need char = 'd' | Line 2268 Need char = 'd' |
| 2268 | /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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 | /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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 |
| 2269 | Capturing subpattern count = 271 | Capturing subpattern count = 271 |
| 2270 | Max back reference = 270 | Max back reference = 270 |
| Partial matching not supported | ||
| 2271 | No options | No options |
| 2272 | No first char | No first char |
| 2273 | No need char | No need char |
| # | Line 2930 Need char = 'c' | Line 2948 Need char = 'c' |
| 2948 | End | End |
| 2949 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 2950 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 2951 | No options | No options |
| 2952 | No first char | No first char |
| 2953 | No need char | No need char |
| # | Line 2959 No need char | Line 2976 No need char |
| 2976 | End | End |
| 2977 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 2978 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 2979 | No options | No options |
| 2980 | First char = 'x' | First char = 'x' |
| 2981 | No need char | No need char |
| # | Line 2975 No need char | Line 2991 No need char |
| 2991 | End | End |
| 2992 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 2993 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 2994 | No options | No options |
| 2995 | First char = 'x' | First char = 'x' |
| 2996 | No need char | No need char |
| # | Line 2999 No need char | Line 3014 No need char |
| 3014 | ||
| 3015 | /^(\w++|\s++)*$/I | /^(\w++|\s++)*$/I |
| 3016 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 3017 | Options: anchored | Options: anchored |
| 3018 | No first char | No first char |
| 3019 | No need char | No need char |
| # | Line 3013 No match | Line 3027 No match |
| 3027 | ||
| 3028 | /(\d++)(\w)/I | /(\d++)(\w)/I |
| 3029 | Capturing subpattern count = 2 | Capturing subpattern count = 2 |
| Partial matching not supported | ||
| 3030 | No options | No options |
| 3031 | No first char | No first char |
| 3032 | No need char | No need char |
| # | Line 3028 No match | Line 3041 No match |
| 3041 | ||
| 3042 | /a++b/I | /a++b/I |
| 3043 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 3044 | No options | No options |
| 3045 | First char = 'a' | First char = 'a' |
| 3046 | Need char = 'b' | Need char = 'b' |
| # | Line 3037 Need char = 'b' | Line 3049 Need char = 'b' |
| 3049 | ||
| 3050 | /(a++b)/I | /(a++b)/I |
| 3051 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 3052 | No options | No options |
| 3053 | First char = 'a' | First char = 'a' |
| 3054 | Need char = 'b' | Need char = 'b' |
| # | Line 3047 Need char = 'b' | Line 3058 Need char = 'b' |
| 3058 | ||
| 3059 | /(a++)b/I | /(a++)b/I |
| 3060 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 3061 | No options | No options |
| 3062 | First char = 'a' | First char = 'a' |
| 3063 | Need char = 'b' | Need char = 'b' |
| # | Line 3057 Need char = 'b' | Line 3067 Need char = 'b' |
| 3067 | ||
| 3068 | /([^()]++|\([^()]*\))+/I | /([^()]++|\([^()]*\))+/I |
| 3069 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 3070 | No options | No options |
| 3071 | No first char | No first char |
| 3072 | No need char | No need char |
| # | Line 3067 No need char | Line 3076 No need char |
| 3076 | ||
| 3077 | /\(([^()]++|\([^()]+\))+\)/I | /\(([^()]++|\([^()]+\))+\)/I |
| 3078 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 3079 | No options | No options |
| 3080 | First char = '(' | First char = '(' |
| 3081 | Need char = ')' | Need char = ')' |
| # | Line 3130 Failed: nothing to repeat at offset 7 | Line 3138 Failed: nothing to repeat at offset 7 |
| 3138 | End | End |
| 3139 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 3140 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 3141 | No options | No options |
| 3142 | First char = 'x' | First char = 'x' |
| 3143 | Need char = 'b' | Need char = 'b' |
| # | Line 3147 Need char = 'b' | Line 3154 Need char = 'b' |
| 3154 | End | End |
| 3155 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 3156 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 3157 | Options: ungreedy | Options: ungreedy |
| 3158 | First char = 'x' | First char = 'x' |
| 3159 | Need char = 'b' | Need char = 'b' |
| # | Line 3176 Need char = 'b' | Line 3182 Need char = 'b' |
| 3182 | End | End |
| 3183 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 3184 | Capturing subpattern count = 5 | Capturing subpattern count = 5 |
| Partial matching not supported | ||
| 3185 | Options: anchored | Options: anchored |
| 3186 | No first char | No first char |
| 3187 | No need char | No need char |
| # | Line 3192 No need char | Line 3197 No need char |
| 3197 | End | End |
| 3198 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 3199 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 3200 | Options: anchored | Options: anchored |
| 3201 | No first char | No first char |
| 3202 | Need char = 'b' | Need char = 'b' |
| # | Line 3210 Need char = 'b' | Line 3214 Need char = 'b' |
| 3214 | End | End |
| 3215 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 3216 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 3217 | Options: anchored | Options: anchored |
| 3218 | No first char | No first char |
| 3219 | Need char = 'b' | Need char = 'b' |
| # | Line 3225 Failed: POSIX collating elements are not | Line 3228 Failed: POSIX collating elements are not |
| 3228 | Failed: POSIX named classes are supported only within a class at offset 0 | Failed: POSIX named classes are supported only within a class at offset 0 |
| 3229 | ||
| 3230 | /\l/I | /\l/I |
| 3231 | Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1 | Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 |
| 3232 | ||
| 3233 | /\L/I | /\L/I |
| 3234 | Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1 | Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 |
| 3235 | ||
| 3236 | /\N{name}/I | /\N{name}/I |
| 3237 | Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1 | Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 |
| 3238 | ||
| 3239 | /\u/I | /\u/I |
| 3240 | Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1 | Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 |
| 3241 | ||
| 3242 | /\U/I | /\U/I |
| 3243 | Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1 | Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1 |
| 3244 | ||
| 3245 | /[/I | /[/I |
| 3246 | Failed: missing terminating ] for character class at offset 1 | Failed: missing terminating ] for character class at offset 1 |
| # | Line 3286 No need char | Line 3289 No need char |
| 3289 | ||
| 3290 | /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix | /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix |
| 3291 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 3292 | Options: extended | Options: extended |
| 3293 | First char = '<' | First char = '<' |
| 3294 | Need char = '>' | Need char = '>' |
| # | Line 3336 Need char = 'X' | Line 3338 Need char = 'X' |
| 3338 | /(.*)\d+\1/I | /(.*)\d+\1/I |
| 3339 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| 3340 | Max back reference = 1 | Max back reference = 1 |
| Partial matching not supported | ||
| 3341 | No options | No options |
| 3342 | No first char | No first char |
| 3343 | No need char | No need char |
| 3344 | ||
| 3345 | /(.*)\d+/I | /(.*)\d+/I |
| 3346 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 3347 | No options | No options |
| 3348 | First char at start or follows newline | First char at start or follows newline |
| 3349 | No need char | No need char |
| # | Line 3351 No need char | Line 3351 No need char |
| 3351 | /(.*)\d+\1/Is | /(.*)\d+\1/Is |
| 3352 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| 3353 | Max back reference = 1 | Max back reference = 1 |
| Partial matching not supported | ||
| 3354 | Options: dotall | Options: dotall |
| 3355 | No first char | No first char |
| 3356 | No need char | No need char |
| 3357 | ||
| 3358 | /(.*)\d+/Is | /(.*)\d+/Is |
| 3359 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 3360 | Options: anchored dotall | Options: anchored dotall |
| 3361 | No first char | No first char |
| 3362 | No need char | No need char |
| # | Line 3366 No need char | Line 3364 No need char |
| 3364 | /(.*(xyz))\d+\2/I | /(.*(xyz))\d+\2/I |
| 3365 | Capturing subpattern count = 2 | Capturing subpattern count = 2 |
| 3366 | Max back reference = 2 | Max back reference = 2 |
| Partial matching not supported | ||
| 3367 | No options | No options |
| 3368 | First char at start or follows newline | First char at start or follows newline |
| 3369 | Need char = 'z' | Need char = 'z' |
| # | Line 3374 Need char = 'z' | Line 3371 Need char = 'z' |
| 3371 | /((.*))\d+\1/I | /((.*))\d+\1/I |
| 3372 | Capturing subpattern count = 2 | Capturing subpattern count = 2 |
| 3373 | Max back reference = 1 | Max back reference = 1 |
| Partial matching not supported | ||
| 3374 | No options | No options |
| 3375 | No first char | No first char |
| 3376 | No need char | No need char |
| # | Line 3391 Need char = 'b' | Line 3387 Need char = 'b' |
| 3387 | ||
| 3388 | /(?=a).*/I | /(?=a).*/I |
| 3389 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 3390 | No options | No options |
| 3391 | First char = 'a' | First char = 'a' |
| 3392 | No need char | No need char |
| # | Line 3497 Capturing subpattern count = 0 | Line 3492 Capturing subpattern count = 0 |
| 3492 | No options | No options |
| 3493 | No first char | No first char |
| 3494 | No need char | No need char |
| 3495 | Subject length lower bound = 1 | |
| 3496 | Starting byte set: a b | Starting byte set: a b |
| 3497 | ||
| 3498 | /[^a]/I | /[^a]/I |
| # | Line 3516 Capturing subpattern count = 0 | Line 3512 Capturing subpattern count = 0 |
| 3512 | No options | No options |
| 3513 | No first char | No first char |
| 3514 | Need char = '6' | Need char = '6' |
| 3515 | Subject length lower bound = 4 | |
| 3516 | Starting byte set: 0 1 2 3 4 5 6 7 8 9 | Starting byte set: 0 1 2 3 4 5 6 7 8 9 |
| 3517 | ||
| 3518 | /a^b/I | /a^b/I |
| # | Line 3549 Capturing subpattern count = 0 | Line 3546 Capturing subpattern count = 0 |
| 3546 | Options: caseless | Options: caseless |
| 3547 | No first char | No first char |
| 3548 | No need char | No need char |
| 3549 | Subject length lower bound = 1 | |
| 3550 | Starting byte set: A B a b | Starting byte set: A B a b |
| 3551 | ||
| 3552 | /[ab](?i)cd/IS | /[ab](?i)cd/IS |
| # | Line 3556 Capturing subpattern count = 0 | Line 3554 Capturing subpattern count = 0 |
| 3554 | No options | No options |
| 3555 | No first char | No first char |
| 3556 | Need char = 'd' (caseless) | Need char = 'd' (caseless) |
| 3557 | Subject length lower bound = 3 | |
| 3558 | Starting byte set: a b | Starting byte set: a b |
| 3559 | ||
| 3560 | /abc(?C)def/I | /abc(?C)def/I |
| # | Line 3713 No need char | Line 3712 No need char |
| 3712 | ||
| 3713 | /(\d{3}(?C))*/I | /(\d{3}(?C))*/I |
| 3714 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 3715 | No options | No options |
| 3716 | No first char | No first char |
| 3717 | No need char | No need char |
| # | Line 3842 Callout 0: last capture = 1 | Line 3840 Callout 0: last capture = 1 |
| 3840 | ||
| 3841 | /a(b+)(c*)(?C1)/I | /a(b+)(c*)(?C1)/I |
| 3842 | Capturing subpattern count = 2 | Capturing subpattern count = 2 |
| Partial matching not supported | ||
| 3843 | No options | No options |
| 3844 | First char = 'a' | First char = 'a' |
| 3845 | Need char = 'b' | Need char = 'b' |
| # | Line 3868 No match | Line 3865 No match |
| 3865 | ||
| 3866 | /a(b+?)(c*?)(?C1)/I | /a(b+?)(c*?)(?C1)/I |
| 3867 | Capturing subpattern count = 2 | Capturing subpattern count = 2 |
| Partial matching not supported | ||
| 3868 | No options | No options |
| 3869 | First char = 'a' | First char = 'a' |
| 3870 | Need char = 'b' | Need char = 'b' |
| # | Line 3909 Capturing subpattern count = 0 | Line 3905 Capturing subpattern count = 0 |
| 3905 | No options | No options |
| 3906 | No first char | No first char |
| 3907 | No need char | No need char |
| 3908 | Subject length lower bound = 1 | |
| 3909 | Starting byte set: a b | Starting byte set: a b |
| 3910 | ||
| 3911 | /(?R)/I | /(?R)/I |
| # | Line 4028 No options | Line 4025 No options |
| 4025 | First char = 'a' | First char = 'a' |
| 4026 | Need char = 'b' | Need char = 'b' |
| 4027 | ||
| /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii | ||
| Capturing subpattern count = 4 | ||
| Max back reference = 4 | ||
| Partial matching not supported | ||
| Options: anchored caseless | ||
| No first char | ||
| No need char | ||
| 1221 | ||
| 0: 1221 | ||
| 1: 1221 | ||
| 2: 1 | ||
| Satan, oscillate my metallic sonatas! | ||
| 0: Satan, oscillate my metallic sonatas! | ||
| 1: <unset> | ||
| 2: <unset> | ||
| 3: Satan, oscillate my metallic sonatas | ||
| 4: S | ||
| A man, a plan, a canal: Panama! | ||
| 0: A man, a plan, a canal: Panama! | ||
| 1: <unset> | ||
| 2: <unset> | ||
| 3: A man, a plan, a canal: Panama | ||
| 4: A | ||
| Able was I ere I saw Elba. | ||
| 0: Able was I ere I saw Elba. | ||
| 1: <unset> | ||
| 2: <unset> | ||
| 3: Able was I ere I saw Elba | ||
| 4: A | ||
| *** Failers | ||
| No match | ||
| The quick brown fox | ||
| No match | ||
| 4028 | /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I | /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I |
| 4029 | Capturing subpattern count = 2 | Capturing subpattern count = 2 |
| Partial matching not supported | ||
| 4030 | Options: anchored | Options: anchored |
| 4031 | No first char | No first char |
| 4032 | No need char | No need char |
| # | Line 4105 No match | Line 4067 No match |
| 4067 | ||
| 4068 | /((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix | /((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix |
| 4069 | Capturing subpattern count = 2 | Capturing subpattern count = 2 |
| Partial matching not supported | ||
| 4070 | Options: extended | Options: extended |
| 4071 | First char = '<' | First char = '<' |
| 4072 | Need char = '>' | Need char = '>' |
| # | Line 4279 Named capturing subpatterns: | Line 4240 Named capturing subpatterns: |
| 4240 | one 1 | one 1 |
| 4241 | three 3 | three 3 |
| 4242 | two 2 | two 2 |
| Partial matching not supported | ||
| 4243 | Options: anchored caseless | Options: anchored caseless |
| 4244 | No first char | No first char |
| 4245 | No need char | No need char |
| # | Line 4325 No need char | Line 4285 No need char |
| 4285 | ||
| 4286 | /(.*)a/Is | /(.*)a/Is |
| 4287 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 4288 | Options: anchored dotall | Options: anchored dotall |
| 4289 | No first char | No first char |
| 4290 | Need char = 'a' | Need char = 'a' |
| # | Line 4333 Need char = 'a' | Line 4292 Need char = 'a' |
| 4292 | /(.*)a\1/Is | /(.*)a\1/Is |
| 4293 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| 4294 | Max back reference = 1 | Max back reference = 1 |
| Partial matching not supported | ||
| 4295 | Options: dotall | Options: dotall |
| 4296 | No first char | No first char |
| 4297 | Need char = 'a' | Need char = 'a' |
| # | Line 4341 Need char = 'a' | Line 4299 Need char = 'a' |
| 4299 | /(.*)a(b)\2/Is | /(.*)a(b)\2/Is |
| 4300 | Capturing subpattern count = 2 | Capturing subpattern count = 2 |
| 4301 | Max back reference = 2 | Max back reference = 2 |
| Partial matching not supported | ||
| 4302 | Options: anchored dotall | Options: anchored dotall |
| 4303 | No first char | No first char |
| 4304 | Need char = 'b' | Need char = 'b' |
| 4305 | ||
| 4306 | /((.*)a|(.*)b)z/Is | /((.*)a|(.*)b)z/Is |
| 4307 | Capturing subpattern count = 3 | Capturing subpattern count = 3 |
| Partial matching not supported | ||
| 4308 | Options: anchored dotall | Options: anchored dotall |
| 4309 | No first char | No first char |
| 4310 | Need char = 'z' | Need char = 'z' |
| # | Line 4356 Need char = 'z' | Line 4312 Need char = 'z' |
| 4312 | /((.*)a|(.*)b)z\1/Is | /((.*)a|(.*)b)z\1/Is |
| 4313 | Capturing subpattern count = 3 | Capturing subpattern count = 3 |
| 4314 | Max back reference = 1 | Max back reference = 1 |
| Partial matching not supported | ||
| 4315 | Options: dotall | Options: dotall |
| 4316 | No first char | No first char |
| 4317 | Need char = 'z' | Need char = 'z' |
| # | Line 4364 Need char = 'z' | Line 4319 Need char = 'z' |
| 4319 | /((.*)a|(.*)b)z\2/Is | /((.*)a|(.*)b)z\2/Is |
| 4320 | Capturing subpattern count = 3 | Capturing subpattern count = 3 |
| 4321 | Max back reference = 2 | Max back reference = 2 |
| Partial matching not supported | ||
| 4322 | Options: dotall | Options: dotall |
| 4323 | No first char | No first char |
| 4324 | Need char = 'z' | Need char = 'z' |
| # | Line 4372 Need char = 'z' | Line 4326 Need char = 'z' |
| 4326 | /((.*)a|(.*)b)z\3/Is | /((.*)a|(.*)b)z\3/Is |
| 4327 | Capturing subpattern count = 3 | Capturing subpattern count = 3 |
| 4328 | Max back reference = 3 | Max back reference = 3 |
| Partial matching not supported | ||
| 4329 | Options: dotall | Options: dotall |
| 4330 | No first char | No first char |
| 4331 | Need char = 'z' | Need char = 'z' |
| # | Line 4380 Need char = 'z' | Line 4333 Need char = 'z' |
| 4333 | /((.*)a|^(.*)b)z\3/Is | /((.*)a|^(.*)b)z\3/Is |
| 4334 | Capturing subpattern count = 3 | Capturing subpattern count = 3 |
| 4335 | Max back reference = 3 | Max back reference = 3 |
| Partial matching not supported | ||
| 4336 | Options: anchored dotall | Options: anchored dotall |
| 4337 | No first char | No first char |
| 4338 | Need char = 'z' | Need char = 'z' |
| 4339 | ||
| 4340 | /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is | /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is |
| 4341 | Capturing subpattern count = 31 | Capturing subpattern count = 31 |
| Partial matching not supported | ||
| 4342 | Options: anchored dotall | Options: anchored dotall |
| 4343 | No first char | No first char |
| 4344 | No need char | No need char |
| # | Line 4395 No need char | Line 4346 No need char |
| 4346 | /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is | /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is |
| 4347 | Capturing subpattern count = 31 | Capturing subpattern count = 31 |
| 4348 | Max back reference = 31 | Max back reference = 31 |
| Partial matching not supported | ||
| 4349 | Options: dotall | Options: dotall |
| 4350 | No first char | No first char |
| 4351 | No need char | No need char |
| # | Line 4403 No need char | Line 4353 No need char |
| 4353 | /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is | /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is |
| 4354 | Capturing subpattern count = 32 | Capturing subpattern count = 32 |
| 4355 | Max back reference = 32 | Max back reference = 32 |
| Partial matching not supported | ||
| 4356 | Options: dotall | Options: dotall |
| 4357 | No first char | No first char |
| 4358 | No need char | No need char |
| # | Line 4470 Need char = 'c' | Line 4419 Need char = 'c' |
| 4419 | ||
| 4420 | /(a+)*zz/I | /(a+)*zz/I |
| 4421 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 4422 | No options | No options |
| 4423 | No first char | No first char |
| 4424 | Need char = 'z' | Need char = 'z' |
| # | Line 4607 Failed: two named subpatterns have the s | Line 4555 Failed: two named subpatterns have the s |
| 4555 | Capturing subpattern count = 3 | Capturing subpattern count = 3 |
| 4556 | Named capturing subpatterns: | Named capturing subpatterns: |
| 4557 | elem 2 | elem 2 |
| Partial matching not supported | ||
| 4558 | No options | No options |
| 4559 | First char = '[' | First char = '[' |
| 4560 | Need char = ']' | Need char = ']' |
| # | Line 4625 No match | Line 4572 No match |
| 4572 | Capturing subpattern count = 3 | Capturing subpattern count = 3 |
| 4573 | Named capturing subpatterns: | Named capturing subpatterns: |
| 4574 | elem 2 | elem 2 |
| Partial matching not supported | ||
| 4575 | No options | No options |
| 4576 | First char = '[' | First char = '[' |
| 4577 | Need char = ']' | Need char = ']' |
| # | Line 4732 No need char | Line 4678 No need char |
| 4678 | ||
| 4679 | /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii | /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii |
| 4680 | Capturing subpattern count = 3 | Capturing subpattern count = 3 |
| Partial matching not supported | ||
| 4681 | Options: caseless | Options: caseless |
| 4682 | No first char | No first char |
| 4683 | Need char = 'g' (caseless) | Need char = 'g' (caseless) |
| # | Line 4742 Need char = 'g' (caseless) | Line 4687 Need char = 'g' (caseless) |
| 4687 | ||
| 4688 | /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS | /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS |
| 4689 | Capturing subpattern count = 3 | Capturing subpattern count = 3 |
| Partial matching not supported | ||
| 4690 | Options: caseless | Options: caseless |
| 4691 | No first char | No first char |
| 4692 | Need char = 'g' (caseless) | Need char = 'g' (caseless) |
| 4693 | Study returned NULL | Subject length lower bound = 8 |
| 4694 | No set of starting bytes | |
| 4695 | Baby Bjorn Active Carrier - With free SHIPPING!! | Baby Bjorn Active Carrier - With free SHIPPING!! |
| 4696 | 0: Baby Bjorn Active Carrier - With free SHIPPING!! | 0: Baby Bjorn Active Carrier - With free SHIPPING!! |
| 4697 | 1: Baby Bjorn Active Carrier - With free SHIPPING!! | 1: Baby Bjorn Active Carrier - With free SHIPPING!! |
| # | Line 4761 Study returned NULL | Line 4706 Study returned NULL |
| 4706 | End | End |
| 4707 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 4708 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 4709 | No options | No options |
| 4710 | No first char | No first char |
| 4711 | Need char = 'b' | Need char = 'b' |
| 4712 | Study returned NULL | Subject length lower bound = 1 |
| 4713 | No set of starting bytes | |
| 4714 | ||
| 4715 | /(a|b)*.?c/ISDZ | /(a|b)*.?c/ISDZ |
| 4716 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| # | Line 4785 Capturing subpattern count = 1 | Line 4730 Capturing subpattern count = 1 |
| 4730 | No options | No options |
| 4731 | No first char | No first char |
| 4732 | Need char = 'c' | Need char = 'c' |
| 4733 | Study returned NULL | Subject length lower bound = 1 |
| 4734 | No set of starting bytes | |
| 4735 | ||
| 4736 | /abc(?C255)de(?C)f/DZ | /abc(?C255)de(?C)f/DZ |
| 4737 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| # | Line 4854 No match | Line 4800 No match |
| 4800 | End | End |
| 4801 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 4802 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 4803 | Options: | Options: |
| 4804 | No first char | No first char |
| 4805 | Need char = 'b' | Need char = 'b' |
| # | Line 4899 Need char = 'b' | Line 4844 Need char = 'b' |
| 4844 | End | End |
| 4845 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 4846 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 4847 | Options: | Options: |
| 4848 | First char = 'a' | First char = 'a' |
| 4849 | Need char = 'b' | Need char = 'b' |
| # | Line 5337 No match | Line 5281 No match |
| 5281 | End | End |
| 5282 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 5283 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 5284 | Options: | Options: |
| 5285 | No first char | No first char |
| 5286 | Need char = '3' | Need char = '3' |
| # | Line 5369 Need char = '3' | Line 5312 Need char = '3' |
| 5312 | ||
| 5313 | /\b.*/I | /\b.*/I |
| 5314 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 5315 | No options | No options |
| 5316 | No first char | No first char |
| 5317 | No need char | No need char |
| # | Line 5378 No need char | Line 5320 No need char |
| 5320 | ||
| 5321 | /\b.*/Is | /\b.*/Is |
| 5322 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 5323 | Options: dotall | Options: dotall |
| 5324 | No first char | No first char |
| 5325 | No need char | No need char |
| # | Line 5387 No need char | Line 5328 No need char |
| 5328 | ||
| 5329 | /(?!.bcd).*/I | /(?!.bcd).*/I |
| 5330 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 5331 | No options | No options |
| 5332 | No first char | No first char |
| 5333 | No need char | No need char |
| # | Line 5400 No options | Line 5340 No options |
| 5340 | First char = 'a' | First char = 'a' |
| 5341 | Need char = 'e' | Need char = 'e' |
| 5342 | ab\P | ab\P |
| 5343 | Partial match | Partial match: ab |
| 5344 | abc\P | abc\P |
| 5345 | Partial match | Partial match: abc |
| 5346 | abcd\P | abcd\P |
| 5347 | Partial match | Partial match: abcd |
| 5348 | abcde\P | abcde\P |
| 5349 | 0: abcde | 0: abcde |
| 5350 | the quick brown abc\P | the quick brown abc\P |
| 5351 | Partial match | Partial match: abc |
| 5352 | ** Failers\P | ** Failers\P |
| 5353 | No match | No match |
| 5354 | the quick brown abxyz fox\P | the quick brown abxyz fox\P |
| # | Line 5433 Need char = '/' | Line 5373 Need char = '/' |
| 5373 | 1: 02 | 1: 02 |
| 5374 | 2: 05 | 2: 05 |
| 5375 | 1\P | 1\P |
| 5376 | Partial match | Partial match: 1 |
| 5377 | 1/2\P | 1/2\P |
| 5378 | Partial match | Partial match: 1/2 |
| 5379 | 1/2/0\P | 1/2/0\P |
| 5380 | Partial match | Partial match: 1/2/0 |
| 5381 | 1/2/04\P | 1/2/04\P |
| 5382 | 0: 1/2/04 | 0: 1/2/04 |
| 5383 | 1: 1 | 1: 1 |
| 5384 | 2: 2 | 2: 2 |
| 5385 | 0\P | 0\P |
| 5386 | Partial match | Partial match: 0 |
| 5387 | 02/\P | 02/\P |
| 5388 | Partial match | Partial match: 02/ |
| 5389 | 02/0\P | 02/0\P |
| 5390 | Partial match | Partial match: 02/0 |
| 5391 | 02/1\P | 02/1\P |
| 5392 | Partial match | Partial match: 02/1 |
| 5393 | ** Failers\P | ** Failers\P |
| 5394 | No match | No match |
| 5395 | \P | \P |
| # | Line 5471 No match | Line 5411 No match |
| 5411 | ||
| 5412 | /0{0,2}ABC/I | /0{0,2}ABC/I |
| 5413 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 5414 | No options | No options |
| 5415 | No first char | No first char |
| 5416 | Need char = 'C' | Need char = 'C' |
| 5417 | ||
| 5418 | /\d{3,}ABC/I | /\d{3,}ABC/I |
| 5419 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 5420 | No options | No options |
| 5421 | No first char | No first char |
| 5422 | Need char = 'C' | Need char = 'C' |
| 5423 | ||
| 5424 | /\d*ABC/I | /\d*ABC/I |
| 5425 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 5426 | No options | No options |
| 5427 | No first char | No first char |
| 5428 | Need char = 'C' | Need char = 'C' |
| 5429 | ||
| 5430 | /[abc]+DE/I | /[abc]+DE/I |
| 5431 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 5432 | No options | No options |
| 5433 | No first char | No first char |
| 5434 | Need char = 'E' | Need char = 'E' |
| # | Line 5505 Need char = '3' | Line 5441 Need char = '3' |
| 5441 | 123\P | 123\P |
| 5442 | 0: 123 | 0: 123 |
| 5443 | a\P | a\P |
| 5444 | Partial match | Partial match: a |
| 5445 | b\P | b\P |
| 5446 | Partial match | Partial match: b |
| 5447 | c\P | c\P |
| 5448 | Partial match | Partial match: c |
| 5449 | c12\P | c12\P |
| 5450 | Partial match | Partial match: c12 |
| 5451 | c123\P | c123\P |
| 5452 | 0: c123 | 0: c123 |
| 5453 | ||
| # | Line 5521 Options: anchored | Line 5457 Options: anchored |
| 5457 | No first char | No first char |
| 5458 | Need char = 'X' | Need char = 'X' |
| 5459 | 1\P | 1\P |
| 5460 | Partial match | Partial match: 1 |
| 5461 | 123\P | 123\P |
| 5462 | Partial match | Partial match: 123 |
| 5463 | 123X | 123X |
| 5464 | 0: 123X | 0: 123X |
| 5465 | 1234\P | 1234\P |
| 5466 | Partial match | Partial match: 1234 |
| 5467 | 1234X | 1234X |
| 5468 | 0: 1234X | 0: 1234X |
| 5469 | 12345\P | 12345\P |
| 5470 | Partial match | Partial match: 12345 |
| 5471 | 12345X | 12345X |
| 5472 | 0: 12345X | 0: 12345X |
| 5473 | *** Failers | *** Failers |
| # | Line 5578 Capturing subpattern count = 1 | Line 5514 Capturing subpattern count = 1 |
| 5514 | No options | No options |
| 5515 | No first char | No first char |
| 5516 | No need char | No need char |
| 5517 | Subject length lower bound = 1 | |
| 5518 | Starting byte set: a b | Starting byte set: a b |
| 5519 | Compiled regex written to testsavedregex | Compiled regex written to testsavedregex |
| 5520 | Study data written to testsavedregex | Study data written to testsavedregex |
| # | Line 5598 Capturing subpattern count = 1 | Line 5535 Capturing subpattern count = 1 |
| 5535 | No options | No options |
| 5536 | No first char | No first char |
| 5537 | No need char | No need char |
| 5538 | Subject length lower bound = 1 | |
| 5539 | Starting byte set: a b | Starting byte set: a b |
| 5540 | Compiled regex written to testsavedregex | Compiled regex written to testsavedregex |
| 5541 | Study data written to testsavedregex | Study data written to testsavedregex |
| # | Line 5616 No match | Line 5554 No match |
| 5554 | ~<(\w+)/?>(.)*</(\1)>~smgI | ~<(\w+)/?>(.)*</(\1)>~smgI |
| 5555 | Capturing subpattern count = 3 | Capturing subpattern count = 3 |
| 5556 | Max back reference = 1 | Max back reference = 1 |
| Partial matching not supported | ||
| 5557 | Options: multiline dotall | Options: multiline dotall |
| 5558 | First char = '<' | First char = '<' |
| 5559 | Need char = '>' | Need char = '>' |
| # | Line 5669 No match | Line 5606 No match |
| 5606 | line one\nthis is a line\nbreak in the second line | line one\nthis is a line\nbreak in the second line |
| 5607 | No match | No match |
| 5608 | ||
| 5609 | /ab.cd/IP | /ab.cd/P |
| 5610 | ab-cd | ab-cd |
| 5611 | 0: ab-cd | 0: ab-cd |
| 5612 | ab=cd | ab=cd |
| # | Line 5679 No match: POSIX code 17: match failed | Line 5616 No match: POSIX code 17: match failed |
| 5616 | ab\ncd | ab\ncd |
| 5617 | No match: POSIX code 17: match failed | No match: POSIX code 17: match failed |
| 5618 | ||
| 5619 | /ab.cd/IPs | /ab.cd/Ps |
| 5620 | ab-cd | ab-cd |
| 5621 | 0: ab-cd | 0: ab-cd |
| 5622 | ab=cd | ab=cd |
| # | Line 5923 Matched, but too many substrings | Line 5860 Matched, but too many substrings |
| 5860 | ||
| 5861 | /[^()]*(?:\((?R)\)[^()]*)*/I | /[^()]*(?:\((?R)\)[^()]*)*/I |
| 5862 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 5863 | No options | No options |
| 5864 | No first char | No first char |
| 5865 | No need char | No need char |
| # | Line 5936 No need char | Line 5872 No need char |
| 5872 | ||
| 5873 | /[^()]*(?:\((?>(?R))\)[^()]*)*/I | /[^()]*(?:\((?>(?R))\)[^()]*)*/I |
| 5874 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 5875 | No options | No options |
| 5876 | No first char | No first char |
| 5877 | No need char | No need char |
| # | Line 5947 No need char | Line 5882 No need char |
| 5882 | ||
| 5883 | /[^()]*(?:\((?R)\))*[^()]*/I | /[^()]*(?:\((?R)\))*[^()]*/I |
| 5884 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 5885 | No options | No options |
| 5886 | No first char | No first char |
| 5887 | No need char | No need char |
| # | Line 5958 No need char | Line 5892 No need char |
| 5892 | ||
| 5893 | /(?:\((?R)\))*[^()]*/I | /(?:\((?R)\))*[^()]*/I |
| 5894 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 5895 | No options | No options |
| 5896 | No first char | No first char |
| 5897 | No need char | No need char |
| # | Line 5971 No need char | Line 5904 No need char |
| 5904 | ||
| 5905 | /(?:\((?R)\))|[^()]*/I | /(?:\((?R)\))|[^()]*/I |
| 5906 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 5907 | No options | No options |
| 5908 | No first char | No first char |
| 5909 | No need char | No need char |
| # | Line 5984 No need char | Line 5916 No need char |
| 5916 | ((this)) | ((this)) |
| 5917 | 0: ((this)) | 0: ((this)) |
| 5918 | ||
| 5919 | /a(b)c/IPN | /a(b)c/PN |
| 5920 | abc | abc |
| 5921 | Matched with REG_NOSUB | Matched with REG_NOSUB |
| 5922 | ||
| 5923 | /a(?P<name>b)c/IPN | /a(?P<name>b)c/PN |
| 5924 | abc | abc |
| 5925 | Matched with REG_NOSUB | Matched with REG_NOSUB |
| 5926 | ||
| # | Line 6313 Failed: octal value is greater than \377 | Line 6245 Failed: octal value is greater than \377 |
| 6245 | ||
| 6246 | /\s*,\s*/IS | /\s*,\s*/IS |
| 6247 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 6248 | No options | No options |
| 6249 | No first char | No first char |
| 6250 | Need char = ',' | Need char = ',' |
| 6251 | Subject length lower bound = 1 | |
| 6252 | Starting byte set: \x09 \x0a \x0c \x0d \x20 , | Starting byte set: \x09 \x0a \x0c \x0d \x20 , |
| 6253 | \x0b,\x0b | \x0b,\x0b |
| 6254 | 0: , | 0: , |
| # |
Line 6443
Unknown newline type at: |
Line 6375
Unknown newline type at: |
| 6375 | ||
| 6376 | /.*/I<lf> | /.*/I<lf> |
| 6377 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 6378 | Options: | Options: |
| 6379 | Forced newline sequence: LF | Forced newline sequence: LF |
| 6380 | First char at start or follows newline | First char at start or follows newline |
| # | Line 6469 No need char | Line 6400 No need char |
| 6400 | ||
| 6401 | /\w+(.)(.)?def/Is | /\w+(.)(.)?def/Is |
| 6402 | Capturing subpattern count = 2 | Capturing subpattern count = 2 |
| Partial matching not supported | ||
| 6403 | Options: dotall | Options: dotall |
| 6404 | No first char | No first char |
| 6405 | Need char = 'f' | Need char = 'f' |
| # | Line 6486 Need char = 'f' | Line 6416 Need char = 'f' |
| 6416 | ||
| 6417 | +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I | +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I |
| 6418 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 6419 | No options | No options |
| 6420 | No first char | No first char |
| 6421 | No need char | No need char |
| # | Line 6621 No need char | Line 6550 No need char |
| 6550 | ||
| 6551 | /(a*b|(?i:c*(?-i)d))/IS | /(a*b|(?i:c*(?-i)d))/IS |
| 6552 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 6553 | No options | No options |
| 6554 | No first char | No first char |
| 6555 | No need char | No need char |
| 6556 | Subject length lower bound = 1 | |
| 6557 | Starting byte set: C a b c d | Starting byte set: C a b c d |
| 6558 | ||
| 6559 | /()[ab]xyz/IS | /()[ab]xyz/IS |
| # | Line 6632 Capturing subpattern count = 1 | Line 6561 Capturing subpattern count = 1 |
| 6561 | No options | No options |
| 6562 | No first char | No first char |
| 6563 | Need char = 'z' | Need char = 'z' |
| 6564 | Subject length lower bound = 4 | |
| 6565 | Starting byte set: a b | Starting byte set: a b |
| 6566 | ||
| 6567 | /(|)[ab]xyz/IS | /(|)[ab]xyz/IS |
| # | Line 6639 Capturing subpattern count = 1 | Line 6569 Capturing subpattern count = 1 |
| 6569 | No options | No options |
| 6570 | No first char | No first char |
| 6571 | Need char = 'z' | Need char = 'z' |
| 6572 | Subject length lower bound = 4 | |
| 6573 | Starting byte set: a b | Starting byte set: a b |
| 6574 | ||
| 6575 | /(|c)[ab]xyz/IS | /(|c)[ab]xyz/IS |
| # | Line 6646 Capturing subpattern count = 1 | Line 6577 Capturing subpattern count = 1 |
| 6577 | No options | No options |
| 6578 | No first char | No first char |
| 6579 | Need char = 'z' | Need char = 'z' |
| 6580 | Subject length lower bound = 4 | |
| 6581 | Starting byte set: a b c | Starting byte set: a b c |
| 6582 | ||
| 6583 | /(|c?)[ab]xyz/IS | /(|c?)[ab]xyz/IS |
| # | Line 6653 Capturing subpattern count = 1 | Line 6585 Capturing subpattern count = 1 |
| 6585 | No options | No options |
| 6586 | No first char | No first char |
| 6587 | Need char = 'z' | Need char = 'z' |
| 6588 | Subject length lower bound = 4 | |
| 6589 | Starting byte set: a b c | Starting byte set: a b c |
| 6590 | ||
| 6591 | /(d?|c?)[ab]xyz/IS | /(d?|c?)[ab]xyz/IS |
| # | Line 6660 Capturing subpattern count = 1 | Line 6593 Capturing subpattern count = 1 |
| 6593 | No options | No options |
| 6594 | No first char | No first char |
| 6595 | Need char = 'z' | Need char = 'z' |
| 6596 | Subject length lower bound = 4 | |
| 6597 | Starting byte set: a b c d | Starting byte set: a b c d |
| 6598 | ||
| 6599 | /(d?|c)[ab]xyz/IS | /(d?|c)[ab]xyz/IS |
| # | Line 6667 Capturing subpattern count = 1 | Line 6601 Capturing subpattern count = 1 |
| 6601 | No options | No options |
| 6602 | No first char | No first char |
| 6603 | Need char = 'z' | Need char = 'z' |
| 6604 | Subject length lower bound = 4 | |
| 6605 | Starting byte set: a b c d | Starting byte set: a b c d |
| 6606 | ||
| 6607 | /^a*b\d/DZ | /^a*b\d/DZ |
| # | Line 6680 Starting byte set: a b c d | Line 6615 Starting byte set: a b c d |
| 6615 | End | End |
| 6616 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 6617 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 6618 | Options: anchored | Options: anchored |
| 6619 | No first char | No first char |
| 6620 | Need char = 'b' | Need char = 'b' |
| # | Line 6696 Need char = 'b' | Line 6630 Need char = 'b' |
| 6630 | End | End |
| 6631 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 6632 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 6633 | Options: anchored | Options: anchored |
| 6634 | No first char | No first char |
| 6635 | Need char = 'b' | Need char = 'b' |
| # | Line 6712 Need char = 'b' | Line 6645 Need char = 'b' |
| 6645 | End | End |
| 6646 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 6647 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 6648 | Options: anchored | Options: anchored |
| 6649 | No first char | No first char |
| 6650 | Need char = 'b' | Need char = 'b' |
| # | Line 6728 Need char = 'b' | Line 6660 Need char = 'b' |
| 6660 | End | End |
| 6661 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 6662 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 6663 | Options: anchored | Options: anchored |
| 6664 | No first char | No first char |
| 6665 | Need char = 'A' | Need char = 'A' |
| # | Line 6750 No match | Line 6681 No match |
| 6681 | End | End |
| 6682 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 6683 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 6684 | Options: anchored caseless | Options: anchored caseless |
| 6685 | No first char | No first char |
| 6686 | Need char = 'A' (caseless) | Need char = 'A' (caseless) |
| # | Line 6761 Need char = 'A' (caseless) | Line 6691 Need char = 'A' (caseless) |
| 6691 | ||
| 6692 | /(a*|b*)[cd]/IS | /(a*|b*)[cd]/IS |
| 6693 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 6694 | No options | No options |
| 6695 | No first char | No first char |
| 6696 | No need char | No need char |
| 6697 | Subject length lower bound = 1 | |
| 6698 | Starting byte set: a b c d | Starting byte set: a b c d |
| 6699 | ||
| 6700 | /(a+|b*)[cd]/IS | /(a+|b*)[cd]/IS |
| 6701 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 6702 | No options | No options |
| 6703 | No first char | No first char |
| 6704 | No need char | No need char |
| 6705 | Subject length lower bound = 1 | |
| 6706 | Starting byte set: a b c d | Starting byte set: a b c d |
| 6707 | ||
| 6708 | /(a*|b+)[cd]/IS | /(a*|b+)[cd]/IS |
| 6709 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 6710 | No options | No options |
| 6711 | No first char | No first char |
| 6712 | No need char | No need char |
| 6713 | Subject length lower bound = 1 | |
| 6714 | Starting byte set: a b c d | Starting byte set: a b c d |
| 6715 | ||
| 6716 | /(a+|b+)[cd]/IS | /(a+|b+)[cd]/IS |
| 6717 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| Partial matching not supported | ||
| 6718 | No options | No options |
| 6719 | No first char | No first char |
| 6720 | No need char | No need char |
| 6721 | Subject length lower bound = 2 | |
| 6722 | Starting byte set: a b | Starting byte set: a b |
| 6723 | ||
| 6724 | /(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( | /(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( |
| # | Line 7594 No match | Line 7524 No match |
| 7524 | ^ | ^ |
| 7525 | CBra 1 | CBra 1 |
| 7526 | Cond | Cond |
| 7527 | 2 Cond ref | 2 Cond nref |
| 7528 | y | y |
| 7529 | Ket | Ket |
| 7530 | [()] | [()] |
| # | Line 7660 Named capturing subpatterns: | Line 7590 Named capturing subpatterns: |
| 7590 | one 1 | one 1 |
| 7591 | three 3 | three 3 |
| 7592 | two 2 | two 2 |
| Partial matching not supported | ||
| 7593 | Options: anchored caseless | Options: anchored caseless |
| 7594 | No first char | No first char |
| 7595 | No need char | No need char |
| # | Line 7694 No match | Line 7623 No match |
| 7623 | /(?=(\w+))\1:/I | /(?=(\w+))\1:/I |
| 7624 | Capturing subpattern count = 1 | Capturing subpattern count = 1 |
| 7625 | Max back reference = 1 | Max back reference = 1 |
| Partial matching not supported | ||
| 7626 | No options | No options |
| 7627 | No first char | No first char |
| 7628 | Need char = ':' | Need char = ':' |
| # | Line 7707 Capturing subpattern count = 1 | Line 7635 Capturing subpattern count = 1 |
| 7635 | Max back reference = 1 | Max back reference = 1 |
| 7636 | Named capturing subpatterns: | Named capturing subpatterns: |
| 7637 | abc 1 | abc 1 |
| Partial matching not supported | ||
| 7638 | No options | No options |
| 7639 | No first char | No first char |
| 7640 | Need char = ':' | Need char = ':' |
| # | Line 7715 Need char = ':' | Line 7642 Need char = ':' |
| 7642 | 0: abcd: | 0: abcd: |
| 7643 | 1: abcd | 1: abcd |
| 7644 | ||
| /(?'abc'\w+):\k<abc>{2}/ | ||
| a:aaxyz | ||
| 0: a:aa | ||
| 1: a | ||
| ab:ababxyz | ||
| 0: ab:abab | ||
| 1: ab | ||
| ** Failers | ||
| No match | ||
| a:axyz | ||
| No match | ||
| ab:abxyz | ||
| No match | ||
| 7645 | /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J | /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J |
| 7646 | adaa | adaa |
| 7647 | 0: adaa | 0: adaa |
| # | Line 7755 No match | Line 7668 No match |
| 7668 | bddd | bddd |
| 7669 | No match | No match |
| 7670 | ||
| /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x | ||
| abd | ||
| 0: abd | ||
| 1: a | ||
| ce | ||
| 0: ce | ||
| 7671 | /(?(<bc))/ | /(?(<bc))/ |
| 7672 | Failed: malformed number or name after (?( at offset 6 | Failed: malformed number or name after (?( at offset 6 |
| 7673 | ||
| # | Line 7792 Failed: reference to non-existent subpat | Line 7698 Failed: reference to non-existent subpat |
| 7698 | 1: abcabc1Xabc2XabcX | 1: abcabc1Xabc2XabcX |
| 7699 | 2: abcabc1Xabc2XabcX | 2: abcabc1Xabc2XabcX |
| 7700 | ||
| /^(?(DEFINE) (?<A> a) (?<B> b) ) (?&A) (?&B) /x | ||
| abcd | ||
| 0: ab | ||
| 1: <unset> | ||
| 2: <unset> | ||
| /(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT)) | ||
| (?(DEFINE) | ||
| (?<NAME_PAT>[a-z]+) | ||
| (?<ADDRESS_PAT>\d+) | ||
| )/x | ||
| metcalfe 33 | ||
| 0: metcalfe 33 | ||
| 1: metcalfe | ||
| 2: 33 | ||
| 3: <unset> | ||
| 4: <unset> | ||
| 7701 | /^(?(DEFINE) abc | xyz ) /x | /^(?(DEFINE) abc | xyz ) /x |
| 7702 | Failed: DEFINE group contains more than one branch at offset 22 | Failed: DEFINE group contains more than one branch at offset 22 |
| 7703 | ||
| # | Line 7987 Need char = 'P' | Line 7875 Need char = 'P' |
| 7875 | 0: PXP | 0: PXP |
| 7876 | 1: P | 1: P |
| 7877 | ||
| /(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/ | ||
| 1.2.3.4 | ||
| 0: 1.2.3.4 | ||
| 1: <unset> | ||
| 2: .4 | ||
| 131.111.10.206 | ||
| 0: 131.111.10.206 | ||
| 1: <unset> | ||
| 2: .206 | ||
| 10.0.0.0 | ||
| 0: 10.0.0.0 | ||
| 1: <unset> | ||
| 2: .0 | ||
| ** Failers | ||
| No match | ||
| 10.6 | ||
| No match | ||
| 455.3.4.5 | ||
| No match | ||
| /\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/ | ||
| 1.2.3.4 | ||
| 0: 1.2.3.4 | ||
| 1: .4 | ||
| 2: <unset> | ||
| 131.111.10.206 | ||
| 0: 131.111.10.206 | ||
| 1: .206 | ||
| 2: <unset> | ||
| 10.0.0.0 | ||
| 0: 10.0.0.0 | ||
| 1: .0 | ||
| 2: <unset> | ||
| ** Failers | ||
| No match | ||
| 10.6 | ||
| No match | ||
| 455.3.4.5 | ||
| No match | ||
| 7878 | /(?:a(?&abc)b)*(?<abc>x)/ | /(?:a(?&abc)b)*(?<abc>x)/ |
| 7879 | 123axbaxbaxbx456 | 123axbaxbaxbx456 |
| 7880 | 0: axbaxbaxbx | 0: axbaxbaxbx |
| # | Line 8064 No match | Line 7912 No match |
| 7912 | DEFabcABCXYZ | DEFabcABCXYZ |
| 7913 | No match | No match |
| 7914 | ||
| /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/ | ||
| ababababbbabZXXXX | ||
| 0: ababababbbabZ | ||
| 1: ab | ||
| 2: b | ||
| 7915 | /^(a)\g-2/ | /^(a)\g-2/ |
| 7916 | Failed: reference to non-existent subpattern at offset 7 | Failed: reference to non-existent subpattern at offset 7 |
| 7917 | ||
| # | Line 8325 Failed: reference to non-existent subpat | Line 8167 Failed: reference to non-existent subpat |
| 8167 | 0: Y! | 0: Y! |
| 8168 | 1: ! | 1: ! |
| 8169 | ||
| /(foo)\Kbar/ | ||
| foobar | ||
| 0: bar | ||
| 1: foo | ||
| /(foo)(\Kbar|baz)/ | ||
| foobar | ||
| 0: bar | ||
| 1: foo | ||
| 2: bar | ||
| foobaz | ||
| 0: foobaz | ||
| 1: foo | ||
| 2: baz | ||
| /(foo\Kbar)baz/ | ||
| foobarbaz | ||
| 0: barbaz | ||
| 1: foobar | ||
| 8170 | /(?<A>tom|bon)-\k{A}/ | /(?<A>tom|bon)-\k{A}/ |
| 8171 | tom-tom | tom-tom |
| 8172 | 0: tom-tom | 0: tom-tom |
| # | Line 8357 No match | Line 8179 No match |
| 8179 | tom-bon | tom-bon |
| 8180 | No match | No match |
| 8181 | ||
| /(?<A>tom|bon)-\g{A}/ | ||
| tom-tom | ||
| 0: tom-tom | ||
| 1: tom | ||
| bon-bon | ||
| 0: bon-bon | ||
| 1: bon | ||
| 8182 | /\g{A/ | /\g{A/ |
| 8183 | Failed: syntax error in subpattern name (missing terminator) at offset 4 | Failed: syntax error in subpattern name (missing terminator) at offset 4 |
| 8184 | ||
| # | Line 8459 Failed: syntax error in subpattern name | Line 8273 Failed: syntax error in subpattern name |
| 8273 | 3: <unset> | 3: <unset> |
| 8274 | 4: x | 4: x |
| 8275 | ||
| /(?|(abc)|(xyz))\1/ | ||
| abcabc | ||
| 0: abcabc | ||
| 1: abc | ||
| xyzxyz | ||
| 0: xyzxyz | ||
| 1: xyz | ||
| ** Failers | ||
| No match | ||
| abcxyz | ||
| No match | ||
| xyzabc | ||
| No match | ||
| /(?|(abc)|(xyz))(?1)/ | ||
| abcabc | ||
| 0: abcabc | ||
| 1: abc | ||
| xyzabc | ||
| 0: xyzabc | ||
| 1: xyz | ||
| ** Failers | ||
| No match | ||
| xyzxyz | ||
| No match | ||
| /\H\h\V\v/ | ||
| X X\x0a | ||
| 0: X X\x0a | ||
| X\x09X\x0b | ||
| 0: X\x09X\x0b | ||
| ** Failers | ||
| No match | ||
| \xa0 X\x0a | ||
| No match | ||
| /\H*\h+\V?\v{3,4}/ | ||
| \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a | ||
| 0: \x09 \xa0X\x0a\x0b\x0c\x0d | ||
| \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a | ||
| 0: \x09 \xa0\x0a\x0b\x0c\x0d | ||
| \x09\x20\xa0\x0a\x0b\x0c | ||
| 0: \x09 \xa0\x0a\x0b\x0c | ||
| ** Failers | ||
| No match | ||
| \x09\x20\xa0\x0a\x0b | ||
| No match | ||
| /\H{3,4}/ | ||
| XY ABCDE | ||
| 0: ABCD | ||
| XY PQR ST | ||
| 0: PQR | ||
| /.\h{3,4}./ | ||
| XY AB PQRS | ||
| 0: B P | ||
| /\h*X\h?\H+Y\H?Z/ | ||
| >XNNNYZ | ||
| 0: XNNNYZ | ||
| > X NYQZ | ||
| 0: X NYQZ | ||
| ** Failers | ||
| No match | ||
| >XYZ | ||
| No match | ||
| > X NY Z | ||
| No match | ||
| /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/ | ||
| >XY\x0aZ\x0aA\x0bNN\x0c | ||
| 0: XY\x0aZ\x0aA\x0bNN\x0c | ||
| >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c | ||
| 0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c | ||
| 8276 | /[\h]/BZ | /[\h]/BZ |
| 8277 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 8278 | Bra | Bra |
| # | Line 8831 Failed: missing terminating ] for charac | Line 8569 Failed: missing terminating ] for charac |
| 8569 | End | End |
| 8570 | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| 8571 | ||
| /^a+(*FAIL)/ | ||
| aaaaaa | ||
| No match | ||
| /a+b?c+(*FAIL)/ | ||
| aaabccc | ||
| No match | ||
| /a+b?(*PRUNE)c+(*FAIL)/ | ||
| aaabccc | ||
| No match | ||
| /a+b?(*COMMIT)c+(*FAIL)/ | ||
| aaabccc | ||
| No match | ||
| /a+b?(*SKIP)c+(*FAIL)/ | ||
| aaabcccaaabccc | ||
| No match | ||
| /^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/ | ||
| aaaxxxxxx | ||
| 0: aaaxxxxxx | ||
| aaa++++++ | ||
| 0: aaa | ||
| bbbxxxxx | ||
| 0: bbbxxxxx | ||
| bbb+++++ | ||
| 0: bbb | ||
| cccxxxx | ||
| 0: cccxxxx | ||
| ccc++++ | ||
| 0: ccc | ||
| dddddddd | ||
| 0: ddd | ||
| /^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/ | ||
| aaaxxxxxx | ||
| 0: aaaxxxxxx | ||
| 1: aaaxxxxxx | ||
| aaa++++++ | ||
| 0: aaa | ||
| 1: aaa | ||
| bbbxxxxx | ||
| 0: bbbxxxxx | ||
| 1: bbbxxxxx | ||
| bbb+++++ | ||
| 0: bbb | ||
| 1: bbb | ||
| cccxxxx | ||
| 0: cccxxxx | ||
| 1: cccxxxx | ||
| ccc++++ | ||
| 0: ccc | ||
| 1: ccc | ||
| dddddddd | ||
| 0: ddd | ||
| 1: ddd | ||
| /a+b?(*THEN)c+(*FAIL)/ | ||
| aaabccc | ||
| No match | ||
| /(A (A|B(*ACCEPT)|C) D)(E)/x | ||
| ABX | ||
| 0: AB | ||
| AADE | ||
| 0: AADE | ||
| 1: AAD | ||
| 2: A | ||
| 3: E | ||
| ACDE | ||
| 0: ACDE | ||
| 1: ACD | ||
| 2: C | ||
| 3: E | ||
| ** Failers | ||
| No match | ||
| AD | ||
| No match | ||
| 8572 | /^a+(*FAIL)/C | /^a+(*FAIL)/C |
| 8573 | aaaaaa | aaaaaa |
| 8574 | --->aaaaaa | --->aaaaaa |
| # | Line 9040 No match | Line 8697 No match |
| 8697 | +13 ^ ^ (*FAIL) | +13 ^ ^ (*FAIL) |
| 8698 | No match | No match |
| 8699 | ||
| /a(*PRUNE:XXX)b/ | ||
| Failed: (*VERB) with an argument is not supported at offset 8 | ||
| 8700 | /a(*MARK)b/ | /a(*MARK)b/ |
| 8701 | Failed: (*VERB) not recognized at offset 7 | Failed: (*MARK) must have an argument at offset 7 |
| 8702 | ||
| 8703 | /(?i:A{1,}\6666666666)/ | /(?i:A{1,}\6666666666)/ |
| 8704 | Failed: number is too big at offset 19 | Failed: number is too big at offset 19 |
| # | Line 9133 No match | Line 8787 No match |
| 8787 | No match | No match |
| 8788 | a\x85b | a\x85b |
| 8789 | No match | No match |
| 8790 | ||
| 8791 | /(*ANY).*/g | |
| 8792 | abc\r\ndef | |
| 8793 | 0: abc | |
| 8794 | 0: | |
| 8795 | 0: def | |
| 8796 | 0: | |
| 8797 | ||
| 8798 | /(*ANYCRLF).*/g | |
| 8799 | abc\r\ndef | |
| 8800 | 0: abc | |
| 8801 | 0: | |
| 8802 | 0: def | |
| 8803 | 0: | |
| 8804 | ||
| 8805 | /(*CRLF).*/g | |
| 8806 | abc\r\ndef | |
| 8807 | 0: abc | |
| 8808 | 0: | |
| 8809 | 0: def | |
| 8810 | 0: | |
| 8811 | ||
| 8812 | /a\Rb/I<bsr_anycrlf> | /a\Rb/I<bsr_anycrlf> |
| 8813 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| # | Line 9216 No match | Line 8891 No match |
| 8891 | ||
| 8892 | /a\R{2,4}b/I<bsr_anycrlf> | /a\R{2,4}b/I<bsr_anycrlf> |
| 8893 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 8894 | Options: bsr_anycrlf | Options: bsr_anycrlf |
| 8895 | First char = 'a' | First char = 'a' |
| 8896 | Need char = 'b' | Need char = 'b' |
| # | Line 9235 No match | Line 8909 No match |
| 8909 | ||
| 8910 | /a\R{2,4}b/I<bsr_unicode> | /a\R{2,4}b/I<bsr_unicode> |
| 8911 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 8912 | Options: bsr_unicode | Options: bsr_unicode |
| 8913 | First char = 'a' | First char = 'a' |
| 8914 | Need char = 'b' | Need char = 'b' |
| # | Line 9385 Failed: unknown POSIX class name at offs | Line 9058 Failed: unknown POSIX class name at offs |
| 9058 | /[[:a\dz:]]/ | /[[:a\dz:]]/ |
| 9059 | Failed: unknown POSIX class name at offset 3 | Failed: unknown POSIX class name at offset 3 |
| 9060 | ||
| 9061 | /^(?<name>a|b\g<name>c)/ | /(^(a|b\g<-1'c))/ |
| 9062 | aaaa | Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15 |
| 0: a | ||
| 1: a | ||
| bacxxx | ||
| 0: bac | ||
| 1: bac | ||
| bbaccxxx | ||
| 0: bbacc | ||
| 1: bbacc | ||
| bbbacccxx | ||
| 0: bbbaccc | ||
| 1: bbbaccc | ||
| 9063 | ||
| 9064 | /^(?<name>a|b\g'name'c)/ | /^(?+1)(?<a>x|y){0}z/ |
| 9065 | aaaa | xzxx |
| 9066 | 0: a | 0: xz |
| 9067 | 1: a | yzyy |
| 9068 | bacxxx | 0: yz |
| 9069 | 0: bac | ** Failers |
| 9070 | 1: bac | No match |
| 9071 | bbaccxxx | xxz |
| 9072 | 0: bbacc | No match |
| 1: bbacc | ||
| bbbacccxx | ||
| 0: bbbaccc | ||
| 1: bbbaccc | ||
| 9073 | ||
| 9074 | /^(a|b\g<1>c)/ | /(\3)(\1)(a)/ |
| 9075 | aaaa | cat |
| 9076 | 0: a | No match |
| 1: a | ||
| bacxxx | ||
| 0: bac | ||
| 1: bac | ||
| bbaccxxx | ||
| 0: bbacc | ||
| 1: bbacc | ||
| bbbacccxx | ||
| 0: bbbaccc | ||
| 1: bbbaccc | ||
| 9077 | ||
| 9078 | /^(a|b\g'1'c)/ | /(\3)(\1)(a)/<JS> |
| 9079 | aaaa | cat |
| 0: a | ||
| 1: a | ||
| bacxxx | ||
| 0: bac | ||
| 1: bac | ||
| bbaccxxx | ||
| 0: bbacc | ||
| 1: bbacc | ||
| bbbacccxx | ||
| 0: bbbaccc | ||
| 1: bbbaccc | ||
| /^(a|b\g'-1'c)/ | ||
| aaaa | ||
| 0: a | ||
| 1: a | ||
| bacxxx | ||
| 0: bac | ||
| 1: bac | ||
| bbaccxxx | ||
| 0: bbacc | ||
| 1: bbacc | ||
| bbbacccxx | ||
| 0: bbbaccc | ||
| 1: bbbaccc | ||
| /(^(a|b\g<-1>c))/ | ||
| aaaa | ||
| 0: a | ||
| 1: a | ||
| 2: a | ||
| bacxxx | ||
| 0: bac | ||
| 1: bac | ||
| 2: bac | ||
| bbaccxxx | ||
| 0: bbacc | ||
| 1: bbacc | ||
| 2: bbacc | ||
| bbbacccxx | ||
| 0: bbbaccc | ||
| 1: bbbaccc | ||
| 2: bbbaccc | ||
| /(^(a|b\g<-1'c))/ | ||
| Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15 | ||
| /(^(a|b\g{-1}))/ | ||
| bacxxx | ||
| No match | ||
| /(?-i:\g<name>)(?i:(?<name>a))/ | ||
| XaaX | ||
| 0: aa | ||
| 1: a | ||
| XAAX | ||
| 0: AA | ||
| 1: A | ||
| /(?i:\g<name>)(?-i:(?<name>a))/ | ||
| XaaX | ||
| 0: aa | ||
| 1: a | ||
| ** Failers | ||
| No match | ||
| XAAX | ||
| No match | ||
| /(?-i:\g<+1>)(?i:(a))/ | ||
| XaaX | ||
| 0: aa | ||
| 1: a | ||
| XAAX | ||
| 0: AA | ||
| 1: A | ||
| /(?=(?<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>\})\}))\{/ | ||
| /(?<n>a|b|c)\g<n>*/ | ||
| abc | ||
| 0: abc | ||
| 1: a | ||
| accccbbb | ||
| 0: accccbbb | ||
| 1: a | ||
| /^(?+1)(?<a>x|y){0}z/ | ||
| xzxx | ||
| 0: xz | ||
| 1: <unset> | ||
| yzyy | ||
| 0: yz | ||
| 1: <unset> | ||
| ** Failers | ||
| No match | ||
| xxz | ||
| No match | ||
| /(\3)(\1)(a)/ | ||
| cat | ||
| No match | ||
| /(\3)(\1)(a)/<JS> | ||
| cat | ||
| 9080 | 0: a | 0: a |
| 9081 | 1: | 1: |
| 9082 | 2: | 2: |
| # | Line 9636 Capturing subpattern count = 1 | Line 9180 Capturing subpattern count = 1 |
| 9180 | No options | No options |
| 9181 | No first char | No first char |
| 9182 | No need char | No need char |
| 9183 | Subject length lower bound = 1 | |
| 9184 | Starting byte set: x y z | Starting byte set: x y z |
| 9185 | ||
| 9186 | /(?(?=.*b)b|^)/CI | /(?(?=.*b)b|^)/CI |
| 9187 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 9188 | Options: | Options: |
| 9189 | No first char | No first char |
| 9190 | No need char | No need char |
| # | Line 9680 No need char | Line 9224 No need char |
| 9224 | ||
| 9225 | /(?(?=b).*b|^d)/I | /(?(?=b).*b|^d)/I |
| 9226 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 9227 | No options | No options |
| 9228 | No first char | No first char |
| 9229 | No need char | No need char |
| 9230 | ||
| 9231 | /(?(?=.*b).*b|^d)/I | /(?(?=.*b).*b|^d)/I |
| 9232 | Capturing subpattern count = 0 | Capturing subpattern count = 0 |
| Partial matching not supported | ||
| 9233 | No options | No options |
| 9234 | First char at start or follows newline | First char at start or follows newline |
| 9235 | No need char | No need char |
| # | Line 9752 No match | Line 9294 No match |
| 9294 | +0 ^ x | +0 ^ x |
| 9295 | +0 ^ x | +0 ^ x |
| 9296 | No match | No match |
| 9297 | ||
| 9298 | /(*NO_START_OPT)xyz/C | |
| 9299 | abcxyz | |
| 9300 | --->abcxyz | |
| 9301 | +15 ^ x | |
| 9302 | +15 ^ x | |
| 9303 | +15 ^ x | |
| 9304 | +15 ^ x | |
| 9305 | +16 ^^ y | |
| 9306 | +17 ^ ^ z | |
| 9307 | +18 ^ ^ | |
| 9308 | 0: xyz | |
| 9309 | ||
| 9310 | /xyz/CY | |
| 9311 | abcxyz | |
| 9312 | --->abcxyz | |
| 9313 | +0 ^ x | |
| 9314 | +0 ^ x | |
| 9315 | +0 ^ x | |
| 9316 | +0 ^ x | |
| 9317 | +1 ^^ y | |
| 9318 | +2 ^ ^ z | |
| 9319 | +3 ^ ^ | |
| 9320 | 0: xyz | |
| 9321 | ||
| 9322 | /^"((?(?=[a])[^"])|b)*"$/C | /^"((?(?=[a])[^"])|b)*"$/C |
| 9323 | "ab" | "ab" |
| # | Line 9786 No match | Line 9352 No match |
| 9352 | 0: "ab" | 0: "ab" |
| 9353 | 1: | 1: |
| 9354 | ||
| /^X(?5)(a)(?|(b)|(q))(c)(d)(Y)/ | ||
| XYabcdY | ||
| 0: XYabcdY | ||
| 1: a | ||
| 2: b | ||
| 3: c | ||
| 4: d | ||
| 5: Y | ||
| 9355 | /^X(?5)(a)(?|(b)|(q))(c)(d)Y/ | /^X(?5)(a)(?|(b)|(q))(c)(d)Y/ |
| 9356 | Failed: reference to non-existent subpattern at offset 5 | Failed: reference to non-existent subpattern at offset 5 |
| 9357 | ||
| # | Line 9807 Failed: reference to non-existent subpat | Line 9364 Failed: reference to non-existent subpat |
| 9364 | 4: d | 4: d |
| 9365 | 5: Y | 5: Y |
| 9366 | ||
| 9367 | /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/ | /Xa{2,4}b/ |
| 9368 | XYabcdY | X\P |
| 9369 | 0: XYabcdY | Partial match: X |
| 9370 | 1: a | Xa\P |
| 9371 | 2: b | Partial match: Xa |
| 9372 | 3: <unset> | Xaa\P |
| 9373 | 4: <unset> | Partial match: Xaa |
| 9374 | 5: c | Xaaa\P |
| 9375 | 6: d | Partial match: Xaaa |
| 9376 | 7: Y | Xaaaa\P |
| 9377 | Partial match: Xaaaa | |
| 9378 | ||
| 9379 | /Xa{2,4}?b/ | |
| 9380 | X\P | |
| 9381 | Partial match: X | |
| 9382 | Xa\P | |
| 9383 | Partial match: Xa | |
| 9384 | Xaa\P | |
| 9385 | Partial match: Xaa | |
| 9386 | Xaaa\P | |
| 9387 | Partial match: Xaaa | |
| 9388 | Xaaaa\P | |
| 9389 | Partial match: Xaaaa | |
| 9390 | ||
| 9391 | /Xa{2,4}+b/ | |
| 9392 | X\P | |
| 9393 | Partial match: X | |
| 9394 | Xa\P | |
| 9395 | Partial match: Xa | |
| 9396 | Xaa\P | |
| 9397 | Partial match: Xaa | |
| 9398 | Xaaa\P | |
| 9399 | Partial match: Xaaa | |
| 9400 | Xaaaa\P | |
| 9401 | Partial match: Xaaaa | |
| 9402 | ||
| 9403 | /X\d{2,4}b/ | |
| 9404 | X\P | |
| 9405 | Partial match: X | |
| 9406 | X3\P | |
| 9407 | Partial match: X3 | |
| 9408 | X33\P | |
| 9409 | Partial match: X33 | |
| 9410 | X333\P | |
| 9411 | Partial match: X333 | |
| 9412 | X3333\P | |
| 9413 | Partial match: X3333 | |
| 9414 | ||
| 9415 | /X\d{2,4}?b/ | |
| 9416 | X\P | |
| 9417 | Partial match: X | |
| 9418 | X3\P | |
| 9419 | Partial match: X3 | |
| 9420 | X33\P | |
| 9421 | Partial match: X33 | |
| 9422 | X333\P | |
| 9423 | Partial match: X333 | |
| 9424 | X3333\P | |
| 9425 | Partial match: X3333 | |
| 9426 | ||
| 9427 | /X\d{2,4}+b/ | |
| 9428 | X\P | |
| 9429 | Partial match: X | |
| 9430 | X3\P | |
| 9431 | Partial match: X3 | |
| 9432 | X33\P | |
| 9433 | Partial match: X33 | |
| 9434 | X333\P | |
| 9435 | Partial match: X333 | |
| 9436 | X3333\P | |
| 9437 | Partial match: X3333 | |
| 9438 | ||
| 9439 | /X\D{2,4}b/ | |
| 9440 | X\P | |
| 9441 | Partial match: X | |
| 9442 | Xa\P | |
| 9443 | Partial match: Xa | |
| 9444 | Xaa\P | |
| 9445 | Partial match: Xaa | |
| 9446 | Xaaa\P | |
| 9447 | Partial match: Xaaa | |
| 9448 | Xaaaa\P | |
| 9449 | Partial match: Xaaaa | |
| 9450 | ||
| 9451 | /X\D{2,4}?b/ | |
| 9452 | X\P | |
| 9453 | Partial match: X | |
| 9454 | Xa\P | |
| 9455 | Partial match: Xa | |
| 9456 | Xaa\P | |
| 9457 | Partial match: Xaa | |
| 9458 | Xaaa\P | |
| 9459 | Partial match: Xaaa | |
| 9460 | Xaaaa\P | |
| 9461 | Partial match: Xaaaa | |
| 9462 | ||
| 9463 | /X\D{2,4}+b/ | |
| 9464 | X\P | |
| 9465 | Partial match: X | |
| 9466 | Xa\P | |
| 9467 | Partial match: Xa | |
| 9468 | Xaa\P | |
| 9469 | Partial match: Xaa | |
| 9470 | Xaaa\P | |
| 9471 | Partial match: Xaaa | |
| 9472 | Xaaaa\P | |
| 9473 | Partial match: Xaaaa | |
| 9474 | ||
| 9475 | /X[abc]{2,4}b/ | |
| 9476 | X\P | |
| 9477 | Partial match: X | |
| 9478 | Xa\P | |
| 9479 | Partial match: Xa | |
| 9480 | Xaa\P | |
| 9481 | Partial match: Xaa | |
| 9482 | Xaaa\P | |
| 9483 | Partial match: Xaaa | |
| 9484 | Xaaaa\P | |
| 9485 | Partial match: Xaaaa | |
| 9486 | ||
| 9487 | /X[abc]{2,4}?b/ | |
| 9488 | X\P | |
| 9489 | Partial match: X | |
| 9490 | Xa\P | |
| 9491 | Partial match: Xa | |
| 9492 | Xaa\P | |
| 9493 | Partial match: Xaa | |
| 9494 | Xaaa\P | |
| 9495 | Partial match: Xaaa | |
| 9496 | Xaaaa\P | |
| 9497 | Partial match: Xaaaa | |
| 9498 | ||
| 9499 | /X[abc]{2,4}+b/ | |
| 9500 | X\P | |
| 9501 | Partial match: X | |
| 9502 | Xa\P | |
| 9503 | Partial match: Xa | |
| 9504 | Xaa\P | |
| 9505 | Partial match: Xaa | |
| 9506 | Xaaa\P | |
| 9507 | Partial match: Xaaa | |
| 9508 | Xaaaa\P | |
| 9509 | Partial match: Xaaaa | |
| 9510 | ||
| 9511 | /X[^a]{2,4}b/ | |
| 9512 | X\P | |
| 9513 | Partial match: X | |
| 9514 | Xz\P | |
| 9515 | Partial match: Xz | |
| 9516 | Xzz\P | |
| 9517 | Partial match: Xzz | |
| 9518 | Xzzz\P | |
| 9519 | Partial match: Xzzz | |
| 9520 | Xzzzz\P | |
| 9521 | Partial match: Xzzzz | |
| 9522 | ||
| 9523 | /X[^a]{2,4}?b/ | |
| 9524 | X\P | |
| 9525 | Partial match: X | |
| 9526 | Xz\P | |
| 9527 | Partial match: Xz | |
| 9528 | Xzz\P | |
| 9529 | Partial match: Xzz | |
| 9530 | Xzzz\P | |
| 9531 | Partial match: Xzzz | |
| 9532 | Xzzzz\P | |
| 9533 | Partial match: Xzzzz | |
| 9534 | ||
| 9535 | /X[^a]{2,4}+b/ | |
| 9536 | X\P | |
| 9537 | Partial match: X | |
| 9538 | Xz\P | |
| 9539 | Partial match: Xz | |
| 9540 | Xzz\P | |
| 9541 | Partial match: Xzz | |
| 9542 | Xzzz\P | |
| 9543 | Partial match: Xzzz | |
| 9544 | Xzzzz\P | |
| 9545 | Partial match: Xzzzz | |
| 9546 | ||
| 9547 | /(Y)X\1{2,4}b/ | |
| 9548 | YX\P | |
| 9549 | Partial match: YX | |
| 9550 | YXY\P | |
| 9551 | Partial match: YXY | |
| 9552 | YXYY\P | |
| 9553 | Partial match: YXYY | |
| 9554 | YXYYY\P | |
| 9555 | Partial match: YXYYY | |
| 9556 | YXYYYY\P | |
| 9557 | Partial match: YXYYYY | |
| 9558 | ||
| 9559 | /(Y)X\1{2,4}?b/ | |
| 9560 | YX\P | |
| 9561 | Partial match: YX | |
| 9562 | YXY\P | |
| 9563 | Partial match: YXY | |
| 9564 | YXYY\P | |
| 9565 | Partial match: YXYY | |
| 9566 | YXYYY\P | |
| 9567 | Partial match: YXYYY | |
| 9568 | YXYYYY\P | |
| 9569 | Partial match: YXYYYY | |
| 9570 | ||
| 9571 | /(Y)X\1{2,4}+b/ | |
| 9572 | YX\P | |
| 9573 | Partial match: YX | |
| 9574 | YXY\P | |
| 9575 | Partial match: YXY | |
| 9576 | YXYY\P | |
| 9577 | Partial match: YXYY | |
| 9578 | YXYYY\P | |
| 9579 | Partial match: YXYYY | |
| 9580 | YXYYYY\P | |
| 9581 | Partial match: YXYYYY | |
| 9582 | ||
| 9583 | /\++\KZ|\d+X|9+Y/ | |
| 9584 | ++++123999\P | |
| 9585 | Partial match: 123999 | |
| 9586 | ++++123999Y\P | |
| 9587 | 0: 999Y | |
| 9588 | ++++Z1234\P | |
| 9589 | 0: Z | |
| 9590 | ||
| 9591 | /^X(?7)(a)(?|(b|(r)(s))|(q))(c)(d)(Y)/ | /Z(*F)/ |
| 9592 | XYabcdY | Z\P |
| 9593 | 0: XYabcdY | No match |
| 9594 | 1: a | ZA\P |
| 9595 | 2: b | No match |
| 9596 | 3: <unset> | |
| 9597 | 4: <unset> | /Z(?!)/ |
| 9598 | 5: c | Z\P |
| 9599 | 6: d | No match |
| 9600 | 7: Y | ZA\P |
| 9601 | No match | |
| 9602 | ||
| 9603 | /^X(?7)(a)(?|(b|(?|(r)|(t))(s))|(q))(c)(d)(Y)/ | /dog(sbody)?/ |
| 9604 | XYabcdY | dogs\P |
| 9605 | 0: XYabcdY | 0: dog |
| 9606 | 1: a | dogs\P\P |
| 9607 | 2: b | Partial match: dogs |
| 9608 | 3: <unset> | |
| 9609 | 4: <unset> | /dog(sbody)??/ |
| 9610 | 5: c | dogs\P |
| 9611 | 6: d | 0: dog |
| 9612 | 7: Y | dogs\P\P |
| 9613 | 0: dog | |
| 9614 | ||
| 9615 | /dog|dogsbody/ | |
| 9616 | dogs\P | |
| 9617 | 0: dog | |
| 9618 | dogs\P\P | |
| 9619 | 0: dog | |
| 9620 | ||
| 9621 | /dogsbody|dog/ | |
| 9622 | dogs\P | |
| 9623 | 0: dog | |
| 9624 | dogs\P\P | |
| 9625 | Partial match: dogs | |
| 9626 | ||
| 9627 | /\bthe cat\b/ | |
| 9628 | the cat\P | |
| 9629 | 0: the cat | |
| 9630 | the cat\P\P | |
| 9631 | Partial match: the cat | |
| 9632 | ||
| 9633 | /abc/ | |
| 9634 | abc\P | |
| 9635 | 0: abc | |
| 9636 | abc\P\P | |
| 9637 | 0: abc | |
| 9638 | ||
| 9639 | /\w+A/P | |
| 9640 | CDAAAAB | |
| 9641 | 0: CDAAAA | |
| 9642 | ||
| 9643 | /\w+A/PU | |
| 9644 | CDAAAAB | |
| 9645 | 0: CDA | |
| 9646 | ||
| 9647 | /abc\K123/ | |
| 9648 | xyzabc123pqr | |
| 9649 | 0: 123 | |
| 9650 | xyzabc12\P | |
| 9651 | Partial match: abc12 | |
| 9652 | xyzabc12\P\P | |
| 9653 | Partial match: abc12 | |
| 9654 | ||
| 9655 | /(?<=abc)123/ | |
| 9656 | xyzabc123pqr | |
| 9657 | 0: 123 | |
| 9658 | xyzabc12\P | |
| 9659 | Partial match: abc12 | |
| 9660 | xyzabc12\P\P | |
| 9661 | Partial match: abc12 | |
| 9662 | ||
| 9663 | /\babc\b/ | |
| 9664 | +++abc+++ | |
| 9665 | 0: abc | |
| 9666 | +++ab\P | |
| 9667 | Partial match: +ab | |
| 9668 | +++ab\P\P | |
| 9669 | Partial match: +ab | |
| 9670 | ||
| 9671 | /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ | |
| 9672 | ------------------------------------------------------------------ | |
| 9673 | Bra | |
| 9674 | Once | |
| 9675 | Recurse | |
| 9676 | Ket | |
| 9677 | Once | |
| 9678 | Recurse | |
| 9679 | Ket | |
| 9680 | Cond | |
| 9681 | Cond def | |
| 9682 | CBra 1 | |
| 9683 | < | |
| 9684 | [^m] | |
| 9685 | [^>] | |
| 9686 | > | |
| 9687 | [^<] | |
| 9688 | Ket | |
| 9689 | CBra 2 | |
| 9690 | \w*+ | |
| 9691 | Ket | |
| 9692 | Ket | |
| 9693 | Ket | |
| 9694 | End | |
| 9695 | ------------------------------------------------------------------ | |
| 9696 | ||
| 9697 | /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ | |
| 9698 | ------------------------------------------------------------------ | |
| 9699 | Bra | |
| 9700 | Once | |
| 9701 | Recurse | |
| 9702 | Ket | |
| 9703 | Once | |
| 9704 | Recurse | |
| 9705 | Ket | |
| 9706 | Cond | |
| 9707 | Cond def | |
| 9708 | CBra 1 | |
| 9709 | < | |
| 9710 | [\x00-/:-\xff] (neg) | |
| 9711 | [^>] | |
| 9712 | > | |
| 9713 | [^<] | |
| 9714 | Ket | |
| 9715 | CBra 2 | |
| 9716 | \w*+ | |
| 9717 | Ket | |
| 9718 | Ket | |
| 9719 | Ket | |
| 9720 | End | |
| 9721 | ------------------------------------------------------------------ | |
| 9722 | ||
| 9723 | /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ | |
| 9724 | ------------------------------------------------------------------ | |
| 9725 | Bra | |
| 9726 | CBra 1 | |
| 9727 | ab | |
| 9728 | Ket | |
| 9729 | CBra 2 | |
| 9730 | x | |
| 9731 | CBra 3 | |
| 9732 | y | |
| 9733 | Ket | |
| 9734 | z | |
| 9735 | CBra 4 | |
| 9736 | cd | |
| 9737 | Close 4 | |
| 9738 | Close 2 | |
| 9739 | *ACCEPT | |
| 9740 | Ket | |
| 9741 | Ket | |
| 9742 | pq | |
| 9743 | Ket | |
| 9744 | End | |
| 9745 | ------------------------------------------------------------------ | |
| 9746 | ||
| 9747 | /abc\K/+ | |
| 9748 | abcdef | |
| 9749 | 0: | |
| 9750 | 0+ def | |
| 9751 | abcdef\N\N | |
| 9752 | 0: | |
| 9753 | 0+ def | |
| 9754 | xyzabcdef\N\N | |
| 9755 | 0: | |
| 9756 | 0+ def | |
| 9757 | ** Failers | |
| 9758 | No match | |
| 9759 | abcdef\N | |
| 9760 | No match | |
| 9761 | xyzabcdef\N | |
| 9762 | No match | |
| 9763 | ||
| 9764 | /^(?:(?=abc)|abc\K)/+ | |
| 9765 | abcdef | |
| 9766 | 0: | |
| 9767 | 0+ abcdef | |
| 9768 | abcdef\N\N | |
| 9769 | 0: | |
| 9770 | 0+ def | |
| 9771 | ** Failers | |
| 9772 | No match | |
| 9773 | abcdef\N | |
| 9774 | No match | |
| 9775 | ||
| 9776 | /a?b?/+ | |
| 9777 | xyz | |
| 9778 | 0: | |
| 9779 | 0+ xyz | |
| 9780 | xyzabc | |
| 9781 | 0: | |
| 9782 | 0+ xyzabc | |
| 9783 | xyzabc\N | |
| 9784 | 0: ab | |
| 9785 | 0+ c | |
| 9786 | xyzabc\N\N | |
| 9787 | 0: | |
| 9788 | 0+ yzabc | |
| 9789 | xyz\N\N | |
| 9790 | 0: | |
| 9791 | 0+ yz | |
| 9792 | ** Failers | |
| 9793 | 0: | |
| 9794 | 0+ ** Failers | |
| 9795 | xyz\N | |
| 9796 | No match | |
| 9797 | ||
| 9798 | /^a?b?/+ | |
| 9799 | xyz | |
| 9800 | 0: | |
| 9801 | 0+ xyz | |
| 9802 | xyzabc | |
| 9803 | 0: | |
| 9804 | 0+ xyzabc | |
| 9805 | ** Failers | |
| 9806 | 0: | |
| 9807 | 0+ ** Failers | |
| 9808 | xyzabc\N | |
| 9809 | No match | |
| 9810 | xyzabc\N\N | |
| 9811 | No match | |
| 9812 | xyz\N\N | |
| 9813 | No match | |
| 9814 | xyz\N | |
| 9815 | No match | |
| 9816 | ||
| 9817 | /^(?<name>a|b\g<name>c)/ | |
| 9818 | aaaa | |
| 9819 | 0: a | |
| 9820 | 1: a | |
| 9821 | bacxxx | |
| 9822 | 0: bac | |
| 9823 | 1: bac | |
| 9824 | bbaccxxx | |
| 9825 | 0: bbacc | |
| 9826 | 1: bbacc | |
| 9827 | bbbacccxx | |
| 9828 | 0: bbbaccc | |
| 9829 | 1: bbbaccc | |
| 9830 | ||
| 9831 | /^(?<name>a|b\g'name'c)/ | |
| 9832 | aaaa | |
| 9833 | 0: a | |
| 9834 | 1: a | |
| 9835 | bacxxx | |
| 9836 | 0: bac | |
| 9837 | 1: bac | |
| 9838 | bbaccxxx | |
| 9839 | 0: bbacc | |
| 9840 | 1: bbacc | |
| 9841 | bbbacccxx | |
| 9842 | 0: bbbaccc | |
| 9843 | 1: bbbaccc | |
| 9844 | ||
| 9845 | /^(a|b\g<1>c)/ | |
| 9846 | aaaa | |
| 9847 | 0: a | |
| 9848 | 1: a | |
| 9849 | bacxxx | |
| 9850 | 0: bac | |
| 9851 | 1: bac | |
| 9852 | bbaccxxx | |
| 9853 | 0: bbacc | |
| 9854 | 1: bbacc | |
| 9855 | bbbacccxx | |
| 9856 | 0: bbbaccc | |
| 9857 | 1: bbbaccc | |
| 9858 | ||
| 9859 | /^(a|b\g'1'c)/ | |
| 9860 | aaaa | |
| 9861 | 0: a | |
| 9862 | 1: a | |
| 9863 | bacxxx | |
| 9864 | 0: bac | |
| 9865 | 1: bac | |
| 9866 | bbaccxxx | |
| 9867 | 0: bbacc | |
| 9868 | 1: bbacc | |
| 9869 | bbbacccxx | |
| 9870 | 0: bbbaccc | |
| 9871 | 1: bbbaccc | |
| 9872 | ||
| 9873 | /^(a|b\g'-1'c)/ | |
| 9874 | aaaa | |
| 9875 | 0: a | |
| 9876 | 1: a | |
| 9877 | bacxxx | |
| 9878 | 0: bac | |
| 9879 | 1: bac | |
| 9880 | bbaccxxx | |
| 9881 | 0: bbacc | |
| 9882 | 1: bbacc | |
| 9883 | bbbacccxx | |
| 9884 | 0: bbbaccc | |
| 9885 | 1: bbbaccc | |
| 9886 | ||
| 9887 | /(^(a|b\g<-1>c))/ | |
| 9888 | aaaa | |
| 9889 | 0: a | |
| 9890 | 1: a | |
| 9891 | 2: a | |
| 9892 | bacxxx | |
| 9893 | 0: bac | |
| 9894 | 1: bac | |
| 9895 | 2: bac | |
| 9896 | bbaccxxx | |
| 9897 | 0: bbacc | |
| 9898 | 1: bbacc | |
| 9899 | 2: bbacc | |
| 9900 | bbbacccxx | |
| 9901 | 0: bbbaccc | |
| 9902 | 1: bbbaccc | |
| 9903 | 2: bbbaccc | |
| 9904 | ||
| 9905 | /(?-i:\g<name>)(?i:(?<name>a))/ | |
| 9906 | XaaX | |
| 9907 | 0: aa | |
| 9908 | 1: a | |
| 9909 | XAAX | |
| 9910 | 0: AA | |
| 9911 | 1: A | |
| 9912 | ||
| 9913 | /(?i:\g<name>)(?-i:(?<name>a))/ | |
| 9914 | XaaX | |
| 9915 | 0: aa | |
| 9916 | 1: a | |
| 9917 | ** Failers | |
| 9918 | No match | |
| 9919 | XAAX | |
| 9920 | No match | |
| 9921 | ||
| 9922 | /(?-i:\g<+1>)(?i:(a))/ | |
| 9923 | XaaX | |
| 9924 | 0: aa | |
| 9925 | 1: a | |
| 9926 | XAAX | |
| 9927 | 0: AA | |
| 9928 | 1: A | |
| 9929 | ||
| 9930 | /(?=(?<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>\})\}))\{/ | |
| 9931 | ||
| 9932 | /(?<n>a|b|c)\g<n>*/ | |
| 9933 | abc | |
| 9934 | 0: abc | |
| 9935 | 1: a | |
| 9936 | accccbbb | |
| 9937 | 0: accccbbb | |
| 9938 | 1: a | |
| 9939 | ||
| 9940 | /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/ | |
| 9941 | XYabcdY | |
| 9942 | 0: XYabcdY | |
| 9943 | 1: a | |
| 9944 | 2: b | |
| 9945 | 3: <unset> | |
| 9946 | 4: <unset> | |
| 9947 | 5: c | |
| 9948 | 6: d | |
| 9949 | 7: Y | |
| 9950 | ||
| 9951 | /(?<=b(?1)|zzz)(a)/ | |
| 9952 | xbaax | |
| 9953 | 0: a | |
| 9954 | 1: a | |
| 9955 | xzzzax | |
| 9956 | 0: a | |
| 9957 | 1: a | |
| 9958 | ||
| 9959 | /(a)(?<=b\1)/ | |
| 9960 | Failed: lookbehind assertion is not fixed length at offset 10 | |
| 9961 | ||
| 9962 | /(a)(?<=b+(?1))/ | |
| 9963 | Failed: lookbehind assertion is not fixed length at offset 13 | |
| 9964 | ||
| 9965 | /(a+)(?<=b(?1))/ | |
| 9966 | Failed: lookbehind assertion is not fixed length at offset 14 | |
| 9967 | ||
| 9968 | /(a(?<=b(?1)))/ | |
| 9969 | Failed: lookbehind assertion is not fixed length at offset 13 | |
| 9970 | ||
| 9971 | /(?<=b(?1))xyz/ | |
| 9972 | Failed: reference to non-existent subpattern at offset 8 | |
| 9973 | ||
| 9974 | /(?<=b(?1))xyz(b+)pqrstuvew/ | |
| 9975 | Failed: lookbehind assertion is not fixed length at offset 26 | |
| 9976 | ||
| 9977 | /(a|bc)\1/SI | |
| 9978 | Capturing subpattern count = 1 | |
| 9979 | Max back reference = 1 | |
| 9980 | No options | |
| 9981 | No first char | |
| 9982 | No need char | |
| 9983 | Subject length lower bound = 2 | |
| 9984 | Starting byte set: a b | |
| 9985 | ||
| 9986 | /(a|bc)\1{2,3}/SI | |
| 9987 | Capturing subpattern count = 1 | |
| 9988 | Max back reference = 1 | |
| 9989 | No options | |
| 9990 | No first char | |
| 9991 | No need char | |
| 9992 | Subject length lower bound = 3 | |
| 9993 | Starting byte set: a b | |
| 9994 | ||
| 9995 | /(a|bc)(?1)/SI | |
| 9996 | Capturing subpattern count = 1 | |
| 9997 | No options | |
| 9998 | No first char | |
| 9999 | No need char | |
| 10000 | Subject length lower bound = 2 | |
| 10001 | Starting byte set: a b | |
| 10002 | ||
| 10003 | /(a|b\1)(a|b\1)/SI | |
| 10004 | Capturing subpattern count = 2 | |
| 10005 | Max back reference = 1 | |
| 10006 | No options | |
| 10007 | No first char | |
| 10008 | No need char | |
| 10009 | Subject length lower bound = 2 | |
| 10010 | Starting byte set: a b | |
| 10011 | ||
| 10012 | /(a|b\1){2}/SI | |
| 10013 | Capturing subpattern count = 1 | |
| 10014 | Max back reference = 1 | |
| 10015 | No options | |
| 10016 | No first char | |
| 10017 | No need char | |
| 10018 | Subject length lower bound = 2 | |
| 10019 | Starting byte set: a b | |
| 10020 | ||
| 10021 | /(a|bbbb\1)(a|bbbb\1)/SI | |
| 10022 | Capturing subpattern count = 2 | |
| 10023 | Max back reference = 1 | |
| 10024 | No options | |
| 10025 | No first char | |
| 10026 | No need char | |
| 10027 | Subject length lower bound = 2 | |
| 10028 | Starting byte set: a b | |
| 10029 | ||
| 10030 | /(a|bbbb\1){2}/SI | |
| 10031 | Capturing subpattern count = 1 | |
| 10032 | Max back reference = 1 | |
| 10033 | No options | |
| 10034 | No first char | |
| 10035 | No need char | |
| 10036 | Subject length lower bound = 2 | |
| 10037 | Starting byte set: a b | |
| 10038 | ||
| 10039 | /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/SI | |
| 10040 | Capturing subpattern count = 1 | |
| 10041 | Options: anchored | |
| 10042 | No first char | |
| 10043 | Need char = ':' | |
| 10044 | Subject length lower bound = 22 | |
| 10045 | No set of starting bytes | |
| 10046 | ||
| 10047 | / (?: [\040\t] | \( | |
| 10048 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10049 | \) )* # optional leading comment | |
| 10050 | (?: (?: | |
| 10051 | [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| 10052 | (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| 10053 | | | |
| 10054 | " (?: # opening quote... | |
| 10055 | [^\\\x80-\xff\n\015"] # Anything except backslash and quote | |
| 10056 | | # or | |
| 10057 | \\ [^\x80-\xff] # Escaped something (something != CR) | |
| 10058 | )* " # closing quote | |
| 10059 | ) # initial word | |
| 10060 | (?: (?: [\040\t] | \( | |
| 10061 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10062 | \) )* \. (?: [\040\t] | \( | |
| 10063 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10064 | \) )* (?: | |
| 10065 | [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| 10066 | (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| 10067 | | | |
| 10068 | " (?: # opening quote... | |
| 10069 | [^\\\x80-\xff\n\015"] # Anything except backslash and quote | |
| 10070 | | # or | |
| 10071 | \\ [^\x80-\xff] # Escaped something (something != CR) | |
| 10072 | )* " # closing quote | |
| 10073 | ) )* # further okay, if led by a period | |
| 10074 | (?: [\040\t] | \( | |
| 10075 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10076 | \) )* @ (?: [\040\t] | \( | |
| 10077 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10078 | \) )* (?: | |
| 10079 | [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| 10080 | (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| 10081 | | \[ # [ | |
| 10082 | (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| 10083 | \] # ] | |
| 10084 | ) # initial subdomain | |
| 10085 | (?: # | |
| 10086 | (?: [\040\t] | \( | |
| 10087 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10088 | \) )* \. # if led by a period... | |
| 10089 | (?: [\040\t] | \( | |
| 10090 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10091 | \) )* (?: | |
| 10092 | [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| 10093 | (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| 10094 | | \[ # [ | |
| 10095 | (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| 10096 | \] # ] | |
| 10097 | ) # ...further okay | |
| 10098 | )* | |
| 10099 | # address | |
| 10100 | | # or | |
| 10101 | (?: | |
| 10102 | [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| 10103 | (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| 10104 | | | |
| 10105 | " (?: # opening quote... | |
| 10106 | [^\\\x80-\xff\n\015"] # Anything except backslash and quote | |
| 10107 | | # or | |
| 10108 | \\ [^\x80-\xff] # Escaped something (something != CR) | |
| 10109 | )* " # closing quote | |
| 10110 | ) # one word, optionally followed by.... | |
| 10111 | (?: | |
| 10112 | [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or... | |
| 10113 | \( | |
| 10114 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10115 | \) | # comments, or... | |
| 10116 | ||
| 10117 | " (?: # opening quote... | |
| 10118 | [^\\\x80-\xff\n\015"] # Anything except backslash and quote | |
| 10119 | | # or | |
| 10120 | \\ [^\x80-\xff] # Escaped something (something != CR) | |
| 10121 | )* " # closing quote | |
| 10122 | # quoted strings | |
| 10123 | )* | |
| 10124 | < (?: [\040\t] | \( | |
| 10125 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10126 | \) )* # leading < | |
| 10127 | (?: @ (?: [\040\t] | \( | |
| 10128 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10129 | \) )* (?: | |
| 10130 | [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| 10131 | (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| 10132 | | \[ # [ | |
| 10133 | (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| 10134 | \] # ] | |
| 10135 | ) # initial subdomain | |
| 10136 | (?: # | |
| 10137 | (?: [\040\t] | \( | |
| 10138 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10139 | \) )* \. # if led by a period... | |
| 10140 | (?: [\040\t] | \( | |
| 10141 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10142 | \) )* (?: | |
| 10143 | [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| 10144 | (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| 10145 | | \[ # [ | |
| 10146 | (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| 10147 | \] # ] | |
| 10148 | ) # ...further okay | |
| 10149 | )* | |
| 10150 | ||
| 10151 | (?: (?: [\040\t] | \( | |
| 10152 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10153 | \) )* , (?: [\040\t] | \( | |
| 10154 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10155 | \) )* @ (?: [\040\t] | \( | |
| 10156 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10157 | \) )* (?: | |
| 10158 | [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| 10159 | (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| 10160 | | \[ # [ | |
| 10161 | (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| 10162 | \] # ] | |
| 10163 | ) # initial subdomain | |
| 10164 | (?: # | |
| 10165 | (?: [\040\t] | \( | |
| 10166 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10167 | \) )* \. # if led by a period... | |
| 10168 | (?: [\040\t] | \( | |
| 10169 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10170 | \) )* (?: | |
| 10171 | [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| 10172 | (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| 10173 | | \[ # [ | |
| 10174 | (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| 10175 | \] # ] | |
| 10176 | ) # ...further okay | |
| 10177 | )* | |
| 10178 | )* # further okay, if led by comma | |
| 10179 | : # closing colon | |
| 10180 | (?: [\040\t] | \( | |
| 10181 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10182 | \) )* )? # optional route | |
| 10183 | (?: | |
| 10184 | [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| 10185 | (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| 10186 | | | |
| 10187 | " (?: # opening quote... | |
| 10188 | [^\\\x80-\xff\n\015"] # Anything except backslash and quote | |
| 10189 | | # or | |
| 10190 | \\ [^\x80-\xff] # Escaped something (something != CR) | |
| 10191 | )* " # closing quote | |
| 10192 | ) # initial word | |
| 10193 | (?: (?: [\040\t] | \( | |
| 10194 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10195 | \) )* \. (?: [\040\t] | \( | |
| 10196 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10197 | \) )* (?: | |
| 10198 | [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| 10199 | (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| 10200 | | | |
| 10201 | " (?: # opening quote... | |
| 10202 | [^\\\x80-\xff\n\015"] # Anything except backslash and quote | |
| 10203 | | # or | |
| 10204 | \\ [^\x80-\xff] # Escaped something (something != CR) | |
| 10205 | )* " # closing quote | |
| 10206 | ) )* # further okay, if led by a period | |
| 10207 | (?: [\040\t] | \( | |
| 10208 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10209 | \) )* @ (?: [\040\t] | \( | |
| 10210 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10211 | \) )* (?: | |
| 10212 | [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| 10213 | (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| 10214 | | \[ # [ | |
| 10215 | (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| 10216 | \] # ] | |
| 10217 | ) # initial subdomain | |
| 10218 | (?: # | |
| 10219 | (?: [\040\t] | \( | |
| 10220 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10221 | \) )* \. # if led by a period... | |
| 10222 | (?: [\040\t] | \( | |
| 10223 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10224 | \) )* (?: | |
| 10225 | [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
| 10226 | (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
| 10227 | | \[ # [ | |
| 10228 | (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
| 10229 | \] # ] | |
| 10230 | ) # ...further okay | |
| 10231 | )* | |
| 10232 | # address spec | |
| 10233 | (?: [\040\t] | \( | |
| 10234 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10235 | \) )* > # trailing > | |
| 10236 | # name and address | |
| 10237 | ) (?: [\040\t] | \( | |
| 10238 | (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
| 10239 | \) )* # optional trailing comment | |
| 10240 | /xSI | |
| 10241 | Capturing subpattern count = 0 | |
| 10242 | Contains explicit CR or LF match | |
| 10243 | Options: extended | |
| 10244 | No first char | |
| 10245 | No need char | |
| 10246 | Subject length lower bound = 3 | |
| 10247 | Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8 | |
| 10248 | 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 ^ _ ` a b c d e | |
| 10249 | f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f | |
| 10250 | ||
| 10251 | /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS | |
| 10252 | Capturing subpattern count = 11 | |
| 10253 | Options: caseless dotall | |
| 10254 | First char = '<' | |
| 10255 | Need char = '>' | |
| 10256 | Subject length lower bound = 47 | |
| 10257 | No set of starting bytes | |
| 10258 | ||
| 10259 | "(?>.*/)foo"SI | |
| 10260 | Capturing subpattern count = 0 | |
| 10261 | No options | |
| 10262 | First char at start or follows newline | |
| 10263 | Need char = 'o' | |
| 10264 | Subject length lower bound = 4 | |
| 10265 | No set of starting bytes | |
| 10266 | ||
| 10267 | /(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /xSI | |
| 10268 | Capturing subpattern count = 0 | |
| 10269 | Options: extended | |
| 10270 | No first char | |
| 10271 | Need char = '-' | |
| 10272 | Subject length lower bound = 8 | |
| 10273 | No set of starting bytes | |
| 10274 | ||
| 10275 | /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI | |
| 10276 | Capturing subpattern count = 1 | |
| 10277 | Options: caseless | |
| 10278 | No first char | |
| 10279 | No need char | |
| 10280 | Subject length lower bound = 1 | |
| 10281 | Starting byte set: A B C a b c | |
| 10282 | ||
| 10283 | /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI | |
| 10284 | Capturing subpattern count = 0 | |
| 10285 | No options | |
| 10286 | No first char | |
| 10287 | Need char = 'b' | |
| 10288 | Subject length lower bound = 41 | |
| 10289 | Starting byte set: c d | |
| 10290 | ||
| 10291 | /<a[\s]+href[\s]*=[\s]* # find <a href= | |
| 10292 | ([\"\'])? # find single or double quote | |
| 10293 | (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching | |
| 10294 | # quote, otherwise match up to next space | |
| 10295 | /isxSI | |
| 10296 | Capturing subpattern count = 3 | |
| 10297 | Max back reference = 1 | |
| 10298 | Options: caseless extended dotall | |
| 10299 | First char = '<' | |
| 10300 | Need char = '=' | |
| 10301 | Subject length lower bound = 9 | |
| 10302 | No set of starting bytes | |
| 10303 | ||
| 10304 | /^(?!:) # colon disallowed at start | |
| 10305 | (?: # start of item | |
| 10306 | (?: [0-9a-f]{1,4} | # 1-4 hex digits or | |
| 10307 | (?(1)0 | () ) ) # if null previously matched, fail; else null | |
| 10308 | : # followed by colon | |
| 10309 | ){1,7} # end item; 1-7 of them required | |
| 10310 | [0-9a-f]{1,4} $ # final hex number at end of string | |
| 10311 | (?(1)|.) # check that there was an empty component | |
| 10312 | /xiIS | |
| 10313 | Capturing subpattern count = 1 | |
| 10314 | Options: anchored caseless extended | |
| 10315 | No first char | |
| 10316 | Need char = ':' | |
| 10317 | Subject length lower bound = 2 | |
| 10318 | No set of starting bytes | |
| 10319 | ||
| 10320 | /(?|(?<a>A)|(?<a>B))/I | |
| 10321 | Capturing subpattern count = 1 | |
| 10322 | Named capturing subpatterns: | |
| 10323 | a 1 | |
| 10324 | a 1 | |
| 10325 | No options | |
| 10326 | No first char | |
| 10327 | No need char | |
| 10328 | AB\Ca | |
| 10329 | 0: A | |
| 10330 | 1: A | |
| 10331 | C A (1) a | |
| 10332 | BA\Ca | |
| 10333 | 0: B | |
| 10334 | 1: B | |
| 10335 | C B (1) a | |
| 10336 | ||
| 10337 | /(?|(?<a>A)|(?<b>B))/ | |
| 10338 | Failed: different names for subpatterns of the same number are not allowed at offset 15 | |
| 10339 | ||
| 10340 | /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) | | |
| 10341 | b(?<quote> (?<apostrophe>')|(?<realquote>")) ) | |
| 10342 | (?('quote')[a-z]+|[0-9]+)/JIx | |
| 10343 | Capturing subpattern count = 6 | |
| 10344 | Named capturing subpatterns: | |
| 10345 | apostrophe 2 | |
| 10346 | apostrophe 5 | |
| 10347 | quote 1 | |
| 10348 | quote 4 | |
| 10349 | realquote 3 | |
| 10350 | realquote 6 | |
| 10351 | Options: extended dupnames | |
| 10352 | No first char | |
| 10353 | No need char | |
| 10354 | a"aaaaa | |
| 10355 | 0: a"aaaaa | |
| 10356 | 1: " | |
| 10357 | 2: <unset> | |
| 10358 | 3: " | |
| 10359 | b"aaaaa | |
| 10360 | 0: b"aaaaa | |
| 10361 | 1: <unset> | |
| 10362 | 2: <unset> | |
| 10363 | 3: <unset> | |
| 10364 | 4: " | |
| 10365 | 5: <unset> | |
| 10366 | 6: " | |
| 10367 | ** Failers | |
| 10368 | No match | |
| 10369 | b"11111 | |
| 10370 | No match | |
| 10371 | a"11111 | |
| 10372 | No match | |
| 10373 | ||
| 10374 | /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx | |
| 10375 | ------------------------------------------------------------------ | |
| 10376 | Bra | |
| 10377 | ^ | |
| 10378 | Bra | |
| 10379 | CBra 1 | |
| 10380 | a | |
| 10381 | Ket | |
| 10382 | CBra 2 | |
| 10383 | b | |
| 10384 | Ket | |
| 10385 | CBra 3 | |
| 10386 | c | |
| 10387 | Ket | |
| 10388 | CBra 4 | |
| 10389 | d | |
| 10390 | Ket | |
| 10391 | Alt | |
| 10392 | CBra 1 | |
| 10393 | e | |
| 10394 | Ket | |
| 10395 | Ket | |
| 10396 | Cond | |
| 10397 | 4 Cond nref | |
| 10398 | X | |
| 10399 | Alt | |
| 10400 | Y | |
| 10401 | Ket | |
| 10402 | Ket | |
| 10403 | End | |
| 10404 | ------------------------------------------------------------------ | |
| 10405 | Capturing subpattern count = 4 | |
| 10406 | Named capturing subpatterns: | |
| 10407 | D 4 | |
| 10408 | D 1 | |
| 10409 | Options: anchored extended dupnames | |
| 10410 | No first char | |
| 10411 | No need char | |
| 10412 | abcdX | |
| 10413 | 0: abcdX | |
| 10414 | 1: a | |
| 10415 | 2: b | |
| 10416 | 3: c | |
| 10417 | 4: d | |
| 10418 | eX | |
| 10419 | 0: eX | |
| 10420 | 1: e | |
| 10421 | ** Failers | |
| 10422 | No match | |
| 10423 | abcdY | |
| 10424 | No match | |
| 10425 | ey | |
| 10426 | No match | |
| 10427 | ||
| 10428 | /(?<A>a) (b)(c) (?<A>d (?(R&A)$ | (?4)) )/JDZx | |
| 10429 | ------------------------------------------------------------------ | |
| 10430 | Bra | |
| 10431 | CBra 1 | |
| 10432 | a | |
| 10433 | Ket | |
| 10434 | CBra 2 | |
| 10435 | b | |
| 10436 | Ket | |
| 10437 | CBra 3 | |
| 10438 | c | |
| 10439 | Ket | |
| 10440 | CBra 4 | |
| 10441 | d | |
| 10442 | Cond | |
| 10443 | Cond nrecurse 1 | |
| 10444 | $ | |
| 10445 | Alt | |
| 10446 | Once | |
| 10447 | Recurse | |
| 10448 | Ket | |
| 10449 | Ket | |
| 10450 | Ket | |
| 10451 | Ket | |
| 10452 | End | |
| 10453 | ------------------------------------------------------------------ | |
| 10454 | Capturing subpattern count = 4 | |
| 10455 | Named capturing subpatterns: | |
| 10456 | A 1 | |
| 10457 | A 4 | |
| 10458 | Options: extended dupnames | |
| 10459 | First char = 'a' | |
| 10460 | Need char = 'd' | |
| 10461 | abcdd | |
| 10462 | 0: abcdd | |
| 10463 | 1: a | |
| 10464 | 2: b | |
| 10465 | 3: c | |
| 10466 | 4: dd | |
| 10467 | ** Failers | |
| 10468 | No match | |
| 10469 | abcdde | |
| 10470 | No match | |
| 10471 | ||
| 10472 | /abcd*/ | |
| 10473 | xxxxabcd\P | |
| 10474 | 0: abcd | |
| 10475 | xxxxabcd\P\P | |
| 10476 | Partial match: abcd | |
| 10477 | ||
| 10478 | /abcd*/i | |
| 10479 | xxxxabcd\P | |
| 10480 | 0: abcd | |
| 10481 | xxxxabcd\P\P | |
| 10482 | Partial match: abcd | |
| 10483 | XXXXABCD\P | |
| 10484 | 0: ABCD | |
| 10485 | XXXXABCD\P\P | |
| 10486 | Partial match: ABCD | |
| 10487 | ||
| 10488 | /abc\d*/ | |
| 10489 | xxxxabc1\P | |
| 10490 | 0: abc1 | |
| 10491 | xxxxabc1\P\P | |
| 10492 | Partial match: abc1 | |
| 10493 | ||
| 10494 | /(a)bc\1*/ | |
| 10495 | xxxxabca\P | |
| 10496 | 0: abca | |
| 10497 | 1: a | |
| 10498 | xxxxabca\P\P | |
| 10499 | Partial match: abca | |
| 10500 | ||
| 10501 | /abc[de]*/ | |
| 10502 | xxxxabcde\P | |
| 10503 | 0: abcde | |
| 10504 | xxxxabcde\P\P | |
| 10505 | Partial match: abcde | |
| 10506 | ||
| 10507 | /-- This is not in the Perl >= 5.10 test because Perl seems currently to be | |
| 10508 | broken and not behaving as specified in that it *does* bumpalong after | |
| 10509 | hitting (*COMMIT). --/ | |
| 10510 | ||
| 10511 | /(?1)(A(*COMMIT)|B)D/ | |
| 10512 | ABD | |
| 10513 | 0: ABD | |
| 10514 | 1: B | |
| 10515 | XABD | |
| 10516 | 0: ABD | |
| 10517 | 1: B | |
| 10518 | BAD | |
| 10519 | 0: BAD | |
| 10520 | 1: A | |
| 10521 | ABXABD | |
| 10522 | 0: ABD | |
| 10523 | 1: B | |
| 10524 | ** Failers | |
| 10525 | No match | |
| 10526 | ABX | |
| 10527 | No match | |
| 10528 | BAXBAD | |
| 10529 | No match | |
| 10530 | ||
| 10531 | /(\3)(\1)(a)/<JS> | |
| 10532 | cat | |
| 10533 | 0: a | |
| 10534 | 1: | |
| 10535 | 2: | |
| 10536 | 3: a | |
| 10537 | ||
| 10538 | /(\3)(\1)(a)/SI<JS> | |
| 10539 | Capturing subpattern count = 3 | |
| 10540 | Max back reference = 3 | |
| 10541 | Options: | |
| 10542 | No first char | |
| 10543 | Need char = 'a' | |
| 10544 | Subject length lower bound = 1 | |
| 10545 | No set of starting bytes | |
| 10546 | cat | |
| 10547 | 0: a | |
| 10548 | 1: | |
| 10549 | 2: | |
| 10550 | 3: a | |
| 10551 | ||
| 10552 | /(\3)(\1)(a)/SI | |
| 10553 | Capturing subpattern count = 3 | |
| 10554 | Max back reference = 3 | |
| 10555 | No options | |
| 10556 | No first char | |
| 10557 | Need char = 'a' | |
| 10558 | Subject length lower bound = 3 | |
| 10559 | No set of starting bytes | |
| 10560 | cat | |
| 10561 | No match | |
| 10562 | ||
| 10563 | /i(?(DEFINE)(?<s>a))/SI | |
| 10564 | Capturing subpattern count = 1 | |
| 10565 | Named capturing subpatterns: | |
| 10566 | s 1 | |
| 10567 | No options | |
| 10568 | First char = 'i' | |
| 10569 | No need char | |
| 10570 | Subject length lower bound = 1 | |
| 10571 | No set of starting bytes | |
| 10572 | i | |
| 10573 | 0: i | |
| 10574 | ||
| 10575 | /()i(?(1)a)/SI | |
| 10576 | Capturing subpattern count = 1 | |
| 10577 | No options | |
| 10578 | No first char | |
| 10579 | Need char = 'i' | |
| 10580 | Subject length lower bound = 1 | |
| 10581 | Starting byte set: i | |
| 10582 | ia | |
| 10583 | 0: ia | |
| 10584 | 1: | |
| 10585 | ||
| 10586 | /(?i)a(?-i)b|c/BZ | |
| 10587 | ------------------------------------------------------------------ | |
| 10588 | Bra | |
| 10589 | NC a | |
| 10590 | 00 Opt | |
| 10591 | b | |
| 10592 | Alt | |
| 10593 | 00 Opt | |
| 10594 | c | |
| 10595 | Ket | |
| 10596 | End | |
| 10597 | ------------------------------------------------------------------ | |
| 10598 | XabX | |
| 10599 | 0: ab | |
| 10600 | XAbX | |
| 10601 | 0: Ab | |
| 10602 | CcC | |
| 10603 | 0: c | |
| 10604 | ** Failers | |
| 10605 | No match | |
| 10606 | XABX | |
| 10607 | No match | |
| 10608 | ||
| 10609 | /(?i)a(?s)b|c/BZ | |
| 10610 | ------------------------------------------------------------------ | |
| 10611 | Bra | |
| 10612 | NC a | |
| 10613 | 05 Opt | |
| 10614 | NC b | |
| 10615 | Alt | |
| 10616 | 05 Opt | |
| 10617 | NC c | |
| 10618 | Ket | |
| 10619 | End | |
| 10620 | ------------------------------------------------------------------ | |
| 10621 | ||
| 10622 | /(?i)a(?s-i)b|c/BZ | |
| 10623 | ------------------------------------------------------------------ | |
| 10624 | Bra | |
| 10625 | NC a | |
| 10626 | 04 Opt | |
| 10627 | b | |
| 10628 | Alt | |
| 10629 | 04 Opt | |
| 10630 | c | |
| 10631 | Ket | |
| 10632 | End | |
| 10633 | ------------------------------------------------------------------ | |
| 10634 | ||
| 10635 | /^(ab(c\1)d|x){2}$/BZ | |
| 10636 | ------------------------------------------------------------------ | |
| 10637 | Bra | |
| 10638 | ^ | |
| 10639 | Once | |
| 10640 | CBra 1 | |
| 10641 | ab | |
| 10642 | CBra 2 | |
| 10643 | c | |
| 10644 | \1 | |
| 10645 | Ket | |
| 10646 | d | |
| 10647 | Alt | |
| 10648 | x | |
| 10649 | Ket | |
| 10650 | Ket | |
| 10651 | Once | |
| 10652 | CBra 1 | |
| 10653 | ab | |
| 10654 | CBra 2 | |
| 10655 | c | |
| 10656 | \1 | |
| 10657 | Ket | |
| 10658 | d | |
| 10659 | Alt | |
| 10660 | x | |
| 10661 | Ket | |
| 10662 | Ket | |
| 10663 | $ | |
| 10664 | Ket | |
| 10665 | End | |
| 10666 | ------------------------------------------------------------------ | |
| 10667 | xabcxd | |
| 10668 | 0: xabcxd | |
| 10669 | 1: abcxd | |
| 10670 | 2: cx | |
| 10671 | ||
| 10672 | /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ | |
| 10673 | ------------------------------------------------------------------ | |
| 10674 | Bra | |
| 10675 | ^ | |
| 10676 | Once | |
| 10677 | Brazero | |
| 10678 | Once | |
| 10679 | Recurse | |
| 10680 | KetRmax | |
| 10681 | Ket | |
| 10682 | Cond | |
| 10683 | Cond def | |
| 10684 | CBra 1 | |
| 10685 | Any | |
| 10686 | Ket | |
| 10687 | Ket | |
| 10688 | $ | |
| 10689 | Ket | |
| 10690 | End | |
| 10691 | ------------------------------------------------------------------ | |
| 10692 | ||
| 10693 | /^(?&t)*(?(DEFINE)(?<t>.))$/BZ | |
| 10694 | ------------------------------------------------------------------ | |
| 10695 | Bra | |
| 10696 | ^ | |
| 10697 | Brazero | |
| 10698 | Once | |
| 10699 | Recurse | |
| 10700 | KetRmax | |
| 10701 | Cond | |
| 10702 | Cond def | |
| 10703 | CBra 1 | |
| 10704 | Any | |
| 10705 | Ket | |
| 10706 | Ket | |
| 10707 | $ | |
| 10708 | Ket | |
| 10709 | End | |
| 10710 | ------------------------------------------------------------------ | |
| 10711 | ||
| 10712 | / -- The first four of these are not in the Perl >= 5.10 test because Perl | |
| 10713 | documents that the use of \K in assertions is "not well defined". The | |
| 10714 | last is here because Perl gives the match as "b" rather than "ab". I | |
| 10715 | believe this to be a Perl bug. --/ | |
| 10716 | ||
| 10717 | /(?=a\Kb)ab/ | |
| 10718 | ab | |
| 10719 | 0: b | |
| 10720 | ||
| 10721 | /(?!a\Kb)ac/ | |
| 10722 | ac | |
| 10723 | 0: ac | |
| 10724 | ||
| 10725 | /^abc(?<=b\Kc)d/ | |
| 10726 | abcd | |
| 10727 | 0: cd | |
| 10728 | ||
| 10729 | /^abc(?<!b\Kq)d/ | |
| 10730 | abcd | |
| 10731 | 0: abcd | |
| 10732 | ||
| 10733 | /(?>a\Kb)z|(ab)/ | |
| 10734 | ab | |
| 10735 | 0: ab | |
| 10736 | 1: ab | |
| 10737 | ||
| 10738 | /----------------------/ | |
| 10739 | ||
| 10740 | /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/ | |
| 10741 | Failed: recursive call could loop indefinitely at offset 31 | |
| 10742 | ||
| 10743 | /abc(*MARK:)pqr/ | |
| 10744 | Failed: (*MARK) must have an argument at offset 10 | |
| 10745 | ||
| 10746 | /abc(*:)pqr/ | |
| 10747 | Failed: (*MARK) must have an argument at offset 6 | |
| 10748 | ||
| 10749 | /abc(*FAIL:123)xyz/ | |
| 10750 | Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13 | |
| 10751 | ||
| 10752 | /--- This should, and does, fail. In Perl, it does not, which I think is a | |
| 10753 | bug because replacing the B in the pattern by (B|D) does make it fail. ---/ | |
| 10754 | ||
| 10755 | /A(*COMMIT)B/+K | |
| 10756 | ACABX | |
| 10757 | No match | |
| 10758 | ||
| 10759 | /--- These should be different, but in Perl 5.11 are not, which I think | |
| 10760 | is a bug in Perl. ---/ | |
| 10761 | ||
| 10762 | /A(*THEN)B|A(*THEN)C/K | |
| 10763 | AC | |
| 10764 | 0: AC | |
| 10765 | ||
| 10766 | /A(*PRUNE)B|A(*PRUNE)C/K | |
| 10767 | AC | |
| 10768 | No match | |
| 10769 | ||
| 10770 | /--- A whole lot of tests of verbs with arguments are here rather than in test | |
| 10771 | 11 because Perl doesn't seem to follow its specification entirely | |
| 10772 | correctly. ---/ | |
| 10773 | ||
| 10774 | /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is | |
| 10775 | not clear how Perl defines "involved in the failure of the match". ---/ | |
| 10776 | ||
| 10777 | /^(A(*THEN:A)B|C(*THEN:B)D)/K | |
| 10778 | AB | |
| 10779 | 0: AB | |
| 10780 | 1: AB | |
| 10781 | CD | |
| 10782 | 0: CD | |
| 10783 | 1: CD | |
| 10784 | ** Failers | |
| 10785 | No match | |
| 10786 | AC | |
| 10787 | No match | |
| 10788 | CB | |
| 10789 | No match, mark = B | |
| 10790 | ||
| 10791 | /--- Check the use of names for success and failure. PCRE doesn't show these | |
| 10792 | names for success, though Perl does, contrary to its spec. ---/ | |
| 10793 | ||
| 10794 | /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K | |
| 10795 | AB | |
| 10796 | 0: AB | |
| 10797 | 1: AB | |
| 10798 | CD | |
| 10799 | 0: CD | |
| 10800 | 1: CD | |
| 10801 | ** Failers | |
| 10802 | No match | |
| 10803 | AC | |
| 10804 | No match, mark = A | |
| 10805 | CB | |
| 10806 | No match, mark = B | |
| 10807 | ||
| 10808 | /--- An empty name does not pass back an empty string. It is the same as if no | |
| 10809 | name were given. ---/ | |
| 10810 | ||
| 10811 | /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K | |
| 10812 | AB | |
| 10813 | 0: AB | |
| 10814 | 1: AB | |
| 10815 | CD | |
| 10816 | 0: CD | |
| 10817 | 1: CD | |
| 10818 | ||
| 10819 | /--- PRUNE goes to next bumpalong; COMMIT does not. ---/ | |
| 10820 | ||
| 10821 | /A(*PRUNE:A)B/K | |
| 10822 | ACAB | |
| 10823 | 0: AB | |
| 10824 | ||
| 10825 | /(*MARK:A)(*PRUNE:B)(C|X)/K | |
| 10826 | C | |
| 10827 | 0: C | |
| 10828 | 1: C | |
| 10829 | MK: A | |
| 10830 | D | |
| 10831 | No match, mark = B | |
| 10832 | ||
| 10833 | /(*MARK:A)(*THEN:B)(C|X)/K | |
| 10834 | C | |
| 10835 | 0: C | |
| 10836 | 1: C | |
| 10837 | MK: A | |
| 10838 | D | |
| 10839 | No match, mark = B | |
| 10840 | ||
| 10841 | /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/ | |
| 10842 | ||
| 10843 | /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK | |
| 10844 | AAAC | |
| 10845 | No match | |
| 10846 | ||
| 10847 | /--- Same --/ | |
| 10848 | ||
| 10849 | /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK | |
| 10850 | AAAC | |
| 10851 | No match | |
| 10852 | ||
| 10853 | /--- This should fail; the SKIP advances by one, but when we get to AC, the | |
| 10854 | PRUNE kills it. ---/ | |
| 10855 | ||
| 10856 | /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK | |
| 10857 | AAAC | |
| 10858 | No match | |
| 10859 | ||
| 10860 | /A(*:A)A+(*SKIP)(B|Z) | AC/xK | |
| 10861 | AAAC | |
| 10862 | No match | |
| 10863 | ||
| 10864 | /--- This should fail, as a null name is the same as no name ---/ | |
| 10865 | ||
| 10866 | /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK | |
| 10867 | AAAC | |
| 10868 | No match | |
| 10869 | ||
| 10870 | /--- This fails in PCRE, and I think that is in accordance with Perl's | |
| 10871 | documentation, though in Perl it succeeds. ---/ | |
| 10872 | ||
| 10873 | /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK | |
| 10874 | AAAC | |
| 10875 | No match | |
| 10876 | ||
| 10877 | /--- Mark names can be duplicated ---/ | |
| 10878 | ||
| 10879 | /A(*:A)B|X(*:A)Y/K | |
| 10880 | AABC | |
| 10881 | 0: AB | |
| 10882 | MK: A | |
| 10883 | XXYZ | |
| 10884 | 0: XY | |
| 10885 | MK: A | |
| 10886 | ||
| 10887 | /^A(*:A)B|^X(*:A)Y/K | |
| 10888 | ** Failers | |
| 10889 | No match | |
| 10890 | XAQQ | |
| 10891 | No match, mark = A | |
| 10892 | ||
| 10893 | /--- A check on what happens after hitting a mark and them bumping along to | |
| 10894 | something that does not even start. Perl reports tags after the failures here, | |
| 10895 | though it does not when the individual letters are made into something | |
| 10896 | more complicated. ---/ | |
| 10897 | ||
| 10898 | /A(*:A)B|XX(*:B)Y/K | |
| 10899 | AABC | |
| 10900 | 0: AB | |
| 10901 | MK: A | |
| 10902 | XXYZ | |
| 10903 | 0: XXY | |
| 10904 | MK: B | |
| 10905 | ** Failers | |
| 10906 | No match | |
| 10907 | XAQQ | |
| 10908 | No match | |
| 10909 | XAQQXZZ | |
| 10910 | No match | |
| 10911 | AXQQQ | |
| 10912 | No match | |
| 10913 | AXXQQQ | |
| 10914 | No match | |
| 10915 | ||
| 10916 | /--- COMMIT at the start of a pattern should be the same as an anchor. Perl | |
| 10917 | optimizations defeat this. So does the PCRE optimization unless we disable it | |
| 10918 | with \Y. ---/ | |
| 10919 | ||
| 10920 | /(*COMMIT)ABC/ | |
| 10921 | ABCDEFG | |
| 10922 | 0: ABC | |
| 10923 | ** Failers | |
| 10924 | No match | |
| 10925 | DEFGABC\Y | |
| 10926 | No match | |
| 10927 | ||
| 10928 | /--- Repeat some tests with added studying. ---/ | |
| 10929 | ||
| 10930 | /A(*COMMIT)B/+KS | |
| 10931 | ACABX | |
| 10932 | No match | |
| 10933 | ||
| 10934 | /A(*THEN)B|A(*THEN)C/KS | |
| 10935 | AC | |
| 10936 | 0: AC | |
| 10937 | ||
| 10938 | /A(*PRUNE)B|A(*PRUNE)C/KS | |
| 10939 | AC | |
| 10940 |