1 # PCRE version 4.4 21-August-2003 2 3 # Tests taken from PCRE and modified to suit glibc regex. 4 # 5 # PCRE LICENCE 6 # ------------ 7 # 8 # PCRE is a library of functions to support regular expressions whose syntax 9 # and semantics are as close as possible to those of the Perl 5 language. 10 # 11 # Written by: Philip Hazel <ph10 (a] cam.ac.uk> 12 # 13 # University of Cambridge Computing Service, 14 # Cambridge, England. Phone: +44 1223 334714. 15 # 16 # Copyright (c) 1997-2003 University of Cambridge 17 # 18 # Permission is granted to anyone to use this software for any purpose on any 19 # computer system, and to redistribute it freely, subject to the following 20 # restrictions: 21 # 22 # 1. This software is distributed in the hope that it will be useful, 23 # but WITHOUT ANY WARRANTY; without even the implied warranty of 24 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 25 # 26 # 2. The origin of this software must not be misrepresented, either by 27 # explicit claim or by omission. In practice, this means that if you use 28 # PCRE in software that you distribute to others, commercially or 29 # otherwise, you must put a sentence like this 30 # 31 # Regular expression support is provided by the PCRE library package, 32 # which is open source software, written by Philip Hazel, and copyright 33 # by the University of Cambridge, England. 34 # 35 # somewhere reasonably visible in your documentation and in any relevant 36 # files or online help data or similar. A reference to the ftp site for 37 # the source, that is, to 38 # 39 # ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 40 # 41 # should also be given in the documentation. However, this condition is not 42 # intended to apply to whole chains of software. If package A includes PCRE, 43 # it must acknowledge it, but if package B is software that includes package 44 # A, the condition is not imposed on package B (unless it uses PCRE 45 # independently). 46 # 47 # 3. Altered versions must be plainly marked as such, and must not be 48 # misrepresented as being the original software. 49 # 50 # 4. If PCRE is embedded in any software that is released under the GNU 51 # General Purpose Licence (GPL), or Lesser General Purpose Licence (LGPL), 52 # then the terms of that licence shall supersede any condition above with 53 # which it is incompatible. 54 # 55 # The documentation for PCRE, supplied in the "doc" directory, is distributed 56 # under the same terms as the software itself. 57 # 58 # End 59 # 60 61 /the quick brown fox/ 62 the quick brown fox 63 0: the quick brown fox 64 The quick brown FOX 65 No match 66 What do you know about the quick brown fox? 67 0: the quick brown fox 68 What do you know about THE QUICK BROWN FOX? 69 No match 70 71 /The quick brown fox/i 72 the quick brown fox 73 0: the quick brown fox 74 The quick brown FOX 75 0: The quick brown FOX 76 What do you know about the quick brown fox? 77 0: the quick brown fox 78 What do you know about THE QUICK BROWN FOX? 79 0: THE QUICK BROWN FOX 80 81 /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/ 82 abxyzpqrrrabbxyyyypqAzz 83 0: abxyzpqrrrabbxyyyypqAzz 84 abxyzpqrrrabbxyyyypqAzz 85 0: abxyzpqrrrabbxyyyypqAzz 86 aabxyzpqrrrabbxyyyypqAzz 87 0: aabxyzpqrrrabbxyyyypqAzz 88 aaabxyzpqrrrabbxyyyypqAzz 89 0: aaabxyzpqrrrabbxyyyypqAzz 90 aaaabxyzpqrrrabbxyyyypqAzz 91 0: aaaabxyzpqrrrabbxyyyypqAzz 92 abcxyzpqrrrabbxyyyypqAzz 93 0: abcxyzpqrrrabbxyyyypqAzz 94 aabcxyzpqrrrabbxyyyypqAzz 95 0: aabcxyzpqrrrabbxyyyypqAzz 96 aaabcxyzpqrrrabbxyyyypAzz 97 0: aaabcxyzpqrrrabbxyyyypAzz 98 aaabcxyzpqrrrabbxyyyypqAzz 99 0: aaabcxyzpqrrrabbxyyyypqAzz 100 aaabcxyzpqrrrabbxyyyypqqAzz 101 0: aaabcxyzpqrrrabbxyyyypqqAzz 102 aaabcxyzpqrrrabbxyyyypqqqAzz 103 0: aaabcxyzpqrrrabbxyyyypqqqAzz 104 aaabcxyzpqrrrabbxyyyypqqqqAzz 105 0: aaabcxyzpqrrrabbxyyyypqqqqAzz 106 aaabcxyzpqrrrabbxyyyypqqqqqAzz 107 0: aaabcxyzpqrrrabbxyyyypqqqqqAzz 108 aaabcxyzpqrrrabbxyyyypqqqqqqAzz 109 0: aaabcxyzpqrrrabbxyyyypqqqqqqAzz 110 aaaabcxyzpqrrrabbxyyyypqAzz 111 0: aaaabcxyzpqrrrabbxyyyypqAzz 112 abxyzzpqrrrabbxyyyypqAzz 113 0: abxyzzpqrrrabbxyyyypqAzz 114 aabxyzzzpqrrrabbxyyyypqAzz 115 0: aabxyzzzpqrrrabbxyyyypqAzz 116 aaabxyzzzzpqrrrabbxyyyypqAzz 117 0: aaabxyzzzzpqrrrabbxyyyypqAzz 118 aaaabxyzzzzpqrrrabbxyyyypqAzz 119 0: aaaabxyzzzzpqrrrabbxyyyypqAzz 120 abcxyzzpqrrrabbxyyyypqAzz 121 0: abcxyzzpqrrrabbxyyyypqAzz 122 aabcxyzzzpqrrrabbxyyyypqAzz 123 0: aabcxyzzzpqrrrabbxyyyypqAzz 124 aaabcxyzzzzpqrrrabbxyyyypqAzz 125 0: aaabcxyzzzzpqrrrabbxyyyypqAzz 126 aaaabcxyzzzzpqrrrabbxyyyypqAzz 127 0: aaaabcxyzzzzpqrrrabbxyyyypqAzz 128 aaaabcxyzzzzpqrrrabbbxyyyypqAzz 129 0: aaaabcxyzzzzpqrrrabbbxyyyypqAzz 130 aaaabcxyzzzzpqrrrabbbxyyyyypqAzz 131 0: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz 132 aaabcxyzpqrrrabbxyyyypABzz 133 0: aaabcxyzpqrrrabbxyyyypABzz 134 aaabcxyzpqrrrabbxyyyypABBzz 135 0: aaabcxyzpqrrrabbxyyyypABBzz 136 >>>aaabxyzpqrrrabbxyyyypqAzz 137 0: aaabxyzpqrrrabbxyyyypqAzz 138 >aaaabxyzpqrrrabbxyyyypqAzz 139 0: aaaabxyzpqrrrabbxyyyypqAzz 140 >>>>abcxyzpqrrrabbxyyyypqAzz 141 0: abcxyzpqrrrabbxyyyypqAzz 142 *** Failers 143 No match 144 abxyzpqrrabbxyyyypqAzz 145 No match 146 abxyzpqrrrrabbxyyyypqAzz 147 No match 148 abxyzpqrrrabxyyyypqAzz 149 No match 150 aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz 151 No match 152 aaaabcxyzzzzpqrrrabbbxyyypqAzz 153 No match 154 aaabcxyzpqrrrabbxyyyypqqqqqqqAzz 155 No match 156 157 /^(abc){1,2}zz/ 158 abczz 159 0: abczz 160 1: abc 161 abcabczz 162 0: abcabczz 163 1: abc 164 *** Failers 165 No match 166 zz 167 No match 168 abcabcabczz 169 No match 170 >>abczz 171 No match 172 173 /^(b+|a){1,2}c/ 174 bc 175 0: bc 176 1: b 177 bbc 178 0: bbc 179 1: bb 180 bbbc 181 0: bbbc 182 1: bbb 183 bac 184 0: bac 185 1: a 186 bbac 187 0: bbac 188 1: a 189 aac 190 0: aac 191 1: a 192 abbbbbbbbbbbc 193 0: abbbbbbbbbbbc 194 1: bbbbbbbbbbb 195 bbbbbbbbbbbac 196 0: bbbbbbbbbbbac 197 1: a 198 *** Failers 199 No match 200 aaac 201 No match 202 abbbbbbbbbbbac 203 No match 204 205 /^[]cde]/ 206 ]thing 207 0: ] 208 cthing 209 0: c 210 dthing 211 0: d 212 ething 213 0: e 214 *** Failers 215 No match 216 athing 217 No match 218 fthing 219 No match 220 221 /^[^]cde]/ 222 athing 223 0: a 224 fthing 225 0: f 226 *** Failers 227 0: * 228 ]thing 229 No match 230 cthing 231 No match 232 dthing 233 No match 234 ething 235 No match 236 237 /^[0-9]+$/ 238 0 239 0: 0 240 1 241 0: 1 242 2 243 0: 2 244 3 245 0: 3 246 4 247 0: 4 248 5 249 0: 5 250 6 251 0: 6 252 7 253 0: 7 254 8 255 0: 8 256 9 257 0: 9 258 10 259 0: 10 260 100 261 0: 100 262 *** Failers 263 No match 264 abc 265 No match 266 267 /^.*nter/ 268 enter 269 0: enter 270 inter 271 0: inter 272 uponter 273 0: uponter 274 275 /^xxx[0-9]+$/ 276 xxx0 277 0: xxx0 278 xxx1234 279 0: xxx1234 280 *** Failers 281 No match 282 xxx 283 No match 284 285 /^.+[0-9][0-9][0-9]$/ 286 x123 287 0: x123 288 xx123 289 0: xx123 290 123456 291 0: 123456 292 *** Failers 293 No match 294 123 295 No match 296 x1234 297 0: x1234 298 299 /^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/ 300 abc!pqr=apquxz.ixr.zzz.ac.uk 301 0: abc!pqr=apquxz.ixr.zzz.ac.uk 302 1: abc 303 2: pqr 304 *** Failers 305 No match 306 !pqr=apquxz.ixr.zzz.ac.uk 307 No match 308 abc!=apquxz.ixr.zzz.ac.uk 309 No match 310 abc!pqr=apquxz:ixr.zzz.ac.uk 311 No match 312 abc!pqr=apquxz.ixr.zzz.ac.ukk 313 No match 314 315 /:/ 316 Well, we need a colon: somewhere 317 0: : 318 *** Fail if we don't 319 No match 320 321 /([0-9a-f:]+)$/i 322 0abc 323 0: 0abc 324 1: 0abc 325 abc 326 0: abc 327 1: abc 328 fed 329 0: fed 330 1: fed 331 E 332 0: E 333 1: E 334 :: 335 0: :: 336 1: :: 337 5f03:12C0::932e 338 0: 5f03:12C0::932e 339 1: 5f03:12C0::932e 340 fed def 341 0: def 342 1: def 343 Any old stuff 344 0: ff 345 1: ff 346 *** Failers 347 No match 348 0zzz 349 No match 350 gzzz 351 No match 352 Any old rubbish 353 No match 354 355 /^.*\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/ 356 .1.2.3 357 0: .1.2.3 358 1: 1 359 2: 2 360 3: 3 361 A.12.123.0 362 0: A.12.123.0 363 1: 12 364 2: 123 365 3: 0 366 *** Failers 367 No match 368 .1.2.3333 369 No match 370 1.2.3 371 No match 372 1234.2.3 373 No match 374 375 /^([0-9]+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/ 376 1 IN SOA non-sp1 non-sp2( 377 0: 1 IN SOA non-sp1 non-sp2( 378 1: 1 379 2: non-sp1 380 3: non-sp2 381 1 IN SOA non-sp1 non-sp2 ( 382 0: 1 IN SOA non-sp1 non-sp2 ( 383 1: 1 384 2: non-sp1 385 3: non-sp2 386 *** Failers 387 No match 388 1IN SOA non-sp1 non-sp2( 389 No match 390 391 /^[a-zA-Z0-9][a-zA-Z0-9-]*(\.[a-zA-Z0-9][a-zA-z0-9-]*)*\.$/ 392 a. 393 0: a. 394 Z. 395 0: Z. 396 2. 397 0: 2. 398 ab-c.pq-r. 399 0: ab-c.pq-r. 400 1: .pq-r 401 sxk.zzz.ac.uk. 402 0: sxk.zzz.ac.uk. 403 1: .uk 404 x-.y-. 405 0: x-.y-. 406 1: .y- 407 *** Failers 408 No match 409 -abc.peq. 410 No match 411 412 /^\*\.[a-z]([a-z0-9-]*[a-z0-9]+)?(\.[a-z]([a-z0-9-]*[a-z0-9]+)?)*$/ 413 *.a 414 0: *.a 415 *.b0-a 416 0: *.b0-a 417 1: 0-a 418 *.c3-b.c 419 0: *.c3-b.c 420 1: 3-b 421 2: .c 422 *.c-a.b-c 423 0: *.c-a.b-c 424 1: -a 425 2: .b-c 426 3: -c 427 *** Failers 428 No match 429 *.0 430 No match 431 *.a- 432 No match 433 *.a-b.c- 434 No match 435 *.c-a.0-c 436 No match 437 438 /^[0-9a-f](\.[0-9a-f])*$/i 439 a.b.c.d 440 0: a.b.c.d 441 1: .d 442 A.B.C.D 443 0: A.B.C.D 444 1: .D 445 a.b.c.1.2.3.C 446 0: a.b.c.1.2.3.C 447 1: .C 448 449 /^".*"\s*(;.*)?$/ 450 "1234" 451 0: "1234" 452 "abcd" ; 453 0: "abcd" ; 454 1: ; 455 "" ; rhubarb 456 0: "" ; rhubarb 457 1: ; rhubarb 458 *** Failers 459 No match 460 "1234" : things 461 No match 462 463 /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/ 464 abcdefhijklm 465 0: abcdefhijklm 466 1: abc 467 2: bc 468 3: c 469 4: def 470 5: ef 471 6: f 472 7: hij 473 8: ij 474 9: j 475 10: klm 476 11: lm 477 12: m 478 479 /^a*\w/ 480 z 481 0: z 482 az 483 0: az 484 aaaz 485 0: aaaz 486 a 487 0: a 488 aa 489 0: aa 490 aaaa 491 0: aaaa 492 a+ 493 0: a 494 aa+ 495 0: aa 496 497 /^a+\w/ 498 az 499 0: az 500 aaaz 501 0: aaaz 502 aa 503 0: aa 504 aaaa 505 0: aaaa 506 aa+ 507 0: aa 508 509 /^[0-9]{8}\w{2,}/ 510 1234567890 511 0: 1234567890 512 12345678ab 513 0: 12345678ab 514 12345678__ 515 0: 12345678__ 516 *** Failers 517 No match 518 1234567 519 No match 520 521 /^[aeiou0-9]{4,5}$/ 522 uoie 523 0: uoie 524 1234 525 0: 1234 526 12345 527 0: 12345 528 aaaaa 529 0: aaaaa 530 *** Failers 531 No match 532 123456 533 No match 534 535 /\`(abc|def)=(\1){2,3}\'/ 536 abc=abcabc 537 0: abc=abcabc 538 1: abc 539 2: abc 540 def=defdefdef 541 0: def=defdefdef 542 1: def 543 2: def 544 *** Failers 545 No match 546 abc=defdef 547 No match 548 549 /(cat(a(ract|tonic)|erpillar)) \1()2(3)/ 550 cataract cataract23 551 0: cataract cataract23 552 1: cataract 553 2: aract 554 3: ract 555 4: 556 5: 3 557 catatonic catatonic23 558 0: catatonic catatonic23 559 1: catatonic 560 2: atonic 561 3: tonic 562 4: 563 5: 3 564 caterpillar caterpillar23 565 0: caterpillar caterpillar23 566 1: caterpillar 567 2: erpillar 568 3: <unset> 569 4: 570 5: 3 571 572 573 /^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]/ 574 From abcd Mon Sep 01 12:33:02 1997 575 0: From abcd Mon Sep 01 12:33 576 1: abcd 577 578 /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}[0-9]{1,2}\s+[0-9][0-9]:[0-9][0-9]/ 579 From abcd Mon Sep 01 12:33:02 1997 580 0: From abcd Mon Sep 01 12:33 581 1: Sep 582 From abcd Mon Sep 1 12:33:02 1997 583 0: From abcd Mon Sep 1 12:33 584 1: Sep 585 *** Failers 586 No match 587 From abcd Sep 01 12:33:02 1997 588 No match 589 590 /^(a)\1{2,3}(.)/ 591 aaab 592 0: aaab 593 1: a 594 2: b 595 aaaab 596 0: aaaab 597 1: a 598 2: b 599 aaaaab 600 0: aaaaa 601 1: a 602 2: a 603 aaaaaab 604 0: aaaaa 605 1: a 606 2: a 607 608 /^[ab]{1,3}(ab*|b)/ 609 aabbbbb 610 0: aabbbbb 611 1: abbbbb 612 613 /^(cow|)\1(bell)/ 614 cowcowbell 615 0: cowcowbell 616 1: cow 617 2: bell 618 bell 619 0: bell 620 1: 621 2: bell 622 *** Failers 623 No match 624 cowbell 625 No match 626 627 /^(a|)\1+b/ 628 aab 629 0: aab 630 1: a 631 aaaab 632 0: aaaab 633 1: a 634 b 635 0: b 636 1: 637 *** Failers 638 No match 639 ab 640 No match 641 642 /^(a|)\1{2}b/ 643 aaab 644 0: aaab 645 1: a 646 b 647 0: b 648 1: 649 *** Failers 650 No match 651 ab 652 No match 653 aab 654 No match 655 aaaab 656 No match 657 658 /^(a|)\1{2,3}b/ 659 aaab 660 0: aaab 661 1: a 662 aaaab 663 0: aaaab 664 1: a 665 b 666 0: b 667 1: 668 *** Failers 669 No match 670 ab 671 No match 672 aab 673 No match 674 aaaaab 675 No match 676 677 /ab{1,3}bc/ 678 abbbbc 679 0: abbbbc 680 abbbc 681 0: abbbc 682 abbc 683 0: abbc 684 *** Failers 685 No match 686 abc 687 No match 688 abbbbbc 689 No match 690 691 /([^.]*)\.([^:]*):[T ]+(.*)/ 692 track1.title:TBlah blah blah 693 0: track1.title:TBlah blah blah 694 1: track1 695 2: title 696 3: Blah blah blah 697 698 /([^.]*)\.([^:]*):[T ]+(.*)/i 699 track1.title:TBlah blah blah 700 0: track1.title:TBlah blah blah 701 1: track1 702 2: title 703 3: Blah blah blah 704 705 /([^.]*)\.([^:]*):[t ]+(.*)/i 706 track1.title:TBlah blah blah 707 0: track1.title:TBlah blah blah 708 1: track1 709 2: title 710 3: Blah blah blah 711 712 /^abc$/ 713 abc 714 0: abc 715 *** Failers 716 No match 717 718 /[-az]+/ 719 az- 720 0: az- 721 *** Failers 722 0: a 723 b 724 No match 725 726 /[az-]+/ 727 za- 728 0: za- 729 *** Failers 730 0: a 731 b 732 No match 733 734 /[a-z]+/ 735 abcdxyz 736 0: abcdxyz 737 738 /[0-9-]+/ 739 12-34 740 0: 12-34 741 *** Failers 742 No match 743 aaa 744 No match 745 746 /(abc)\1/i 747 abcabc 748 0: abcabc 749 1: abc 750 ABCabc 751 0: ABCabc 752 1: ABC 753 abcABC 754 0: abcABC 755 1: abc 756 757 /a{0}bc/ 758 bc 759 0: bc 760 761 /^([^a])([^b])([^c]*)([^d]{3,4})/ 762 baNOTccccd 763 0: baNOTcccc 764 1: b 765 2: a 766 3: NOT 767 4: cccc 768 baNOTcccd 769 0: baNOTccc 770 1: b 771 2: a 772 3: NOT 773 4: ccc 774 baNOTccd 775 0: baNOTcc 776 1: b 777 2: a 778 3: NO 779 4: Tcc 780 bacccd 781 0: baccc 782 1: b 783 2: a 784 3: 785 4: ccc 786 *** Failers 787 0: *** Failers 788 1: * 789 2: * 790 3: * Fail 791 4: ers 792 anything 793 No match 794 baccd 795 No match 796 797 /[^a]/ 798 Abc 799 0: A 800 801 /[^a]/i 802 Abc 803 0: b 804 805 /[^a]+/ 806 AAAaAbc 807 0: AAA 808 809 /[^a]+/i 810 AAAaAbc 811 0: bc 812 813 /[^k]$/ 814 abc 815 0: c 816 *** Failers 817 0: s 818 abk 819 No match 820 821 /[^k]{2,3}$/ 822 abc 823 0: abc 824 kbc 825 0: bc 826 kabc 827 0: abc 828 *** Failers 829 0: ers 830 abk 831 No match 832 akb 833 No match 834 akk 835 No match 836 837 /^[0-9]{8,}@.+[^k]$/ 838 12345678 (a] a.b.c.d 839 0: 12345678 (a] a.b.c.d 840 123456789 (a] x.y.z 841 0: 123456789 (a] x.y.z 842 *** Failers 843 No match 844 12345678 (a] x.y.uk 845 No match 846 1234567 (a] a.b.c.d 847 No match 848 849 /(a)\1{8,}/ 850 aaaaaaaaa 851 0: aaaaaaaaa 852 1: a 853 aaaaaaaaaa 854 0: aaaaaaaaaa 855 1: a 856 *** Failers 857 No match 858 aaaaaaa 859 No match 860 861 /[^a]/ 862 aaaabcd 863 0: b 864 aaAabcd 865 0: A 866 867 /[^a]/i 868 aaaabcd 869 0: b 870 aaAabcd 871 0: b 872 873 /[^az]/ 874 aaaabcd 875 0: b 876 aaAabcd 877 0: A 878 879 /[^az]/i 880 aaaabcd 881 0: b 882 aaAabcd 883 0: b 884 885 /P[^*]TAIRE[^*]{1,6}LL/ 886 xxxxxxxxxxxPSTAIREISLLxxxxxxxxx 887 0: PSTAIREISLL 888 889 /P[^*]TAIRE[^*]{1,}LL/ 890 xxxxxxxxxxxPSTAIREISLLxxxxxxxxx 891 0: PSTAIREISLL 892 893 /(\.[0-9][0-9][1-9]?)[0-9]+/ 894 1.230003938 895 0: .230003938 896 1: .23 897 1.875000282 898 0: .875000282 899 1: .875 900 1.235 901 0: .235 902 1: .23 903 904 /\b(foo)\s+(\w+)/i 905 Food is on the foo table 906 0: foo table 907 1: foo 908 2: table 909 910 /foo(.*)bar/ 911 The food is under the bar in the barn. 912 0: food is under the bar in the bar 913 1: d is under the bar in the 914 915 /(.*)([0-9]*)/ 916 I have 2 numbers: 53147 917 0: I have 2 numbers: 53147 918 1: I have 2 numbers: 53147 919 2: 920 921 /(.*)([0-9]+)/ 922 I have 2 numbers: 53147 923 0: I have 2 numbers: 53147 924 1: I have 2 numbers: 5314 925 2: 7 926 927 /(.*)([0-9]+)$/ 928 I have 2 numbers: 53147 929 0: I have 2 numbers: 53147 930 1: I have 2 numbers: 5314 931 2: 7 932 933 /(.*)\b([0-9]+)$/ 934 I have 2 numbers: 53147 935 0: I have 2 numbers: 53147 936 1: I have 2 numbers: 937 2: 53147 938 939 /(.*[^0-9])([0-9]+)$/ 940 I have 2 numbers: 53147 941 0: I have 2 numbers: 53147 942 1: I have 2 numbers: 943 2: 53147 944 945 /[[:digit:]][[:digit:]]\/[[:digit:]][[:digit:]]\/[[:digit:]][[:digit:]][[:digit:]][[:digit:]]/ 946 01/01/2000 947 0: 01/01/2000 948 949 /^(a){0,0}/ 950 bcd 951 0: 952 abc 953 0: 954 aab 955 0: 956 957 /^(a){0,1}/ 958 bcd 959 0: 960 abc 961 0: a 962 1: a 963 aab 964 0: a 965 1: a 966 967 /^(a){0,2}/ 968 bcd 969 0: 970 abc 971 0: a 972 1: a 973 aab 974 0: aa 975 1: a 976 977 /^(a){0,3}/ 978 bcd 979 0: 980 abc 981 0: a 982 1: a 983 aab 984 0: aa 985 1: a 986 aaa 987 0: aaa 988 1: a 989 990 /^(a){0,}/ 991 bcd 992 0: 993 abc 994 0: a 995 1: a 996 aab 997 0: aa 998 1: a 999 aaa 1000 0: aaa 1001 1: a 1002 aaaaaaaa 1003 0: aaaaaaaa 1004 1: a 1005 1006 /^(a){1,1}/ 1007 bcd 1008 No match 1009 abc 1010 0: a 1011 1: a 1012 aab 1013 0: a 1014 1: a 1015 1016 /^(a){1,2}/ 1017 bcd 1018 No match 1019 abc 1020 0: a 1021 1: a 1022 aab 1023 0: aa 1024 1: a 1025 1026 /^(a){1,3}/ 1027 bcd 1028 No match 1029 abc 1030 0: a 1031 1: a 1032 aab 1033 0: aa 1034 1: a 1035 aaa 1036 0: aaa 1037 1: a 1038 1039 /^(a){1,}/ 1040 bcd 1041 No match 1042 abc 1043 0: a 1044 1: a 1045 aab 1046 0: aa 1047 1: a 1048 aaa 1049 0: aaa 1050 1: a 1051 aaaaaaaa 1052 0: aaaaaaaa 1053 1: a 1054 1055 /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/ 1056 123456654321 1057 0: 123456654321 1058 1059 /^[[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]]/ 1060 123456654321 1061 0: 123456654321 1062 1063 /^[abc]{12}/ 1064 abcabcabcabc 1065 0: abcabcabcabc 1066 1067 /^[a-c]{12}/ 1068 abcabcabcabc 1069 0: abcabcabcabc 1070 1071 /^(a|b|c){12}/ 1072 abcabcabcabc 1073 0: abcabcabcabc 1074 1: c 1075 1076 /^[abcdefghijklmnopqrstuvwxy0123456789]/ 1077 n 1078 0: n 1079 *** Failers 1080 No match 1081 z 1082 No match 1083 1084 /abcde{0,0}/ 1085 abcd 1086 0: abcd 1087 *** Failers 1088 No match 1089 abce 1090 No match 1091 1092 /ab[cd]{0,0}e/ 1093 abe 1094 0: abe 1095 *** Failers 1096 No match 1097 abcde 1098 No match 1099 1100 /ab(c){0,0}d/ 1101 abd 1102 0: abd 1103 *** Failers 1104 No match 1105 abcd 1106 No match 1107 1108 /a(b*)/ 1109 a 1110 0: a 1111 1: 1112 ab 1113 0: ab 1114 1: b 1115 abbbb 1116 0: abbbb 1117 1: bbbb 1118 *** Failers 1119 0: a 1120 1: 1121 bbbbb 1122 No match 1123 1124 /ab[0-9]{0}e/ 1125 abe 1126 0: abe 1127 *** Failers 1128 No match 1129 ab1e 1130 No match 1131 1132 /(A|B)*CD/ 1133 CD 1134 0: CD 1135 1136 /(AB)*\1/ 1137 ABABAB 1138 0: ABABAB 1139 1: AB 1140 1141 /([0-9]+)(\w)/ 1142 12345a 1143 0: 12345a 1144 1: 12345 1145 2: a 1146 12345+ 1147 0: 12345 1148 1: 1234 1149 2: 5 1150 1151 /(abc|)+/ 1152 abc 1153 0: abc 1154 1: abc 1155 abcabc 1156 0: abcabc 1157 1: abc 1158 abcabcabc 1159 0: abcabcabc 1160 1: abc 1161 xyz 1162 0: 1163 1: 1164 1165 /([a]*)*/ 1166 a 1167 0: a 1168 1: a 1169 aaaaa 1170 0: aaaaa 1171 1: aaaaa 1172 1173 /([ab]*)*/ 1174 a 1175 0: a 1176 1: a 1177 b 1178 0: b 1179 1: b 1180 ababab 1181 0: ababab 1182 1: ababab 1183 aaaabcde 1184 0: aaaab 1185 1: aaaab 1186 bbbb 1187 0: bbbb 1188 1: bbbb 1189 1190 /([^a]*)*/ 1191 b 1192 0: b 1193 1: b 1194 bbbb 1195 0: bbbb 1196 1: bbbb 1197 aaa 1198 0: 1199 1200 /([^ab]*)*/ 1201 cccc 1202 0: cccc 1203 1: cccc 1204 abab 1205 0: 1206 1207 /abc/ 1208 abc 1209 0: abc 1210 xabcy 1211 0: abc 1212 ababc 1213 0: abc 1214 *** Failers 1215 No match 1216 xbc 1217 No match 1218 axc 1219 No match 1220 abx 1221 No match 1222 1223 /ab*c/ 1224 abc 1225 0: abc 1226 1227 /ab*bc/ 1228 abc 1229 0: abc 1230 abbc 1231 0: abbc 1232 abbbbc 1233 0: abbbbc 1234 1235 /.{1}/ 1236 abbbbc 1237 0: a 1238 1239 /.{3,4}/ 1240 abbbbc 1241 0: abbb 1242 1243 /ab{0,}bc/ 1244 abbbbc 1245 0: abbbbc 1246 1247 /ab+bc/ 1248 abbc 1249 0: abbc 1250 *** Failers 1251 No match 1252 abc 1253 No match 1254 abq 1255 No match 1256 1257 /ab+bc/ 1258 abbbbc 1259 0: abbbbc 1260 1261 /ab{1,}bc/ 1262 abbbbc 1263 0: abbbbc 1264 1265 /ab{1,3}bc/ 1266 abbbbc 1267 0: abbbbc 1268 1269 /ab{3,4}bc/ 1270 abbbbc 1271 0: abbbbc 1272 1273 /ab{4,5}bc/ 1274 *** Failers 1275 No match 1276 abq 1277 No match 1278 abbbbc 1279 No match 1280 1281 /ab?bc/ 1282 abbc 1283 0: abbc 1284 abc 1285 0: abc 1286 1287 /ab{0,1}bc/ 1288 abc 1289 0: abc 1290 1291 /ab?c/ 1292 abc 1293 0: abc 1294 1295 /ab{0,1}c/ 1296 abc 1297 0: abc 1298 1299 /^abc$/ 1300 abc 1301 0: abc 1302 *** Failers 1303 No match 1304 abbbbc 1305 No match 1306 abcc 1307 No match 1308 1309 /^abc/ 1310 abcc 1311 0: abc 1312 1313 /abc$/ 1314 aabc 1315 0: abc 1316 *** Failers 1317 No match 1318 aabc 1319 0: abc 1320 aabcd 1321 No match 1322 1323 /^/ 1324 abc 1325 0: 1326 1327 /$/ 1328 abc 1329 0: 1330 1331 /a.c/ 1332 abc 1333 0: abc 1334 axc 1335 0: axc 1336 1337 /a.*c/ 1338 axyzc 1339 0: axyzc 1340 1341 /a[bc]d/ 1342 abd 1343 0: abd 1344 *** Failers 1345 No match 1346 axyzd 1347 No match 1348 abc 1349 No match 1350 1351 /a[b-d]e/ 1352 ace 1353 0: ace 1354 1355 /a[b-d]/ 1356 aac 1357 0: ac 1358 1359 /a[-b]/ 1360 a- 1361 0: a- 1362 1363 /a[b-]/ 1364 a- 1365 0: a- 1366 1367 /a[]]b/ 1368 a]b 1369 0: a]b 1370 1371 /a[^bc]d/ 1372 aed 1373 0: aed 1374 *** Failers 1375 No match 1376 abd 1377 No match 1378 abd 1379 No match 1380 1381 /a[^-b]c/ 1382 adc 1383 0: adc 1384 1385 /a[^]b]c/ 1386 adc 1387 0: adc 1388 *** Failers 1389 No match 1390 a-c 1391 0: a-c 1392 a]c 1393 No match 1394 1395 /\ba\b/ 1396 a- 1397 0: a 1398 -a 1399 0: a 1400 -a- 1401 0: a 1402 1403 /\by\b/ 1404 *** Failers 1405 No match 1406 xy 1407 No match 1408 yz 1409 No match 1410 xyz 1411 No match 1412 1413 /\Ba\B/ 1414 *** Failers 1415 0: a 1416 a- 1417 No match 1418 -a 1419 No match 1420 -a- 1421 No match 1422 1423 /\By\b/ 1424 xy 1425 0: y 1426 1427 /\by\B/ 1428 yz 1429 0: y 1430 1431 /\By\B/ 1432 xyz 1433 0: y 1434 1435 /\w/ 1436 a 1437 0: a 1438 1439 /\W/ 1440 - 1441 0: - 1442 *** Failers 1443 0: * 1444 - 1445 0: - 1446 a 1447 No match 1448 1449 /a\sb/ 1450 a b 1451 0: a b 1452 1453 /a\Sb/ 1454 a-b 1455 0: a-b 1456 *** Failers 1457 No match 1458 a-b 1459 0: a-b 1460 a b 1461 No match 1462 1463 /[0-9]/ 1464 1 1465 0: 1 1466 1467 /[^0-9]/ 1468 - 1469 0: - 1470 *** Failers 1471 0: * 1472 - 1473 0: - 1474 1 1475 No match 1476 1477 /ab|cd/ 1478 abc 1479 0: ab 1480 abcd 1481 0: ab 1482 1483 /()ef/ 1484 def 1485 0: ef 1486 1: 1487 1488 /a\(b/ 1489 a(b 1490 0: a(b 1491 1492 /a\(*b/ 1493 ab 1494 0: ab 1495 a((b 1496 0: a((b 1497 1498 /((a))/ 1499 abc 1500 0: a 1501 1: a 1502 2: a 1503 1504 /(a)b(c)/ 1505 abc 1506 0: abc 1507 1: a 1508 2: c 1509 1510 /a+b+c/ 1511 aabbabc 1512 0: abc 1513 1514 /a{1,}b{1,}c/ 1515 aabbabc 1516 0: abc 1517 1518 /(a+|b)*/ 1519 ab 1520 0: ab 1521 1: b 1522 1523 /(a+|b){0,}/ 1524 ab 1525 0: ab 1526 1: b 1527 1528 /(a+|b)+/ 1529 ab 1530 0: ab 1531 1: b 1532 1533 /(a+|b){1,}/ 1534 ab 1535 0: ab 1536 1: b 1537 1538 /(a+|b)?/ 1539 ab 1540 0: a 1541 1: a 1542 1543 /(a+|b){0,1}/ 1544 ab 1545 0: a 1546 1: a 1547 1548 /[^ab]*/ 1549 cde 1550 0: cde 1551 1552 /abc/ 1553 *** Failers 1554 No match 1555 b 1556 No match 1557 1558 1559 /a*/ 1560 1561 1562 /([abc])*d/ 1563 abbbcd 1564 0: abbbcd 1565 1: c 1566 1567 /([abc])*bcd/ 1568 abcd 1569 0: abcd 1570 1: a 1571 1572 /a|b|c|d|e/ 1573 e 1574 0: e 1575 1576 /(a|b|c|d|e)f/ 1577 ef 1578 0: ef 1579 1: e 1580 1581 /abcd*efg/ 1582 abcdefg 1583 0: abcdefg 1584 1585 /ab*/ 1586 xabyabbbz 1587 0: ab 1588 xayabbbz 1589 0: a 1590 1591 /(ab|cd)e/ 1592 abcde 1593 0: cde 1594 1: cd 1595 1596 /[abhgefdc]ij/ 1597 hij 1598 0: hij 1599 1600 /(abc|)ef/ 1601 abcdef 1602 0: ef 1603 1: 1604 1605 /(a|b)c*d/ 1606 abcd 1607 0: bcd 1608 1: b 1609 1610 /(ab|ab*)bc/ 1611 abc 1612 0: abc 1613 1: a 1614 1615 /a([bc]*)c*/ 1616 abc 1617 0: abc 1618 1: bc 1619 1620 /a([bc]*)(c*d)/ 1621 abcd 1622 0: abcd 1623 1: bc 1624 2: d 1625 1626 /a([bc]+)(c*d)/ 1627 abcd 1628 0: abcd 1629 1: bc 1630 2: d 1631 1632 /a([bc]*)(c+d)/ 1633 abcd 1634 0: abcd 1635 1: b 1636 2: cd 1637 1638 /a[bcd]*dcdcde/ 1639 adcdcde 1640 0: adcdcde 1641 1642 /a[bcd]+dcdcde/ 1643 *** Failers 1644 No match 1645 abcde 1646 No match 1647 adcdcde 1648 No match 1649 1650 /(ab|a)b*c/ 1651 abc 1652 0: abc 1653 1: ab 1654 1655 /((a)(b)c)(d)/ 1656 abcd 1657 0: abcd 1658 1: abc 1659 2: a 1660 3: b 1661 4: d 1662 1663 /[a-zA-Z_][a-zA-Z0-9_]*/ 1664 alpha 1665 0: alpha 1666 1667 /^a(bc+|b[eh])g|.h$/ 1668 abh 1669 0: bh 1670 1671 /(bc+d$|ef*g.|h?i(j|k))/ 1672 effgz 1673 0: effgz 1674 1: effgz 1675 ij 1676 0: ij 1677 1: ij 1678 2: j 1679 reffgz 1680 0: effgz 1681 1: effgz 1682 *** Failers 1683 No match 1684 effg 1685 No match 1686 bcdd 1687 No match 1688 1689 /((((((((((a))))))))))/ 1690 a 1691 0: a 1692 1: a 1693 2: a 1694 3: a 1695 4: a 1696 5: a 1697 6: a 1698 7: a 1699 8: a 1700 9: a 1701 10: a 1702 1703 /((((((((((a))))))))))\9/ 1704 aa 1705 0: aa 1706 1: a 1707 2: a 1708 3: a 1709 4: a 1710 5: a 1711 6: a 1712 7: a 1713 8: a 1714 9: a 1715 10: a 1716 1717 /(((((((((a)))))))))/ 1718 a 1719 0: a 1720 1: a 1721 2: a 1722 3: a 1723 4: a 1724 5: a 1725 6: a 1726 7: a 1727 8: a 1728 9: a 1729 1730 /multiple words of text/ 1731 *** Failers 1732 No match 1733 aa 1734 No match 1735 uh-uh 1736 No match 1737 1738 /multiple words/ 1739 multiple words, yeah 1740 0: multiple words 1741 1742 /(.*)c(.*)/ 1743 abcde 1744 0: abcde 1745 1: ab 1746 2: de 1747 1748 /\((.*), (.*)\)/ 1749 (a, b) 1750 0: (a, b) 1751 1: a 1752 2: b 1753 1754 /abcd/ 1755 abcd 1756 0: abcd 1757 1758 /a(bc)d/ 1759 abcd 1760 0: abcd 1761 1: bc 1762 1763 /a[-]?c/ 1764 ac 1765 0: ac 1766 1767 /(abc)\1/ 1768 abcabc 1769 0: abcabc 1770 1: abc 1771 1772 /([a-c]*)\1/ 1773 abcabc 1774 0: abcabc 1775 1: abc 1776 1777 /(a)|\1/ 1778 a 1779 0: a 1780 1: a 1781 *** Failers 1782 0: a 1783 1: a 1784 ab 1785 0: a 1786 1: a 1787 x 1788 No match 1789 1790 /abc/i 1791 ABC 1792 0: ABC 1793 XABCY 1794 0: ABC 1795 ABABC 1796 0: ABC 1797 *** Failers 1798 No match 1799 aaxabxbaxbbx 1800 No match 1801 XBC 1802 No match 1803 AXC 1804 No match 1805 ABX 1806 No match 1807 1808 /ab*c/i 1809 ABC 1810 0: ABC 1811 1812 /ab*bc/i 1813 ABC 1814 0: ABC 1815 ABBC 1816 0: ABBC 1817 1818 /ab+bc/i 1819 *** Failers 1820 No match 1821 ABC 1822 No match 1823 ABQ 1824 No match 1825 1826 /ab+bc/i 1827 ABBBBC 1828 0: ABBBBC 1829 1830 /^abc$/i 1831 ABC 1832 0: ABC 1833 *** Failers 1834 No match 1835 ABBBBC 1836 No match 1837 ABCC 1838 No match 1839 1840 /^abc/i 1841 ABCC 1842 0: ABC 1843 1844 /abc$/i 1845 AABC 1846 0: ABC 1847 1848 /^/i 1849 ABC 1850 0: 1851 1852 /$/i 1853 ABC 1854 0: 1855 1856 /a.c/i 1857 ABC 1858 0: ABC 1859 AXC 1860 0: AXC 1861 1862 /a.*c/i 1863 *** Failers 1864 No match 1865 AABC 1866 0: AABC 1867 AXYZD 1868 No match 1869 1870 /a[bc]d/i 1871 ABD 1872 0: ABD 1873 1874 /a[b-d]e/i 1875 ACE 1876 0: ACE 1877 *** Failers 1878 No match 1879 ABC 1880 No match 1881 ABD 1882 No match 1883 1884 /a[b-d]/i 1885 AAC 1886 0: AC 1887 1888 /a[-b]/i 1889 A- 1890 0: A- 1891 1892 /a[b-]/i 1893 A- 1894 0: A- 1895 1896 /a[]]b/i 1897 A]B 1898 0: A]B 1899 1900 /a[^bc]d/i 1901 AED 1902 0: AED 1903 1904 /a[^-b]c/i 1905 ADC 1906 0: ADC 1907 *** Failers 1908 No match 1909 ABD 1910 No match 1911 A-C 1912 No match 1913 1914 /a[^]b]c/i 1915 ADC 1916 0: ADC 1917 1918 /ab|cd/i 1919 ABC 1920 0: AB 1921 ABCD 1922 0: AB 1923 1924 /()ef/i 1925 DEF 1926 0: EF 1927 1: 1928 1929 /$b/i 1930 *** Failers 1931 No match 1932 A]C 1933 No match 1934 B 1935 No match 1936 1937 /a\(b/i 1938 A(B 1939 0: A(B 1940 1941 /a\(*b/i 1942 AB 1943 0: AB 1944 A((B 1945 0: A((B 1946 1947 /((a))/i 1948 ABC 1949 0: A 1950 1: A 1951 2: A 1952 1953 /(a)b(c)/i 1954 ABC 1955 0: ABC 1956 1: A 1957 2: C 1958 1959 /a+b+c/i 1960 AABBABC 1961 0: ABC 1962 1963 /a{1,}b{1,}c/i 1964 AABBABC 1965 0: ABC 1966 1967 /(a+|b)*/i 1968 AB 1969 0: AB 1970 1: B 1971 1972 /(a+|b){0,}/i 1973 AB 1974 0: AB 1975 1: B 1976 1977 /(a+|b)+/i 1978 AB 1979 0: AB 1980 1: B 1981 1982 /(a+|b){1,}/i 1983 AB 1984 0: AB 1985 1: B 1986 1987 /(a+|b)?/i 1988 AB 1989 0: A 1990 1: A 1991 1992 /(a+|b){0,1}/i 1993 AB 1994 0: A 1995 1: A 1996 1997 /[^ab]*/i 1998 CDE 1999 0: CDE 2000 2001 /([abc])*d/i 2002 ABBBCD 2003 0: ABBBCD 2004 1: C 2005 2006 /([abc])*bcd/i 2007 ABCD 2008 0: ABCD 2009 1: A 2010 2011 /a|b|c|d|e/i 2012 E 2013 0: E 2014 2015 /(a|b|c|d|e)f/i 2016 EF 2017 0: EF 2018 1: E 2019 2020 /abcd*efg/i 2021 ABCDEFG 2022 0: ABCDEFG 2023 2024 /ab*/i 2025 XABYABBBZ 2026 0: AB 2027 XAYABBBZ 2028 0: A 2029 2030 /(ab|cd)e/i 2031 ABCDE 2032 0: CDE 2033 1: CD 2034 2035 /[abhgefdc]ij/i 2036 HIJ 2037 0: HIJ 2038 2039 /^(ab|cd)e/i 2040 ABCDE 2041 No match 2042 2043 /(abc|)ef/i 2044 ABCDEF 2045 0: EF 2046 1: 2047 2048 /(a|b)c*d/i 2049 ABCD 2050 0: BCD 2051 1: B 2052 2053 /(ab|ab*)bc/i 2054 ABC 2055 0: ABC 2056 1: A 2057 2058 /a([bc]*)c*/i 2059 ABC 2060 0: ABC 2061 1: BC 2062 2063 /a([bc]*)(c*d)/i 2064 ABCD 2065 0: ABCD 2066 1: BC 2067 2: D 2068 2069 /a([bc]+)(c*d)/i 2070 ABCD 2071 0: ABCD 2072 1: BC 2073 2: D 2074 2075 /a([bc]*)(c+d)/i 2076 ABCD 2077 0: ABCD 2078 1: B 2079 2: CD 2080 2081 /a[bcd]*dcdcde/i 2082 ADCDCDE 2083 0: ADCDCDE 2084 2085 /a[bcd]+dcdcde/i 2086 2087 /(ab|a)b*c/i 2088 ABC 2089 0: ABC 2090 1: AB 2091 2092 /((a)(b)c)(d)/i 2093 ABCD 2094 0: ABCD 2095 1: ABC 2096 2: A 2097 3: B 2098 4: D 2099 2100 /[a-zA-Z_][a-zA-Z0-9_]*/i 2101 ALPHA 2102 0: ALPHA 2103 2104 /^a(bc+|b[eh])g|.h$/i 2105 ABH 2106 0: BH 2107 2108 /(bc+d$|ef*g.|h?i(j|k))/i 2109 EFFGZ 2110 0: EFFGZ 2111 1: EFFGZ 2112 IJ 2113 0: IJ 2114 1: IJ 2115 2: J 2116 REFFGZ 2117 0: EFFGZ 2118 1: EFFGZ 2119 *** Failers 2120 No match 2121 ADCDCDE 2122 No match 2123 EFFG 2124 No match 2125 BCDD 2126 No match 2127 2128 /((((((((((a))))))))))/i 2129 A 2130 0: A 2131 1: A 2132 2: A 2133 3: A 2134 4: A 2135 5: A 2136 6: A 2137 7: A 2138 8: A 2139 9: A 2140 10: A 2141 2142 /((((((((((a))))))))))\9/i 2143 AA 2144 0: AA 2145 1: A 2146 2: A 2147 3: A 2148 4: A 2149 5: A 2150 6: A 2151 7: A 2152 8: A 2153 9: A 2154 10: A 2155 2156 /(((((((((a)))))))))/i 2157 A 2158 0: A 2159 1: A 2160 2: A 2161 3: A 2162 4: A 2163 5: A 2164 6: A 2165 7: A 2166 8: A 2167 9: A 2168 2169 /multiple words of text/i 2170 *** Failers 2171 No match 2172 AA 2173 No match 2174 UH-UH 2175 No match 2176 2177 /multiple words/i 2178 MULTIPLE WORDS, YEAH 2179 0: MULTIPLE WORDS 2180 2181 /(.*)c(.*)/i 2182 ABCDE 2183 0: ABCDE 2184 1: AB 2185 2: DE 2186 2187 /\((.*), (.*)\)/i 2188 (A, B) 2189 0: (A, B) 2190 1: A 2191 2: B 2192 2193 /abcd/i 2194 ABCD 2195 0: ABCD 2196 2197 /a(bc)d/i 2198 ABCD 2199 0: ABCD 2200 1: BC 2201 2202 /a[-]?c/i 2203 AC 2204 0: AC 2205 2206 /(abc)\1/i 2207 ABCABC 2208 0: ABCABC 2209 1: ABC 2210 2211 /([a-c]*)\1/i 2212 ABCABC 2213 0: ABCABC 2214 1: ABC 2215 2216 /((foo)|(bar))*/ 2217 foobar 2218 0: foobar 2219 1: bar 2220 2: foo 2221 3: bar 2222 2223 /^(.+)?B/ 2224 AB 2225 0: AB 2226 1: A 2227 2228 /^([^a-z])|(\^)$/ 2229 . 2230 0: . 2231 1: . 2232 2233 /^[<>]&/ 2234 <&OUT 2235 0: <& 2236 2237 /^(){3,5}/ 2238 abc 2239 0: 2240 1: 2241 2242 /^(a+)*ax/ 2243 aax 2244 0: aax 2245 1: a 2246 2247 /^((a|b)+)*ax/ 2248 aax 2249 0: aax 2250 1: a 2251 2: a 2252 2253 /^((a|bc)+)*ax/ 2254 aax 2255 0: aax 2256 1: a 2257 2: a 2258 2259 /(a|x)*ab/ 2260 cab 2261 0: ab 2262 2263 /(a)*ab/ 2264 cab 2265 0: ab 2266 2267 /(ab)[0-9]\1/i 2268 Ab4ab 2269 0: Ab4ab 2270 1: Ab 2271 ab4Ab 2272 0: ab4Ab 2273 1: ab 2274 2275 /foo\w*[0-9]{4}baz/ 2276 foobar1234baz 2277 0: foobar1234baz 2278 2279 /(\w+:)+/ 2280 one: 2281 0: one: 2282 1: one: 2283 2284 /((\w|:)+::)?(\w+)$/ 2285 abcd 2286 0: abcd 2287 1: <unset> 2288 2: <unset> 2289 3: abcd 2290 xy:z:::abcd 2291 0: xy:z:::abcd 2292 1: xy:z::: 2293 2: : 2294 3: abcd 2295 2296 /^[^bcd]*(c+)/ 2297 aexycd 2298 0: aexyc 2299 1: c 2300 2301 /(a*)b+/ 2302 caab 2303 0: aab 2304 1: aa 2305 2306 /((\w|:)+::)?(\w+)$/ 2307 abcd 2308 0: abcd 2309 1: <unset> 2310 2: <unset> 2311 3: abcd 2312 xy:z:::abcd 2313 0: xy:z:::abcd 2314 1: xy:z::: 2315 2: : 2316 3: abcd 2317 *** Failers 2318 0: Failers 2319 1: <unset> 2320 2: <unset> 2321 3: Failers 2322 abcd: 2323 No match 2324 abcd: 2325 No match 2326 2327 /^[^bcd]*(c+)/ 2328 aexycd 2329 0: aexyc 2330 1: c 2331 2332 /((Z)+|A)*/ 2333 ZABCDEFG 2334 0: ZA 2335 1: A 2336 2: Z 2337 2338 /(Z()|A)*/ 2339 ZABCDEFG 2340 0: ZA 2341 1: A 2342 2: 2343 2344 /(Z(())|A)*/ 2345 ZABCDEFG 2346 0: ZA 2347 1: A 2348 2: 2349 3: 2350 2351 /(.*)[0-9]+\1/ 2352 abc123abc 2353 0: abc123abc 2354 1: abc 2355 abc123bc 2356 0: bc123bc 2357 1: bc 2358 2359 /((.*))[0-9]+\1/ 2360 abc123abc 2361 0: abc123abc 2362 1: abc 2363 2: abc 2364 abc123bc 2365 0: bc123bc 2366 1: bc 2367 2: bc 2368 2369 /^a{2,5}$/ 2370 aa 2371 0: aa 2372 aaa 2373 0: aaa 2374 aaaa 2375 0: aaaa 2376 aaaaa 2377 0: aaaaa 2378 *** Failers 2379 No match 2380 a 2381 No match 2382 b 2383 No match 2384 aaaaab 2385 No match 2386 aaaaaa 2387