]> git.ipfire.org Git - thirdparty/glibc.git/blame - posix/PCRE.tests
Fix handling of collating elements in fnmatch (bug 17396, bug 16976)
[thirdparty/glibc.git] / posix / PCRE.tests
CommitLineData
6c805a2b
UD
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@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
65No 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?
69No 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
143No match
144 abxyzpqrrabbxyyyypqAzz
145No match
146 abxyzpqrrrrabbxyyyypqAzz
147No match
148 abxyzpqrrrabxyyyypqAzz
149No match
150 aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
151No match
152 aaaabcxyzzzzpqrrrabbbxyyypqAzz
153No match
154 aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
155No 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
165No match
166 zz
167No match
168 abcabcabczz
169No match
170 >>abczz
171No 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
199No match
200 aaac
201No match
202 abbbbbbbbbbbac
203No 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
215No match
216 athing
217No match
218 fthing
219No match
220
221/^[^]cde]/
222 athing
223 0: a
224 fthing
225 0: f
226 *** Failers
227 0: *
228 ]thing
229No match
230 cthing
231No match
232 dthing
233No match
234 ething
235No 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
263No match
264 abc
265No 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
281No match
282 xxx
283No 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
293No match
294 123
295No 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
305No match
306 !pqr=apquxz.ixr.zzz.ac.uk
307No match
308 abc!=apquxz.ixr.zzz.ac.uk
309No match
310 abc!pqr=apquxz:ixr.zzz.ac.uk
311No match
312 abc!pqr=apquxz.ixr.zzz.ac.ukk
313No match
314
315/:/
316 Well, we need a colon: somewhere
317 0: :
318 *** Fail if we don't
319No 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
347No match
348 0zzz
349No match
350 gzzz
351No match
352 Any old rubbish
353No 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
367No match
368 .1.2.3333
369No match
370 1.2.3
371No match
372 1234.2.3
373No 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
387No match
388 1IN SOA non-sp1 non-sp2(
389No 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
408No match
409 -abc.peq.
410No 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
428No match
429 *.0
430No match
431 *.a-
432No match
433 *.a-b.c-
434No match
435 *.c-a.0-c
436No 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
459No match
460 "1234" : things
461No 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
47510: klm
47611: lm
47712: 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
517No match
518 1234567
519No 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
531No match
532 123456
533No 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
545No match
546 abc=defdef
547No 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
586No match
587 From abcd Sep 01 12:33:02 1997
588No 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
623No match
624 cowbell
625No 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
638No match
639 ab
640No match
641
642/^(a|)\1{2}b/
643 aaab
644 0: aaab
645 1: a
646 b
647 0: b
648 1:
649 *** Failers
650No match
651 ab
652No match
653 aab
654No match
655 aaaab
656No 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
669No match
670 ab
671No match
672 aab
673No match
674 aaaaab
675No match
676
677/ab{1,3}bc/
678 abbbbc
679 0: abbbbc
680 abbbc
681 0: abbbc
682 abbc
683 0: abbc
684 *** Failers
685No match
686 abc
687No match
688 abbbbbc
689No 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
716No match
717
718/[-az]+/
719 az-
720 0: az-
721 *** Failers
722 0: a
723 b
724No match
725
726/[az-]+/
727 za-
728 0: za-
729 *** Failers
730 0: a
731 b
732No match
733
734/[a-z]+/
735 abcdxyz
736 0: abcdxyz
737
738/[0-9-]+/
739 12-34
740 0: 12-34
741 *** Failers
742No match
743 aaa
744No 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
793No match
794 baccd
795No 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
819No 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
831No match
832 akb
833No match
834 akk
835No match
836
837/^[0-9]{8,}@.+[^k]$/
838 12345678@a.b.c.d
839 0: 12345678@a.b.c.d
840 123456789@x.y.z
841 0: 123456789@x.y.z
842 *** Failers
843No match
844 12345678@x.y.uk
845No match
846 1234567@a.b.c.d
847No match
848
849/(a)\1{8,}/
850 aaaaaaaaa
851 0: aaaaaaaaa
852 1: a
853 aaaaaaaaaa
854 0: aaaaaaaaaa
855 1: a
856 *** Failers
857No match
858 aaaaaaa
859No 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
1008No match
1009 abc
1010 0: a
1011 1: a
1012 aab
1013 0: a
1014 1: a
1015
1016/^(a){1,2}/
1017 bcd
1018No match
1019 abc
1020 0: a
1021 1: a
1022 aab
1023 0: aa
1024 1: a
1025
1026/^(a){1,3}/
1027 bcd
1028No 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
1041No 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
1080No match
1081 z
1082No match
1083
1084/abcde{0,0}/
1085 abcd
1086 0: abcd
1087 *** Failers
1088No match
1089 abce
1090No match
1091
1092/ab[cd]{0,0}e/
1093 abe
1094 0: abe
1095 *** Failers
1096No match
1097 abcde
1098No match
1099
1100/ab(c){0,0}d/
1101 abd
1102 0: abd
1103 *** Failers
1104No match
1105 abcd
1106No 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
1122No match
1123
1124/ab[0-9]{0}e/
1125 abe
1126 0: abe
1127 *** Failers
1128No match
1129 ab1e
1130No 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
6b6557e8 1154 1: abc
6c805a2b
UD
1155 abcabc
1156 0: abcabc
6b6557e8 1157 1: abc
6c805a2b
UD
1158 abcabcabc
1159 0: abcabcabc
6b6557e8 1160 1: abc
6c805a2b
UD
1161 xyz
1162 0:
1163 1:
1164
1165/([a]*)*/
1166 a
1167 0: a
6b6557e8 1168 1: a
6c805a2b
UD
1169 aaaaa
1170 0: aaaaa
6b6557e8 1171 1: aaaaa
6c805a2b
UD
1172
1173/([ab]*)*/
1174 a
1175 0: a
6b6557e8 1176 1: a
6c805a2b
UD
1177 b
1178 0: b
6b6557e8 1179 1: b
6c805a2b
UD
1180 ababab
1181 0: ababab
6b6557e8 1182 1: ababab
6c805a2b
UD
1183 aaaabcde
1184 0: aaaab
6b6557e8 1185 1: aaaab
6c805a2b
UD
1186 bbbb
1187 0: bbbb
6b6557e8 1188 1: bbbb
6c805a2b
UD
1189
1190/([^a]*)*/
1191 b
1192 0: b
6b6557e8 1193 1: b
6c805a2b
UD
1194 bbbb
1195 0: bbbb
6b6557e8 1196 1: bbbb
6c805a2b
UD
1197 aaa
1198 0:
6c805a2b
UD
1199
1200/([^ab]*)*/
1201 cccc
1202 0: cccc
6b6557e8 1203 1: cccc
6c805a2b
UD
1204 abab
1205 0:
6c805a2b
UD
1206
1207/abc/
1208 abc
1209 0: abc
1210 xabcy
1211 0: abc
1212 ababc
1213 0: abc
1214 *** Failers
1215No match
1216 xbc
1217No match
1218 axc
1219No match
1220 abx
1221No 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
1251No match
1252 abc
1253No match
1254 abq
1255No 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
1275No match
1276 abq
1277No match
1278 abbbbc
1279No 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
1303No match
1304 abbbbc
1305No match
1306 abcc
1307No match
1308
1309/^abc/
1310 abcc
1311 0: abc
1312
1313/abc$/
1314 aabc
1315 0: abc
1316 *** Failers
1317No match
1318 aabc
1319 0: abc
1320 aabcd
1321No 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
1345No match
1346 axyzd
1347No match
1348 abc
1349No 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
1375No match
1376 abd
1377No match
1378 abd
1379No match
1380
1381/a[^-b]c/
1382 adc
1383 0: adc
1384
1385/a[^]b]c/
1386 adc
1387 0: adc
1388 *** Failers
1389No match
1390 a-c
1391 0: a-c
1392 a]c
1393No 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
1405No match
1406 xy
1407No match
1408 yz
1409No match
1410 xyz
1411No match
1412
1413/\Ba\B/
1414 *** Failers
1415 0: a
1416 a-
1417No match
1418 -a
1419No match
1420 -a-
1421No 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
1447No 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
1457No match
1458 a-b
1459 0: a-b
1460 a b
1461No 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
1475No 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
1554No match
1555 b
1556No 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
1644No match
1645 abcde
1646No match
1647 adcdcde
1648No 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
1683No match
1684 effg
1685No match
1686 bcdd
1687No 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
170110: 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
171510: 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
1732No match
1733 aa
1734No match
1735 uh-uh
1736No 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
6c805a2b
UD
1777/abc/i
1778 ABC
1779 0: ABC
1780 XABCY
1781 0: ABC
1782 ABABC
1783 0: ABC
1784 *** Failers
1785No match
1786 aaxabxbaxbbx
1787No match
1788 XBC
1789No match
1790 AXC
1791No match
1792 ABX
1793No match
1794
1795/ab*c/i
1796 ABC
1797 0: ABC
1798
1799/ab*bc/i
1800 ABC
1801 0: ABC
1802 ABBC
1803 0: ABBC
1804
1805/ab+bc/i
1806 *** Failers
1807No match
1808 ABC
1809No match
1810 ABQ
1811No match
1812
1813/ab+bc/i
1814 ABBBBC
1815 0: ABBBBC
1816
1817/^abc$/i
1818 ABC
1819 0: ABC
1820 *** Failers
1821No match
1822 ABBBBC
1823No match
1824 ABCC
1825No match
1826
1827/^abc/i
1828 ABCC
1829 0: ABC
1830
1831/abc$/i
1832 AABC
1833 0: ABC
1834
1835/^/i
1836 ABC
1837 0:
1838
1839/$/i
1840 ABC
1841 0:
1842
1843/a.c/i
1844 ABC
1845 0: ABC
1846 AXC
1847 0: AXC
1848
1849/a.*c/i
1850 *** Failers
1851No match
1852 AABC
1853 0: AABC
1854 AXYZD
1855No match
1856
1857/a[bc]d/i
1858 ABD
1859 0: ABD
1860
1861/a[b-d]e/i
1862 ACE
1863 0: ACE
1864 *** Failers
1865No match
1866 ABC
1867No match
1868 ABD
1869No match
1870
1871/a[b-d]/i
1872 AAC
1873 0: AC
1874
1875/a[-b]/i
1876 A-
1877 0: A-
1878
1879/a[b-]/i
1880 A-
1881 0: A-
1882
1883/a[]]b/i
1884 A]B
1885 0: A]B
1886
1887/a[^bc]d/i
1888 AED
1889 0: AED
1890
1891/a[^-b]c/i
1892 ADC
1893 0: ADC
1894 *** Failers
1895No match
1896 ABD
1897No match
1898 A-C
1899No match
1900
1901/a[^]b]c/i
1902 ADC
1903 0: ADC
1904
1905/ab|cd/i
1906 ABC
1907 0: AB
1908 ABCD
1909 0: AB
1910
1911/()ef/i
1912 DEF
1913 0: EF
1914 1:
1915
1916/$b/i
1917 *** Failers
1918No match
1919 A]C
1920No match
1921 B
1922No match
1923
1924/a\(b/i
1925 A(B
1926 0: A(B
1927
1928/a\(*b/i
1929 AB
1930 0: AB
1931 A((B
1932 0: A((B
1933
1934/((a))/i
1935 ABC
1936 0: A
1937 1: A
1938 2: A
1939
1940/(a)b(c)/i
1941 ABC
1942 0: ABC
1943 1: A
1944 2: C
1945
1946/a+b+c/i
1947 AABBABC
1948 0: ABC
1949
1950/a{1,}b{1,}c/i
1951 AABBABC
1952 0: ABC
1953
1954/(a+|b)*/i
1955 AB
1956 0: AB
1957 1: B
1958
1959/(a+|b){0,}/i
1960 AB
1961 0: AB
1962 1: B
1963
1964/(a+|b)+/i
1965 AB
1966 0: AB
1967 1: B
1968
1969/(a+|b){1,}/i
1970 AB
1971 0: AB
1972 1: B
1973
1974/(a+|b)?/i
1975 AB
1976 0: A
1977 1: A
1978
1979/(a+|b){0,1}/i
1980 AB
1981 0: A
1982 1: A
1983
1984/[^ab]*/i
1985 CDE
1986 0: CDE
1987
1988/([abc])*d/i
1989 ABBBCD
1990 0: ABBBCD
1991 1: C
1992
1993/([abc])*bcd/i
1994 ABCD
1995 0: ABCD
1996 1: A
1997
1998/a|b|c|d|e/i
1999 E
2000 0: E
2001
2002/(a|b|c|d|e)f/i
2003 EF
2004 0: EF
2005 1: E
2006
2007/abcd*efg/i
2008 ABCDEFG
2009 0: ABCDEFG
2010
2011/ab*/i
2012 XABYABBBZ
2013 0: AB
2014 XAYABBBZ
2015 0: A
2016
2017/(ab|cd)e/i
2018 ABCDE
2019 0: CDE
2020 1: CD
2021
2022/[abhgefdc]ij/i
2023 HIJ
2024 0: HIJ
2025
2026/^(ab|cd)e/i
2027 ABCDE
2028No match
2029
2030/(abc|)ef/i
2031 ABCDEF
2032 0: EF
2033 1:
2034
2035/(a|b)c*d/i
2036 ABCD
2037 0: BCD
2038 1: B
2039
2040/(ab|ab*)bc/i
2041 ABC
2042 0: ABC
2043 1: A
2044
2045/a([bc]*)c*/i
2046 ABC
2047 0: ABC
2048 1: BC
2049
2050/a([bc]*)(c*d)/i
2051 ABCD
2052 0: ABCD
2053 1: BC
2054 2: D
2055
2056/a([bc]+)(c*d)/i
2057 ABCD
2058 0: ABCD
2059 1: BC
2060 2: D
2061
2062/a([bc]*)(c+d)/i
2063 ABCD
2064 0: ABCD
2065 1: B
2066 2: CD
2067
2068/a[bcd]*dcdcde/i
2069 ADCDCDE
2070 0: ADCDCDE
2071
2072/a[bcd]+dcdcde/i
2073
2074/(ab|a)b*c/i
2075 ABC
2076 0: ABC
2077 1: AB
2078
2079/((a)(b)c)(d)/i
2080 ABCD
2081 0: ABCD
2082 1: ABC
2083 2: A
2084 3: B
2085 4: D
2086
2087/[a-zA-Z_][a-zA-Z0-9_]*/i
2088 ALPHA
2089 0: ALPHA
2090
2091/^a(bc+|b[eh])g|.h$/i
2092 ABH
2093 0: BH
2094
2095/(bc+d$|ef*g.|h?i(j|k))/i
2096 EFFGZ
2097 0: EFFGZ
2098 1: EFFGZ
2099 IJ
2100 0: IJ
2101 1: IJ
2102 2: J
2103 REFFGZ
2104 0: EFFGZ
2105 1: EFFGZ
2106 *** Failers
2107No match
2108 ADCDCDE
2109No match
2110 EFFG
2111No match
2112 BCDD
2113No match
2114
2115/((((((((((a))))))))))/i
2116 A
2117 0: A
2118 1: A
2119 2: A
2120 3: A
2121 4: A
2122 5: A
2123 6: A
2124 7: A
2125 8: A
2126 9: A
212710: A
2128
2129/((((((((((a))))))))))\9/i
2130 AA
2131 0: AA
2132 1: A
2133 2: A
2134 3: A
2135 4: A
2136 5: A
2137 6: A
2138 7: A
2139 8: A
2140 9: A
214110: A
2142
2143/(((((((((a)))))))))/i
2144 A
2145 0: A
2146 1: A
2147 2: A
2148 3: A
2149 4: A
2150 5: A
2151 6: A
2152 7: A
2153 8: A
2154 9: A
2155
2156/multiple words of text/i
2157 *** Failers
2158No match
2159 AA
2160No match
2161 UH-UH
2162No match
2163
2164/multiple words/i
2165 MULTIPLE WORDS, YEAH
2166 0: MULTIPLE WORDS
2167
2168/(.*)c(.*)/i
2169 ABCDE
2170 0: ABCDE
2171 1: AB
2172 2: DE
2173
2174/\((.*), (.*)\)/i
2175 (A, B)
2176 0: (A, B)
2177 1: A
2178 2: B
2179
2180/abcd/i
2181 ABCD
2182 0: ABCD
2183
2184/a(bc)d/i
2185 ABCD
2186 0: ABCD
2187 1: BC
2188
2189/a[-]?c/i
2190 AC
2191 0: AC
2192
2193/(abc)\1/i
2194 ABCABC
2195 0: ABCABC
2196 1: ABC
2197
2198/([a-c]*)\1/i
2199 ABCABC
2200 0: ABCABC
2201 1: ABC
2202
2203/((foo)|(bar))*/
2204 foobar
2205 0: foobar
2206 1: bar
2207 2: foo
2208 3: bar
2209
2210/^(.+)?B/
2211 AB
2212 0: AB
2213 1: A
2214
2215/^([^a-z])|(\^)$/
2216 .
2217 0: .
2218 1: .
2219
2220/^[<>]&/
2221 <&OUT
2222 0: <&
2223
2224/^(){3,5}/
2225 abc
2226 0:
2227 1:
2228
2229/^(a+)*ax/
2230 aax
2231 0: aax
2232 1: a
2233
2234/^((a|b)+)*ax/
2235 aax
2236 0: aax
2237 1: a
2238 2: a
2239
2240/^((a|bc)+)*ax/
2241 aax
2242 0: aax
2243 1: a
2244 2: a
2245
2246/(a|x)*ab/
2247 cab
2248 0: ab
2249
2250/(a)*ab/
2251 cab
2252 0: ab
2253
2254/(ab)[0-9]\1/i
2255 Ab4ab
2256 0: Ab4ab
2257 1: Ab
2258 ab4Ab
2259 0: ab4Ab
2260 1: ab
2261
2262/foo\w*[0-9]{4}baz/
2263 foobar1234baz
2264 0: foobar1234baz
2265
2266/(\w+:)+/
2267 one:
2268 0: one:
2269 1: one:
2270
2271/((\w|:)+::)?(\w+)$/
2272 abcd
2273 0: abcd
2274 1: <unset>
2275 2: <unset>
2276 3: abcd
2277 xy:z:::abcd
2278 0: xy:z:::abcd
2279 1: xy:z:::
2280 2: :
2281 3: abcd
2282
2283/^[^bcd]*(c+)/
2284 aexycd
2285 0: aexyc
2286 1: c
2287
2288/(a*)b+/
2289 caab
2290 0: aab
2291 1: aa
2292
2293/((\w|:)+::)?(\w+)$/
2294 abcd
2295 0: abcd
2296 1: <unset>
2297 2: <unset>
2298 3: abcd
2299 xy:z:::abcd
2300 0: xy:z:::abcd
2301 1: xy:z:::
2302 2: :
2303 3: abcd
2304 *** Failers
2305 0: Failers
2306 1: <unset>
2307 2: <unset>
2308 3: Failers
2309 abcd:
2310No match
2311 abcd:
2312No match
2313
2314/^[^bcd]*(c+)/
2315 aexycd
2316 0: aexyc
2317 1: c
2318
2319/((Z)+|A)*/
2320 ZABCDEFG
2321 0: ZA
2322 1: A
2323 2: Z
2324
2325/(Z()|A)*/
2326 ZABCDEFG
2327 0: ZA
2328 1: A
2329 2:
2330
2331/(Z(())|A)*/
2332 ZABCDEFG
2333 0: ZA
2334 1: A
2335 2:
2336 3:
2337
2338/(.*)[0-9]+\1/
2339 abc123abc
2340 0: abc123abc
2341 1: abc
2342 abc123bc
2343 0: bc123bc
2344 1: bc
2345
2346/((.*))[0-9]+\1/
2347 abc123abc
2348 0: abc123abc
2349 1: abc
2350 2: abc
2351 abc123bc
2352 0: bc123bc
2353 1: bc
2354 2: bc
20dc2f79
UD
2355
2356/^a{2,5}$/
2357 aa
2358 0: aa
2359 aaa
2360 0: aaa
2361 aaaa
2362 0: aaaa
2363 aaaaa
2364 0: aaaaa
2365 *** Failers
2366No match
2367 a
2368No match
2369 b
2370No match
2371 aaaaab
2372No match
2373 aaaaaa