A hint: This file contains one or more very long lines, so maybe it is better readable using the pure text view mode that shows the contents as wrapped lines within the browser window.
1 /abc/ 2 abc 3 0: abc 4 5 /ab*c/ 6 abc 7 0: abc 8 abbbbc 9 0: abbbbc 10 ac 11 0: ac 12 13 /ab+c/ 14 abc 15 0: abc 16 abbbbbbc 17 0: abbbbbbc 18 *** Failers 19 No match 20 ac 21 No match 22 ab 23 No match 24 25 /a*/ 26 a 27 0: a 28 1: 29 aaaaaaaaaaaaaaaaa 30 0: aaaaaaaaaaaaaaaaa 31 1: aaaaaaaaaaaaaaaa 32 2: aaaaaaaaaaaaaaa 33 3: aaaaaaaaaaaaaa 34 4: aaaaaaaaaaaaa 35 5: aaaaaaaaaaaa 36 6: aaaaaaaaaaa 37 7: aaaaaaaaaa 38 8: aaaaaaaaa 39 9: aaaaaaaa 40 10: aaaaaaa 41 11: aaaaaa 42 12: aaaaa 43 13: aaaa 44 14: aaa 45 15: aa 46 16: a 47 17: 48 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 49 Matched, but too many subsidiary matches 50 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 51 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaa 52 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaa 53 3: aaaaaaaaaaaaaaaaaaaaaaaaaaa 54 4: aaaaaaaaaaaaaaaaaaaaaaaaaa 55 5: aaaaaaaaaaaaaaaaaaaaaaaaa 56 6: aaaaaaaaaaaaaaaaaaaaaaaa 57 7: aaaaaaaaaaaaaaaaaaaaaaa 58 8: aaaaaaaaaaaaaaaaaaaaaa 59 9: aaaaaaaaaaaaaaaaaaaaa 60 10: aaaaaaaaaaaaaaaaaaaa 61 11: aaaaaaaaaaaaaaaaaaa 62 12: aaaaaaaaaaaaaaaaaa 63 13: aaaaaaaaaaaaaaaaa 64 14: aaaaaaaaaaaaaaaa 65 15: aaaaaaaaaaaaaaa 66 16: aaaaaaaaaaaaaa 67 17: aaaaaaaaaaaaa 68 18: aaaaaaaaaaaa 69 19: aaaaaaaaaaa 70 20: aaaaaaaaaa 71 21: aaaaaaaaa 72 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\F 73 0: 74 75 /(a|abcd|african)/ 76 a 77 0: a 78 abcd 79 0: abcd 80 1: a 81 african 82 0: african 83 1: a 84 85 /^abc/ 86 abcdef 87 0: abc 88 *** Failers 89 No match 90 xyzabc 91 No match 92 xyz\nabc 93 No match 94 95 /^abc/m 96 abcdef 97 0: abc 98 xyz\nabc 99 0: abc 100 *** Failers 101 No match 102 xyzabc 103 No match 104 105 /\Aabc/ 106 abcdef 107 0: abc 108 *** Failers 109 No match 110 xyzabc 111 No match 112 xyz\nabc 113 No match 114 115 /\Aabc/m 116 abcdef 117 0: abc 118 *** Failers 119 No match 120 xyzabc 121 No match 122 xyz\nabc 123 No match 124 125 /\Gabc/ 126 abcdef 127 0: abc 128 xyzabc\>3 129 0: abc 130 *** Failers 131 No match 132 xyzabc 133 No match 134 xyzabc\>2 135 No match 136 137 /x\dy\Dz/ 138 x9yzz 139 0: x9yzz 140 x0y+z 141 0: x0y+z 142 *** Failers 143 No match 144 xyz 145 No match 146 xxy0z 147 No match 148 149 /x\sy\Sz/ 150 x yzz 151 0: x yzz 152 x y+z 153 0: x y+z 154 *** Failers 155 No match 156 xyz 157 No match 158 xxyyz 159 No match 160 161 /x\wy\Wz/ 162 xxy+z 163 0: xxy+z 164 *** Failers 165 No match 166 xxy0z 167 No match 168 x+y+z 169 No match 170 171 /x.y/ 172 x+y 173 0: x+y 174 x-y 175 0: x-y 176 *** Failers 177 No match 178 x\ny 179 No match 180 181 /x.y/s 182 x+y 183 0: x+y 184 x-y 185 0: x-y 186 x\ny 187 0: x\x0ay 188 189 /(a.b(?s)c.d|x.y)p.q/ 190 a+bc+dp+q 191 0: a+bc+dp+q 192 a+bc\ndp+q 193 0: a+bc\x0adp+q 194 x\nyp+q 195 0: x\x0ayp+q 196 *** Failers 197 No match 198 a\nbc\ndp+q 199 No match 200 a+bc\ndp\nq 201 No match 202 x\nyp\nq 203 No match 204 205 /a\d\z/ 206 ba0 207 0: a0 208 *** Failers 209 No match 210 ba0\n 211 No match 212 ba0\ncd 213 No match 214 215 /a\d\z/m 216 ba0 217 0: a0 218 *** Failers 219 No match 220 ba0\n 221 No match 222 ba0\ncd 223 No match 224 225 /a\d\Z/ 226 ba0 227 0: a0 228 ba0\n 229 0: a0 230 *** Failers 231 No match 232 ba0\ncd 233 No match 234 235 /a\d\Z/m 236 ba0 237 0: a0 238 ba0\n 239 0: a0 240 *** Failers 241 No match 242 ba0\ncd 243 No match 244 245 /a\d$/ 246 ba0 247 0: a0 248 ba0\n 249 0: a0 250 *** Failers 251 No match 252 ba0\ncd 253 No match 254 255 /a\d$/m 256 ba0 257 0: a0 258 ba0\n 259 0: a0 260 ba0\ncd 261 0: a0 262 *** Failers 263 No match 264 265 /abc/i 266 abc 267 0: abc 268 aBc 269 0: aBc 270 ABC 271 0: ABC 272 273 /[^a]/ 274 abcd 275 0: b 276 277 /ab?\w/ 278 abz 279 0: abz 280 1: ab 281 abbz 282 0: abb 283 1: ab 284 azz 285 0: az 286 287 /x{0,3}yz/ 288 ayzq 289 0: yz 290 axyzq 291 0: xyz 292 axxyz 293 0: xxyz 294 axxxyzq 295 0: xxxyz 296 axxxxyzq 297 0: xxxyz 298 *** Failers 299 No match 300 ax 301 No match 302 axx 303 No match 304 305 /x{3}yz/ 306 axxxyzq 307 0: xxxyz 308 axxxxyzq 309 0: xxxyz 310 *** Failers 311 No match 312 ax 313 No match 314 axx 315 No match 316 ayzq 317 No match 318 axyzq 319 No match 320 axxyz 321 No match 322 323 /x{2,3}yz/ 324 axxyz 325 0: xxyz 326 axxxyzq 327 0: xxxyz 328 axxxxyzq 329 0: xxxyz 330 *** Failers 331 No match 332 ax 333 No match 334 axx 335 No match 336 ayzq 337 No match 338 axyzq 339 No match 340 341 /[^a]+/ 342 bac 343 0: b 344 bcdefax 345 0: bcdef 346 1: bcde 347 2: bcd 348 3: bc 349 4: b 350 *** Failers 351 0: *** F 352 1: *** 353 2: *** 354 3: ** 355 4: * 356 aaaaa 357 No match 358 359 /[^a]*/ 360 bac 361 0: b 362 1: 363 bcdefax 364 0: bcdef 365 1: bcde 366 2: bcd 367 3: bc 368 4: b 369 5: 370 *** Failers 371 0: *** F 372 1: *** 373 2: *** 374 3: ** 375 4: * 376 5: 377 aaaaa 378 0: 379 380 /[^a]{3,5}/ 381 xyz 382 0: xyz 383 awxyza 384 0: wxyz 385 1: wxy 386 abcdefa 387 0: bcdef 388 1: bcde 389 2: bcd 390 abcdefghijk 391 0: bcdef 392 1: bcde 393 2: bcd 394 *** Failers 395 0: *** F 396 1: *** 397 2: *** 398 axya 399 No match 400 axa 401 No match 402 aaaaa 403 No match 404 405 /\d*/ 406 1234b567 407 0: 1234 408 1: 123 409 2: 12 410 3: 1 411 4: 412 xyz 413 0: 414 415 /\D*/ 416 a1234b567 417 0: a 418 1: 419 xyz 420 0: xyz 421 1: xy 422 2: x 423 3: 424 425 /\d+/ 426 ab1234c56 427 0: 1234 428 1: 123 429 2: 12 430 3: 1 431 *** Failers 432 No match 433 xyz 434 No match 435 436 /\D+/ 437 ab123c56 438 0: ab 439 1: a 440 *** Failers 441 0: *** Failers 442 1: *** Failer 443 2: *** Faile 444 3: *** Fail 445 4: *** Fai 446 5: *** Fa 447 6: *** F 448 7: *** 449 8: *** 450 9: ** 451 10: * 452 789 453 No match 454 455 /\d?A/ 456 045ABC 457 0: 5A 458 ABC 459 0: A 460 *** Failers 461 No match 462 XYZ 463 No match 464 465 /\D?A/ 466 ABC 467 0: A 468 BAC 469 0: BA 470 9ABC 471 0: A 472 *** Failers 473 No match 474 475 /a+/ 476 aaaa 477 0: aaaa 478 1: aaa 479 2: aa 480 3: a 481 482 /^.*xyz/ 483 xyz 484 0: xyz 485 ggggggggxyz 486 0: ggggggggxyz 487 488 /^.+xyz/ 489 abcdxyz 490 0: abcdxyz 491 axyz 492 0: axyz 493 *** Failers 494 No match 495 xyz 496 No match 497 498 /^.?xyz/ 499 xyz 500 0: xyz 501 cxyz 502 0: cxyz 503 504 /^\d{2,3}X/ 505 12X 506 0: 12X 507 123X 508 0: 123X 509 *** Failers 510 No match 511 X 512 No match 513 1X 514 No match 515 1234X 516 No match 517 518 /^[abcd]\d/ 519 a45 520 0: a4 521 b93 522 0: b9 523 c99z 524 0: c9 525 d04 526 0: d0 527 *** Failers 528 No match 529 e45 530 No match 531 abcd 532 No match 533 abcd1234 534 No match 535 1234 536 No match 537 538 /^[abcd]*\d/ 539 a45 540 0: a4 541 b93 542 0: b9 543 c99z 544 0: c9 545 d04 546 0: d0 547 abcd1234 548 0: abcd1 549 1234 550 0: 1 551 *** Failers 552 No match 553 e45 554 No match 555 abcd 556 No match 557 558 /^[abcd]+\d/ 559 a45 560 0: a4 561 b93 562 0: b9 563 c99z 564 0: c9 565 d04 566 0: d0 567 abcd1234 568 0: abcd1 569 *** Failers 570 No match 571 1234 572 No match 573 e45 574 No match 575 abcd 576 No match 577 578 /^a+X/ 579 aX 580 0: aX 581 aaX 582 0: aaX 583 584 /^[abcd]?\d/ 585 a45 586 0: a4 587 b93 588 0: b9 589 c99z 590 0: c9 591 d04 592 0: d0 593 1234 594 0: 1 595 *** Failers 596 No match 597 abcd1234 598 No match 599 e45 600 No match 601 602 /^[abcd]{2,3}\d/ 603 ab45 604 0: ab4 605 bcd93 606 0: bcd9 607 *** Failers 608 No match 609 1234 610 No match 611 a36 612 No match 613 abcd1234 614 No match 615 ee45 616 No match 617 618 /^(abc)*\d/ 619 abc45 620 0: abc4 621 abcabcabc45 622 0: abcabcabc4 623 42xyz 624 0: 4 625 *** Failers 626 No match 627 628 /^(abc)+\d/ 629 abc45 630 0: abc4 631 abcabcabc45 632 0: abcabcabc4 633 *** Failers 634 No match 635 42xyz 636 No match 637 638 /^(abc)?\d/ 639 abc45 640 0: abc4 641 42xyz 642 0: 4 643 *** Failers 644 No match 645 abcabcabc45 646 No match 647 648 /^(abc){2,3}\d/ 649 abcabc45 650 0: abcabc4 651 abcabcabc45 652 0: abcabcabc4 653 *** Failers 654 No match 655 abcabcabcabc45 656 No match 657 abc45 658 No match 659 42xyz 660 No match 661 662 /1(abc|xyz)2(?1)3/ 663 1abc2abc3456 664 0: 1abc2abc3 665 1abc2xyz3456 666 0: 1abc2xyz3 667 668 /^(a*\w|ab)=(a*\w|ab)/ 669 ab=ab 670 0: ab=ab 671 1: ab=a 672 673 /^(a*\w|ab)=(?1)/ 674 ab=ab 675 0: ab=ab 676 677 /^([^()]|\((?1)*\))*$/ 678 abc 679 0: abc 680 a(b)c 681 0: a(b)c 682 a(b(c))d 683 0: a(b(c))d 684 *** Failers) 685 No match 686 a(b(c)d 687 No match 688 689 /^>abc>([^()]|\((?1)*\))*<xyz<$/ 690 >abc>123<xyz< 691 0: >abc>123<xyz< 692 >abc>1(2)3<xyz< 693 0: >abc>1(2)3<xyz< 694 >abc>(1(2)3)<xyz< 695 0: >abc>(1(2)3)<xyz< 696 697 /^(?>a*)\d/ 698 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9876 699 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9 700 *** Failers 701 No match 702 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 703 No match 704 705 /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/x 706 <> 707 0: <> 708 <abcd> 709 0: <abcd> 710 <abc <123> hij> 711 0: <abc <123> hij> 712 <abc <def> hij> 713 0: <def> 714 <abc<>def> 715 0: <abc<>def> 716 <abc<> 717 0: <> 718 *** Failers 719 No match 720 <abc 721 No match 722 723 /^(?(?=abc)\w{3}:|\d\d)$/ 724 abc: 725 0: abc: 726 12 727 0: 12 728 *** Failers 729 No match 730 123 731 No match 732 xyz 733 No match 734 735 /^(?(?!abc)\d\d|\w{3}:)$/ 736 abc: 737 0: abc: 738 12 739 0: 12 740 *** Failers 741 No match 742 123 743 No match 744 xyz 745 No match 746 747 /^(?=abc)\w{5}:$/ 748 abcde: 749 0: abcde: 750 *** Failers 751 No match 752 abc.. 753 No match 754 123 755 No match 756 vwxyz 757 No match 758 759 /^(?!abc)\d\d$/ 760 12 761 0: 12 762 *** Failers 763 No match 764 abcde: 765 No match 766 abc.. 767 No match 768 123 769 No match 770 vwxyz 771 No match 772 773 /(?<=abc|xy)123/ 774 abc12345 775 0: 123 776 wxy123z 777 0: 123 778 *** Failers 779 No match 780 123abc 781 No match 782 783 /(?<!abc|xy)123/ 784 123abc 785 0: 123 786 mno123456 787 0: 123 788 *** Failers 789 No match 790 abc12345 791 No match 792 wxy123z 793 No match 794 795 /abc(?C1)xyz/ 796 abcxyz 797 --->abcxyz 798 1 ^ ^ x 799 0: abcxyz 800 123abcxyz999 801 --->123abcxyz999 802 1 ^ ^ x 803 0: abcxyz 804 805 /(ab|cd){3,4}/C 806 ababab 807 --->ababab 808 +0 ^ (ab|cd){3,4} 809 +1 ^ a 810 +4 ^ c 811 +2 ^^ b 812 +3 ^ ^ | 813 +1 ^ ^ a 814 +4 ^ ^ c 815 +2 ^ ^ b 816 +3 ^ ^ | 817 +1 ^ ^ a 818 +4 ^ ^ c 819 +2 ^ ^ b 820 +3 ^ ^ | 821 +12 ^ ^ 822 +1 ^ ^ a 823 +4 ^ ^ c 824 0: ababab 825 abcdabcd 826 --->abcdabcd 827 +0 ^ (ab|cd){3,4} 828 +1 ^ a 829 +4 ^ c 830 +2 ^^ b 831 +3 ^ ^ | 832 +1 ^ ^ a 833 +4 ^ ^ c 834 +5 ^ ^ d 835 +6 ^ ^ ) 836 +1 ^ ^ a 837 +4 ^ ^ c 838 +2 ^ ^ b 839 +3 ^ ^ | 840 +12 ^ ^ 841 +1 ^ ^ a 842 +4 ^ ^ c 843 +5 ^ ^ d 844 +6 ^ ^ ) 845 +12 ^ ^ 846 0: abcdabcd 847 1: abcdab 848 abcdcdcdcdcd 849 --->abcdcdcdcdcd 850 +0 ^ (ab|cd){3,4} 851 +1 ^ a 852 +4 ^ c 853 +2 ^^ b 854 +3 ^ ^ | 855 +1 ^ ^ a 856 +4 ^ ^ c 857 +5 ^ ^ d 858 +6 ^ ^ ) 859 +1 ^ ^ a 860 +4 ^ ^ c 861 +5 ^ ^ d 862 +6 ^ ^ ) 863 +12 ^ ^ 864 +1 ^ ^ a 865 +4 ^ ^ c 866 +5 ^ ^ d 867 +6 ^ ^ ) 868 +12 ^ ^ 869 0: abcdcdcd 870 1: abcdcd 871 872 /^abc/ 873 abcdef 874 0: abc 875 *** Failers 876 No match 877 abcdef\B 878 No match 879 880 /^(a*|xyz)/ 881 bcd 882 0: 883 aaabcd 884 0: aaa 885 1: aa 886 2: a 887 3: 888 xyz 889 0: xyz 890 1: 891 xyz\N 892 0: xyz 893 *** Failers 894 0: 895 bcd\N 896 No match 897 898 /xyz$/ 899 xyz 900 0: xyz 901 xyz\n 902 0: xyz 903 *** Failers 904 No match 905 xyz\Z 906 No match 907 xyz\n\Z 908 No match 909 910 /xyz$/m 911 xyz 912 0: xyz 913 xyz\n 914 0: xyz 915 abcxyz\npqr 916 0: xyz 917 abcxyz\npqr\Z 918 0: xyz 919 xyz\n\Z 920 0: xyz 921 *** Failers 922 No match 923 xyz\Z 924 No match 925 926 /\Gabc/ 927 abcdef 928 0: abc 929 defabcxyz\>3 930 0: abc 931 *** Failers 932 No match 933 defabcxyz 934 No match 935 936 /^abcdef/ 937 ab\P 938 Partial match: ab 939 abcde\P 940 Partial match: abcde 941 abcdef\P 942 0: abcdef 943 *** Failers 944 No match 945 abx\P 946 No match 947 948 /^a{2,4}\d+z/ 949 a\P 950 Partial match: a 951 aa\P 952 Partial match: aa 953 aa2\P 954 Partial match: aa2 955 aaa\P 956 Partial match: aaa 957 aaa23\P 958 Partial match: aaa23 959 aaaa12345\P 960 Partial match: aaaa12345 961 aa0z\P 962 0: aa0z 963 aaaa4444444444444z\P 964 0: aaaa4444444444444z 965 *** Failers 966 No match 967 az\P 968 No match 969 aaaaa\P 970 No match 971 a56\P 972 No match 973 974 /^abcdef/ 975 abc\P 976 Partial match: abc 977 def\R 978 0: def 979 980 /(?<=foo)bar/ 981 xyzfo\P 982 No match 983 foob\P\>2 984 Partial match: b 985 foobar...\R\P\>4 986 0: ar 987 xyzfo\P 988 No match 989 foobar\>2 990 0: bar 991 *** Failers 992 No match 993 xyzfo\P 994 No match 995 obar\R 996 No match 997 998 /(ab*(cd|ef))+X/ 999 adfadadaklhlkalkajhlkjahdfasdfasdfladsfjkj\P\Z 1000 No match 1001 lkjhlkjhlkjhlkjhabbbbbbcdaefabbbbbbbefa\P\B\Z 1002 Partial match: abbbbbbcdaefabbbbbbbefa 1003 cdabbbbbbbb\P\R\B\Z 1004 Partial match: cdabbbbbbbb 1005 efabbbbbbbbbbbbbbbb\P\R\B\Z 1006 Partial match: efabbbbbbbbbbbbbbbb 1007 bbbbbbbbbbbbcdXyasdfadf\P\R\B\Z 1008 0: bbbbbbbbbbbbcdX 1009 1010 /(a|b)/SF>testsavedregex 1011 Compiled regex written to testsavedregex 1012 Study data written to testsavedregex 1013 <testsavedregex 1014 Compiled regex (byte-inverted) loaded from testsavedregex 1015 Study data loaded from testsavedregex 1016 abc 1017 0: a 1018 ** Failers 1019 0: a 1020 def 1021 No match 1022 1023 /the quick brown fox/ 1024 the quick brown fox 1025 0: the quick brown fox 1026 The quick brown FOX 1027 No match 1028 What do you know about the quick brown fox? 1029 0: the quick brown fox 1030 What do you know about THE QUICK BROWN FOX? 1031 No match 1032 1033 /The quick brown fox/i 1034 the quick brown fox 1035 0: the quick brown fox 1036 The quick brown FOX 1037 0: The quick brown FOX 1038 What do you know about the quick brown fox? 1039 0: the quick brown fox 1040 What do you know about THE QUICK BROWN FOX? 1041 0: THE QUICK BROWN FOX 1042 1043 /abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/ 1044 abcd\t\n\r\f\a\e9;\$\\?caxyz 1045 0: abcd\x09\x0a\x0d\x0c\x07\x1b9;$\?caxyz 1046 1047 /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/ 1048 abxyzpqrrrabbxyyyypqAzz 1049 0: abxyzpqrrrabbxyyyypqAzz 1050 abxyzpqrrrabbxyyyypqAzz 1051 0: abxyzpqrrrabbxyyyypqAzz 1052 aabxyzpqrrrabbxyyyypqAzz 1053 0: aabxyzpqrrrabbxyyyypqAzz 1054 aaabxyzpqrrrabbxyyyypqAzz 1055 0: aaabxyzpqrrrabbxyyyypqAzz 1056 aaaabxyzpqrrrabbxyyyypqAzz 1057 0: aaaabxyzpqrrrabbxyyyypqAzz 1058 abcxyzpqrrrabbxyyyypqAzz 1059 0: abcxyzpqrrrabbxyyyypqAzz 1060 aabcxyzpqrrrabbxyyyypqAzz 1061 0: aabcxyzpqrrrabbxyyyypqAzz 1062 aaabcxyzpqrrrabbxyyyypAzz 1063 0: aaabcxyzpqrrrabbxyyyypAzz 1064 aaabcxyzpqrrrabbxyyyypqAzz 1065 0: aaabcxyzpqrrrabbxyyyypqAzz 1066 aaabcxyzpqrrrabbxyyyypqqAzz 1067 0: aaabcxyzpqrrrabbxyyyypqqAzz 1068 aaabcxyzpqrrrabbxyyyypqqqAzz 1069 0: aaabcxyzpqrrrabbxyyyypqqqAzz 1070 aaabcxyzpqrrrabbxyyyypqqqqAzz 1071 0: aaabcxyzpqrrrabbxyyyypqqqqAzz 1072 aaabcxyzpqrrrabbxyyyypqqqqqAzz 1073 0: aaabcxyzpqrrrabbxyyyypqqqqqAzz 1074 aaabcxyzpqrrrabbxyyyypqqqqqqAzz 1075 0: aaabcxyzpqrrrabbxyyyypqqqqqqAzz 1076 aaaabcxyzpqrrrabbxyyyypqAzz 1077 0: aaaabcxyzpqrrrabbxyyyypqAzz 1078 abxyzzpqrrrabbxyyyypqAzz 1079 0: abxyzzpqrrrabbxyyyypqAzz 1080 aabxyzzzpqrrrabbxyyyypqAzz 1081 0: aabxyzzzpqrrrabbxyyyypqAzz 1082 aaabxyzzzzpqrrrabbxyyyypqAzz 1083 0: aaabxyzzzzpqrrrabbxyyyypqAzz 1084 aaaabxyzzzzpqrrrabbxyyyypqAzz 1085 0: aaaabxyzzzzpqrrrabbxyyyypqAzz 1086 abcxyzzpqrrrabbxyyyypqAzz 1087 0: abcxyzzpqrrrabbxyyyypqAzz 1088 aabcxyzzzpqrrrabbxyyyypqAzz 1089 0: aabcxyzzzpqrrrabbxyyyypqAzz 1090 aaabcxyzzzzpqrrrabbxyyyypqAzz 1091 0: aaabcxyzzzzpqrrrabbxyyyypqAzz 1092 aaaabcxyzzzzpqrrrabbxyyyypqAzz 1093 0: aaaabcxyzzzzpqrrrabbxyyyypqAzz 1094 aaaabcxyzzzzpqrrrabbbxyyyypqAzz 1095 0: aaaabcxyzzzzpqrrrabbbxyyyypqAzz 1096 aaaabcxyzzzzpqrrrabbbxyyyyypqAzz 1097 0: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz 1098 aaabcxyzpqrrrabbxyyyypABzz 1099 0: aaabcxyzpqrrrabbxyyyypABzz 1100 aaabcxyzpqrrrabbxyyyypABBzz 1101 0: aaabcxyzpqrrrabbxyyyypABBzz 1102 >>>aaabxyzpqrrrabbxyyyypqAzz 1103 0: aaabxyzpqrrrabbxyyyypqAzz 1104 >aaaabxyzpqrrrabbxyyyypqAzz 1105 0: aaaabxyzpqrrrabbxyyyypqAzz 1106 >>>>abcxyzpqrrrabbxyyyypqAzz 1107 0: abcxyzpqrrrabbxyyyypqAzz 1108 *** Failers 1109 No match 1110 abxyzpqrrabbxyyyypqAzz 1111 No match 1112 abxyzpqrrrrabbxyyyypqAzz 1113 No match 1114 abxyzpqrrrabxyyyypqAzz 1115 No match 1116 aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz 1117 No match 1118 aaaabcxyzzzzpqrrrabbbxyyypqAzz 1119 No match 1120 aaabcxyzpqrrrabbxyyyypqqqqqqqAzz 1121 No match 1122 1123 /^(abc){1,2}zz/ 1124 abczz 1125 0: abczz 1126 abcabczz 1127 0: abcabczz 1128 *** Failers 1129 No match 1130 zz 1131 No match 1132 abcabcabczz 1133 No match 1134 >>abczz 1135 No match 1136 1137 /^(b+?|a){1,2}?c/ 1138 bc 1139 0: bc 1140 bbc 1141 0: bbc 1142 bbbc 1143 0: bbbc 1144 bac 1145 0: bac 1146 bbac 1147 0: bbac 1148 aac 1149 0: aac 1150 abbbbbbbbbbbc 1151 0: abbbbbbbbbbbc 1152 bbbbbbbbbbbac 1153 0: bbbbbbbbbbbac 1154 *** Failers 1155 No match 1156 aaac 1157 No match 1158 abbbbbbbbbbbac 1159 No match 1160 1161 /^(b+|a){1,2}c/ 1162 bc 1163 0: bc 1164 bbc 1165 0: bbc 1166 bbbc 1167 0: bbbc 1168 bac 1169 0: bac 1170 bbac 1171 0: bbac 1172 aac 1173 0: aac 1174 abbbbbbbbbbbc 1175 0: abbbbbbbbbbbc 1176 bbbbbbbbbbbac 1177 0: bbbbbbbbbbbac 1178 *** Failers 1179 No match 1180 aaac 1181 No match 1182 abbbbbbbbbbbac 1183 No match 1184 1185 /^(b+|a){1,2}?bc/ 1186 bbc 1187 0: bbc 1188 1189 /^(b*|ba){1,2}?bc/ 1190 babc 1191 0: babc 1192 bbabc 1193 0: bbabc 1194 bababc 1195 0: bababc 1196 *** Failers 1197 No match 1198 bababbc 1199 No match 1200 babababc 1201 No match 1202 1203 /^(ba|b*){1,2}?bc/ 1204 babc 1205 0: babc 1206 bbabc 1207 0: bbabc 1208 bababc 1209 0: bababc 1210 *** Failers 1211 No match 1212 bababbc 1213 No match 1214 babababc 1215 No match 1216 1217 /^\ca\cA\c[\c{\c:/ 1218 \x01\x01\e;z 1219 0: \x01\x01\x1b;z 1220 1221 /^[ab\]cde]/ 1222 athing 1223 0: a 1224 bthing 1225 0: b 1226 ]thing 1227 0: ] 1228 cthing 1229 0: c 1230 dthing 1231 0: d 1232 ething 1233 0: e 1234 *** Failers 1235 No match 1236 fthing 1237 No match 1238 [thing 1239 No match 1240 \\thing 1241 No match 1242 1243 /^[]cde]/ 1244 ]thing 1245 0: ] 1246 cthing 1247 0: c 1248 dthing 1249 0: d 1250 ething 1251 0: e 1252 *** Failers 1253 No match 1254 athing 1255 No match 1256 fthing 1257 No match 1258 1259 /^[^ab\]cde]/ 1260 fthing 1261 0: f 1262 [thing 1263 0: [ 1264 \\thing 1265 0: \ 1266 *** Failers 1267 0: * 1268 athing 1269 No match 1270 bthing 1271 No match 1272 ]thing 1273 No match 1274 cthing 1275 No match 1276 dthing 1277 No match 1278 ething 1279 No match 1280 1281 /^[^]cde]/ 1282 athing 1283 0: a 1284 fthing 1285 0: f 1286 *** Failers 1287 0: * 1288 ]thing 1289 No match 1290 cthing 1291 No match 1292 dthing 1293 No match 1294 ething 1295 No match 1296 1297 /^\/ 1298 1299 0: \x81 1300 1301 /^ÿ/ 1302 ÿ 1303 0: \xff 1304 1305 /^[0-9]+$/ 1306 0 1307 0: 0 1308 1 1309 0: 1 1310 2 1311 0: 2 1312 3 1313 0: 3 1314 4 1315 0: 4 1316 5 1317 0: 5 1318 6 1319 0: 6 1320 7 1321 0: 7 1322 8 1323 0: 8 1324 9 1325 0: 9 1326 10 1327 0: 10 1328 100 1329 0: 100 1330 *** Failers 1331 No match 1332 abc 1333 No match 1334 1335 /^.*nter/ 1336 enter 1337 0: enter 1338 inter 1339 0: inter 1340 uponter 1341 0: uponter 1342 1343 /^xxx[0-9]+$/ 1344 xxx0 1345 0: xxx0 1346 xxx1234 1347 0: xxx1234 1348 *** Failers 1349 No match 1350 xxx 1351 No match 1352 1353 /^.+[0-9][0-9][0-9]$/ 1354 x123 1355 0: x123 1356 xx123 1357 0: xx123 1358 123456 1359 0: 123456 1360 *** Failers 1361 No match 1362 123 1363 No match 1364 x1234 1365 0: x1234 1366 1367 /^.+?[0-9][0-9][0-9]$/ 1368 x123 1369 0: x123 1370 xx123 1371 0: xx123 1372 123456 1373 0: 123456 1374 *** Failers 1375 No match 1376 123 1377 No match 1378 x1234 1379 0: x1234 1380 1381 /^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/ 1382 abc!pqr=apquxz.ixr.zzz.ac.uk 1383 0: abc!pqr=apquxz.ixr.zzz.ac.uk 1384 *** Failers 1385 No match 1386 !pqr=apquxz.ixr.zzz.ac.uk 1387 No match 1388 abc!=apquxz.ixr.zzz.ac.uk 1389 No match 1390 abc!pqr=apquxz:ixr.zzz.ac.uk 1391 No match 1392 abc!pqr=apquxz.ixr.zzz.ac.ukk 1393 No match 1394 1395 /:/ 1396 Well, we need a colon: somewhere 1397 0: : 1398 *** Fail if we don't 1399 No match 1400 1401 /([\da-f:]+)$/i 1402 0abc 1403 0: 0abc 1404 abc 1405 0: abc 1406 fed 1407 0: fed 1408 E 1409 0: E 1410 :: 1411 0: :: 1412 5f03:12C0::932e 1413 0: 5f03:12C0::932e 1414 fed def 1415 0: def 1416 Any old stuff 1417 0: ff 1418 *** Failers 1419 No match 1420 0zzz 1421 No match 1422 gzzz 1423 No match 1424 fed\x20 1425 No match 1426 Any old rubbish 1427 No match 1428 1429 /^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ 1430 .1.2.3 1431 0: .1.2.3 1432 A.12.123.0 1433 0: A.12.123.0 1434 *** Failers 1435 No match 1436 .1.2.3333 1437 No match 1438 1.2.3 1439 No match 1440 1234.2.3 1441 No match 1442 1443 /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/ 1444 1 IN SOA non-sp1 non-sp2( 1445 0: 1 IN SOA non-sp1 non-sp2( 1446 1 IN SOA non-sp1 non-sp2 ( 1447 0: 1 IN SOA non-sp1 non-sp2 ( 1448 *** Failers 1449 No match 1450 1IN SOA non-sp1 non-sp2( 1451 No match 1452 1453 /^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/ 1454 a. 1455 0: a. 1456 Z. 1457 0: Z. 1458 2. 1459 0: 2. 1460 ab-c.pq-r. 1461 0: ab-c.pq-r. 1462 sxk.zzz.ac.uk. 1463 0: sxk.zzz.ac.uk. 1464 x-.y-. 1465 0: x-.y-. 1466 *** Failers 1467 No match 1468 -abc.peq. 1469 No match 1470 1471 /^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/ 1472 *.a 1473 0: *.a 1474 *.b0-a 1475 0: *.b0-a 1476 *.c3-b.c 1477 0: *.c3-b.c 1478 *.c-a.b-c 1479 0: *.c-a.b-c 1480 *** Failers 1481 No match 1482 *.0 1483 No match 1484 *.a- 1485 No match 1486 *.a-b.c- 1487 No match 1488 *.c-a.0-c 1489 No match 1490 1491 /^(?=ab(de))(abd)(e)/ 1492 abde 1493 0: abde 1494 1495 /^(?!(ab)de|x)(abd)(f)/ 1496 abdf 1497 0: abdf 1498 1499 /^(?=(ab(cd)))(ab)/ 1500 abcd 1501 0: ab 1502 1503 /^[\da-f](\.[\da-f])*$/i 1504 a.b.c.d 1505 0: a.b.c.d 1506 A.B.C.D 1507 0: A.B.C.D 1508 a.b.c.1.2.3.C 1509 0: a.b.c.1.2.3.C 1510 1511 /^\".*\"\s*(;.*)?$/ 1512 \"1234\" 1513 0: "1234" 1514 \"abcd\" ; 1515 0: "abcd" ; 1516 \"\" ; rhubarb 1517 0: "" ; rhubarb 1518 *** Failers 1519 No match 1520 \"1234\" : things 1521 No match 1522 1523 /^$/ 1524 \ 1525 0: 1526 *** Failers 1527 No match 1528 1529 / ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/x 1530 ab c 1531 0: ab c 1532 *** Failers 1533 No match 1534 abc 1535 No match 1536 ab cde 1537 No match 1538 1539 /(?x) ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/ 1540 ab c 1541 0: ab c 1542 *** Failers 1543 No match 1544 abc 1545 No match 1546 ab cde 1547 No match 1548 1549 /^ a\ b[c ]d $/x 1550 a bcd 1551 0: a bcd 1552 a b d 1553 0: a b d 1554 *** Failers 1555 No match 1556 abcd 1557 No match 1558 ab d 1559 No match 1560 1561 /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/ 1562 abcdefhijklm 1563 0: abcdefhijklm 1564 1565 /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/ 1566 abcdefhijklm 1567 0: abcdefhijklm 1568 1569 /^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/ 1570 a+ Z0+\x08\n\x1d\x12 1571 0: a+ Z0+\x08\x0a\x1d\x12 1572 1573 /^[.^$|()*+?{,}]+/ 1574 .^\$(*+)|{?,?} 1575 0: .^$(*+)|{?,?} 1576 1: .^$(*+)|{?,? 1577 2: .^$(*+)|{?, 1578 3: .^$(*+)|{? 1579 4: .^$(*+)|{ 1580 5: .^$(*+)| 1581 6: .^$(*+) 1582 7: .^$(*+ 1583 8: .^$(* 1584 9: .^$( 1585 10: .^$ 1586 11: .^ 1587 12: . 1588 1589 /^a*\w/ 1590 z 1591 0: z 1592 az 1593 0: az 1594 1: a 1595 aaaz 1596 0: aaaz 1597 1: aaa 1598 2: aa 1599 3: a 1600 a 1601 0: a 1602 aa 1603 0: aa 1604 1: a 1605 aaaa 1606 0: aaaa 1607 1: aaa 1608 2: aa 1609 3: a 1610 a+ 1611 0: a 1612 aa+ 1613 0: aa 1614 1: a 1615 1616 /^a*?\w/ 1617 z 1618 0: z 1619 az 1620 0: az 1621 1: a 1622 aaaz 1623 0: aaaz 1624 1: aaa 1625 2: aa 1626 3: a 1627 a 1628 0: a 1629 aa 1630 0: aa 1631 1: a 1632 aaaa 1633 0: aaaa 1634 1: aaa 1635 2: aa 1636 3: a 1637 a+ 1638 0: a 1639 aa+ 1640 0: aa 1641 1: a 1642 1643 /^a+\w/ 1644 az 1645 0: az 1646 aaaz 1647 0: aaaz 1648 1: aaa 1649 2: aa 1650 aa 1651 0: aa 1652 aaaa 1653 0: aaaa 1654 1: aaa 1655 2: aa 1656 aa+ 1657 0: aa 1658 1659 /^a+?\w/ 1660 az 1661 0: az 1662 aaaz 1663 0: aaaz 1664 1: aaa 1665 2: aa 1666 aa 1667 0: aa 1668 aaaa 1669 0: aaaa 1670 1: aaa 1671 2: aa 1672 aa+ 1673 0: aa 1674 1675 /^\d{8}\w{2,}/ 1676 1234567890 1677 0: 1234567890 1678 12345678ab 1679 0: 12345678ab 1680 12345678__ 1681 0: 12345678__ 1682 *** Failers 1683 No match 1684 1234567 1685 No match 1686 1687 /^[aeiou\d]{4,5}$/ 1688 uoie 1689 0: uoie 1690 1234 1691 0: 1234 1692 12345 1693 0: 12345 1694 aaaaa 1695 0: aaaaa 1696 *** Failers 1697 No match 1698 123456 1699 No match 1700 1701 /^[aeiou\d]{4,5}?/ 1702 uoie 1703 0: uoie 1704 1234 1705 0: 1234 1706 12345 1707 0: 12345 1708 1: 1234 1709 aaaaa 1710 0: aaaaa 1711 1: aaaa 1712 123456 1713 0: 12345 1714 1: 1234 1715 1716 /^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]/ 1717 From abcd Mon Sep 01 12:33:02 1997 1718 0: From abcd Mon Sep 01 12:33 1719 1720 /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/ 1721 From abcd Mon Sep 01 12:33:02 1997 1722 0: From abcd Mon Sep 01 12:33 1723 From abcd Mon Sep 1 12:33:02 1997 1724 0: From abcd Mon Sep 1 12:33 1725 *** Failers 1726 No match 1727 From abcd Sep 01 12:33:02 1997 1728 No match 1729 1730 /^12.34/s 1731 12\n34 1732 0: 12\x0a34 1733 12\r34 1734 0: 12\x0d34 1735 1736 /\w+(?=\t)/ 1737 the quick brown\t fox 1738 0: brown 1739 1740 /foo(?!bar)(.*)/ 1741 foobar is foolish see? 1742 0: foolish see? 1743 1: foolish see 1744 2: foolish se 1745 3: foolish s 1746 4: foolish 1747 5: foolish 1748 6: foolis 1749 7: fooli 1750 8: fool 1751 9: foo 1752 1753 /(?:(?!foo)...|^.{0,2})bar(.*)/ 1754 foobar crowbar etc 1755 0: rowbar etc 1756 1: rowbar et 1757 2: rowbar e 1758 3: rowbar 1759 4: rowbar 1760 barrel 1761 0: barrel 1762 1: barre 1763 2: barr 1764 3: bar 1765 2barrel 1766 0: 2barrel 1767 1: 2barre 1768 2: 2barr 1769 3: 2bar 1770 A barrel 1771 0: A barrel 1772 1: A barre 1773 2: A barr 1774 3: A bar 1775 1776 /^(\D*)(?=\d)(?!123)/ 1777 abc456 1778 0: abc 1779 *** Failers 1780 No match 1781 abc123 1782 No match 1783 1784 /^1234(?# test newlines 1785 inside)/ 1786 1234 1787 0: 1234 1788 1789 /^1234 #comment in extended re 1790 /x 1791 1234 1792 0: 1234 1793 1794 /#rhubarb 1795 abcd/x 1796 abcd 1797 0: abcd 1798 1799 /^abcd#rhubarb/x 1800 abcd 1801 0: abcd 1802 1803 /(?!^)abc/ 1804 the abc 1805 0: abc 1806 *** Failers 1807 No match 1808 abc 1809 No match 1810 1811 /(?=^)abc/ 1812 abc 1813 0: abc 1814 *** Failers 1815 No match 1816 the abc 1817 No match 1818 1819 /^[ab]{1,3}(ab*|b)/ 1820 aabbbbb 1821 0: aabbbbb 1822 1: aabbbb 1823 2: aabbb 1824 3: aabb 1825 4: aab 1826 5: aa 1827 1828 /^[ab]{1,3}?(ab*|b)/ 1829 aabbbbb 1830 0: aabbbbb 1831 1: aabbbb 1832 2: aabbb 1833 3: aabb 1834 4: aab 1835 5: aa 1836 1837 /^[ab]{1,3}?(ab*?|b)/ 1838 aabbbbb 1839 0: aabbbbb 1840 1: aabbbb 1841 2: aabbb 1842 3: aabb 1843 4: aab 1844 5: aa 1845 1846 /^[ab]{1,3}(ab*?|b)/ 1847 aabbbbb 1848 0: aabbbbb 1849 1: aabbbb 1850 2: aabbb 1851 3: aabb 1852 4: aab 1853 5: aa 1854 1855 / (?: [\040\t] | \( 1856 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1857 \) )* # optional leading comment 1858 (?: (?: 1859 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1860 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1861 | 1862 " (?: # opening quote... 1863 [^\\\x80-\xff\n\015"] # Anything except backslash and quote 1864 | # or 1865 \\ [^\x80-\xff] # Escaped something (something != CR) 1866 )* " # closing quote 1867 ) # initial word 1868 (?: (?: [\040\t] | \( 1869 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1870 \) )* \. (?: [\040\t] | \( 1871 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1872 \) )* (?: 1873 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1874 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1875 | 1876 " (?: # opening quote... 1877 [^\\\x80-\xff\n\015"] # Anything except backslash and quote 1878 | # or 1879 \\ [^\x80-\xff] # Escaped something (something != CR) 1880 )* " # closing quote 1881 ) )* # further okay, if led by a period 1882 (?: [\040\t] | \( 1883 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1884 \) )* @ (?: [\040\t] | \( 1885 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1886 \) )* (?: 1887 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1888 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1889 | \[ # [ 1890 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1891 \] # ] 1892 ) # initial subdomain 1893 (?: # 1894 (?: [\040\t] | \( 1895 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1896 \) )* \. # if led by a period... 1897 (?: [\040\t] | \( 1898 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1899 \) )* (?: 1900 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1901 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1902 | \[ # [ 1903 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1904 \] # ] 1905 ) # ...further okay 1906 )* 1907 # address 1908 | # or 1909 (?: 1910 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1911 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1912 | 1913 " (?: # opening quote... 1914 [^\\\x80-\xff\n\015"] # Anything except backslash and quote 1915 | # or 1916 \\ [^\x80-\xff] # Escaped something (something != CR) 1917 )* " # closing quote 1918 ) # one word, optionally followed by.... 1919 (?: 1920 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or... 1921 \( 1922 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1923 \) | # comments, or... 1924 1925 " (?: # opening quote... 1926 [^\\\x80-\xff\n\015"] # Anything except backslash and quote 1927 | # or 1928 \\ [^\x80-\xff] # Escaped something (something != CR) 1929 )* " # closing quote 1930 # quoted strings 1931 )* 1932 < (?: [\040\t] | \( 1933 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1934 \) )* # leading < 1935 (?: @ (?: [\040\t] | \( 1936 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1937 \) )* (?: 1938 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1939 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1940 | \[ # [ 1941 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1942 \] # ] 1943 ) # initial subdomain 1944 (?: # 1945 (?: [\040\t] | \( 1946 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1947 \) )* \. # if led by a period... 1948 (?: [\040\t] | \( 1949 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1950 \) )* (?: 1951 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1952 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1953 | \[ # [ 1954 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1955 \] # ] 1956 ) # ...further okay 1957 )* 1958 1959 (?: (?: [\040\t] | \( 1960 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1961 \) )* , (?: [\040\t] | \( 1962 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1963 \) )* @ (?: [\040\t] | \( 1964 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1965 \) )* (?: 1966 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1967 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1968 | \[ # [ 1969 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1970 \] # ] 1971 ) # initial subdomain 1972 (?: # 1973 (?: [\040\t] | \( 1974 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1975 \) )* \. # if led by a period... 1976 (?: [\040\t] | \( 1977 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1978 \) )* (?: 1979 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1980 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1981 | \[ # [ 1982 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 1983 \] # ] 1984 ) # ...further okay 1985 )* 1986 )* # further okay, if led by comma 1987 : # closing colon 1988 (?: [\040\t] | \( 1989 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 1990 \) )* )? # optional route 1991 (?: 1992 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 1993 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 1994 | 1995 " (?: # opening quote... 1996 [^\\\x80-\xff\n\015"] # Anything except backslash and quote 1997 | # or 1998 \\ [^\x80-\xff] # Escaped something (something != CR) 1999 )* " # closing quote 2000 ) # initial word 2001 (?: (?: [\040\t] | \( 2002 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 2003 \) )* \. (?: [\040\t] | \( 2004 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 2005 \) )* (?: 2006 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 2007 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 2008 | 2009 " (?: # opening quote... 2010 [^\\\x80-\xff\n\015"] # Anything except backslash and quote 2011 | # or 2012 \\ [^\x80-\xff] # Escaped something (something != CR) 2013 )* " # closing quote 2014 ) )* # further okay, if led by a period 2015 (?: [\040\t] | \( 2016 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 2017 \) )* @ (?: [\040\t] | \( 2018 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 2019 \) )* (?: 2020 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 2021 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 2022 | \[ # [ 2023 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 2024 \] # ] 2025 ) # initial subdomain 2026 (?: # 2027 (?: [\040\t] | \( 2028 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 2029 \) )* \. # if led by a period... 2030 (?: [\040\t] | \( 2031 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 2032 \) )* (?: 2033 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 2034 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 2035 | \[ # [ 2036 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 2037 \] # ] 2038 ) # ...further okay 2039 )* 2040 # address spec 2041 (?: [\040\t] | \( 2042 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 2043 \) )* > # trailing > 2044 # name and address 2045 ) (?: [\040\t] | \( 2046 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* 2047 \) )* # optional trailing comment 2048 /x 2049 Alan Other <user\@dom.ain> 2050 0: Alan Other <user@dom.ain> 2051 <user\@dom.ain> 2052 0: user@dom.ain 2053 1: user@dom 2054 user\@dom.ain 2055 0: user@dom.ain 2056 1: user@dom 2057 \"A. Other\" <user.1234\@dom.ain> (a comment) 2058 0: "A. Other" <user.1234@dom.ain> (a comment) 2059 1: "A. Other" <user.1234@dom.ain> 2060 2: "A. Other" <user.1234@dom.ain> 2061 A. Other <user.1234\@dom.ain> (a comment) 2062 0: Other <user.1234@dom.ain> (a comment) 2063 1: Other <user.1234@dom.ain> 2064 2: Other <user.1234@dom.ain> 2065 \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay 2066 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay 2067 1: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re 2068 A missing angle <user\@some.where 2069 0: user@some.where 2070 1: user@some 2071 *** Failers 2072 No match 2073 The quick brown fox 2074 No match 2075 2076 /[\040\t]* # Nab whitespace. 2077 (?: 2078 \( # ( 2079 [^\\\x80-\xff\n\015()] * # normal* 2080 (?: # ( 2081 (?: \\ [^\x80-\xff] | 2082 \( # ( 2083 [^\\\x80-\xff\n\015()] * # normal* 2084 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2085 \) # ) 2086 ) # special 2087 [^\\\x80-\xff\n\015()] * # normal* 2088 )* # )* 2089 \) # ) 2090 [\040\t]* )* # If comment found, allow more spaces. 2091 # optional leading comment 2092 (?: 2093 (?: 2094 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 2095 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 2096 # Atom 2097 | # or 2098 " # " 2099 [^\\\x80-\xff\n\015"] * # normal 2100 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* 2101 " # " 2102 # Quoted string 2103 ) 2104 [\040\t]* # Nab whitespace. 2105 (?: 2106 \( # ( 2107 [^\\\x80-\xff\n\015()] * # normal* 2108 (?: # ( 2109 (?: \\ [^\x80-\xff] | 2110 \( # ( 2111 [^\\\x80-\xff\n\015()] * # normal* 2112 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2113 \) # ) 2114 ) # special 2115 [^\\\x80-\xff\n\015()] * # normal* 2116 )* # )* 2117 \) # ) 2118 [\040\t]* )* # If comment found, allow more spaces. 2119 (?: 2120 \. 2121 [\040\t]* # Nab whitespace. 2122 (?: 2123 \( # ( 2124 [^\\\x80-\xff\n\015()] * # normal* 2125 (?: # ( 2126 (?: \\ [^\x80-\xff] | 2127 \( # ( 2128 [^\\\x80-\xff\n\015()] * # normal* 2129 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2130 \) # ) 2131 ) # special 2132 [^\\\x80-\xff\n\015()] * # normal* 2133 )* # )* 2134 \) # ) 2135 [\040\t]* )* # If comment found, allow more spaces. 2136 (?: 2137 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 2138 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 2139 # Atom 2140 | # or 2141 " # " 2142 [^\\\x80-\xff\n\015"] * # normal 2143 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* 2144 " # " 2145 # Quoted string 2146 ) 2147 [\040\t]* # Nab whitespace. 2148 (?: 2149 \( # ( 2150 [^\\\x80-\xff\n\015()] * # normal* 2151 (?: # ( 2152 (?: \\ [^\x80-\xff] | 2153 \( # ( 2154 [^\\\x80-\xff\n\015()] * # normal* 2155 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2156 \) # ) 2157 ) # special 2158 [^\\\x80-\xff\n\015()] * # normal* 2159 )* # )* 2160 \) # ) 2161 [\040\t]* )* # If comment found, allow more spaces. 2162 # additional words 2163 )* 2164 @ 2165 [\040\t]* # Nab whitespace. 2166 (?: 2167 \( # ( 2168 [^\\\x80-\xff\n\015()] * # normal* 2169 (?: # ( 2170 (?: \\ [^\x80-\xff] | 2171 \( # ( 2172 [^\\\x80-\xff\n\015()] * # normal* 2173 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2174 \) # ) 2175 ) # special 2176 [^\\\x80-\xff\n\015()] * # normal* 2177 )* # )* 2178 \) # ) 2179 [\040\t]* )* # If comment found, allow more spaces. 2180 (?: 2181 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 2182 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 2183 | 2184 \[ # [ 2185 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 2186 \] # ] 2187 ) 2188 [\040\t]* # Nab whitespace. 2189 (?: 2190 \( # ( 2191 [^\\\x80-\xff\n\015()] * # normal* 2192 (?: # ( 2193 (?: \\ [^\x80-\xff] | 2194 \( # ( 2195 [^\\\x80-\xff\n\015()] * # normal* 2196 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2197 \) # ) 2198 ) # special 2199 [^\\\x80-\xff\n\015()] * # normal* 2200 )* # )* 2201 \) # ) 2202 [\040\t]* )* # If comment found, allow more spaces. 2203 # optional trailing comments 2204 (?: 2205 \. 2206 [\040\t]* # Nab whitespace. 2207 (?: 2208 \( # ( 2209 [^\\\x80-\xff\n\015()] * # normal* 2210 (?: # ( 2211 (?: \\ [^\x80-\xff] | 2212 \( # ( 2213 [^\\\x80-\xff\n\015()] * # normal* 2214 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2215 \) # ) 2216 ) # special 2217 [^\\\x80-\xff\n\015()] * # normal* 2218 )* # )* 2219 \) # ) 2220 [\040\t]* )* # If comment found, allow more spaces. 2221 (?: 2222 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 2223 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 2224 | 2225 \[ # [ 2226 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 2227 \] # ] 2228 ) 2229 [\040\t]* # Nab whitespace. 2230 (?: 2231 \( # ( 2232 [^\\\x80-\xff\n\015()] * # normal* 2233 (?: # ( 2234 (?: \\ [^\x80-\xff] | 2235 \( # ( 2236 [^\\\x80-\xff\n\015()] * # normal* 2237 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2238 \) # ) 2239 ) # special 2240 [^\\\x80-\xff\n\015()] * # normal* 2241 )* # )* 2242 \) # ) 2243 [\040\t]* )* # If comment found, allow more spaces. 2244 # optional trailing comments 2245 )* 2246 # address 2247 | # or 2248 (?: 2249 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 2250 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 2251 # Atom 2252 | # or 2253 " # " 2254 [^\\\x80-\xff\n\015"] * # normal 2255 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* 2256 " # " 2257 # Quoted string 2258 ) 2259 # leading word 2260 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # "normal" atoms and or spaces 2261 (?: 2262 (?: 2263 \( # ( 2264 [^\\\x80-\xff\n\015()] * # normal* 2265 (?: # ( 2266 (?: \\ [^\x80-\xff] | 2267 \( # ( 2268 [^\\\x80-\xff\n\015()] * # normal* 2269 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2270 \) # ) 2271 ) # special 2272 [^\\\x80-\xff\n\015()] * # normal* 2273 )* # )* 2274 \) # ) 2275 | 2276 " # " 2277 [^\\\x80-\xff\n\015"] * # normal 2278 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* 2279 " # " 2280 ) # "special" comment or quoted string 2281 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # more "normal" 2282 )* 2283 < 2284 [\040\t]* # Nab whitespace. 2285 (?: 2286 \( # ( 2287 [^\\\x80-\xff\n\015()] * # normal* 2288 (?: # ( 2289 (?: \\ [^\x80-\xff] | 2290 \( # ( 2291 [^\\\x80-\xff\n\015()] * # normal* 2292 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2293 \) # ) 2294 ) # special 2295 [^\\\x80-\xff\n\015()] * # normal* 2296 )* # )* 2297 \) # ) 2298 [\040\t]* )* # If comment found, allow more spaces. 2299 # < 2300 (?: 2301 @ 2302 [\040\t]* # Nab whitespace. 2303 (?: 2304 \( # ( 2305 [^\\\x80-\xff\n\015()] * # normal* 2306 (?: # ( 2307 (?: \\ [^\x80-\xff] | 2308 \( # ( 2309 [^\\\x80-\xff\n\015()] * # normal* 2310 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2311 \) # ) 2312 ) # special 2313 [^\\\x80-\xff\n\015()] * # normal* 2314 )* # )* 2315 \) # ) 2316 [\040\t]* )* # If comment found, allow more spaces. 2317 (?: 2318 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 2319 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 2320 | 2321 \[ # [ 2322 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 2323 \] # ] 2324 ) 2325 [\040\t]* # Nab whitespace. 2326 (?: 2327 \( # ( 2328 [^\\\x80-\xff\n\015()] * # normal* 2329 (?: # ( 2330 (?: \\ [^\x80-\xff] | 2331 \( # ( 2332 [^\\\x80-\xff\n\015()] * # normal* 2333 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2334 \) # ) 2335 ) # special 2336 [^\\\x80-\xff\n\015()] * # normal* 2337 )* # )* 2338 \) # ) 2339 [\040\t]* )* # If comment found, allow more spaces. 2340 # optional trailing comments 2341 (?: 2342 \. 2343 [\040\t]* # Nab whitespace. 2344 (?: 2345 \( # ( 2346 [^\\\x80-\xff\n\015()] * # normal* 2347 (?: # ( 2348 (?: \\ [^\x80-\xff] | 2349 \( # ( 2350 [^\\\x80-\xff\n\015()] * # normal* 2351 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2352 \) # ) 2353 ) # special 2354 [^\\\x80-\xff\n\015()] * # normal* 2355 )* # )* 2356 \) # ) 2357 [\040\t]* )* # If comment found, allow more spaces. 2358 (?: 2359 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 2360 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 2361 | 2362 \[ # [ 2363 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 2364 \] # ] 2365 ) 2366 [\040\t]* # Nab whitespace. 2367 (?: 2368 \( # ( 2369 [^\\\x80-\xff\n\015()] * # normal* 2370 (?: # ( 2371 (?: \\ [^\x80-\xff] | 2372 \( # ( 2373 [^\\\x80-\xff\n\015()] * # normal* 2374 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2375 \) # ) 2376 ) # special 2377 [^\\\x80-\xff\n\015()] * # normal* 2378 )* # )* 2379 \) # ) 2380 [\040\t]* )* # If comment found, allow more spaces. 2381 # optional trailing comments 2382 )* 2383 (?: , 2384 [\040\t]* # Nab whitespace. 2385 (?: 2386 \( # ( 2387 [^\\\x80-\xff\n\015()] * # normal* 2388 (?: # ( 2389 (?: \\ [^\x80-\xff] | 2390 \( # ( 2391 [^\\\x80-\xff\n\015()] * # normal* 2392 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2393 \) # ) 2394 ) # special 2395 [^\\\x80-\xff\n\015()] * # normal* 2396 )* # )* 2397 \) # ) 2398 [\040\t]* )* # If comment found, allow more spaces. 2399 @ 2400 [\040\t]* # Nab whitespace. 2401 (?: 2402 \( # ( 2403 [^\\\x80-\xff\n\015()] * # normal* 2404 (?: # ( 2405 (?: \\ [^\x80-\xff] | 2406 \( # ( 2407 [^\\\x80-\xff\n\015()] * # normal* 2408 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2409 \) # ) 2410 ) # special 2411 [^\\\x80-\xff\n\015()] * # normal* 2412 )* # )* 2413 \) # ) 2414 [\040\t]* )* # If comment found, allow more spaces. 2415 (?: 2416 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 2417 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 2418 | 2419 \[ # [ 2420 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 2421 \] # ] 2422 ) 2423 [\040\t]* # Nab whitespace. 2424 (?: 2425 \( # ( 2426 [^\\\x80-\xff\n\015()] * # normal* 2427 (?: # ( 2428 (?: \\ [^\x80-\xff] | 2429 \( # ( 2430 [^\\\x80-\xff\n\015()] * # normal* 2431 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2432 \) # ) 2433 ) # special 2434 [^\\\x80-\xff\n\015()] * # normal* 2435 )* # )* 2436 \) # ) 2437 [\040\t]* )* # If comment found, allow more spaces. 2438 # optional trailing comments 2439 (?: 2440 \. 2441 [\040\t]* # Nab whitespace. 2442 (?: 2443 \( # ( 2444 [^\\\x80-\xff\n\015()] * # normal* 2445 (?: # ( 2446 (?: \\ [^\x80-\xff] | 2447 \( # ( 2448 [^\\\x80-\xff\n\015()] * # normal* 2449 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2450 \) # ) 2451 ) # special 2452 [^\\\x80-\xff\n\015()] * # normal* 2453 )* # )* 2454 \) # ) 2455 [\040\t]* )* # If comment found, allow more spaces. 2456 (?: 2457 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 2458 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 2459 | 2460 \[ # [ 2461 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 2462 \] # ] 2463 ) 2464 [\040\t]* # Nab whitespace. 2465 (?: 2466 \( # ( 2467 [^\\\x80-\xff\n\015()] * # normal* 2468 (?: # ( 2469 (?: \\ [^\x80-\xff] | 2470 \( # ( 2471 [^\\\x80-\xff\n\015()] * # normal* 2472 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2473 \) # ) 2474 ) # special 2475 [^\\\x80-\xff\n\015()] * # normal* 2476 )* # )* 2477 \) # ) 2478 [\040\t]* )* # If comment found, allow more spaces. 2479 # optional trailing comments 2480 )* 2481 )* # additional domains 2482 : 2483 [\040\t]* # Nab whitespace. 2484 (?: 2485 \( # ( 2486 [^\\\x80-\xff\n\015()] * # normal* 2487 (?: # ( 2488 (?: \\ [^\x80-\xff] | 2489 \( # ( 2490 [^\\\x80-\xff\n\015()] * # normal* 2491 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2492 \) # ) 2493 ) # special 2494 [^\\\x80-\xff\n\015()] * # normal* 2495 )* # )* 2496 \) # ) 2497 [\040\t]* )* # If comment found, allow more spaces. 2498 # optional trailing comments 2499 )? # optional route 2500 (?: 2501 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 2502 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 2503 # Atom 2504 | # or 2505 " # " 2506 [^\\\x80-\xff\n\015"] * # normal 2507 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* 2508 " # " 2509 # Quoted string 2510 ) 2511 [\040\t]* # Nab whitespace. 2512 (?: 2513 \( # ( 2514 [^\\\x80-\xff\n\015()] * # normal* 2515 (?: # ( 2516 (?: \\ [^\x80-\xff] | 2517 \( # ( 2518 [^\\\x80-\xff\n\015()] * # normal* 2519 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2520 \) # ) 2521 ) # special 2522 [^\\\x80-\xff\n\015()] * # normal* 2523 )* # )* 2524 \) # ) 2525 [\040\t]* )* # If comment found, allow more spaces. 2526 (?: 2527 \. 2528 [\040\t]* # Nab whitespace. 2529 (?: 2530 \( # ( 2531 [^\\\x80-\xff\n\015()] * # normal* 2532 (?: # ( 2533 (?: \\ [^\x80-\xff] | 2534 \( # ( 2535 [^\\\x80-\xff\n\015()] * # normal* 2536 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2537 \) # ) 2538 ) # special 2539 [^\\\x80-\xff\n\015()] * # normal* 2540 )* # )* 2541 \) # ) 2542 [\040\t]* )* # If comment found, allow more spaces. 2543 (?: 2544 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 2545 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 2546 # Atom 2547 | # or 2548 " # " 2549 [^\\\x80-\xff\n\015"] * # normal 2550 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* 2551 " # " 2552 # Quoted string 2553 ) 2554 [\040\t]* # Nab whitespace. 2555 (?: 2556 \( # ( 2557 [^\\\x80-\xff\n\015()] * # normal* 2558 (?: # ( 2559 (?: \\ [^\x80-\xff] | 2560 \( # ( 2561 [^\\\x80-\xff\n\015()] * # normal* 2562 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2563 \) # ) 2564 ) # special 2565 [^\\\x80-\xff\n\015()] * # normal* 2566 )* # )* 2567 \) # ) 2568 [\040\t]* )* # If comment found, allow more spaces. 2569 # additional words 2570 )* 2571 @ 2572 [\040\t]* # Nab whitespace. 2573 (?: 2574 \( # ( 2575 [^\\\x80-\xff\n\015()] * # normal* 2576 (?: # ( 2577 (?: \\ [^\x80-\xff] | 2578 \( # ( 2579 [^\\\x80-\xff\n\015()] * # normal* 2580 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2581 \) # ) 2582 ) # special 2583 [^\\\x80-\xff\n\015()] * # normal* 2584 )* # )* 2585 \) # ) 2586 [\040\t]* )* # If comment found, allow more spaces. 2587 (?: 2588 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 2589 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 2590 | 2591 \[ # [ 2592 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 2593 \] # ] 2594 ) 2595 [\040\t]* # Nab whitespace. 2596 (?: 2597 \( # ( 2598 [^\\\x80-\xff\n\015()] * # normal* 2599 (?: # ( 2600 (?: \\ [^\x80-\xff] | 2601 \( # ( 2602 [^\\\x80-\xff\n\015()] * # normal* 2603 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2604 \) # ) 2605 ) # special 2606 [^\\\x80-\xff\n\015()] * # normal* 2607 )* # )* 2608 \) # ) 2609 [\040\t]* )* # If comment found, allow more spaces. 2610 # optional trailing comments 2611 (?: 2612 \. 2613 [\040\t]* # Nab whitespace. 2614 (?: 2615 \( # ( 2616 [^\\\x80-\xff\n\015()] * # normal* 2617 (?: # ( 2618 (?: \\ [^\x80-\xff] | 2619 \( # ( 2620 [^\\\x80-\xff\n\015()] * # normal* 2621 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2622 \) # ) 2623 ) # special 2624 [^\\\x80-\xff\n\015()] * # normal* 2625 )* # )* 2626 \) # ) 2627 [\040\t]* )* # If comment found, allow more spaces. 2628 (?: 2629 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... 2630 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom 2631 | 2632 \[ # [ 2633 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff 2634 \] # ] 2635 ) 2636 [\040\t]* # Nab whitespace. 2637 (?: 2638 \( # ( 2639 [^\\\x80-\xff\n\015()] * # normal* 2640 (?: # ( 2641 (?: \\ [^\x80-\xff] | 2642 \( # ( 2643 [^\\\x80-\xff\n\015()] * # normal* 2644 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* 2645 \) # ) 2646 ) # special 2647 [^\\\x80-\xff\n\015()] * # normal* 2648 )* # )* 2649 \) # ) 2650 [\040\t]* )* # If comment found, allow more spaces. 2651 # optional trailing comments 2652 )* 2653 # address spec 2654 > # > 2655 # name and address 2656 ) 2657 /x 2658 Alan Other <user\@dom.ain> 2659 0: Alan Other <user@dom.ain> 2660 <user\@dom.ain> 2661 0: user@dom.ain 2662 1: user@dom 2663 user\@dom.ain 2664 0: user@dom.ain 2665 1: user@dom 2666 \"A. Other\" <user.1234\@dom.ain> (a comment) 2667 0: "A. Other" <user.1234@dom.ain> 2668 A. Other <user.1234\@dom.ain> (a comment) 2669 0: Other <user.1234@dom.ain> 2670 \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay 2671 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay 2672 1: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re 2673 A missing angle <user\@some.where 2674 0: user@some.where 2675 1: user@some 2676 *** Failers 2677 No match 2678 The quick brown fox 2679 No match 2680 2681 /abc\0def\00pqr\000xyz\0000AB/ 2682 abc\0def\00pqr\000xyz\0000AB 2683 0: abc\x00def\x00pqr\x00xyz\x000AB 2684 abc456 abc\0def\00pqr\000xyz\0000ABCDE 2685 0: abc\x00def\x00pqr\x00xyz\x000AB 2686 2687 /abc\x0def\x00pqr\x000xyz\x0000AB/ 2688 abc\x0def\x00pqr\x000xyz\x0000AB 2689 0: abc\x0def\x00pqr\x000xyz\x0000AB 2690 abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE 2691 0: abc\x0def\x00pqr\x000xyz\x0000AB 2692 2693 /^[\000-\037]/ 2694 \0A 2695 0: \x00 2696 \01B 2697 0: \x01 2698 \037C 2699 0: \x1f 2700 2701 /\0*/ 2702 \0\0\0\0 2703 0: \x00\x00\x00\x00 2704 1: \x00\x00\x00 2705 2: \x00\x00 2706 3: \x00 2707 4: 2708 2709 /A\x0{2,3}Z/ 2710 The A\x0\x0Z 2711 0: A\x00\x00Z 2712 An A\0\x0\0Z 2713 0: A\x00\x00\x00Z 2714 *** Failers 2715 No match 2716 A\0Z 2717 No match 2718 A\0\x0\0\x0Z 2719 No match 2720 2721 /^\s/ 2722 \040abc 2723 0: 2724 \x0cabc 2725 0: \x0c 2726 \nabc 2727 0: \x0a 2728 \rabc 2729 0: \x0d 2730 \tabc 2731 0: \x09 2732 *** Failers 2733 No match 2734 abc 2735 No match 2736 2737 /^a b 2738 c/x 2739 abc 2740 0: abc 2741 2742 /ab{1,3}bc/ 2743 abbbbc 2744 0: abbbbc 2745 abbbc 2746 0: abbbc 2747 abbc 2748 0: abbc 2749 *** Failers 2750 No match 2751 abc 2752 No match 2753 abbbbbc 2754 No match 2755 2756 /([^.]*)\.([^:]*):[T ]+(.*)/ 2757 track1.title:TBlah blah blah 2758 0: track1.title:TBlah blah blah 2759 1: track1.title:TBlah blah bla 2760 2: track1.title:TBlah blah bl 2761 3: track1.title:TBlah blah b 2762 4: track1.title:TBlah blah 2763 5: track1.title:TBlah blah 2764 6: track1.title:TBlah bla 2765 7: track1.title:TBlah bl 2766 8: track1.title:TBlah b 2767 9: track1.title:TBlah 2768 10: track1.title:TBlah 2769 11: track1.title:TBla 2770 12: track1.title:TBl 2771 13: track1.title:TB 2772 14: track1.title:T 2773 2774 /([^.]*)\.([^:]*):[T ]+(.*)/i 2775 track1.title:TBlah blah blah 2776 0: track1.title:TBlah blah blah 2777 1: track1.title:TBlah blah bla 2778 2: track1.title:TBlah blah bl 2779 3: track1.title:TBlah blah b 2780 4: track1.title:TBlah blah 2781 5: track1.title:TBlah blah 2782 6: track1.title:TBlah bla 2783 7: track1.title:TBlah bl 2784 8: track1.title:TBlah b 2785 9: track1.title:TBlah 2786 10: track1.title:TBlah 2787 11: track1.title:TBla 2788 12: track1.title:TBl 2789 13: track1.title:TB 2790 14: track1.title:T 2791 2792 /([^.]*)\.([^:]*):[t ]+(.*)/i 2793 track1.title:TBlah blah blah 2794 0: track1.title:TBlah blah blah 2795 1: track1.title:TBlah blah bla 2796 2: track1.title:TBlah blah bl 2797 3: track1.title:TBlah blah b 2798 4: track1.title:TBlah blah 2799 5: track1.title:TBlah blah 2800 6: track1.title:TBlah bla 2801 7: track1.title:TBlah bl 2802 8: track1.title:TBlah b 2803 9: track1.title:TBlah 2804 10: track1.title:TBlah 2805 11: track1.title:TBla 2806 12: track1.title:TBl 2807 13: track1.title:TB 2808 14: track1.title:T 2809 2810 /^[W-c]+$/ 2811 WXY_^abc 2812 0: WXY_^abc 2813 *** Failers 2814 No match 2815 wxy 2816 No match 2817 2818 /^[W-c]+$/i 2819 WXY_^abc 2820 0: WXY_^abc 2821 wxy_^ABC 2822 0: wxy_^ABC 2823 2824 /^[\x3f-\x5F]+$/i 2825 WXY_^abc 2826 0: WXY_^abc 2827 wxy_^ABC 2828 0: wxy_^ABC 2829 2830 /^abc$/m 2831 abc 2832 0: abc 2833 qqq\nabc 2834 0: abc 2835 abc\nzzz 2836 0: abc 2837 qqq\nabc\nzzz 2838 0: abc 2839 2840 /^abc$/ 2841 abc 2842 0: abc 2843 *** Failers 2844 No match 2845 qqq\nabc 2846 No match 2847 abc\nzzz 2848 No match 2849 qqq\nabc\nzzz 2850 No match 2851 2852 /\Aabc\Z/m 2853 abc 2854 0: abc 2855 abc\n 2856 0: abc 2857 *** Failers 2858 No match 2859 qqq\nabc 2860 No match 2861 abc\nzzz 2862 No match 2863 qqq\nabc\nzzz 2864 No match 2865 2866 /\A(.)*\Z/s 2867 abc\ndef 2868 0: abc\x0adef 2869 2870 /\A(.)*\Z/m 2871 *** Failers 2872 0: *** Failers 2873 abc\ndef 2874 No match 2875 2876 /(?:b)|(?::+)/ 2877 b::c 2878 0: b 2879 c::b 2880 0: :: 2881 1: : 2882 2883 /[-az]+/ 2884 az- 2885 0: az- 2886 1: az 2887 2: a 2888 *** Failers 2889 0: a 2890 b 2891 No match 2892 2893 /[az-]+/ 2894 za- 2895 0: za- 2896 1: za 2897 2: z 2898 *** Failers 2899 0: a 2900 b 2901 No match 2902 2903 /[a\-z]+/ 2904 a-z 2905 0: a-z 2906 1: a- 2907 2: a 2908 *** Failers 2909 0: a 2910 b 2911 No match 2912 2913 /[a-z]+/ 2914 abcdxyz 2915 0: abcdxyz 2916 1: abcdxy 2917 2: abcdx 2918 3: abcd 2919 4: abc 2920 5: ab 2921 6: a 2922 2923 /[\d-]+/ 2924 12-34 2925 0: 12-34 2926 1: 12-3 2927 2: 12- 2928 3: 12 2929 4: 1 2930 *** Failers 2931 No match 2932 aaa 2933 No match 2934 2935 /[\d-z]+/ 2936 12-34z 2937 0: 12-34z 2938 1: 12-34 2939 2: 12-3 2940 3: 12- 2941 4: 12 2942 5: 1 2943 *** Failers 2944 No match 2945 aaa 2946 No match 2947 2948 /\x5c/ 2949 \\ 2950 0: \ 2951 2952 /\x20Z/ 2953 the Zoo 2954 0: Z 2955 *** Failers 2956 No match 2957 Zulu 2958 No match 2959 2960 /ab{3cd/ 2961 ab{3cd 2962 0: ab{3cd 2963 2964 /ab{3,cd/ 2965 ab{3,cd 2966 0: ab{3,cd 2967 2968 /ab{3,4a}cd/ 2969 ab{3,4a}cd 2970 0: ab{3,4a}cd 2971 2972 /{4,5a}bc/ 2973 {4,5a}bc 2974 0: {4,5a}bc 2975 2976 /^a.b/<lf> 2977 a\rb 2978 0: a\x0db 2979 *** Failers 2980 No match 2981 a\nb 2982 No match 2983 2984 /abc$/ 2985 abc 2986 0: abc 2987 abc\n 2988 0: abc 2989 *** Failers 2990 No match 2991 abc\ndef 2992 No match 2993 2994 /(abc)\123/ 2995 abc\x53 2996 0: abcS 2997 2998 /(abc)\223/ 2999 abc\x93 3000 0: abc\x93 3001 3002 /(abc)\323/ 3003 abc\xd3 3004 0: abc\xd3 3005 3006 /(abc)\100/ 3007 abc\x40 3008 0: abc@ 3009 abc\100 3010 0: abc@ 3011 3012 /(abc)\1000/ 3013 abc\x400 3014 0: abc@0 3015 abc\x40\x30 3016 0: abc@0 3017 abc\1000 3018 0: abc@0 3019 abc\100\x30 3020 0: abc@0 3021 abc\100\060 3022 0: abc@0 3023 abc\100\60 3024 0: abc@0 3025 3026 /abc\81/ 3027 abc\081 3028 0: abc\x0081 3029 abc\0\x38\x31 3030 0: abc\x0081 3031 3032 /abc\91/ 3033 abc\091 3034 0: abc\x0091 3035 abc\0\x39\x31 3036 0: abc\x0091 3037 3038 /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/ 3039 abcdefghijk\12S 3040 0: abcdefghijk\x0aS 3041 3042 /ab\hdef/ 3043 abhdef 3044 0: abhdef 3045 3046 /a{0}bc/ 3047 bc 3048 0: bc 3049 3050 /(a|(bc)){0,0}?xyz/ 3051 xyz 3052 0: xyz 3053 3054 /abc[\10]de/ 3055 abc\010de 3056 0: abc\x08de 3057 3058 /abc[\1]de/ 3059 abc\1de 3060 0: abc\x01de 3061 3062 /(abc)[\1]de/ 3063 abc\1de 3064 0: abc\x01de 3065 3066 /(?s)a.b/ 3067 a\nb 3068 0: a\x0ab 3069 3070 /^([^a])([^\b])([^c]*)([^d]{3,4})/ 3071 baNOTccccd 3072 0: baNOTcccc 3073 1: baNOTccc 3074 2: baNOTcc 3075 3: baNOTc 3076 4: baNOT 3077 baNOTcccd 3078 0: baNOTccc 3079 1: baNOTcc 3080 2: baNOTc 3081 3: baNOT 3082 baNOTccd 3083 0: baNOTcc 3084 1: baNOTc 3085 2: baNOT 3086 bacccd 3087 0: baccc 3088 *** Failers 3089 0: *** Failers 3090 1: *** Failer 3091 2: *** Faile 3092 3: *** Fail 3093 4: *** Fai 3094 5: *** Fa 3095 6: *** F 3096 anything 3097 No match 3098 b\bc 3099 No match 3100 baccd 3101 No match 3102 3103 /[^a]/ 3104 Abc 3105 0: A 3106 3107 /[^a]/i 3108 Abc 3109 0: b 3110 3111 /[^a]+/ 3112 AAAaAbc 3113 0: AAA 3114 1: AA 3115 2: A 3116 3117 /[^a]+/i 3118 AAAaAbc 3119 0: bc 3120 1: b 3121 3122 /[^a]+/ 3123 bbb\nccc 3124 0: bbb\x0accc 3125 1: bbb\x0acc 3126 2: bbb\x0ac 3127 3: bbb\x0a 3128 4: bbb 3129 5: bb 3130 6: b 3131 3132 /[^k]$/ 3133 abc 3134 0: c 3135 *** Failers 3136 0: s 3137 abk 3138 No match 3139 3140 /[^k]{2,3}$/ 3141 abc 3142 0: abc 3143 kbc 3144 0: bc 3145 kabc 3146 0: abc 3147 *** Failers 3148 0: ers 3149 abk 3150 No match 3151 akb 3152 No match 3153 akk 3154 No match 3155 3156 /^\d{8,}\@.+[^k]$/ 3157 12345678\@a.b.c.d 3158 0: 12345678@a.b.c.d 3159 123456789\@x.y.z 3160 0: 123456789@x.y.z 3161 *** Failers 3162 No match 3163 12345678\@x.y.uk 3164 No match 3165 1234567\@a.b.c.d 3166 No match 3167 3168 /[^a]/ 3169 aaaabcd 3170 0: b 3171 aaAabcd 3172 0: A 3173 3174 /[^a]/i 3175 aaaabcd 3176 0: b 3177 aaAabcd 3178 0: b 3179 3180 /[^az]/ 3181 aaaabcd 3182 0: b 3183 aaAabcd 3184 0: A 3185 3186 /[^az]/i 3187 aaaabcd 3188 0: b 3189 aaAabcd 3190 0: b 3191 3192 /\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377/ 3193 \000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377 3194 0: \x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff 3195 3196 /P[^*]TAIRE[^*]{1,6}?LL/ 3197 xxxxxxxxxxxPSTAIREISLLxxxxxxxxx 3198 0: PSTAIREISLL 3199 3200 /P[^*]TAIRE[^*]{1,}?LL/ 3201 xxxxxxxxxxxPSTAIREISLLxxxxxxxxx 3202 0: PSTAIREISLL 3203 3204 /(\.\d\d[1-9]?)\d+/ 3205 1.230003938 3206 0: .230003938 3207 1: .23000393 3208 2: .2300039 3209 3: .230003 3210 4: .23000 3211 5: .2300 3212 6: .230 3213 1.875000282 3214 0: .875000282 3215 1: .87500028 3216 2: .8750002 3217 3: .875000 3218 4: .87500 3219 5: .8750 3220 6: .875 3221 1.235 3222 0: .235 3223 3224 /(\.\d\d((?=0)|\d(?=\d)))/ 3225 1.230003938 3226 0: .230 3227 1: .23 3228 1.875000282 3229 0: .875 3230 *** Failers 3231 No match 3232 1.235 3233 No match 3234 3235 /a(?)b/ 3236 ab 3237 0: ab 3238 3239 /\b(foo)\s+(\w+)/i 3240 Food is on the foo table 3241 0: foo table 3242 1: foo tabl 3243 2: foo tab 3244 3: foo ta 3245 4: foo t 3246 3247 /foo(.*)bar/ 3248 The food is under the bar in the barn. 3249 0: food is under the bar in the bar 3250 1: food is under the bar 3251 3252 /foo(.*?)bar/ 3253 The food is under the bar in the barn. 3254 0: food is under the bar in the bar 3255 1: food is under the bar 3256 3257 /(.*)(\d*)/ 3258 I have 2 numbers: 53147 3259 Matched, but too many subsidiary matches 3260 0: I have 2 numbers: 53147 3261 1: I have 2 numbers: 5314 3262 2: I have 2 numbers: 531 3263 3: I have 2 numbers: 53 3264 4: I have 2 numbers: 5 3265 5: I have 2 numbers: 3266 6: I have 2 numbers: 3267 7: I have 2 numbers 3268 8: I have 2 number 3269 9: I have 2 numbe 3270 10: I have 2 numb 3271 11: I have 2 num 3272 12: I have 2 nu 3273 13: I have 2 n 3274 14: I have 2 3275 15: I have 2 3276 16: I have 3277 17: I have 3278 18: I hav 3279 19: I ha 3280 20: I h 3281 21: I 3282 3283 /(.*)(\d+)/ 3284 I have 2 numbers: 53147 3285 0: I have 2 numbers: 53147 3286 1: I have 2 numbers: 5314 3287 2: I have 2 numbers: 531 3288 3: I have 2 numbers: 53 3289 4: I have 2 numbers: 5 3290 5: I have 2 3291 3292 /(.*?)(\d*)/ 3293 I have 2 numbers: 53147 3294 Matched, but too many subsidiary matches 3295 0: I have 2 numbers: 53147 3296 1: I have 2 numbers: 5314 3297 2: I have 2 numbers: 531 3298 3: I have 2 numbers: 53 3299 4: I have 2 numbers: 5 3300 5: I have 2 numbers: 3301 6: I have 2 numbers: 3302 7: I have 2 numbers 3303 8: I have 2 number 3304 9: I have 2 numbe 3305 10: I have 2 numb 3306 11: I have 2 num 3307 12: I have 2 nu 3308 13: I have 2 n 3309 14: I have 2 3310 15: I have 2 3311 16: I have 3312 17: I have 3313 18: I hav 3314 19: I ha 3315 20: I h 3316 21: I 3317 3318 /(.*?)(\d+)/ 3319 I have 2 numbers: 53147 3320 0: I have 2 numbers: 53147 3321 1: I have 2 numbers: 5314 3322 2: I have 2 numbers: 531 3323 3: I have 2 numbers: 53 3324 4: I have 2 numbers: 5 3325 5: I have 2 3326 3327 /(.*)(\d+)$/ 3328 I have 2 numbers: 53147 3329 0: I have 2 numbers: 53147 3330 3331 /(.*?)(\d+)$/ 3332 I have 2 numbers: 53147 3333 0: I have 2 numbers: 53147 3334 3335 /(.*)\b(\d+)$/ 3336 I have 2 numbers: 53147 3337 0: I have 2 numbers: 53147 3338 3339 /(.*\D)(\d+)$/ 3340 I have 2 numbers: 53147 3341 0: I have 2 numbers: 53147 3342 3343 /^\D*(?!123)/ 3344 ABC123 3345 0: AB 3346 1: A 3347 2: 3348 3349 /^(\D*)(?=\d)(?!123)/ 3350 ABC445 3351 0: ABC 3352 *** Failers 3353 No match 3354 ABC123 3355 No match 3356 3357 /^[W-]46]/ 3358 W46]789 3359 0: W46] 3360 -46]789 3361 0: -46] 3362 *** Failers 3363 No match 3364 Wall 3365 No match 3366 Zebra 3367 No match 3368 42 3369 No match 3370 [abcd] 3371 No match 3372 ]abcd[ 3373 No match 3374 3375 /^[W-\]46]/ 3376 W46]789 3377 0: W 3378 Wall 3379 0: W 3380 Zebra 3381 0: Z 3382 Xylophone 3383 0: X 3384 42 3385 0: 4 3386 [abcd] 3387 0: [ 3388 ]abcd[ 3389 0: ] 3390 \\backslash 3391 0: \ 3392 *** Failers 3393 No match 3394 -46]789 3395 No match 3396 well 3397 No match 3398 3399 /\d\d\/\d\d\/\d\d\d\d/ 3400 01/01/2000 3401 0: 01/01/2000 3402 3403 /word (?:[a-zA-Z0-9]+ ){0,10}otherword/ 3404 word cat dog elephant mussel cow horse canary baboon snake shark otherword 3405 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword 3406 word cat dog elephant mussel cow horse canary baboon snake shark 3407 No match 3408 3409 /word (?:[a-zA-Z0-9]+ ){0,300}otherword/ 3410 word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope 3411 No match 3412 3413 /^(a){0,0}/ 3414 bcd 3415 0: 3416 abc 3417 0: 3418 aab 3419 0: 3420 3421 /^(a){0,1}/ 3422 bcd 3423 0: 3424 abc 3425 0: a 3426 1: 3427 aab 3428 0: a 3429 1: 3430 3431 /^(a){0,2}/ 3432 bcd 3433 0: 3434 abc 3435 0: a 3436 1: 3437 aab 3438 0: aa 3439 1: a 3440 2: 3441 3442 /^(a){0,3}/ 3443 bcd 3444 0: 3445 abc 3446 0: a 3447 1: 3448 aab 3449 0: aa 3450 1: a 3451 2: 3452 aaa 3453 0: aaa 3454 1: aa 3455 2: a 3456 3: 3457 3458 /^(a){0,}/ 3459 bcd 3460 0: 3461 abc 3462 0: a 3463 1: 3464 aab 3465 0: aa 3466 1: a 3467 2: 3468 aaa 3469 0: aaa 3470 1: aa 3471 2: a 3472 3: 3473 aaaaaaaa 3474 0: aaaaaaaa 3475 1: aaaaaaa 3476 2: aaaaaa 3477 3: aaaaa 3478 4: aaaa 3479 5: aaa 3480 6: aa 3481 7: a 3482 8: 3483 3484 /^(a){1,1}/ 3485 bcd 3486 No match 3487 abc 3488 0: a 3489 aab 3490 0: a 3491 3492 /^(a){1,2}/ 3493 bcd 3494 No match 3495 abc 3496 0: a 3497 aab 3498 0: aa 3499 1: a 3500 3501 /^(a){1,3}/ 3502 bcd 3503 No match 3504 abc 3505 0: a 3506 aab 3507 0: aa 3508 1: a 3509 aaa 3510 0: aaa 3511 1: aa 3512 2: a 3513 3514 /^(a){1,}/ 3515 bcd 3516 No match 3517 abc 3518 0: a 3519 aab 3520 0: aa 3521 1: a 3522 aaa 3523 0: aaa 3524 1: aa 3525 2: a 3526 aaaaaaaa 3527 0: aaaaaaaa 3528 1: aaaaaaa 3529 2: aaaaaa 3530 3: aaaaa 3531 4: aaaa 3532 5: aaa 3533 6: aa 3534 7: a 3535 3536 /.*\.gif/ 3537 borfle\nbib.gif\nno 3538 0: bib.gif 3539 3540 /.{0,}\.gif/ 3541 borfle\nbib.gif\nno 3542 0: bib.gif 3543 3544 /.*\.gif/m 3545 borfle\nbib.gif\nno 3546 0: bib.gif 3547 3548 /.*\.gif/s 3549 borfle\nbib.gif\nno 3550 0: borfle\x0abib.gif 3551 3552 /.*\.gif/ms 3553 borfle\nbib.gif\nno 3554 0: borfle\x0abib.gif 3555 3556 /.*$/ 3557 borfle\nbib.gif\nno 3558 0: no 3559 3560 /.*$/m 3561 borfle\nbib.gif\nno 3562 0: borfle 3563 3564 /.*$/s 3565 borfle\nbib.gif\nno 3566 0: borfle\x0abib.gif\x0ano 3567 3568 /.*$/ms 3569 borfle\nbib.gif\nno 3570 0: borfle\x0abib.gif\x0ano 3571 1: borfle\x0abib.gif 3572 2: borfle 3573 3574 /.*$/ 3575 borfle\nbib.gif\nno\n 3576 0: no 3577 3578 /.*$/m 3579 borfle\nbib.gif\nno\n 3580 0: borfle 3581 3582 /.*$/s 3583 borfle\nbib.gif\nno\n 3584 0: borfle\x0abib.gif\x0ano\x0a 3585 1: borfle\x0abib.gif\x0ano 3586 3587 /.*$/ms 3588 borfle\nbib.gif\nno\n 3589 0: borfle\x0abib.gif\x0ano\x0a 3590 1: borfle\x0abib.gif\x0ano 3591 2: borfle\x0abib.gif 3592 3: borfle 3593 3594 /(.*X|^B)/ 3595 abcde\n1234Xyz 3596 0: 1234X 3597 BarFoo 3598 0: B 3599 *** Failers 3600 No match 3601 abcde\nBar 3602 No match 3603 3604 /(.*X|^B)/m 3605 abcde\n1234Xyz 3606 0: 1234X 3607 BarFoo 3608 0: B 3609 abcde\nBar 3610 0: B 3611 3612 /(.*X|^B)/s 3613 abcde\n1234Xyz 3614 0: abcde\x0a1234X 3615 BarFoo 3616 0: B 3617 *** Failers 3618 No match 3619 abcde\nBar 3620 No match 3621 3622 /(.*X|^B)/ms 3623 abcde\n1234Xyz 3624 0: abcde\x0a1234X 3625 BarFoo 3626 0: B 3627 abcde\nBar 3628 0: B 3629 3630 /(?s)(.*X|^B)/ 3631 abcde\n1234Xyz 3632 0: abcde\x0a1234X 3633 BarFoo 3634 0: B 3635 *** Failers 3636 No match 3637 abcde\nBar 3638 No match 3639 3640 /(?s:.*X|^B)/ 3641 abcde\n1234Xyz 3642 0: abcde\x0a1234X 3643 BarFoo 3644 0: B 3645 *** Failers 3646 No match 3647 abcde\nBar 3648 No match 3649 3650 /^.*B/ 3651 **** Failers 3652 No match 3653 abc\nB 3654 No match 3655 3656 /(?s)^.*B/ 3657 abc\nB 3658 0: abc\x0aB 3659 3660 /(?m)^.*B/ 3661 abc\nB 3662 0: B 3663 3664 /(?ms)^.*B/ 3665 abc\nB 3666 0: abc\x0aB 3667 3668 /(?ms)^B/ 3669 abc\nB 3670 0: B 3671 3672 /(?s)B$/ 3673 B\n 3674 0: B 3675 3676 /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/ 3677 123456654321 3678 0: 123456654321 3679 3680 /^\d\d\d\d\d\d\d\d\d\d\d\d/ 3681 123456654321 3682 0: 123456654321 3683 3684 /^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/ 3685 123456654321 3686 0: 123456654321 3687 3688 /^[abc]{12}/ 3689 abcabcabcabc 3690 0: abcabcabcabc 3691 3692 /^[a-c]{12}/ 3693 abcabcabcabc 3694 0: abcabcabcabc 3695 3696 /^(a|b|c){12}/ 3697 abcabcabcabc 3698 0: abcabcabcabc 3699 3700 /^[abcdefghijklmnopqrstuvwxy0123456789]/ 3701 n 3702 0: n 3703 *** Failers 3704 No match 3705 z 3706 No match 3707 3708 /abcde{0,0}/ 3709 abcd 3710 0: abcd 3711 *** Failers 3712 No match 3713 abce 3714 No match 3715 3716 /ab[cd]{0,0}e/ 3717 abe 3718 0: abe 3719 *** Failers 3720 No match 3721 abcde 3722 No match 3723 3724 /ab(c){0,0}d/ 3725 abd 3726 0: abd 3727 *** Failers 3728 No match 3729 abcd 3730 No match 3731 3732 /a(b*)/ 3733 a 3734 0: a 3735 ab 3736 0: ab 3737 1: a 3738 abbbb 3739 0: abbbb 3740 1: abbb 3741 2: abb 3742 3: ab 3743 4: a 3744 *** Failers 3745 0: a 3746 bbbbb 3747 No match 3748 3749 /ab\d{0}e/ 3750 abe 3751 0: abe 3752 *** Failers 3753 No match 3754 ab1e 3755 No match 3756 3757 /"([^\\"]+|\\.)*"/ 3758 the \"quick\" brown fox 3759 0: "quick" 3760 \"the \\\"quick\\\" brown fox\" 3761 0: "the \"quick\" brown fox" 3762 3763 /.*?/g+ 3764 abc 3765 0: abc 3766 0+ 3767 1: ab 3768 2: a 3769 3: 3770 0: 3771 0+ 3772 3773 /\b/g+ 3774 abc 3775 0: 3776 0+ abc 3777 0: 3778 0+ 3779 3780 /\b/+g 3781 abc 3782 0: 3783 0+ abc 3784 0: 3785 0+ 3786 3787 //g 3788 abc 3789 0: 3790 0: 3791 0: 3792 0: 3793 3794 /<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>/is 3795 <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR> 3796 0: <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR> 3797 3798 /a[^a]b/ 3799 acb 3800 0: acb 3801 a\nb 3802 0: a\x0ab 3803 3804 /a.b/ 3805 acb 3806 0: acb 3807 *** Failers 3808 No match 3809 a\nb 3810 No match 3811 3812 /a[^a]b/s 3813 acb 3814 0: acb 3815 a\nb 3816 0: a\x0ab 3817 3818 /a.b/s 3819 acb 3820 0: acb 3821 a\nb 3822 0: a\x0ab 3823 3824 /^(b+?|a){1,2}?c/ 3825 bac 3826 0: bac 3827 bbac 3828 0: bbac 3829 bbbac 3830 0: bbbac 3831 bbbbac 3832 0: bbbbac 3833 bbbbbac 3834 0: bbbbbac 3835 3836 /^(b+|a){1,2}?c/ 3837 bac 3838 0: bac 3839 bbac 3840 0: bbac 3841 bbbac 3842 0: bbbac 3843 bbbbac 3844 0: bbbbac 3845 bbbbbac 3846 0: bbbbbac 3847 3848 /(?!\A)x/m 3849 x\nb\n 3850 No match 3851 a\bx\n 3852 0: x 3853 3854 /\x0{ab}/ 3855 \0{ab} 3856 0: \x00{ab} 3857 3858 /(A|B)*?CD/ 3859 CD 3860 0: CD 3861 3862 /(A|B)*CD/ 3863 CD 3864 0: CD 3865 3866 /(?<!bar)foo/ 3867 foo 3868 0: foo 3869 catfood 3870 0: foo 3871 arfootle 3872 0: foo 3873 rfoosh 3874 0: foo 3875 *** Failers 3876 No match 3877 barfoo 3878 No match 3879 towbarfoo 3880 No match 3881 3882 /\w{3}(?<!bar)foo/ 3883 catfood 3884 0: catfoo 3885 *** Failers 3886 No match 3887 foo 3888 No match 3889 barfoo 3890 No match 3891 towbarfoo 3892 No match 3893 3894 /(?<=(foo)a)bar/ 3895 fooabar 3896 0: bar 3897 *** Failers 3898 No match 3899 bar 3900 No match 3901 foobbar 3902 No match 3903 3904 /\Aabc\z/m 3905 abc 3906 0: abc 3907 *** Failers 3908 No match 3909 abc\n 3910 No match 3911 qqq\nabc 3912 No match 3913 abc\nzzz 3914 No match 3915 qqq\nabc\nzzz 3916 No match 3917 3918 "(?>.*/)foo" 3919 /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/ 3920 No match 3921 3922 "(?>.*/)foo" 3923 /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo 3924 0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo 3925 3926 /(?>(\.\d\d[1-9]?))\d+/ 3927 1.230003938 3928 0: .230003938 3929 1: .23000393 3930 2: .2300039 3931 3: .230003 3932 4: .23000 3933 5: .2300 3934 6: .230 3935 1.875000282 3936 0: .875000282 3937 1: .87500028 3938 2: .8750002 3939 3: .875000 3940 4: .87500 3941 5: .8750 3942 *** Failers 3943 No match 3944 1.235 3945 No match 3946 3947 /^((?>\w+)|(?>\s+))*$/ 3948 now is the time for all good men to come to the aid of the party 3949 0: now is the time for all good men to come to the aid of the party 3950 *** Failers 3951 No match 3952 this is not a line with only words and spaces! 3953 No match 3954 3955 /(\d+)(\w)/ 3956 12345a 3957 0: 12345a 3958 1: 12345 3959 2: 1234 3960 3: 123 3961 4: 12 3962 12345+ 3963 0: 12345 3964 1: 1234 3965 2: 123 3966 3: 12 3967 3968 /((?>\d+))(\w)/ 3969 12345a 3970 0: 12345a 3971 *** Failers 3972 No match 3973 12345+ 3974 No match 3975 3976 /(?>a+)b/ 3977 aaab 3978 0: aaab 3979 3980 /((?>a+)b)/ 3981 aaab 3982 0: aaab 3983 3984 /(?>(a+))b/ 3985 aaab 3986 0: aaab 3987 3988 /(?>b)+/ 3989 aaabbbccc 3990 0: bbb 3991 1: bb 3992 2: b 3993 3994 /(?>a+|b+|c+)*c/ 3995 aaabbbbccccd 3996 0: aaabbbbcccc 3997 1: aaabbbbc 3998 3999 /(a+|b+|c+)*c/ 4000 aaabbbbccccd 4001 0: aaabbbbcccc 4002 1: aaabbbbccc 4003 2: aaabbbbcc 4004 3: aaabbbbc 4005 4006 /((?>[^()]+)|\([^()]*\))+/ 4007 ((abc(ade)ufh()()x 4008 0: abc(ade)ufh()()x 4009 1: abc(ade)ufh()() 4010 2: abc(ade)ufh() 4011 3: abc(ade)ufh 4012 4: abc(ade) 4013 5: abc 4014 4015 /\(((?>[^()]+)|\([^()]+\))+\)/ 4016 (abc) 4017 0: (abc) 4018 (abc(def)xyz) 4019 0: (abc(def)xyz) 4020 *** Failers 4021 No match 4022 ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 4023 No match 4024 4025 /a(?-i)b/i 4026 ab 4027 0: ab 4028 Ab 4029 0: Ab 4030 *** Failers 4031 No match 4032 aB 4033 No match 4034 AB 4035 No match 4036 4037 /(a (?x)b c)d e/ 4038 a bcd e 4039 0: a bcd e 4040 *** Failers 4041 No match 4042 a b cd e 4043 No match 4044 abcd e 4045 No match 4046 a bcde 4047 No match 4048 4049 /(a b(?x)c d (?-x)e f)/ 4050 a bcde f 4051 0: a bcde f 4052 *** Failers 4053 No match 4054 abcdef 4055 No match 4056 4057 /(a(?i)b)c/ 4058 abc 4059 0: abc 4060 aBc 4061 0: aBc 4062 *** Failers 4063 No match 4064 abC 4065 No match 4066 aBC 4067 No match 4068 Abc 4069 No match 4070 ABc 4071 No match 4072 ABC 4073 No match 4074 AbC 4075 No match 4076 4077 /a(?i:b)c/ 4078 abc 4079 0: abc 4080 aBc 4081 0: aBc 4082 *** Failers 4083 No match 4084 ABC 4085 No match 4086 abC 4087 No match 4088 aBC 4089 No match 4090 4091 /a(?i:b)*c/ 4092 aBc 4093 0: aBc 4094 aBBc 4095 0: aBBc 4096 *** Failers 4097 No match 4098 aBC 4099 No match 4100 aBBC 4101 No match 4102 4103 /a(?=b(?i)c)\w\wd/ 4104 abcd 4105 0: abcd 4106 abCd 4107 0: abCd 4108 *** Failers 4109 No match 4110 aBCd 4111 No match 4112 abcD 4113 No match 4114 4115 /(?s-i:more.*than).*million/i 4116 more than million 4117 0: more than million 4118 more than MILLION 4119 0: more than MILLION 4120 more \n than Million 4121 0: more \x0a than Million 4122 *** Failers 4123 No match 4124 MORE THAN MILLION 4125 No match 4126 more \n than \n million 4127 No match 4128 4129 /(?:(?s-i)more.*than).*million/i 4130 more than million 4131 0: more than million 4132 more than MILLION 4133 0: more than MILLION 4134 more \n than Million 4135 0: more \x0a than Million 4136 *** Failers 4137 No match 4138 MORE THAN MILLION 4139 No match 4140 more \n than \n million 4141 No match 4142 4143 /(?>a(?i)b+)+c/ 4144 abc 4145 0: abc 4146 aBbc 4147 0: aBbc 4148 aBBc 4149 0: aBBc 4150 *** Failers 4151 No match 4152 Abc 4153 No match 4154 abAb 4155 No match 4156 abbC 4157 No match 4158 4159 /(?=a(?i)b)\w\wc/ 4160 abc 4161 0: abc 4162 aBc 4163 0: aBc 4164 *** Failers 4165 No match 4166 Ab 4167 No match 4168 abC 4169 No match 4170 aBC 4171 No match 4172 4173 /(?<=a(?i)b)(\w\w)c/ 4174 abxxc 4175 0: xxc 4176 aBxxc 4177 0: xxc 4178 *** Failers 4179 No match 4180 Abxxc 4181 No match 4182 ABxxc 4183 No match 4184 abxxC 4185 No match 4186 4187 /^(?(?=abc)\w{3}:|\d\d)$/ 4188 abc: 4189 0: abc: 4190 12 4191 0: 12 4192 *** Failers 4193 No match 4194 123 4195 No match 4196 xyz 4197 No match 4198 4199 /^(?(?!abc)\d\d|\w{3}:)$/ 4200 abc: 4201 0: abc: 4202 12 4203 0: 12 4204 *** Failers 4205 No match 4206 123 4207 No match 4208 xyz 4209 No match 4210 4211 /(?(?<=foo)bar|cat)/ 4212 foobar 4213 0: bar 4214 cat 4215 0: cat 4216 fcat 4217 0: cat 4218 focat 4219 0: cat 4220 *** Failers 4221 No match 4222 foocat 4223 No match 4224 4225 /(?(?<!foo)cat|bar)/ 4226 foobar 4227 0: bar 4228 cat 4229 0: cat 4230 fcat 4231 0: cat 4232 focat 4233 0: cat 4234 *** Failers 4235 No match 4236 foocat 4237 No match 4238 4239 /(?>a*)*/ 4240 a 4241 0: a 4242 1: 4243 aa 4244 0: aa 4245 1: 4246 aaaa 4247 0: aaaa 4248 1: 4249 4250 /(abc|)+/ 4251 abc 4252 0: abc 4253 1: 4254 abcabc 4255 0: abcabc 4256 1: abc 4257 2: 4258 abcabcabc 4259 0: abcabcabc 4260 1: abcabc 4261 2: abc 4262 3: 4263 xyz 4264 0: 4265 4266 /([a]*)*/ 4267 a 4268 0: a 4269 1: 4270 aaaaa 4271 0: aaaaa 4272 1: aaaa 4273 2: aaa 4274 3: aa 4275 4: a 4276 5: 4277 4278 /([ab]*)*/ 4279 a 4280 0: a 4281 1: 4282 b 4283 0: b 4284 1: 4285 ababab 4286 0: ababab 4287 1: ababa 4288 2: abab 4289 3: aba 4290 4: ab 4291 5: a 4292 6: 4293 aaaabcde 4294 0: aaaab 4295 1: aaaa 4296 2: aaa 4297 3: aa 4298 4: a 4299 5: 4300 bbbb 4301 0: bbbb 4302 1: bbb 4303 2: bb 4304 3: b 4305 4: 4306 4307 /([^a]*)*/ 4308 b 4309 0: b 4310 1: 4311 bbbb 4312 0: bbbb 4313 1: bbb 4314 2: bb 4315 3: b 4316 4: 4317 aaa 4318 0: 4319 4320 /([^ab]*)*/ 4321 cccc 4322 0: cccc 4323 1: ccc 4324 2: cc 4325 3: c 4326 4: 4327 abab 4328 0: 4329 4330 /([a]*?)*/ 4331 a 4332 0: a 4333 1: 4334 aaaa 4335 0: aaaa 4336 1: aaa 4337 2: aa 4338 3: a 4339 4: 4340 4341 /([ab]*?)*/ 4342 a 4343 0: a 4344 1: 4345 b 4346 0: b 4347 1: 4348 abab 4349 0: abab 4350 1: aba 4351 2: ab 4352 3: a 4353 4: 4354 baba 4355 0: baba 4356 1: bab 4357 2: ba 4358 3: b 4359 4: 4360 4361 /([^a]*?)*/ 4362 b 4363 0: b 4364 1: 4365 bbbb 4366 0: bbbb 4367 1: bbb 4368 2: bb 4369 3: b 4370 4: 4371 aaa 4372 0: 4373 4374 /([^ab]*?)*/ 4375 c 4376 0: c 4377 1: 4378 cccc 4379 0: cccc 4380 1: ccc 4381 2: cc 4382 3: c 4383 4: 4384 baba 4385 0: 4386 4387 /(?>a*)*/ 4388 a 4389 0: a 4390 1: 4391 aaabcde 4392 0: aaa 4393 1: 4394 4395 /((?>a*))*/ 4396 aaaaa 4397 0: aaaaa 4398 1: 4399 aabbaa 4400 0: aa 4401 1: 4402 4403 /((?>a*?))*/ 4404 aaaaa 4405 0: aaaaa 4406 1: 4407 aabbaa 4408 0: aa 4409 1: 4410 4411 /(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /x 4412 12-sep-98 4413 0: 12-sep-98 4414 12-09-98 4415 0: 12-09-98 4416 *** Failers 4417 No match 4418 sep-12-98 4419 No match 4420 4421 /(?i:saturday|sunday)/ 4422 saturday 4423 0: saturday 4424 sunday 4425 0: sunday 4426 Saturday 4427 0: Saturday 4428 Sunday 4429 0: Sunday 4430 SATURDAY 4431 0: SATURDAY 4432 SUNDAY 4433 0: SUNDAY 4434 SunDay 4435 0: SunDay 4436 4437 /(a(?i)bc|BB)x/ 4438 abcx 4439 0: abcx 4440 aBCx 4441 0: aBCx 4442 bbx 4443 0: bbx 4444 BBx 4445 0: BBx 4446 *** Failers 4447 No match 4448 abcX 4449 No match 4450 aBCX 4451 No match 4452 bbX 4453 No match 4454 BBX 4455 No match 4456 4457 /^([ab](?i)[cd]|[ef])/ 4458 ac 4459 0: ac 4460 aC 4461 0: aC 4462 bD 4463 0: bD 4464 elephant 4465 0: e 4466 Europe 4467 0: E 4468 frog 4469 0: f 4470 France 4471 0: F 4472 *** Failers 4473 No match 4474 Africa 4475 No match 4476 4477 /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/ 4478 ab 4479 0: ab 4480 aBd 4481 0: aBd 4482 xy 4483 0: xy 4484 xY 4485 0: xY 4486 zebra 4487 0: z 4488 Zambesi 4489 0: Z 4490 *** Failers 4491 No match 4492 aCD 4493 No match 4494 XY 4495 No match 4496 4497 /(?<=foo\n)^bar/m 4498 foo\nbar 4499 0: bar 4500 *** Failers 4501 No match 4502 bar 4503 No match 4504 baz\nbar 4505 No match 4506 4507 /(?<=(?<!foo)bar)baz/ 4508 barbaz 4509 0: baz 4510 barbarbaz 4511 0: baz 4512 koobarbaz 4513 0: baz 4514 *** Failers 4515 No match 4516 baz 4517 No match 4518 foobarbaz 4519 No match 4520 4521 /The following tests are taken from the Perl 5.005 test suite; some of them/ 4522 /are compatible with 5.004, but I'd rather not have to sort them out./ 4523 No match 4524 4525 /abc/ 4526 abc 4527 0: abc 4528 xabcy 4529 0: abc 4530 ababc 4531 0: abc 4532 *** Failers 4533 No match 4534 xbc 4535 No match 4536 axc 4537 No match 4538 abx 4539 No match 4540 4541 /ab*c/ 4542 abc 4543 0: abc 4544 4545 /ab*bc/ 4546 abc 4547 0: abc 4548 abbc 4549 0: abbc 4550 abbbbc 4551 0: abbbbc 4552 4553 /.{1}/ 4554 abbbbc 4555 0: a 4556 4557 /.{3,4}/ 4558 abbbbc 4559 0: abbb 4560 1: abb 4561 4562 /ab{0,}bc/ 4563 abbbbc 4564 0: abbbbc 4565 4566 /ab+bc/ 4567 abbc 4568 0: abbc 4569 *** Failers 4570 No match 4571 abc 4572 No match 4573 abq 4574 No match 4575 4576 /ab{1,}bc/ 4577 4578 /ab+bc/ 4579 abbbbc 4580 0: abbbbc 4581 4582 /ab{1,}bc/ 4583 abbbbc 4584 0: abbbbc 4585 4586 /ab{1,3}bc/ 4587 abbbbc 4588 0: abbbbc 4589 4590 /ab{3,4}bc/ 4591 abbbbc 4592 0: abbbbc 4593 4594 /ab{4,5}bc/ 4595 *** Failers 4596 No match 4597 abq 4598 No match 4599 abbbbc 4600 No match 4601 4602 /ab?bc/ 4603 abbc 4604 0: abbc 4605 abc 4606 0: abc 4607 4608 /ab{0,1}bc/ 4609 abc 4610 0: abc 4611 4612 /ab?bc/ 4613 4614 /ab?c/ 4615 abc 4616 0: abc 4617 4618 /ab{0,1}c/ 4619 abc 4620 0: abc 4621 4622 /^abc$/ 4623 abc 4624 0: abc 4625 *** Failers 4626 No match 4627 abbbbc 4628 No match 4629 abcc 4630 No match 4631 4632 /^abc/ 4633 abcc 4634 0: abc 4635 4636 /^abc$/ 4637 4638 /abc$/ 4639 aabc 4640 0: abc 4641 *** Failers 4642 No match 4643 aabc 4644 0: abc 4645 aabcd 4646 No match 4647 4648 /^/ 4649 abc 4650 0: 4651 4652 /$/ 4653 abc 4654 0: 4655 4656 /a.c/ 4657 abc 4658 0: abc 4659 axc 4660 0: axc 4661 4662 /a.*c/ 4663 axyzc 4664 0: axyzc 4665 4666 /a[bc]d/ 4667 abd 4668 0: abd 4669 *** Failers 4670 No match 4671 axyzd 4672 No match 4673 abc 4674 No match 4675 4676 /a[b-d]e/ 4677 ace 4678 0: ace 4679 4680 /a[b-d]/ 4681 aac 4682 0: ac 4683 4684 /a[-b]/ 4685 a- 4686 0: a- 4687 4688 /a[b-]/ 4689 a- 4690 0: a- 4691 4692 /a]/ 4693 a] 4694 0: a] 4695 4696 /a[]]b/ 4697 a]b 4698 0: a]b 4699 4700 /a[^bc]d/ 4701 aed 4702 0: aed 4703 *** Failers 4704 No match 4705 abd 4706 No match 4707 abd 4708 No match 4709 4710 /a[^-b]c/ 4711 adc 4712 0: adc 4713 4714 /a[^]b]c/ 4715 adc 4716 0: adc 4717 *** Failers 4718 No match 4719 a-c 4720 0: a-c 4721 a]c 4722 No match 4723 4724 /\ba\b/ 4725 a- 4726 0: a 4727 -a 4728 0: a 4729 -a- 4730 0: a 4731 4732 /\by\b/ 4733 *** Failers 4734 No match 4735 xy 4736 No match 4737 yz 4738 No match 4739 xyz 4740 No match 4741 4742 /\Ba\B/ 4743 *** Failers 4744 0: a 4745 a- 4746 No match 4747 -a 4748 No match 4749 -a- 4750 No match 4751 4752 /\By\b/ 4753 xy 4754 0: y 4755 4756 /\by\B/ 4757 yz 4758 0: y 4759 4760 /\By\B/ 4761 xyz 4762 0: y 4763 4764 /\w/ 4765 a 4766 0: a 4767 4768 /\W/ 4769 - 4770 0: - 4771 *** Failers 4772 0: * 4773 - 4774 0: - 4775 a 4776 No match 4777 4778 /a\sb/ 4779 a b 4780 0: a b 4781 4782 /a\Sb/ 4783 a-b 4784 0: a-b 4785 *** Failers 4786 No match 4787 a-b 4788 0: a-b 4789 a b 4790 No match 4791 4792 /\d/ 4793 1 4794 0: 1 4795 4796 /\D/ 4797 - 4798 0: - 4799 *** Failers 4800 0: * 4801 - 4802 0: - 4803 1 4804 No match 4805 4806 /[\w]/ 4807 a 4808 0: a 4809 4810 /[\W]/ 4811 - 4812 0: - 4813 *** Failers 4814 0: * 4815 - 4816 0: - 4817 a 4818 No match 4819 4820 /a[\s]b/ 4821 a b 4822 0: a b 4823 4824 /a[\S]b/ 4825 a-b 4826 0: a-b 4827 *** Failers 4828 No match 4829 a-b 4830 0: a-b 4831 a b 4832 No match 4833 4834 /[\d]/ 4835 1 4836 0: 1 4837 4838 /[\D]/ 4839 - 4840 0: - 4841 *** Failers 4842 0: * 4843 - 4844 0: - 4845 1 4846 No match 4847 4848 /ab|cd/ 4849 abc 4850 0: ab 4851 abcd 4852 0: ab 4853 4854 /()ef/ 4855 def 4856 0: ef 4857 4858 /$b/ 4859 4860 /a\(b/ 4861 a(b 4862 0: a(b 4863 4864 /a\(*b/ 4865 ab 4866 0: ab 4867 a((b 4868 0: a((b 4869 4870 /a\\b/ 4871 a\b 4872 No match 4873 4874 /((a))/ 4875 abc 4876 0: a 4877 4878 /(a)b(c)/ 4879 abc 4880 0: abc 4881 4882 /a+b+c/ 4883 aabbabc 4884 0: abc 4885 4886 /a{1,}b{1,}c/ 4887 aabbabc 4888 0: abc 4889 4890 /a.+?c/ 4891 abcabc 4892 0: abcabc 4893 1: abc 4894 4895 /(a+|b)*/ 4896 ab 4897 0: ab 4898 1: a 4899 2: 4900 4901 /(a+|b){0,}/ 4902 ab 4903 0: ab 4904 1: a 4905 2: 4906 4907 /(a+|b)+/ 4908 ab 4909 0: ab 4910 1: a 4911 4912 /(a+|b){1,}/ 4913 ab 4914 0: ab 4915 1: a 4916 4917 /(a+|b)?/ 4918 ab 4919 0: a 4920 1: 4921 4922 /(a+|b){0,1}/ 4923 ab 4924 0: a 4925 1: 4926 4927 /[^ab]*/ 4928 cde 4929 0: cde 4930 1: cd 4931 2: c 4932 3: 4933 4934 /abc/ 4935 *** Failers 4936 No match 4937 b 4938 No match 4939 4940 4941 /a*/ 4942 4943 4944 /([abc])*d/ 4945 abbbcd 4946 0: abbbcd 4947 4948 /([abc])*bcd/ 4949 abcd 4950 0: abcd 4951 4952 /a|b|c|d|e/ 4953 e 4954 0: e 4955 4956 /(a|b|c|d|e)f/ 4957 ef 4958 0: ef 4959 4960 /abcd*efg/ 4961 abcdefg 4962 0: abcdefg 4963 4964 /ab*/ 4965 xabyabbbz 4966 0: ab 4967 1: a 4968 xayabbbz 4969 0: a 4970 4971 /(ab|cd)e/ 4972 abcde 4973 0: cde 4974 4975 /[abhgefdc]ij/ 4976 hij 4977 0: hij 4978 4979 /^(ab|cd)e/ 4980 4981 /(abc|)ef/ 4982 abcdef 4983 0: ef 4984 4985 /(a|b)c*d/ 4986 abcd 4987 0: bcd 4988 4989 /(ab|ab*)bc/ 4990 abc 4991 0: abc 4992 4993 /a([bc]*)c*/ 4994 abc 4995 0: abc 4996 1: ab 4997 2: a 4998 4999 /a([bc]*)(c*d)/ 5000 abcd 5001 0: abcd 5002 5003 /a([bc]+)(c*d)/ 5004 abcd 5005 0: abcd 5006 5007 /a([bc]*)(c+d)/ 5008 abcd 5009 0: abcd 5010 5011 /a[bcd]*dcdcde/ 5012 adcdcde 5013 0: adcdcde 5014 5015 /a[bcd]+dcdcde/ 5016 *** Failers 5017 No match 5018 abcde 5019 No match 5020 adcdcde 5021 No match 5022 5023 /(ab|a)b*c/ 5024 abc 5025 0: abc 5026 5027 /((a)(b)c)(d)/ 5028 abcd 5029 0: abcd 5030 5031 /[a-zA-Z_][a-zA-Z0-9_]*/ 5032 alpha 5033 0: alpha 5034 1: alph 5035 2: alp 5036 3: al 5037 4: a 5038 5039 /^a(bc+|b[eh])g|.h$/ 5040 abh 5041 0: bh 5042 5043 /(bc+d$|ef*g.|h?i(j|k))/ 5044 effgz 5045 0: effgz 5046 ij 5047 0: ij 5048 reffgz 5049 0: effgz 5050 *** Failers 5051 No match 5052 effg 5053 No match 5054 bcdd 5055 No match 5056 5057 /((((((((((a))))))))))/ 5058 a 5059 0: a 5060 5061 /(((((((((a)))))))))/ 5062 a 5063 0: a 5064 5065 /multiple words of text/ 5066 *** Failers 5067 No match 5068 aa 5069 No match 5070 uh-uh 5071 No match 5072 5073 /multiple words/ 5074 multiple words, yeah 5075 0: multiple words 5076 5077 /(.*)c(.*)/ 5078 abcde 5079 0: abcde 5080 1: abcd 5081 2: abc 5082 5083 /\((.*), (.*)\)/ 5084 (a, b) 5085 0: (a, b) 5086 5087 /[k]/ 5088 5089 /abcd/ 5090 abcd 5091 0: abcd 5092 5093 /a(bc)d/ 5094 abcd 5095 0: abcd 5096 5097 /a[-]?c/ 5098 ac 5099 0: ac 5100 5101 /abc/i 5102 ABC 5103 0: ABC 5104 XABCY 5105 0: ABC 5106 ABABC 5107 0: ABC 5108 *** Failers 5109 No match 5110 aaxabxbaxbbx 5111 No match 5112 XBC 5113 No match 5114 AXC 5115 No match 5116 ABX 5117 No match 5118 5119 /ab*c/i 5120 ABC 5121 0: ABC 5122 5123 /ab*bc/i 5124 ABC 5125 0: ABC 5126 ABBC 5127 0: ABBC 5128 5129 /ab*?bc/i 5130 ABBBBC 5131 0: ABBBBC 5132 5133 /ab{0,}?bc/i 5134 ABBBBC 5135 0: ABBBBC 5136 5137 /ab+?bc/i 5138 ABBC 5139 0: ABBC 5140 5141 /ab+bc/i 5142 *** Failers 5143 No match 5144 ABC 5145 No match 5146 ABQ 5147 No match 5148 5149 /ab{1,}bc/i 5150 5151 /ab+bc/i 5152 ABBBBC 5153 0: ABBBBC 5154 5155 /ab{1,}?bc/i 5156 ABBBBC 5157 0: ABBBBC 5158 5159 /ab{1,3}?bc/i 5160 ABBBBC 5161 0: ABBBBC 5162 5163 /ab{3,4}?bc/i 5164 ABBBBC 5165 0: ABBBBC 5166 5167 /ab{4,5}?bc/i 5168 *** Failers 5169 No match 5170 ABQ 5171 No match 5172 ABBBBC 5173 No match 5174 5175 /ab??bc/i 5176 ABBC 5177 0: ABBC 5178 ABC 5179 0: ABC 5180 5181 /ab{0,1}?bc/i 5182 ABC 5183 0: ABC 5184 5185 /ab??bc/i 5186 5187 /ab??c/i 5188 ABC 5189 0: ABC 5190 5191 /ab{0,1}?c/i 5192 ABC 5193 0: ABC 5194 5195 /^abc$/i 5196 ABC 5197 0: ABC 5198 *** Failers 5199 No match 5200 ABBBBC 5201 No match 5202 ABCC 5203 No match 5204 5205 /^abc/i 5206 ABCC 5207 0: ABC 5208 5209 /^abc$/i 5210 5211 /abc$/i 5212 AABC 5213 0: ABC 5214 5215 /^/i 5216 ABC 5217 0: 5218 5219 /$/i 5220 ABC 5221 0: 5222 5223 /a.c/i 5224 ABC 5225 0: ABC 5226 AXC 5227 0: AXC 5228 5229 /a.*?c/i 5230 AXYZC 5231 0: AXYZC 5232 5233 /a.*c/i 5234 *** Failers 5235 No match 5236 AABC 5237 0: AABC 5238 AXYZD 5239 No match 5240 5241 /a[bc]d/i 5242 ABD 5243 0: ABD 5244 5245 /a[b-d]e/i 5246 ACE 5247 0: ACE 5248 *** Failers 5249 No match 5250 ABC 5251 No match 5252 ABD 5253 No match 5254 5255 /a[b-d]/i 5256 AAC 5257 0: AC 5258 5259 /a[-b]/i 5260 A- 5261 0: A- 5262 5263 /a[b-]/i 5264 A- 5265 0: A- 5266 5267 /a]/i 5268 A] 5269 0: A] 5270 5271 /a[]]b/i 5272 A]B 5273 0: A]B 5274 5275 /a[^bc]d/i 5276 AED 5277 0: AED 5278 5279 /a[^-b]c/i 5280 ADC 5281 0: ADC 5282 *** Failers 5283 No match 5284 ABD 5285 No match 5286 A-C 5287 No match 5288 5289 /a[^]b]c/i 5290 ADC 5291 0: ADC 5292 5293 /ab|cd/i 5294 ABC 5295 0: AB 5296 ABCD 5297 0: AB 5298 5299 /()ef/i 5300 DEF 5301 0: EF 5302 5303 /$b/i 5304 *** Failers 5305 No match 5306 A]C 5307 No match 5308 B 5309 No match 5310 5311 /a\(b/i 5312 A(B 5313 0: A(B 5314 5315 /a\(*b/i 5316 AB 5317 0: AB 5318 A((B 5319 0: A((B 5320 5321 /a\\b/i 5322 A\B 5323 No match 5324 5325 /((a))/i 5326 ABC 5327 0: A 5328 5329 /(a)b(c)/i 5330 ABC 5331 0: ABC 5332 5333 /a+b+c/i 5334 AABBABC 5335 0: ABC 5336 5337 /a{1,}b{1,}c/i 5338 AABBABC 5339 0: ABC 5340 5341 /a.+?c/i 5342 ABCABC 5343 0: ABCABC 5344 1: ABC 5345 5346 /a.*?c/i 5347 ABCABC 5348 0: ABCABC 5349 1: ABC 5350 5351 /a.{0,5}?c/i 5352 ABCABC 5353 0: ABCABC 5354 1: ABC 5355 5356 /(a+|b)*/i 5357 AB 5358 0: AB 5359 1: A 5360 2: 5361 5362 /(a+|b){0,}/i 5363 AB 5364 0: AB 5365 1: A 5366 2: 5367 5368 /(a+|b)+/i 5369 AB 5370 0: AB 5371 1: A 5372 5373 /(a+|b){1,}/i 5374 AB 5375 0: AB 5376 1: A 5377 5378 /(a+|b)?/i 5379 AB 5380 0: A 5381 1: 5382 5383 /(a+|b){0,1}/i 5384 AB 5385 0: A 5386 1: 5387 5388 /(a+|b){0,1}?/i 5389 AB 5390 0: A 5391 1: 5392 5393 /[^ab]*/i 5394 CDE 5395 0: CDE 5396 1: CD 5397 2: C 5398 3: 5399 5400 /abc/i 5401 5402 /a*/i 5403 5404 5405 /([abc])*d/i 5406 ABBBCD 5407 0: ABBBCD 5408 5409 /([abc])*bcd/i 5410 ABCD 5411 0: ABCD 5412 5413 /a|b|c|d|e/i 5414 E 5415 0: E 5416 5417 /(a|b|c|d|e)f/i 5418 EF 5419 0: EF 5420 5421 /abcd*efg/i 5422 ABCDEFG 5423 0: ABCDEFG 5424 5425 /ab*/i 5426 XABYABBBZ 5427 0: AB 5428 1: A 5429 XAYABBBZ 5430 0: A 5431 5432 /(ab|cd)e/i 5433 ABCDE 5434 0: CDE 5435 5436 /[abhgefdc]ij/i 5437 HIJ 5438 0: HIJ 5439 5440 /^(ab|cd)e/i 5441 ABCDE 5442 No match 5443 5444 /(abc|)ef/i 5445 ABCDEF 5446 0: EF 5447 5448 /(a|b)c*d/i 5449 ABCD 5450 0: BCD 5451 5452 /(ab|ab*)bc/i 5453 ABC 5454 0: ABC 5455 5456 /a([bc]*)c*/i 5457 ABC 5458 0: ABC 5459 1: AB 5460 2: A 5461 5462 /a([bc]*)(c*d)/i 5463 ABCD 5464 0: ABCD 5465 5466 /a([bc]+)(c*d)/i 5467 ABCD 5468 0: ABCD 5469 5470 /a([bc]*)(c+d)/i 5471 ABCD 5472 0: ABCD 5473 5474 /a[bcd]*dcdcde/i 5475 ADCDCDE 5476 0: ADCDCDE 5477 5478 /a[bcd]+dcdcde/i 5479 5480 /(ab|a)b*c/i 5481 ABC 5482 0: ABC 5483 5484 /((a)(b)c)(d)/i 5485 ABCD 5486 0: ABCD 5487 5488 /[a-zA-Z_][a-zA-Z0-9_]*/i 5489 ALPHA 5490 0: ALPHA 5491 1: ALPH 5492 2: ALP 5493 3: AL 5494 4: A 5495 5496 /^a(bc+|b[eh])g|.h$/i 5497 ABH 5498 0: BH 5499 5500 /(bc+d$|ef*g.|h?i(j|k))/i 5501 EFFGZ 5502 0: EFFGZ 5503 IJ 5504 0: IJ 5505 REFFGZ 5506 0: EFFGZ 5507 *** Failers 5508 No match 5509 ADCDCDE 5510 No match 5511 EFFG 5512 No match 5513 BCDD 5514 No match 5515 5516 /((((((((((a))))))))))/i 5517 A 5518 0: A 5519 5520 /(((((((((a)))))))))/i 5521 A 5522 0: A 5523 5524 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i 5525 A 5526 0: A 5527 5528 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i 5529 C 5530 0: C 5531 5532 /multiple words of text/i 5533 *** Failers 5534 No match 5535 AA 5536 No match 5537 UH-UH 5538 No match 5539 5540 /multiple words/i 5541 MULTIPLE WORDS, YEAH 5542 0: MULTIPLE WORDS 5543 5544 /(.*)c(.*)/i 5545 ABCDE 5546 0: ABCDE 5547 1: ABCD 5548 2: ABC 5549 5550 /\((.*), (.*)\)/i 5551 (A, B) 5552 0: (A, B) 5553 5554 /[k]/i 5555 5556 /abcd/i 5557 ABCD 5558 0: ABCD 5559 5560 /a(bc)d/i 5561 ABCD 5562 0: ABCD 5563 5564 /a[-]?c/i 5565 AC 5566 0: AC 5567 5568 /a(?!b)./ 5569 abad 5570 0: ad 5571 5572 /a(?=d)./ 5573 abad 5574 0: ad 5575 5576 /a(?=c|d)./ 5577 abad 5578 0: ad 5579 5580 /a(?:b|c|d)(.)/ 5581 ace 5582 0: ace 5583 5584 /a(?:b|c|d)*(.)/ 5585 ace 5586 0: ace 5587 1: ac 5588 5589 /a(?:b|c|d)+?(.)/ 5590 ace 5591 0: ace 5592 acdbcdbe 5593 0: acdbcdbe 5594 1: acdbcdb 5595 2: acdbcd 5596 3: acdbc 5597 4: acdb 5598 5: acd 5599 5600 /a(?:b|c|d)+(.)/ 5601 acdbcdbe 5602 0: acdbcdbe 5603 1: acdbcdb 5604 2: acdbcd 5605 3: acdbc 5606 4: acdb 5607 5: acd 5608 5609 /a(?:b|c|d){2}(.)/ 5610 acdbcdbe 5611 0: acdb 5612 5613 /a(?:b|c|d){4,5}(.)/ 5614 acdbcdbe 5615 0: acdbcdb 5616 1: acdbcd 5617 5618 /a(?:b|c|d){4,5}?(.)/ 5619 acdbcdbe 5620 0: acdbcdb 5621 1: acdbcd 5622 5623 /((foo)|(bar))*/ 5624 foobar 5625 0: foobar 5626 1: foo 5627 2: 5628 5629 /a(?:b|c|d){6,7}(.)/ 5630 acdbcdbe 5631 0: acdbcdbe 5632 5633 /a(?:b|c|d){6,7}?(.)/ 5634 acdbcdbe 5635 0: acdbcdbe 5636 5637 /a(?:b|c|d){5,6}(.)/ 5638 acdbcdbe 5639 0: acdbcdbe 5640 1: acdbcdb 5641 5642 /a(?:b|c|d){5,6}?(.)/ 5643 acdbcdbe 5644 0: acdbcdbe 5645 1: acdbcdb 5646 5647 /a(?:b|c|d){5,7}(.)/ 5648 acdbcdbe 5649 0: acdbcdbe 5650 1: acdbcdb 5651 5652 /a(?:b|c|d){5,7}?(.)/ 5653 acdbcdbe 5654 0: acdbcdbe 5655 1: acdbcdb 5656 5657 /a(?:b|(c|e){1,2}?|d)+?(.)/ 5658 ace 5659 0: ace 5660 5661 /^(.+)?B/ 5662 AB 5663 0: AB 5664 5665 /^([^a-z])|(\^)$/ 5666 . 5667 0: . 5668 5669 /^[<>]&/ 5670 <&OUT 5671 0: <& 5672 5673 /(?:(f)(o)(o)|(b)(a)(r))*/ 5674 foobar 5675 0: foobar 5676 1: foo 5677 2: 5678 5679 /(?<=a)b/ 5680 ab 5681 0: b 5682 *** Failers 5683 No match 5684 cb 5685 No match 5686 b 5687 No match 5688 5689 /(?<!c)b/ 5690 ab 5691 0: b 5692 b 5693 0: b 5694 b 5695 0: b 5696 5697 /(?:..)*a/ 5698 aba 5699 0: aba 5700 1: a 5701 5702 /(?:..)*?a/ 5703 aba 5704 0: aba 5705 1: a 5706 5707 /^(){3,5}/ 5708 abc 5709 0: 5710 5711 /^(a+)*ax/ 5712 aax 5713 0: aax 5714 5715 /^((a|b)+)*ax/ 5716 aax 5717 0: aax 5718 5719 /^((a|bc)+)*ax/ 5720 aax 5721 0: aax 5722 5723 /(a|x)*ab/ 5724 cab 5725 0: ab 5726 5727 /(a)*ab/ 5728 cab 5729 0: ab 5730 5731 /(?:(?i)a)b/ 5732 ab 5733 0: ab 5734 5735 /((?i)a)b/ 5736 ab 5737 0: ab 5738 5739 /(?:(?i)a)b/ 5740 Ab 5741 0: Ab 5742 5743 /((?i)a)b/ 5744 Ab 5745 0: Ab 5746 5747 /(?:(?i)a)b/ 5748 *** Failers 5749 No match 5750 cb 5751 No match 5752 aB 5753 No match 5754 5755 /((?i)a)b/ 5756 5757 /(?i:a)b/ 5758 ab 5759 0: ab 5760 5761 /((?i:a))b/ 5762 ab 5763 0: ab 5764 5765 /(?i:a)b/ 5766 Ab 5767 0: Ab 5768 5769 /((?i:a))b/ 5770 Ab 5771 0: Ab 5772 5773 /(?i:a)b/ 5774 *** Failers 5775 No match 5776 aB 5777 No match 5778 aB 5779 No match 5780 5781 /((?i:a))b/ 5782 5783 /(?:(?-i)a)b/i 5784 ab 5785 0: ab 5786 5787 /((?-i)a)b/i 5788 ab 5789 0: ab 5790 5791 /(?:(?-i)a)b/i 5792 aB 5793 0: aB 5794 5795 /((?-i)a)b/i 5796 aB 5797 0: aB 5798 5799 /(?:(?-i)a)b/i 5800 *** Failers 5801 No match 5802 aB 5803 0: aB 5804 Ab 5805 No match 5806 5807 /((?-i)a)b/i 5808 5809 /(?:(?-i)a)b/i 5810 aB 5811 0: aB 5812 5813 /((?-i)a)b/i 5814 aB 5815 0: aB 5816 5817 /(?:(?-i)a)b/i 5818 *** Failers 5819 No match 5820 Ab 5821 No match 5822 AB 5823 No match 5824 5825 /((?-i)a)b/i 5826 5827 /(?-i:a)b/i 5828 ab 5829 0: ab 5830 5831 /((?-i:a))b/i 5832 ab 5833 0: ab 5834 5835 /(?-i:a)b/i 5836 aB 5837 0: aB 5838 5839 /((?-i:a))b/i 5840 aB 5841 0: aB 5842 5843 /(?-i:a)b/i 5844 *** Failers 5845 No match 5846 AB 5847 No match 5848 Ab 5849 No match 5850 5851 /((?-i:a))b/i 5852 5853 /(?-i:a)b/i 5854 aB 5855 0: aB 5856 5857 /((?-i:a))b/i 5858 aB 5859 0: aB 5860 5861 /(?-i:a)b/i 5862 *** Failers 5863 No match 5864 Ab 5865 No match 5866 AB 5867 No match 5868 5869 /((?-i:a))b/i 5870 5871 /((?-i:a.))b/i 5872 *** Failers 5873 No match 5874 AB 5875 No match 5876 a\nB 5877 No match 5878 5879 /((?s-i:a.))b/i 5880 a\nB 5881 0: a\x0aB 5882 5883 /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/ 5884 cabbbb 5885 0: cabbbb 5886 5887 /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/ 5888 caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 5889 0: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 5890 5891 /foo\w*\d{4}baz/ 5892 foobar1234baz 5893 0: foobar1234baz 5894 5895 /x(~~)*(?:(?:F)?)?/ 5896 x~~ 5897 0: x~~ 5898 1: x 5899 5900 /^a(?#xxx){3}c/ 5901 aaac 5902 0: aaac 5903 5904 /^a (?#xxx) (?#yyy) {3}c/x 5905 aaac 5906 0: aaac 5907 5908 /(?<![cd])b/ 5909 *** Failers 5910 No match 5911 B\nB 5912 No match 5913 dbcb 5914 No match 5915 5916 /(?<![cd])[ab]/ 5917 dbaacb 5918 0: a 5919 5920 /(?<!(c|d))b/ 5921 5922 /(?<!(c|d))[ab]/ 5923 dbaacb 5924 0: a 5925 5926 /(?<!cd)[ab]/ 5927 cdaccb 5928 0: b 5929 5930 /^(?:a?b?)*$/ 5931 *** Failers 5932 No match 5933 dbcb 5934 No match 5935 a-- 5936 No match 5937 5938 /((?s)^a(.))((?m)^b$)/ 5939 a\nb\nc\n 5940 0: a\x0ab 5941 5942 /((?m)^b$)/ 5943 a\nb\nc\n 5944 0: b 5945 5946 /(?m)^b/ 5947 a\nb\n 5948 0: b 5949 5950 /(?m)^(b)/ 5951 a\nb\n 5952 0: b 5953 5954 /((?m)^b)/ 5955 a\nb\n 5956 0: b 5957 5958 /\n((?m)^b)/ 5959 a\nb\n 5960 0: \x0ab 5961 5962 /((?s).)c(?!.)/ 5963 a\nb\nc\n 5964 0: \x0ac 5965 a\nb\nc\n 5966 0: \x0ac 5967 5968 /((?s)b.)c(?!.)/ 5969 a\nb\nc\n 5970 0: b\x0ac 5971 a\nb\nc\n 5972 0: b\x0ac 5973 5974 /^b/ 5975 5976 /()^b/ 5977 *** Failers 5978 No match 5979 a\nb\nc\n 5980 No match 5981 a\nb\nc\n 5982 No match 5983 5984 /((?m)^b)/ 5985 a\nb\nc\n 5986 0: b 5987 5988 /(?(?!a)a|b)/ 5989 5990 /(?(?!a)b|a)/ 5991 a 5992 0: a 5993 5994 /(?(?=a)b|a)/ 5995 *** Failers 5996 No match 5997 a 5998 No match 5999 a 6000 No match 6001 6002 /(?(?=a)a|b)/ 6003 a 6004 0: a 6005 6006 /(\w+:)+/ 6007 one: 6008 0: one: 6009 6010 /$(?<=^(a))/ 6011 a 6012 0: 6013 6014 /([\w:]+::)?(\w+)$/ 6015 abcd 6016 0: abcd 6017 xy:z:::abcd 6018 0: xy:z:::abcd 6019 6020 /^[^bcd]*(c+)/ 6021 aexycd 6022 0: aexyc 6023 6024 /(a*)b+/ 6025 caab 6026 0: aab 6027 6028 /([\w:]+::)?(\w+)$/ 6029 abcd 6030 0: abcd 6031 xy:z:::abcd 6032 0: xy:z:::abcd 6033 *** Failers 6034 0: Failers 6035 abcd: 6036 No match 6037 abcd: 6038 No match 6039 6040 /^[^bcd]*(c+)/ 6041 aexycd 6042 0: aexyc 6043 6044 /(>a+)ab/ 6045 6046 /(?>a+)b/ 6047 aaab 6048 0: aaab 6049 6050 /([[:]+)/ 6051 a:[b]: 6052 0: :[ 6053 1: : 6054 6055 /([[=]+)/ 6056 a=[b]= 6057 0: =[ 6058 1: = 6059 6060 /([[.]+)/ 6061 a.[b]. 6062 0: .[ 6063 1: . 6064 6065 /((?>a+)b)/ 6066 aaab 6067 0: aaab 6068 6069 /(?>(a+))b/ 6070 aaab 6071 0: aaab 6072 6073 /((?>[^()]+)|\([^()]*\))+/ 6074 ((abc(ade)ufh()()x 6075 0: abc(ade)ufh()()x 6076 1: abc(ade)ufh()() 6077 2: abc(ade)ufh() 6078 3: abc(ade)ufh 6079 4: abc(ade) 6080 5: abc 6081 6082 /a\Z/ 6083 *** Failers 6084 No match 6085 aaab 6086 No match 6087 a\nb\n 6088 No match 6089 6090 /b\Z/ 6091 a\nb\n 6092 0: b 6093 6094 /b\z/ 6095 6096 /b\Z/ 6097 a\nb 6098 0: b 6099 6100 /b\z/ 6101 a\nb 6102 0: b 6103 *** Failers 6104 No match 6105 6106 /(?>.*)(?<=(abcd|wxyz))/ 6107 alphabetabcd 6108 0: alphabetabcd 6109 endingwxyz 6110 0: endingwxyz 6111 *** Failers 6112 No match 6113 a rather long string that doesn't end with one of them 6114 No match 6115 6116 /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/ 6117 word cat dog elephant mussel cow horse canary baboon snake shark otherword 6118 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword 6119 word cat dog elephant mussel cow horse canary baboon snake shark 6120 No match 6121 6122 /word (?>[a-zA-Z0-9]+ ){0,30}otherword/ 6123 word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope 6124 No match 6125 6126 /(?<=\d{3}(?!999))foo/ 6127 999foo 6128 0: foo 6129 123999foo 6130 0: foo 6131 *** Failers 6132 No match 6133 123abcfoo 6134 No match 6135 6136 /(?<=(?!...999)\d{3})foo/ 6137 999foo 6138 0: foo 6139 123999foo 6140 0: foo 6141 *** Failers 6142 No match 6143 123abcfoo 6144 No match 6145 6146 /(?<=\d{3}(?!999)...)foo/ 6147 123abcfoo 6148 0: foo 6149 123456foo 6150 0: foo 6151 *** Failers 6152 No match 6153 123999foo 6154 No match 6155 6156 /(?<=\d{3}...)(?<!999)foo/ 6157 123abcfoo 6158 0: foo 6159 123456foo 6160 0: foo 6161 *** Failers 6162 No match 6163 123999foo 6164 No match 6165 6166 /((Z)+|A)*/ 6167 ZABCDEFG 6168 0: ZA 6169 1: Z 6170 2: 6171 6172 /(Z()|A)*/ 6173 ZABCDEFG 6174 0: ZA 6175 1: Z 6176 2: 6177 6178 /(Z(())|A)*/ 6179 ZABCDEFG 6180 0: ZA 6181 1: Z 6182 2: 6183 6184 /((?>Z)+|A)*/ 6185 ZABCDEFG 6186 0: ZA 6187 1: Z 6188 2: 6189 6190 /((?>)+|A)*/ 6191 ZABCDEFG 6192 0: 6193 6194 /a*/g 6195 abbab 6196 0: a 6197 1: 6198 0: 6199 0: 6200 0: a 6201 1: 6202 0: 6203 0: 6204 6205 /^[a-\d]/ 6206 abcde 6207 0: a 6208 -things 6209 0: - 6210 0digit 6211 0: 0 6212 *** Failers 6213 No match 6214 bcdef 6215 No match 6216 6217 /^[\d-a]/ 6218 abcde 6219 0: a 6220 -things 6221 0: - 6222 0digit 6223 0: 0 6224 *** Failers 6225 No match 6226 bcdef 6227 No match 6228 6229 /[[:space:]]+/ 6230 > \x09\x0a\x0c\x0d\x0b< 6231 0: \x09\x0a\x0c\x0d\x0b 6232 1: \x09\x0a\x0c\x0d 6233 2: \x09\x0a\x0c 6234 3: \x09\x0a 6235 4: \x09 6236 5: 6237 6238 /[[:blank:]]+/ 6239 > \x09\x0a\x0c\x0d\x0b< 6240 0: \x09 6241 1: 6242 6243 /[\s]+/ 6244 > \x09\x0a\x0c\x0d\x0b< 6245 0: \x09\x0a\x0c\x0d 6246 1: \x09\x0a\x0c 6247 2: \x09\x0a 6248 3: \x09 6249 4: 6250 6251 /\s+/ 6252 > \x09\x0a\x0c\x0d\x0b< 6253 0: \x09\x0a\x0c\x0d 6254 1: \x09\x0a\x0c 6255 2: \x09\x0a 6256 3: \x09 6257 4: 6258 6259 /ab/x 6260 ab 6261 No match 6262 6263 /(?!\A)x/m 6264 a\nxb\n 6265 0: x 6266 6267 /(?!^)x/m 6268 a\nxb\n 6269 No match 6270 6271 /abc\Qabc\Eabc/ 6272 abcabcabc 6273 0: abcabcabc 6274 6275 /abc\Q(*+|\Eabc/ 6276 abc(*+|abc 6277 0: abc(*+|abc 6278 6279 / abc\Q abc\Eabc/x 6280 abc abcabc 6281 0: abc abcabc 6282 *** Failers 6283 No match 6284 abcabcabc 6285 No match 6286 6287 /abc#comment 6288 \Q#not comment 6289 literal\E/x 6290 abc#not comment\n literal 6291 0: abc#not comment\x0a literal 6292 6293 /abc#comment 6294 \Q#not comment 6295 literal/x 6296 abc#not comment\n literal 6297 0: abc#not comment\x0a literal 6298 6299 /abc#comment 6300 \Q#not comment 6301 literal\E #more comment 6302 /x 6303 abc#not comment\n literal 6304 0: abc#not comment\x0a literal 6305 6306 /abc#comment 6307 \Q#not comment 6308 literal\E #more comment/x 6309 abc#not comment\n literal 6310 0: abc#not comment\x0a literal 6311 6312 /\Qabc\$xyz\E/ 6313 abc\\\$xyz 6314 0: abc\$xyz 6315 6316 /\Qabc\E\$\Qxyz\E/ 6317 abc\$xyz 6318 0: abc$xyz 6319 6320 /\Gabc/ 6321 abc 6322 0: abc 6323 *** Failers 6324 No match 6325 xyzabc 6326 No match 6327 6328 /\Gabc./g 6329 abc1abc2xyzabc3 6330 0: abc1 6331 0: abc2 6332 6333 /abc./g 6334 abc1abc2xyzabc3 6335 0: abc1 6336 0: abc2 6337 0: abc3 6338 6339 /a(?x: b c )d/ 6340 XabcdY 6341 0: abcd 6342 *** Failers 6343 No match 6344 Xa b c d Y 6345 No match 6346 6347 /((?x)x y z | a b c)/ 6348 XabcY 6349 0: abc 6350 AxyzB 6351 0: xyz 6352 6353 /(?i)AB(?-i)C/ 6354 XabCY 6355 0: abC 6356 *** Failers 6357 No match 6358 XabcY 6359 No match 6360 6361 /((?i)AB(?-i)C|D)E/ 6362 abCE 6363 0: abCE 6364 DE 6365 0: DE 6366 *** Failers 6367 No match 6368 abcE 6369 No match 6370 abCe 6371 No match 6372 dE 6373 No match 6374 De 6375 No match 6376 6377 /[z\Qa-d]\E]/ 6378 z 6379 0: z 6380 a 6381 0: a 6382 - 6383 0: - 6384 d 6385 0: d 6386 ] 6387 0: ] 6388 *** Failers 6389 0: a 6390 b 6391 No match 6392 6393 /[\z\C]/ 6394 z 6395 0: z 6396 C 6397 0: C 6398 6399 /\M/ 6400 M 6401 0: M 6402 6403 /(a+)*b/ 6404 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6405 No match 6406 6407 /(?i)reg(?:ul(?:[aä]|ae)r|ex)/ 6408 REGular 6409 0: REGular 6410 regulaer 6411 0: regulaer 6412 Regex 6413 0: Regex 6414 regulär 6415 0: regul\xe4r 6416 6417 /Åæåä[à-ÿÀ-ß]+/ 6418 Åæåäà 6419 0: \xc5\xe6\xe5\xe4\xe0 6420 Åæåäÿ 6421 0: \xc5\xe6\xe5\xe4\xff 6422 ÅæåäÀ 6423 0: \xc5\xe6\xe5\xe4\xc0 6424 Åæåäß 6425 0: \xc5\xe6\xe5\xe4\xdf 6426 6427 /(?<=Z)X./ 6428 \x84XAZXB 6429 0: XB 6430 6431 /^(?(2)a|(1)(2))+$/ 6432 123a 6433 Error -17 6434 6435 /(?<=a|bbbb)c/ 6436 ac 6437 0: c 6438 bbbbc 6439 0: c 6440 6441 /abc/>testsavedregex 6442 Compiled regex written to testsavedregex 6443 <testsavedregex 6444 Compiled regex loaded from testsavedregex 6445 No study data 6446 abc 6447 0: abc 6448 *** Failers 6449 No match 6450 bca 6451 No match 6452 6453 /abc/F>testsavedregex 6454 Compiled regex written to testsavedregex 6455 <testsavedregex 6456 Compiled regex (byte-inverted) loaded from testsavedregex 6457 No study data 6458 abc 6459 0: abc 6460 *** Failers 6461 No match 6462 bca 6463 No match 6464 6465 /(a|b)/S>testsavedregex 6466 Compiled regex written to testsavedregex 6467 Study data written to testsavedregex 6468 <testsavedregex 6469 Compiled regex loaded from testsavedregex 6470 Study data loaded from testsavedregex 6471 abc 6472 0: a 6473 *** Failers 6474 0: a 6475 def 6476 No match 6477 6478 /(a|b)/SF>testsavedregex 6479 Compiled regex written to testsavedregex 6480 Study data written to testsavedregex 6481 <testsavedregex 6482 Compiled regex (byte-inverted) loaded from testsavedregex 6483 Study data loaded from testsavedregex 6484 abc 6485 0: a 6486 *** Failers 6487 0: a 6488 def 6489 No match 6490 6491 /line\nbreak/ 6492 this is a line\nbreak 6493 0: line\x0abreak 6494 line one\nthis is a line\nbreak in the second line 6495 0: line\x0abreak 6496 6497 /line\nbreak/f 6498 this is a line\nbreak 6499 0: line\x0abreak 6500 ** Failers 6501 No match 6502 line one\nthis is a line\nbreak in the second line 6503 No match 6504 6505 /line\nbreak/mf 6506 this is a line\nbreak 6507 0: line\x0abreak 6508 ** Failers 6509 No match 6510 line one\nthis is a line\nbreak in the second line 6511 No match 6512 6513 /1234/ 6514 123\P 6515 Partial match: 123 6516 a4\P\R 6517 No match 6518 6519 /1234/ 6520 123\P 6521 Partial match: 123 6522 4\P\R 6523 0: 4 6524 6525 /^/mg 6526 a\nb\nc\n 6527 0: 6528 0: 6529 0: 6530 \ 6531 0: 6532 6533 /(?<=C\n)^/mg 6534 A\nC\nC\n 6535 0: 6536 6537 /(?s)A?B/ 6538 AB 6539 0: AB 6540 aB 6541 0: B 6542 6543 /(?s)A*B/ 6544 AB 6545 0: AB 6546 aB 6547 0: B 6548 6549 /(?m)A?B/ 6550 AB 6551 0: AB 6552 aB 6553 0: B 6554 6555 /(?m)A*B/ 6556 AB 6557 0: AB 6558 aB 6559 0: B 6560 6561 /Content-Type\x3A[^\r\n]{6,}/ 6562 Content-Type:xxxxxyyy 6563 0: Content-Type:xxxxxyyy 6564 1: Content-Type:xxxxxyy 6565 2: Content-Type:xxxxxy 6566 6567 /Content-Type\x3A[^\r\n]{6,}z/ 6568 Content-Type:xxxxxyyyz 6569 0: Content-Type:xxxxxyyyz 6570 6571 /Content-Type\x3A[^a]{6,}/ 6572 Content-Type:xxxyyy 6573 0: Content-Type:xxxyyy 6574 6575 /Content-Type\x3A[^a]{6,}z/ 6576 Content-Type:xxxyyyz 6577 0: Content-Type:xxxyyyz 6578 6579 /^abc/m 6580 xyz\nabc 6581 0: abc 6582 xyz\nabc\<lf> 6583 0: abc 6584 xyz\r\nabc\<lf> 6585 0: abc 6586 xyz\rabc\<cr> 6587 0: abc 6588 xyz\r\nabc\<crlf> 6589 0: abc 6590 ** Failers 6591 No match 6592 xyz\nabc\<cr> 6593 No match 6594 xyz\r\nabc\<cr> 6595 No match 6596 xyz\nabc\<crlf> 6597 No match 6598 xyz\rabc\<crlf> 6599 No match 6600 xyz\rabc\<lf> 6601 No match 6602 6603 /abc$/m<lf> 6604 xyzabc 6605 0: abc 6606 xyzabc\n 6607 0: abc 6608 xyzabc\npqr 6609 0: abc 6610 xyzabc\r\<cr> 6611 0: abc 6612 xyzabc\rpqr\<cr> 6613 0: abc 6614 xyzabc\r\n\<crlf> 6615 0: abc 6616 xyzabc\r\npqr\<crlf> 6617 0: abc 6618 ** Failers 6619 No match 6620 xyzabc\r 6621 No match 6622 xyzabc\rpqr 6623 No match 6624 xyzabc\r\n 6625 No match 6626 xyzabc\r\npqr 6627 No match 6628 6629 /^abc/m<cr> 6630 xyz\rabcdef 6631 0: abc 6632 xyz\nabcdef\<lf> 6633 0: abc 6634 ** Failers 6635 No match 6636 xyz\nabcdef 6637 No match 6638 6639 /^abc/m<lf> 6640 xyz\nabcdef 6641 0: abc 6642 xyz\rabcdef\<cr> 6643 0: abc 6644 ** Failers 6645 No match 6646 xyz\rabcdef 6647 No match 6648 6649 /^abc/m<crlf> 6650 xyz\r\nabcdef 6651 0: abc 6652 xyz\rabcdef\<cr> 6653 0: abc 6654 ** Failers 6655 No match 6656 xyz\rabcdef 6657 No match 6658 6659 /.*/<lf> 6660 abc\ndef 6661 0: abc 6662 1: ab 6663 2: a 6664 3: 6665 abc\rdef 6666 0: abc\x0ddef 6667 1: abc\x0dde 6668 2: abc\x0dd 6669 3: abc\x0d 6670 4: abc 6671 5: ab 6672 6: a 6673 7: 6674 abc\r\ndef 6675 0: abc\x0d 6676 1: abc 6677 2: ab 6678 3: a 6679 4: 6680 \<cr>abc\ndef 6681 0: abc\x0adef 6682 1: abc\x0ade 6683 2: abc\x0ad 6684 3: abc\x0a 6685 4: abc 6686 5: ab 6687 6: a 6688 7: 6689 \<cr>abc\rdef 6690 0: abc 6691 1: ab 6692 2: a 6693 3: 6694 \<cr>abc\r\ndef 6695 0: abc 6696 1: ab 6697 2: a 6698 3: 6699 \<crlf>abc\ndef 6700 0: abc\x0adef 6701 1: abc\x0ade 6702 2: abc\x0ad 6703 3: abc\x0a 6704 4: abc 6705 5: ab 6706 6: a 6707 7: 6708 \<crlf>abc\rdef 6709 0: abc\x0ddef 6710 1: abc\x0dde 6711 2: abc\x0dd 6712 3: abc\x0d 6713 4: abc 6714 5: ab 6715 6: a 6716 7: 6717 \<crlf>abc\r\ndef 6718 0: abc 6719 1: ab 6720 2: a 6721 3: 6722 6723 /\w+(.)(.)?def/s 6724 abc\ndef 6725 0: abc\x0adef 6726 abc\rdef 6727 0: abc\x0ddef 6728 abc\r\ndef 6729 0: abc\x0d\x0adef 6730 6731 /^\w+=.*(\\\n.*)*/ 6732 abc=xyz\\\npqr 6733 0: abc=xyz\\x0apqr 6734 1: abc=xyz\\x0apq 6735 2: abc=xyz\\x0ap 6736 3: abc=xyz\\x0a 6737 4: abc=xyz\ 6738 5: abc=xyz 6739 6: abc=xy 6740 7: abc=x 6741 8: abc= 6742 6743 /^(a()*)*/ 6744 aaaa 6745 0: aaaa 6746 1: aaa 6747 2: aa 6748 3: a 6749 4: 6750 6751 /^(?:a(?:(?:))*)*/ 6752 aaaa 6753 0: aaaa 6754 1: aaa 6755 2: aa 6756 3: a 6757 4: 6758 6759 /^(a()+)+/ 6760 aaaa 6761 0: aaaa 6762 1: aaa 6763 2: aa 6764 3: a 6765 6766 /^(?:a(?:(?:))+)+/ 6767 aaaa 6768 0: aaaa 6769 1: aaa 6770 2: aa 6771 3: a 6772 6773 /(a|)*\d/ 6774 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6775 No match 6776 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 6777 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 6778 6779 /(?>a|)*\d/ 6780 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6781 No match 6782 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 6783 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 6784 6785 /(?:a|)*\d/ 6786 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6787 No match 6788 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 6789 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 6790 6791 /^a.b/<lf> 6792 a\rb 6793 0: a\x0db 6794 a\nb\<cr> 6795 0: a\x0ab 6796 ** Failers 6797 No match 6798 a\nb 6799 No match 6800 a\nb\<any> 6801 No match 6802 a\rb\<cr> 6803 No match 6804 a\rb\<any> 6805 No match 6806 6807 /^abc./mgx<any> 6808 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK 6809 0: abc1 6810 0: abc2 6811 0: abc3 6812 0: abc4 6813 0: abc5 6814 0: abc6 6815 0: abc7 6816 6817 /abc.$/mgx<any> 6818 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9 6819 0: abc1 6820 0: abc2 6821 0: abc3 6822 0: abc4 6823 0: abc5 6824 0: abc6 6825 0: abc9 6826 6827 /^a\Rb/ 6828 a\nb 6829 0: a\x0ab 6830 a\rb 6831 0: a\x0db 6832 a\r\nb 6833 0: a\x0d\x0ab 6834 a\x0bb 6835 0: a\x0bb 6836 a\x0cb 6837 0: a\x0cb 6838 a\x85b 6839 0: a\x85b 6840 ** Failers 6841 No match 6842 a\n\rb 6843 No match 6844 6845 /^a\R*b/ 6846 ab 6847 0: ab 6848 a\nb 6849 0: a\x0ab 6850 a\rb 6851 0: a\x0db 6852 a\r\nb 6853 0: a\x0d\x0ab 6854 a\x0bb 6855 0: a\x0bb 6856 a\x0cb 6857 0: a\x0cb 6858 a\x85b 6859 0: a\x85b 6860 a\n\rb 6861 0: a\x0a\x0db 6862 a\n\r\x85\x0cb 6863 0: a\x0a\x0d\x85\x0cb 6864 6865 /^a\R+b/ 6866 a\nb 6867 0: a\x0ab 6868 a\rb 6869 0: a\x0db 6870 a\r\nb 6871 0: a\x0d\x0ab 6872 a\x0bb 6873 0: a\x0bb 6874 a\x0cb 6875 0: a\x0cb 6876 a\x85b 6877 0: a\x85b 6878 a\n\rb 6879 0: a\x0a\x0db 6880 a\n\r\x85\x0cb 6881 0: a\x0a\x0d\x85\x0cb 6882 ** Failers 6883 No match 6884 ab 6885 No match 6886 6887 /^a\R{1,3}b/ 6888 a\nb 6889 0: a\x0ab 6890 a\n\rb 6891 0: a\x0a\x0db 6892 a\n\r\x85b 6893 0: a\x0a\x0d\x85b 6894 a\r\n\r\nb 6895 0: a\x0d\x0a\x0d\x0ab 6896 a\r\n\r\n\r\nb 6897 0: a\x0d\x0a\x0d\x0a\x0d\x0ab 6898 a\n\r\n\rb 6899 0: a\x0a\x0d\x0a\x0db 6900 a\n\n\r\nb 6901 0: a\x0a\x0a\x0d\x0ab 6902 ** Failers 6903 No match 6904 a\n\n\n\rb 6905 No match 6906 a\r 6907 No match 6908 6909 /^a[\R]b/ 6910 aRb 6911 0: aRb 6912 ** Failers 6913 No match 6914 a\nb 6915 No match 6916 6917 /.+foo/ 6918 afoo 6919 0: afoo 6920 ** Failers 6921 No match 6922 \r\nfoo 6923 No match 6924 \nfoo 6925 No match 6926 6927 /.+foo/<crlf> 6928 afoo 6929 0: afoo 6930 \nfoo 6931 0: \x0afoo 6932 ** Failers 6933 No match 6934 \r\nfoo 6935 No match 6936 6937 /.+foo/<any> 6938 afoo 6939 0: afoo 6940 ** Failers 6941 No match 6942 \nfoo 6943 No match 6944 \r\nfoo 6945 No match 6946 6947 /.+foo/s 6948 afoo 6949 0: afoo 6950 \r\nfoo 6951 0: \x0d\x0afoo 6952 \nfoo 6953 0: \x0afoo 6954 6955 / End of testinput7 /