Annotation of embedaddon/pcre/testdata/testoutput2, revision 1.1.1.2
1.1 misho 1: /-- This set of tests is not Perl-compatible. It checks on special features
2: of PCRE's API, error diagnostics, and the compiled code of some patterns.
3: It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4: Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5: either because PCRE can't be compatible, or there is a possible Perl
6: bug.
7:
1.1.1.2 ! misho 8: NOTE: This is a non-UTF set of tests. When UTF support is needed, use
! 9: test 5, and if Unicode Property Support is needed, use test 7. --/
1.1 misho 10:
11: /(a)b|/I
12: Capturing subpattern count = 1
13: No options
14: No first char
15: No need char
16:
17: /abc/I
18: Capturing subpattern count = 0
19: No options
20: First char = 'a'
21: Need char = 'c'
22: abc
23: 0: abc
24: defabc
25: 0: abc
26: \Aabc
27: 0: abc
28: *** Failers
29: No match
30: \Adefabc
31: No match
32: ABC
33: No match
34:
35: /^abc/I
36: Capturing subpattern count = 0
37: Options: anchored
38: No first char
39: No need char
40: abc
41: 0: abc
42: \Aabc
43: 0: abc
44: *** Failers
45: No match
46: defabc
47: No match
48: \Adefabc
49: No match
50:
51: /a+bc/I
52: Capturing subpattern count = 0
53: No options
54: First char = 'a'
55: Need char = 'c'
56:
57: /a*bc/I
58: Capturing subpattern count = 0
59: No options
60: No first char
61: Need char = 'c'
62:
63: /a{3}bc/I
64: Capturing subpattern count = 0
65: No options
66: First char = 'a'
67: Need char = 'c'
68:
69: /(abc|a+z)/I
70: Capturing subpattern count = 1
71: No options
72: First char = 'a'
73: No need char
74:
75: /^abc$/I
76: Capturing subpattern count = 0
77: Options: anchored
78: No first char
79: No need char
80: abc
81: 0: abc
82: *** Failers
83: No match
84: def\nabc
85: No match
86:
87: /ab\idef/X
88: Failed: unrecognized character follows \ at offset 3
89:
90: /(?X)ab\idef/X
91: Failed: unrecognized character follows \ at offset 7
92:
93: /x{5,4}/
94: Failed: numbers out of order in {} quantifier at offset 5
95:
96: /z{65536}/
97: Failed: number too big in {} quantifier at offset 7
98:
99: /[abcd/
100: Failed: missing terminating ] for character class at offset 5
101:
102: /(?X)[\B]/
103: Failed: invalid escape sequence in character class at offset 6
104:
105: /(?X)[\R]/
106: Failed: invalid escape sequence in character class at offset 6
107:
108: /(?X)[\X]/
109: Failed: invalid escape sequence in character class at offset 6
110:
111: /[\B]/BZ
112: ------------------------------------------------------------------
113: Bra
114: B
115: Ket
116: End
117: ------------------------------------------------------------------
118:
119: /[\R]/BZ
120: ------------------------------------------------------------------
121: Bra
122: R
123: Ket
124: End
125: ------------------------------------------------------------------
126:
127: /[\X]/BZ
128: ------------------------------------------------------------------
129: Bra
130: X
131: Ket
132: End
133: ------------------------------------------------------------------
134:
135: /[z-a]/
136: Failed: range out of order in character class at offset 3
137:
138: /^*/
139: Failed: nothing to repeat at offset 1
140:
141: /(abc/
142: Failed: missing ) at offset 4
143:
144: /(?# abc/
145: Failed: missing ) after comment at offset 7
146:
147: /(?z)abc/
148: Failed: unrecognized character after (? or (?- at offset 2
149:
150: /.*b/I
151: Capturing subpattern count = 0
152: No options
153: First char at start or follows newline
154: Need char = 'b'
155:
156: /.*?b/I
157: Capturing subpattern count = 0
158: No options
159: First char at start or follows newline
160: Need char = 'b'
161:
162: /cat|dog|elephant/I
163: Capturing subpattern count = 0
164: No options
165: No first char
166: No need char
167: this sentence eventually mentions a cat
168: 0: cat
169: this sentences rambles on and on for a while and then reaches elephant
170: 0: elephant
171:
172: /cat|dog|elephant/IS
173: Capturing subpattern count = 0
174: No options
175: No first char
176: No need char
177: Subject length lower bound = 3
178: Starting byte set: c d e
179: this sentence eventually mentions a cat
180: 0: cat
181: this sentences rambles on and on for a while and then reaches elephant
182: 0: elephant
183:
184: /cat|dog|elephant/IiS
185: Capturing subpattern count = 0
186: Options: caseless
187: No first char
188: No need char
189: Subject length lower bound = 3
190: Starting byte set: C D E c d e
191: this sentence eventually mentions a CAT cat
192: 0: CAT
193: this sentences rambles on and on for a while to elephant ElePhant
194: 0: elephant
195:
196: /a|[bcd]/IS
197: Capturing subpattern count = 0
198: No options
199: No first char
200: No need char
201: Subject length lower bound = 1
202: Starting byte set: a b c d
203:
204: /(a|[^\dZ])/IS
205: Capturing subpattern count = 1
206: No options
207: No first char
208: No need char
209: Subject length lower bound = 1
210: Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
211: \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
212: \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
213: ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y [ \ ] ^ _ ` a b c d
214: e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \x80 \x81 \x82 \x83
215: \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92
216: \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1
217: \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0
218: \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf
219: \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce
220: \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd
221: \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec
222: \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb
223: \xfc \xfd \xfe \xff
224:
225: /(a|b)*[\s]/IS
226: Capturing subpattern count = 1
227: No options
228: No first char
229: No need char
230: Subject length lower bound = 1
231: Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
232:
233: /(ab\2)/
234: Failed: reference to non-existent subpattern at offset 6
235:
236: /{4,5}abc/
237: Failed: nothing to repeat at offset 4
238:
239: /(a)(b)(c)\2/I
240: Capturing subpattern count = 3
241: Max back reference = 2
242: No options
243: First char = 'a'
244: Need char = 'c'
245: abcb
246: 0: abcb
247: 1: a
248: 2: b
249: 3: c
250: \O0abcb
251: Matched, but too many substrings
252: \O3abcb
253: Matched, but too many substrings
254: 0: abcb
255: \O6abcb
256: Matched, but too many substrings
257: 0: abcb
258: 1: a
259: \O9abcb
260: Matched, but too many substrings
261: 0: abcb
262: 1: a
263: 2: b
264: \O12abcb
265: 0: abcb
266: 1: a
267: 2: b
268: 3: c
269:
270: /(a)bc|(a)(b)\2/I
271: Capturing subpattern count = 3
272: Max back reference = 2
273: No options
274: First char = 'a'
275: No need char
276: abc
277: 0: abc
278: 1: a
279: \O0abc
280: Matched, but too many substrings
281: \O3abc
282: Matched, but too many substrings
283: 0: abc
284: \O6abc
285: 0: abc
286: 1: a
287: aba
288: 0: aba
289: 1: <unset>
290: 2: a
291: 3: b
292: \O0aba
293: Matched, but too many substrings
294: \O3aba
295: Matched, but too many substrings
296: 0: aba
297: \O6aba
298: Matched, but too many substrings
299: 0: aba
300: 1: <unset>
301: \O9aba
302: Matched, but too many substrings
303: 0: aba
304: 1: <unset>
305: 2: a
306: \O12aba
307: 0: aba
308: 1: <unset>
309: 2: a
310: 3: b
311:
312: /abc$/IE
313: Capturing subpattern count = 0
314: Options: dollar_endonly
315: First char = 'a'
316: Need char = 'c'
317: abc
318: 0: abc
319: *** Failers
320: No match
321: abc\n
322: No match
323: abc\ndef
324: No match
325:
326: /(a)(b)(c)(d)(e)\6/
327: Failed: reference to non-existent subpattern at offset 17
328:
329: /the quick brown fox/I
330: Capturing subpattern count = 0
331: No options
332: First char = 't'
333: Need char = 'x'
334: the quick brown fox
335: 0: the quick brown fox
336: this is a line with the quick brown fox
337: 0: the quick brown fox
338:
339: /the quick brown fox/IA
340: Capturing subpattern count = 0
341: Options: anchored
342: No first char
343: No need char
344: the quick brown fox
345: 0: the quick brown fox
346: *** Failers
347: No match
348: this is a line with the quick brown fox
349: No match
350:
351: /ab(?z)cd/
352: Failed: unrecognized character after (? or (?- at offset 4
353:
354: /^abc|def/I
355: Capturing subpattern count = 0
356: No options
357: No first char
358: No need char
359: abcdef
360: 0: abc
361: abcdef\B
362: 0: def
363:
364: /.*((abc)$|(def))/I
365: Capturing subpattern count = 3
366: No options
367: First char at start or follows newline
368: No need char
369: defabc
370: 0: defabc
371: 1: abc
372: 2: abc
373: \Zdefabc
374: 0: def
375: 1: def
376: 2: <unset>
377: 3: def
378:
379: /)/
380: Failed: unmatched parentheses at offset 0
381:
382: /a[]b/
383: Failed: missing terminating ] for character class at offset 4
384:
385: /[^aeiou ]{3,}/I
386: Capturing subpattern count = 0
387: No options
388: No first char
389: No need char
390: co-processors, and for
391: 0: -pr
392:
393: /<.*>/I
394: Capturing subpattern count = 0
395: No options
396: First char = '<'
397: Need char = '>'
398: abc<def>ghi<klm>nop
399: 0: <def>ghi<klm>
400:
401: /<.*?>/I
402: Capturing subpattern count = 0
403: No options
404: First char = '<'
405: Need char = '>'
406: abc<def>ghi<klm>nop
407: 0: <def>
408:
409: /<.*>/IU
410: Capturing subpattern count = 0
411: Options: ungreedy
412: First char = '<'
413: Need char = '>'
414: abc<def>ghi<klm>nop
415: 0: <def>
416:
417: /(?U)<.*>/I
418: Capturing subpattern count = 0
419: Options: ungreedy
420: First char = '<'
421: Need char = '>'
422: abc<def>ghi<klm>nop
423: 0: <def>
424:
425: /<.*?>/IU
426: Capturing subpattern count = 0
427: Options: ungreedy
428: First char = '<'
429: Need char = '>'
430: abc<def>ghi<klm>nop
431: 0: <def>ghi<klm>
432:
433: /={3,}/IU
434: Capturing subpattern count = 0
435: Options: ungreedy
436: First char = '='
437: Need char = '='
438: abc========def
439: 0: ===
440:
441: /(?U)={3,}?/I
442: Capturing subpattern count = 0
443: Options: ungreedy
444: First char = '='
445: Need char = '='
446: abc========def
447: 0: ========
448:
449: /(?<!bar|cattle)foo/I
450: Capturing subpattern count = 0
451: No options
452: First char = 'f'
453: Need char = 'o'
454: foo
455: 0: foo
456: catfoo
457: 0: foo
458: *** Failers
459: No match
460: the barfoo
461: No match
462: and cattlefoo
463: No match
464:
465: /(?<=a+)b/
466: Failed: lookbehind assertion is not fixed length at offset 6
467:
468: /(?<=aaa|b{0,3})b/
469: Failed: lookbehind assertion is not fixed length at offset 14
470:
471: /(?<!(foo)a\1)bar/
472: Failed: lookbehind assertion is not fixed length at offset 12
473:
474: /(?i)abc/I
475: Capturing subpattern count = 0
476: Options: caseless
477: First char = 'a' (caseless)
478: Need char = 'c' (caseless)
479:
480: /(a|(?m)a)/I
481: Capturing subpattern count = 1
482: No options
483: First char = 'a'
484: No need char
485:
486: /(?i)^1234/I
487: Capturing subpattern count = 0
488: Options: anchored caseless
489: No first char
490: No need char
491:
492: /(^b|(?i)^d)/I
493: Capturing subpattern count = 1
494: Options: anchored
495: No first char
496: No need char
497:
498: /(?s).*/I
499: Capturing subpattern count = 0
500: Options: anchored dotall
501: No first char
502: No need char
503:
504: /[abcd]/IS
505: Capturing subpattern count = 0
506: No options
507: No first char
508: No need char
509: Subject length lower bound = 1
510: Starting byte set: a b c d
511:
512: /(?i)[abcd]/IS
513: Capturing subpattern count = 0
514: Options: caseless
515: No first char
516: No need char
517: Subject length lower bound = 1
518: Starting byte set: A B C D a b c d
519:
520: /(?m)[xy]|(b|c)/IS
521: Capturing subpattern count = 1
522: Options: multiline
523: No first char
524: No need char
525: Subject length lower bound = 1
526: Starting byte set: b c x y
527:
528: /(^a|^b)/Im
529: Capturing subpattern count = 1
530: Options: multiline
531: First char at start or follows newline
532: No need char
533:
534: /(?i)(^a|^b)/Im
535: Capturing subpattern count = 1
536: Options: caseless multiline
537: First char at start or follows newline
538: No need char
539:
540: /(a)(?(1)a|b|c)/
541: Failed: conditional group contains more than two branches at offset 13
542:
543: /(?(?=a)a|b|c)/
544: Failed: conditional group contains more than two branches at offset 12
545:
546: /(?(1a)/
547: Failed: missing ) at offset 6
548:
549: /(?(1a))/
550: Failed: reference to non-existent subpattern at offset 6
551:
552: /(?(?i))/
553: Failed: assertion expected after (?( at offset 3
554:
555: /(?(abc))/
556: Failed: reference to non-existent subpattern at offset 7
557:
558: /(?(?<ab))/
559: Failed: syntax error in subpattern name (missing terminator) at offset 7
560:
561: /((?s)blah)\s+\1/I
562: Capturing subpattern count = 1
563: Max back reference = 1
564: No options
565: First char = 'b'
566: Need char = 'h'
567:
568: /((?i)blah)\s+\1/I
569: Capturing subpattern count = 1
570: Max back reference = 1
571: No options
572: First char = 'b' (caseless)
573: Need char = 'h' (caseless)
574:
575: /((?i)b)/IDZS
576: ------------------------------------------------------------------
577: Bra
578: CBra 1
579: /i b
580: Ket
581: Ket
582: End
583: ------------------------------------------------------------------
584: Capturing subpattern count = 1
585: No options
586: First char = 'b' (caseless)
587: No need char
588: Subject length lower bound = 1
589: No set of starting bytes
590:
591: /(a*b|(?i:c*(?-i)d))/IS
592: Capturing subpattern count = 1
593: No options
594: No first char
595: No need char
596: Subject length lower bound = 1
597: Starting byte set: C a b c d
598:
599: /a$/I
600: Capturing subpattern count = 0
601: No options
602: First char = 'a'
603: No need char
604: a
605: 0: a
606: a\n
607: 0: a
608: *** Failers
609: No match
610: \Za
611: No match
612: \Za\n
613: No match
614:
615: /a$/Im
616: Capturing subpattern count = 0
617: Options: multiline
618: First char = 'a'
619: No need char
620: a
621: 0: a
622: a\n
623: 0: a
624: \Za\n
625: 0: a
626: *** Failers
627: No match
628: \Za
629: No match
630:
631: /\Aabc/Im
632: Capturing subpattern count = 0
633: Options: anchored multiline
634: No first char
635: No need char
636:
637: /^abc/Im
638: Capturing subpattern count = 0
639: Options: multiline
640: First char at start or follows newline
641: Need char = 'c'
642:
643: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
644: Capturing subpattern count = 5
645: Options: anchored
646: No first char
647: No need char
648: aaaaabbbbbcccccdef
649: 0: aaaaabbbbbcccccdef
650: 1: aaaaabbbbbcccccdef
651: 2: aaaaa
652: 3: b
653: 4: bbbbccccc
654: 5: def
655:
656: /(?<=foo)[ab]/IS
657: Capturing subpattern count = 0
658: No options
659: No first char
660: No need char
661: Subject length lower bound = 1
662: Starting byte set: a b
663:
664: /(?<!foo)(alpha|omega)/IS
665: Capturing subpattern count = 1
666: No options
667: No first char
668: Need char = 'a'
669: Subject length lower bound = 5
670: Starting byte set: a o
671:
672: /(?!alphabet)[ab]/IS
673: Capturing subpattern count = 0
674: No options
675: No first char
676: No need char
677: Subject length lower bound = 1
678: Starting byte set: a b
679:
680: /(?<=foo\n)^bar/Im
681: Capturing subpattern count = 0
682: Contains explicit CR or LF match
683: Options: multiline
684: No first char
685: Need char = 'r'
686: foo\nbarbar
687: 0: bar
688: ***Failers
689: No match
690: rhubarb
691: No match
692: barbell
693: No match
694: abc\nbarton
695: No match
696:
697: /^(?<=foo\n)bar/Im
698: Capturing subpattern count = 0
699: Contains explicit CR or LF match
700: Options: multiline
701: First char at start or follows newline
702: Need char = 'r'
703: foo\nbarbar
704: 0: bar
705: ***Failers
706: No match
707: rhubarb
708: No match
709: barbell
710: No match
711: abc\nbarton
712: No match
713:
714: /(?>^abc)/Im
715: Capturing subpattern count = 0
716: Options: multiline
717: First char at start or follows newline
718: Need char = 'c'
719: abc
720: 0: abc
721: def\nabc
722: 0: abc
723: *** Failers
724: No match
725: defabc
726: No match
727:
728: /(?<=ab(c+)d)ef/
729: Failed: lookbehind assertion is not fixed length at offset 11
730:
731: /(?<=ab(?<=c+)d)ef/
732: Failed: lookbehind assertion is not fixed length at offset 12
733:
734: /(?<=ab(c|de)f)g/
735: Failed: lookbehind assertion is not fixed length at offset 13
736:
737: /The next three are in testinput2 because they have variable length branches/
738:
739: /(?<=bullock|donkey)-cart/I
740: Capturing subpattern count = 0
741: No options
742: First char = '-'
743: Need char = 't'
744: the bullock-cart
745: 0: -cart
746: a donkey-cart race
747: 0: -cart
748: *** Failers
749: No match
750: cart
751: No match
752: horse-and-cart
753: No match
754:
755: /(?<=ab(?i)x|y|z)/I
756: Capturing subpattern count = 0
757: No options
758: No first char
759: No need char
760:
761: /(?>.*)(?<=(abcd)|(xyz))/I
762: Capturing subpattern count = 2
763: No options
764: First char at start or follows newline
765: No need char
766: alphabetabcd
767: 0: alphabetabcd
768: 1: abcd
769: endingxyz
770: 0: endingxyz
771: 1: <unset>
772: 2: xyz
773:
774: /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
775: Capturing subpattern count = 0
776: No options
777: First char = 'Z'
778: Need char = 'Z'
779: abxyZZ
780: 0: ZZ
781: abXyZZ
782: 0: ZZ
783: ZZZ
784: 0: ZZ
785: zZZ
786: 0: ZZ
787: bZZ
788: 0: ZZ
789: BZZ
790: 0: ZZ
791: *** Failers
792: No match
793: ZZ
794: No match
795: abXYZZ
796: No match
797: zzz
798: No match
799: bzz
800: No match
801:
802: /(?<!(foo)a)bar/I
803: Capturing subpattern count = 1
804: No options
805: First char = 'b'
806: Need char = 'r'
807: bar
808: 0: bar
809: foobbar
810: 0: bar
811: *** Failers
812: No match
813: fooabar
814: No match
815:
816: /This one is here because Perl 5.005_02 doesn't fail it/I
817: Capturing subpattern count = 0
818: No options
819: First char = 'T'
820: Need char = 't'
821:
822: /^(a)?(?(1)a|b)+$/I
823: Capturing subpattern count = 1
824: Options: anchored
825: No first char
826: No need char
827: *** Failers
828: No match
829: a
830: No match
831:
832: /This one is here because Perl behaves differently; see also the following/I
833: Capturing subpattern count = 0
834: No options
835: First char = 'T'
836: Need char = 'g'
837:
838: /^(a\1?){4}$/I
839: Capturing subpattern count = 1
840: Max back reference = 1
841: Options: anchored
842: No first char
843: No need char
844: aaaa
845: No match
846: aaaaaa
847: No match
848:
849: /Perl does not fail these two for the final subjects. Neither did PCRE until/
850: /release 8.01. The problem is in backtracking into a subpattern that contains/
851: No match
852: /a recursive reference to itself. PCRE has now made these into atomic patterns./
853: No match
854:
855: /^(xa|=?\1a){2}$/
856: xa=xaa
857: 0: xa=xaa
858: 1: =xaa
859: ** Failers
860: No match
861: xa=xaaa
862: No match
863:
864: /^(xa|=?\1a)+$/
865: xa=xaa
866: 0: xa=xaa
867: 1: =xaa
868: ** Failers
869: No match
870: xa=xaaa
871: No match
872:
873: /These are syntax tests from Perl 5.005/I
874: Capturing subpattern count = 0
875: No options
876: First char = 'T'
877: Need char = '5'
878:
879: /a[b-a]/
880: Failed: range out of order in character class at offset 4
881:
882: /a[]b/
883: Failed: missing terminating ] for character class at offset 4
884:
885: /a[/
886: Failed: missing terminating ] for character class at offset 2
887:
888: /*a/
889: Failed: nothing to repeat at offset 0
890:
891: /(*)b/
892: Failed: nothing to repeat at offset 1
893:
894: /abc)/
895: Failed: unmatched parentheses at offset 3
896:
897: /(abc/
898: Failed: missing ) at offset 4
899:
900: /a**/
901: Failed: nothing to repeat at offset 2
902:
903: /)(/
904: Failed: unmatched parentheses at offset 0
905:
906: /\1/
907: Failed: reference to non-existent subpattern at offset 2
908:
909: /\2/
910: Failed: reference to non-existent subpattern at offset 2
911:
912: /(a)|\2/
913: Failed: reference to non-existent subpattern at offset 6
914:
915: /a[b-a]/Ii
916: Failed: range out of order in character class at offset 4
917:
918: /a[]b/Ii
919: Failed: missing terminating ] for character class at offset 4
920:
921: /a[/Ii
922: Failed: missing terminating ] for character class at offset 2
923:
924: /*a/Ii
925: Failed: nothing to repeat at offset 0
926:
927: /(*)b/Ii
928: Failed: nothing to repeat at offset 1
929:
930: /abc)/Ii
931: Failed: unmatched parentheses at offset 3
932:
933: /(abc/Ii
934: Failed: missing ) at offset 4
935:
936: /a**/Ii
937: Failed: nothing to repeat at offset 2
938:
939: /)(/Ii
940: Failed: unmatched parentheses at offset 0
941:
942: /:(?:/
943: Failed: missing ) at offset 4
944:
945: /(?<%)b/
946: Failed: unrecognized character after (?< at offset 3
947:
948: /a(?{)b/
949: Failed: unrecognized character after (? or (?- at offset 3
950:
951: /a(?{{})b/
952: Failed: unrecognized character after (? or (?- at offset 3
953:
954: /a(?{}})b/
955: Failed: unrecognized character after (? or (?- at offset 3
956:
957: /a(?{"{"})b/
958: Failed: unrecognized character after (? or (?- at offset 3
959:
960: /a(?{"{"}})b/
961: Failed: unrecognized character after (? or (?- at offset 3
962:
963: /(?(1?)a|b)/
964: Failed: malformed number or name after (?( at offset 4
965:
966: /[a[:xyz:/
967: Failed: missing terminating ] for character class at offset 8
968:
969: /(?<=x+)y/
970: Failed: lookbehind assertion is not fixed length at offset 6
971:
972: /a{37,17}/
973: Failed: numbers out of order in {} quantifier at offset 7
974:
975: /abc/\
976: Failed: \ at end of pattern at offset 4
977:
978: /abc/\i
979: Failed: \ at end of pattern at offset 4
980:
981: /(a)bc(d)/I
982: Capturing subpattern count = 2
983: No options
984: First char = 'a'
985: Need char = 'd'
986: abcd
987: 0: abcd
988: 1: a
989: 2: d
990: abcd\C2
991: 0: abcd
992: 1: a
993: 2: d
994: 2C d (1)
995: abcd\C5
996: 0: abcd
997: 1: a
998: 2: d
999: copy substring 5 failed -7
1000:
1001: /(.{20})/I
1002: Capturing subpattern count = 1
1003: No options
1004: No first char
1005: No need char
1006: abcdefghijklmnopqrstuvwxyz
1007: 0: abcdefghijklmnopqrst
1008: 1: abcdefghijklmnopqrst
1009: abcdefghijklmnopqrstuvwxyz\C1
1010: 0: abcdefghijklmnopqrst
1011: 1: abcdefghijklmnopqrst
1012: 1C abcdefghijklmnopqrst (20)
1013: abcdefghijklmnopqrstuvwxyz\G1
1014: 0: abcdefghijklmnopqrst
1015: 1: abcdefghijklmnopqrst
1016: 1G abcdefghijklmnopqrst (20)
1017:
1018: /(.{15})/I
1019: Capturing subpattern count = 1
1020: No options
1021: No first char
1022: No need char
1023: abcdefghijklmnopqrstuvwxyz
1024: 0: abcdefghijklmno
1025: 1: abcdefghijklmno
1026: abcdefghijklmnopqrstuvwxyz\C1\G1
1027: 0: abcdefghijklmno
1028: 1: abcdefghijklmno
1029: 1C abcdefghijklmno (15)
1030: 1G abcdefghijklmno (15)
1031:
1032: /(.{16})/I
1033: Capturing subpattern count = 1
1034: No options
1035: No first char
1036: No need char
1037: abcdefghijklmnopqrstuvwxyz
1038: 0: abcdefghijklmnop
1039: 1: abcdefghijklmnop
1040: abcdefghijklmnopqrstuvwxyz\C1\G1\L
1041: 0: abcdefghijklmnop
1042: 1: abcdefghijklmnop
1043: 1C abcdefghijklmnop (16)
1044: 1G abcdefghijklmnop (16)
1045: 0L abcdefghijklmnop
1046: 1L abcdefghijklmnop
1047:
1048: /^(a|(bc))de(f)/I
1049: Capturing subpattern count = 3
1050: Options: anchored
1051: No first char
1052: No need char
1053: adef\G1\G2\G3\G4\L
1054: 0: adef
1055: 1: a
1056: 2: <unset>
1057: 3: f
1058: 1G a (1)
1059: 2G (0)
1060: 3G f (1)
1061: get substring 4 failed -7
1062: 0L adef
1063: 1L a
1064: 2L
1065: 3L f
1066: bcdef\G1\G2\G3\G4\L
1067: 0: bcdef
1068: 1: bc
1069: 2: bc
1070: 3: f
1071: 1G bc (2)
1072: 2G bc (2)
1073: 3G f (1)
1074: get substring 4 failed -7
1075: 0L bcdef
1076: 1L bc
1077: 2L bc
1078: 3L f
1079: adefghijk\C0
1080: 0: adef
1081: 1: a
1082: 2: <unset>
1083: 3: f
1084: 0C adef (4)
1085:
1086: /^abc\00def/I
1087: Capturing subpattern count = 0
1088: Options: anchored
1089: No first char
1090: No need char
1091: abc\00def\L\C0
1092: 0: abc\x00def
1.1.1.2 ! misho 1093: 0C abc\x00def (7)
1.1 misho 1094: 0L abc
1095:
1096: /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1097: )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1098: )?)?)?)?)?)?)?)?)?otherword/I
1099: Capturing subpattern count = 8
1100: Contains explicit CR or LF match
1101: No options
1102: First char = 'w'
1103: Need char = 'd'
1104:
1105: /.*X/IDZ
1106: ------------------------------------------------------------------
1107: Bra
1108: Any*
1109: X
1110: Ket
1111: End
1112: ------------------------------------------------------------------
1113: Capturing subpattern count = 0
1114: No options
1115: First char at start or follows newline
1116: Need char = 'X'
1117:
1118: /.*X/IDZs
1119: ------------------------------------------------------------------
1120: Bra
1121: AllAny*
1122: X
1123: Ket
1124: End
1125: ------------------------------------------------------------------
1126: Capturing subpattern count = 0
1127: Options: anchored dotall
1128: No first char
1129: Need char = 'X'
1130:
1131: /(.*X|^B)/IDZ
1132: ------------------------------------------------------------------
1133: Bra
1134: CBra 1
1135: Any*
1136: X
1137: Alt
1138: ^
1139: B
1140: Ket
1141: Ket
1142: End
1143: ------------------------------------------------------------------
1144: Capturing subpattern count = 1
1145: No options
1146: First char at start or follows newline
1147: No need char
1148:
1149: /(.*X|^B)/IDZs
1150: ------------------------------------------------------------------
1151: Bra
1152: CBra 1
1153: AllAny*
1154: X
1155: Alt
1156: ^
1157: B
1158: Ket
1159: Ket
1160: End
1161: ------------------------------------------------------------------
1162: Capturing subpattern count = 1
1163: Options: anchored dotall
1164: No first char
1165: No need char
1166:
1167: /(?s)(.*X|^B)/IDZ
1168: ------------------------------------------------------------------
1169: Bra
1170: CBra 1
1171: AllAny*
1172: X
1173: Alt
1174: ^
1175: B
1176: Ket
1177: Ket
1178: End
1179: ------------------------------------------------------------------
1180: Capturing subpattern count = 1
1181: Options: anchored dotall
1182: No first char
1183: No need char
1184:
1185: /(?s:.*X|^B)/IDZ
1186: ------------------------------------------------------------------
1187: Bra
1188: Bra
1189: AllAny*
1190: X
1191: Alt
1192: ^
1193: B
1194: Ket
1195: Ket
1196: End
1197: ------------------------------------------------------------------
1198: Capturing subpattern count = 0
1199: Options: anchored
1200: No first char
1201: No need char
1202:
1203: /\Biss\B/I+
1204: Capturing subpattern count = 0
1205: No options
1206: First char = 'i'
1207: Need char = 's'
1208: Mississippi
1209: 0: iss
1210: 0+ issippi
1211:
1212: /iss/IG+
1213: Capturing subpattern count = 0
1214: No options
1215: First char = 'i'
1216: Need char = 's'
1217: Mississippi
1218: 0: iss
1219: 0+ issippi
1220: 0: iss
1221: 0+ ippi
1222:
1223: /\Biss\B/IG+
1224: Capturing subpattern count = 0
1225: No options
1226: First char = 'i'
1227: Need char = 's'
1228: Mississippi
1229: 0: iss
1230: 0+ issippi
1231:
1232: /\Biss\B/Ig+
1233: Capturing subpattern count = 0
1234: No options
1235: First char = 'i'
1236: Need char = 's'
1237: Mississippi
1238: 0: iss
1239: 0+ issippi
1240: 0: iss
1241: 0+ ippi
1242: *** Failers
1243: No match
1244: Mississippi\A
1245: No match
1246:
1247: /(?<=[Ms])iss/Ig+
1248: Capturing subpattern count = 0
1249: No options
1250: First char = 'i'
1251: Need char = 's'
1252: Mississippi
1253: 0: iss
1254: 0+ issippi
1255: 0: iss
1256: 0+ ippi
1257:
1258: /(?<=[Ms])iss/IG+
1259: Capturing subpattern count = 0
1260: No options
1261: First char = 'i'
1262: Need char = 's'
1263: Mississippi
1264: 0: iss
1265: 0+ issippi
1266:
1267: /^iss/Ig+
1268: Capturing subpattern count = 0
1269: Options: anchored
1270: No first char
1271: No need char
1272: ississippi
1273: 0: iss
1274: 0+ issippi
1275:
1276: /.*iss/Ig+
1277: Capturing subpattern count = 0
1278: No options
1279: First char at start or follows newline
1280: Need char = 's'
1281: abciss\nxyzisspqr
1282: 0: abciss
1283: 0+ \x0axyzisspqr
1284: 0: xyziss
1285: 0+ pqr
1286:
1287: /.i./I+g
1288: Capturing subpattern count = 0
1289: No options
1290: No first char
1291: Need char = 'i'
1292: Mississippi
1293: 0: Mis
1294: 0+ sissippi
1295: 0: sis
1296: 0+ sippi
1297: 0: sip
1298: 0+ pi
1299: Mississippi\A
1300: 0: Mis
1301: 0+ sissippi
1302: 0: sis
1303: 0+ sippi
1304: 0: sip
1305: 0+ pi
1306: Missouri river
1307: 0: Mis
1308: 0+ souri river
1309: 0: ri
1310: 0+ river
1311: 0: riv
1312: 0+ er
1313: Missouri river\A
1314: 0: Mis
1315: 0+ souri river
1316:
1317: /^.is/I+g
1318: Capturing subpattern count = 0
1319: Options: anchored
1320: No first char
1321: No need char
1322: Mississippi
1323: 0: Mis
1324: 0+ sissippi
1325:
1326: /^ab\n/Ig+
1327: Capturing subpattern count = 0
1328: Contains explicit CR or LF match
1329: Options: anchored
1330: No first char
1331: No need char
1332: ab\nab\ncd
1333: 0: ab\x0a
1334: 0+ ab\x0acd
1335:
1336: /^ab\n/Img+
1337: Capturing subpattern count = 0
1338: Contains explicit CR or LF match
1339: Options: multiline
1340: First char at start or follows newline
1.1.1.2 ! misho 1341: Need char = \x0a
1.1 misho 1342: ab\nab\ncd
1343: 0: ab\x0a
1344: 0+ ab\x0acd
1345: 0: ab\x0a
1346: 0+ cd
1347:
1348: /abc/I
1349: Capturing subpattern count = 0
1350: No options
1351: First char = 'a'
1352: Need char = 'c'
1353:
1354: /abc|bac/I
1355: Capturing subpattern count = 0
1356: No options
1357: No first char
1358: Need char = 'c'
1359:
1360: /(abc|bac)/I
1361: Capturing subpattern count = 1
1362: No options
1363: No first char
1364: Need char = 'c'
1365:
1366: /(abc|(c|dc))/I
1367: Capturing subpattern count = 2
1368: No options
1369: No first char
1370: Need char = 'c'
1371:
1372: /(abc|(d|de)c)/I
1373: Capturing subpattern count = 2
1374: No options
1375: No first char
1376: Need char = 'c'
1377:
1378: /a*/I
1379: Capturing subpattern count = 0
1380: No options
1381: No first char
1382: No need char
1383:
1384: /a+/I
1385: Capturing subpattern count = 0
1386: No options
1387: First char = 'a'
1388: No need char
1389:
1390: /(baa|a+)/I
1391: Capturing subpattern count = 1
1392: No options
1393: No first char
1394: Need char = 'a'
1395:
1396: /a{0,3}/I
1397: Capturing subpattern count = 0
1398: No options
1399: No first char
1400: No need char
1401:
1402: /baa{3,}/I
1403: Capturing subpattern count = 0
1404: No options
1405: First char = 'b'
1406: Need char = 'a'
1407:
1408: /"([^\\"]+|\\.)*"/I
1409: Capturing subpattern count = 1
1410: No options
1411: First char = '"'
1412: Need char = '"'
1413:
1414: /(abc|ab[cd])/I
1415: Capturing subpattern count = 1
1416: No options
1417: First char = 'a'
1418: No need char
1419:
1420: /(a|.)/I
1421: Capturing subpattern count = 1
1422: No options
1423: No first char
1424: No need char
1425:
1426: /a|ba|\w/I
1427: Capturing subpattern count = 0
1428: No options
1429: No first char
1430: No need char
1431:
1432: /abc(?=pqr)/I
1433: Capturing subpattern count = 0
1434: No options
1435: First char = 'a'
1436: Need char = 'r'
1437:
1438: /...(?<=abc)/I
1439: Capturing subpattern count = 0
1440: No options
1441: No first char
1442: No need char
1443:
1444: /abc(?!pqr)/I
1445: Capturing subpattern count = 0
1446: No options
1447: First char = 'a'
1448: Need char = 'c'
1449:
1450: /ab./I
1451: Capturing subpattern count = 0
1452: No options
1453: First char = 'a'
1454: Need char = 'b'
1455:
1456: /ab[xyz]/I
1457: Capturing subpattern count = 0
1458: No options
1459: First char = 'a'
1460: Need char = 'b'
1461:
1462: /abc*/I
1463: Capturing subpattern count = 0
1464: No options
1465: First char = 'a'
1466: Need char = 'b'
1467:
1468: /ab.c*/I
1469: Capturing subpattern count = 0
1470: No options
1471: First char = 'a'
1472: Need char = 'b'
1473:
1474: /a.c*/I
1475: Capturing subpattern count = 0
1476: No options
1477: First char = 'a'
1478: No need char
1479:
1480: /.c*/I
1481: Capturing subpattern count = 0
1482: No options
1483: No first char
1484: No need char
1485:
1486: /ac*/I
1487: Capturing subpattern count = 0
1488: No options
1489: First char = 'a'
1490: No need char
1491:
1492: /(a.c*|b.c*)/I
1493: Capturing subpattern count = 1
1494: No options
1495: No first char
1496: No need char
1497:
1498: /a.c*|aba/I
1499: Capturing subpattern count = 0
1500: No options
1501: First char = 'a'
1502: No need char
1503:
1504: /.+a/I
1505: Capturing subpattern count = 0
1506: No options
1507: No first char
1508: Need char = 'a'
1509:
1510: /(?=abcda)a.*/I
1511: Capturing subpattern count = 0
1512: No options
1513: First char = 'a'
1514: Need char = 'a'
1515:
1516: /(?=a)a.*/I
1517: Capturing subpattern count = 0
1518: No options
1519: First char = 'a'
1520: No need char
1521:
1522: /a(b)*/I
1523: Capturing subpattern count = 1
1524: No options
1525: First char = 'a'
1526: No need char
1527:
1528: /a\d*/I
1529: Capturing subpattern count = 0
1530: No options
1531: First char = 'a'
1532: No need char
1533:
1534: /ab\d*/I
1535: Capturing subpattern count = 0
1536: No options
1537: First char = 'a'
1538: Need char = 'b'
1539:
1540: /a(\d)*/I
1541: Capturing subpattern count = 1
1542: No options
1543: First char = 'a'
1544: No need char
1545:
1546: /abcde{0,0}/I
1547: Capturing subpattern count = 0
1548: No options
1549: First char = 'a'
1550: Need char = 'd'
1551:
1552: /ab\d+/I
1553: Capturing subpattern count = 0
1554: No options
1555: First char = 'a'
1556: Need char = 'b'
1557:
1558: /a(?(1)b)(.)/I
1559: Capturing subpattern count = 1
1560: No options
1561: First char = 'a'
1562: No need char
1563:
1564: /a(?(1)bag|big)(.)/I
1565: Capturing subpattern count = 1
1566: No options
1567: First char = 'a'
1568: Need char = 'g'
1569:
1570: /a(?(1)bag|big)*(.)/I
1571: Capturing subpattern count = 1
1572: No options
1573: First char = 'a'
1574: No need char
1575:
1576: /a(?(1)bag|big)+(.)/I
1577: Capturing subpattern count = 1
1578: No options
1579: First char = 'a'
1580: Need char = 'g'
1581:
1582: /a(?(1)b..|b..)(.)/I
1583: Capturing subpattern count = 1
1584: No options
1585: First char = 'a'
1586: Need char = 'b'
1587:
1588: /ab\d{0}e/I
1589: Capturing subpattern count = 0
1590: No options
1591: First char = 'a'
1592: Need char = 'e'
1593:
1594: /a?b?/I
1595: Capturing subpattern count = 0
1596: No options
1597: No first char
1598: No need char
1599: a
1600: 0: a
1601: b
1602: 0: b
1603: ab
1604: 0: ab
1605: \
1606: 0:
1607: *** Failers
1608: 0:
1609: \N
1610: No match
1611:
1612: /|-/I
1613: Capturing subpattern count = 0
1614: No options
1615: No first char
1616: No need char
1617: abcd
1618: 0:
1619: -abc
1620: 0:
1621: \Nab-c
1622: 0: -
1623: *** Failers
1624: 0:
1625: \Nabc
1626: No match
1627:
1628: /^.?abcd/IS
1629: Capturing subpattern count = 0
1630: Options: anchored
1631: No first char
1632: Need char = 'd'
1633: Subject length lower bound = 4
1634: No set of starting bytes
1635:
1636: /\( # ( at start
1637: (?: # Non-capturing bracket
1638: (?>[^()]+) # Either a sequence of non-brackets (no backtracking)
1639: | # Or
1640: (?R) # Recurse - i.e. nested bracketed string
1641: )* # Zero or more contents
1642: \) # Closing )
1643: /Ix
1644: Capturing subpattern count = 0
1645: Options: extended
1646: First char = '('
1647: Need char = ')'
1648: (abcd)
1649: 0: (abcd)
1650: (abcd)xyz
1651: 0: (abcd)
1652: xyz(abcd)
1653: 0: (abcd)
1654: (ab(xy)cd)pqr
1655: 0: (ab(xy)cd)
1656: (ab(xycd)pqr
1657: 0: (xycd)
1658: () abc ()
1659: 0: ()
1660: 12(abcde(fsh)xyz(foo(bar))lmno)89
1661: 0: (abcde(fsh)xyz(foo(bar))lmno)
1662: *** Failers
1663: No match
1664: abcd
1665: No match
1666: abcd)
1667: No match
1668: (abcd
1669: No match
1670:
1671: /\( ( (?>[^()]+) | (?R) )* \) /Ixg
1672: Capturing subpattern count = 1
1673: Options: extended
1674: First char = '('
1675: Need char = ')'
1676: (ab(xy)cd)pqr
1677: 0: (ab(xy)cd)
1678: 1: cd
1679: 1(abcd)(x(y)z)pqr
1680: 0: (abcd)
1681: 1: abcd
1682: 0: (x(y)z)
1683: 1: z
1684:
1685: /\( (?: (?>[^()]+) | (?R) ) \) /Ix
1686: Capturing subpattern count = 0
1687: Options: extended
1688: First char = '('
1689: Need char = ')'
1690: (abcd)
1691: 0: (abcd)
1692: (ab(xy)cd)
1693: 0: (xy)
1694: (a(b(c)d)e)
1695: 0: (c)
1696: ((ab))
1697: 0: ((ab))
1698: *** Failers
1699: No match
1700: ()
1701: No match
1702:
1703: /\( (?: (?>[^()]+) | (?R) )? \) /Ix
1704: Capturing subpattern count = 0
1705: Options: extended
1706: First char = '('
1707: Need char = ')'
1708: ()
1709: 0: ()
1710: 12(abcde(fsh)xyz(foo(bar))lmno)89
1711: 0: (fsh)
1712:
1713: /\( ( (?>[^()]+) | (?R) )* \) /Ix
1714: Capturing subpattern count = 1
1715: Options: extended
1716: First char = '('
1717: Need char = ')'
1718: (ab(xy)cd)
1719: 0: (ab(xy)cd)
1720: 1: cd
1721:
1722: /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1723: Capturing subpattern count = 2
1724: Options: extended
1725: First char = '('
1726: Need char = ')'
1727: (ab(xy)cd)
1728: 0: (ab(xy)cd)
1729: 1: ab(xy)cd
1730: 2: cd
1731:
1732: /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1733: Capturing subpattern count = 3
1734: Options: extended
1735: First char = '('
1736: Need char = ')'
1737: (ab(xy)cd)
1738: 0: (ab(xy)cd)
1739: 1: <unset>
1740: 2: ab(xy)cd
1741: 3: cd
1742: (123ab(xy)cd)
1743: 0: (123ab(xy)cd)
1744: 1: 123
1745: 2: ab(xy)cd
1746: 3: cd
1747:
1748: /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1749: Capturing subpattern count = 3
1750: Options: extended
1751: First char = '('
1752: Need char = ')'
1753: (ab(xy)cd)
1754: 0: (ab(xy)cd)
1755: 1: ab(xy)cd
1756: 2: <unset>
1757: 3: cd
1758: (123ab(xy)cd)
1759: 0: (123ab(xy)cd)
1760: 1: 123ab(xy)cd
1761: 2: 123
1762: 3: cd
1763:
1764: /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1765: Capturing subpattern count = 11
1766: Options: extended
1767: First char = '('
1768: Need char = ')'
1769: (ab(xy)cd)
1770: 0: (ab(xy)cd)
1771: 1: ab(xy)cd
1772: 2: ab(xy)cd
1773: 3: ab(xy)cd
1774: 4: ab(xy)cd
1775: 5: ab(xy)cd
1776: 6: ab(xy)cd
1777: 7: ab(xy)cd
1778: 8: ab(xy)cd
1779: 9: ab(xy)cd
1780: 10: ab(xy)cd
1781: 11: cd
1782:
1783: /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1784: Capturing subpattern count = 3
1785: Options: extended
1786: First char = '('
1787: Need char = ')'
1788: (abcd(xyz<p>qrs)123)
1789: 0: (abcd(xyz<p>qrs)123)
1790: 1: abcd(xyz<p>qrs)123
1791: 2: 123
1792:
1793: /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1794: Capturing subpattern count = 3
1795: Options: extended
1796: First char = '('
1797: Need char = ')'
1798: (ab(cd)ef)
1799: 0: (ab(cd)ef)
1800: 1: ab(cd)ef
1801: 2: ef
1802: 3: (cd)
1803: (ab(cd(ef)gh)ij)
1804: 0: (ab(cd(ef)gh)ij)
1805: 1: ab(cd(ef)gh)ij
1806: 2: ij
1807: 3: (cd(ef)gh)
1808:
1809: /^[[:alnum:]]/DZ
1810: ------------------------------------------------------------------
1811: Bra
1812: ^
1813: [0-9A-Za-z]
1814: Ket
1815: End
1816: ------------------------------------------------------------------
1817: Capturing subpattern count = 0
1818: Options: anchored
1819: No first char
1820: No need char
1821:
1822: /^[[:^alnum:]]/DZ
1823: ------------------------------------------------------------------
1824: Bra
1825: ^
1826: [\x00-/:-@[-`{-\xff] (neg)
1827: Ket
1828: End
1829: ------------------------------------------------------------------
1830: Capturing subpattern count = 0
1831: Options: anchored
1832: No first char
1833: No need char
1834:
1835: /^[[:alpha:]]/DZ
1836: ------------------------------------------------------------------
1837: Bra
1838: ^
1839: [A-Za-z]
1840: Ket
1841: End
1842: ------------------------------------------------------------------
1843: Capturing subpattern count = 0
1844: Options: anchored
1845: No first char
1846: No need char
1847:
1848: /^[[:^alpha:]]/DZ
1849: ------------------------------------------------------------------
1850: Bra
1851: ^
1852: [\x00-@[-`{-\xff] (neg)
1853: Ket
1854: End
1855: ------------------------------------------------------------------
1856: Capturing subpattern count = 0
1857: Options: anchored
1858: No first char
1859: No need char
1860:
1861: /[_[:alpha:]]/IS
1862: Capturing subpattern count = 0
1863: No options
1864: No first char
1865: No need char
1866: Subject length lower bound = 1
1867: Starting byte set: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
1868: _ a b c d e f g h i j k l m n o p q r s t u v w x y z
1869:
1870: /^[[:ascii:]]/DZ
1871: ------------------------------------------------------------------
1872: Bra
1873: ^
1874: [\x00-\x7f]
1875: Ket
1876: End
1877: ------------------------------------------------------------------
1878: Capturing subpattern count = 0
1879: Options: anchored
1880: No first char
1881: No need char
1882:
1883: /^[[:^ascii:]]/DZ
1884: ------------------------------------------------------------------
1885: Bra
1886: ^
1887: [\x80-\xff] (neg)
1888: Ket
1889: End
1890: ------------------------------------------------------------------
1891: Capturing subpattern count = 0
1892: Options: anchored
1893: No first char
1894: No need char
1895:
1896: /^[[:blank:]]/DZ
1897: ------------------------------------------------------------------
1898: Bra
1899: ^
1900: [\x09 ]
1901: Ket
1902: End
1903: ------------------------------------------------------------------
1904: Capturing subpattern count = 0
1905: Options: anchored
1906: No first char
1907: No need char
1908:
1909: /^[[:^blank:]]/DZ
1910: ------------------------------------------------------------------
1911: Bra
1912: ^
1913: [\x00-\x08\x0a-\x1f!-\xff] (neg)
1914: Ket
1915: End
1916: ------------------------------------------------------------------
1917: Capturing subpattern count = 0
1918: Options: anchored
1919: No first char
1920: No need char
1921:
1922: /[\n\x0b\x0c\x0d[:blank:]]/IS
1923: Capturing subpattern count = 0
1924: Contains explicit CR or LF match
1925: No options
1926: No first char
1927: No need char
1928: Subject length lower bound = 1
1929: Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1930:
1931: /^[[:cntrl:]]/DZ
1932: ------------------------------------------------------------------
1933: Bra
1934: ^
1935: [\x00-\x1f\x7f]
1936: Ket
1937: End
1938: ------------------------------------------------------------------
1939: Capturing subpattern count = 0
1940: Options: anchored
1941: No first char
1942: No need char
1943:
1944: /^[[:digit:]]/DZ
1945: ------------------------------------------------------------------
1946: Bra
1947: ^
1948: [0-9]
1949: Ket
1950: End
1951: ------------------------------------------------------------------
1952: Capturing subpattern count = 0
1953: Options: anchored
1954: No first char
1955: No need char
1956:
1957: /^[[:graph:]]/DZ
1958: ------------------------------------------------------------------
1959: Bra
1960: ^
1961: [!-~]
1962: Ket
1963: End
1964: ------------------------------------------------------------------
1965: Capturing subpattern count = 0
1966: Options: anchored
1967: No first char
1968: No need char
1969:
1970: /^[[:lower:]]/DZ
1971: ------------------------------------------------------------------
1972: Bra
1973: ^
1974: [a-z]
1975: Ket
1976: End
1977: ------------------------------------------------------------------
1978: Capturing subpattern count = 0
1979: Options: anchored
1980: No first char
1981: No need char
1982:
1983: /^[[:print:]]/DZ
1984: ------------------------------------------------------------------
1985: Bra
1986: ^
1987: [ -~]
1988: Ket
1989: End
1990: ------------------------------------------------------------------
1991: Capturing subpattern count = 0
1992: Options: anchored
1993: No first char
1994: No need char
1995:
1996: /^[[:punct:]]/DZ
1997: ------------------------------------------------------------------
1998: Bra
1999: ^
2000: [!-/:-@[-`{-~]
2001: Ket
2002: End
2003: ------------------------------------------------------------------
2004: Capturing subpattern count = 0
2005: Options: anchored
2006: No first char
2007: No need char
2008:
2009: /^[[:space:]]/DZ
2010: ------------------------------------------------------------------
2011: Bra
2012: ^
2013: [\x09-\x0d ]
2014: Ket
2015: End
2016: ------------------------------------------------------------------
2017: Capturing subpattern count = 0
2018: Options: anchored
2019: No first char
2020: No need char
2021:
2022: /^[[:upper:]]/DZ
2023: ------------------------------------------------------------------
2024: Bra
2025: ^
2026: [A-Z]
2027: Ket
2028: End
2029: ------------------------------------------------------------------
2030: Capturing subpattern count = 0
2031: Options: anchored
2032: No first char
2033: No need char
2034:
2035: /^[[:xdigit:]]/DZ
2036: ------------------------------------------------------------------
2037: Bra
2038: ^
2039: [0-9A-Fa-f]
2040: Ket
2041: End
2042: ------------------------------------------------------------------
2043: Capturing subpattern count = 0
2044: Options: anchored
2045: No first char
2046: No need char
2047:
2048: /^[[:word:]]/DZ
2049: ------------------------------------------------------------------
2050: Bra
2051: ^
2052: [0-9A-Z_a-z]
2053: Ket
2054: End
2055: ------------------------------------------------------------------
2056: Capturing subpattern count = 0
2057: Options: anchored
2058: No first char
2059: No need char
2060:
2061: /^[[:^cntrl:]]/DZ
2062: ------------------------------------------------------------------
2063: Bra
2064: ^
2065: [ -~\x80-\xff] (neg)
2066: Ket
2067: End
2068: ------------------------------------------------------------------
2069: Capturing subpattern count = 0
2070: Options: anchored
2071: No first char
2072: No need char
2073:
2074: /^[12[:^digit:]]/DZ
2075: ------------------------------------------------------------------
2076: Bra
2077: ^
2078: [\x00-/12:-\xff] (neg)
2079: Ket
2080: End
2081: ------------------------------------------------------------------
2082: Capturing subpattern count = 0
2083: Options: anchored
2084: No first char
2085: No need char
2086:
2087: /^[[:^blank:]]/DZ
2088: ------------------------------------------------------------------
2089: Bra
2090: ^
2091: [\x00-\x08\x0a-\x1f!-\xff] (neg)
2092: Ket
2093: End
2094: ------------------------------------------------------------------
2095: Capturing subpattern count = 0
2096: Options: anchored
2097: No first char
2098: No need char
2099:
2100: /[01[:alpha:]%]/DZ
2101: ------------------------------------------------------------------
2102: Bra
2103: [%01A-Za-z]
2104: Ket
2105: End
2106: ------------------------------------------------------------------
2107: Capturing subpattern count = 0
2108: No options
2109: No first char
2110: No need char
2111:
2112: /[[.ch.]]/I
2113: Failed: POSIX collating elements are not supported at offset 1
2114:
2115: /[[=ch=]]/I
2116: Failed: POSIX collating elements are not supported at offset 1
2117:
2118: /[[:rhubarb:]]/I
2119: Failed: unknown POSIX class name at offset 3
2120:
2121: /[[:upper:]]/Ii
2122: Capturing subpattern count = 0
2123: Options: caseless
2124: No first char
2125: No need char
2126: A
2127: 0: A
2128: a
2129: 0: a
2130:
2131: /[[:lower:]]/Ii
2132: Capturing subpattern count = 0
2133: Options: caseless
2134: No first char
2135: No need char
2136: A
2137: 0: A
2138: a
2139: 0: a
2140:
2141: /((?-i)[[:lower:]])[[:lower:]]/Ii
2142: Capturing subpattern count = 1
2143: Options: caseless
2144: No first char
2145: No need char
2146: ab
2147: 0: ab
2148: 1: a
2149: aB
2150: 0: aB
2151: 1: a
2152: *** Failers
2153: 0: ai
2154: 1: a
2155: Ab
2156: No match
2157: AB
2158: No match
2159:
2160: /[\200-\110]/I
2161: Failed: range out of order in character class at offset 9
2162:
2163: /^(?(0)f|b)oo/I
2164: Failed: invalid condition (?(0) at offset 6
2165:
2166: /This one's here because of the large output vector needed/I
2167: Capturing subpattern count = 0
2168: No options
2169: First char = 'T'
2170: Need char = 'd'
2171:
2172: /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I
2173: Capturing subpattern count = 271
2174: Max back reference = 270
2175: No options
2176: No first char
2177: No need char
2178: \O900 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC
2179: 0: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC
2180: 1: 1
2181: 2: 2
2182: 3: 3
2183: 4: 4
2184: 5: 5
2185: 6: 6
2186: 7: 7
2187: 8: 8
2188: 9: 9
2189: 10: 10
2190: 11: 11
2191: 12: 12
2192: 13: 13
2193: 14: 14
2194: 15: 15
2195: 16: 16
2196: 17: 17
2197: 18: 18
2198: 19: 19
2199: 20: 20
2200: 21: 21
2201: 22: 22
2202: 23: 23
2203: 24: 24
2204: 25: 25
2205: 26: 26
2206: 27: 27
2207: 28: 28
2208: 29: 29
2209: 30: 30
2210: 31: 31
2211: 32: 32
2212: 33: 33
2213: 34: 34
2214: 35: 35
2215: 36: 36
2216: 37: 37
2217: 38: 38
2218: 39: 39
2219: 40: 40
2220: 41: 41
2221: 42: 42
2222: 43: 43
2223: 44: 44
2224: 45: 45
2225: 46: 46
2226: 47: 47
2227: 48: 48
2228: 49: 49
2229: 50: 50
2230: 51: 51
2231: 52: 52
2232: 53: 53
2233: 54: 54
2234: 55: 55
2235: 56: 56
2236: 57: 57
2237: 58: 58
2238: 59: 59
2239: 60: 60
2240: 61: 61
2241: 62: 62
2242: 63: 63
2243: 64: 64
2244: 65: 65
2245: 66: 66
2246: 67: 67
2247: 68: 68
2248: 69: 69
2249: 70: 70
2250: 71: 71
2251: 72: 72
2252: 73: 73
2253: 74: 74
2254: 75: 75
2255: 76: 76
2256: 77: 77
2257: 78: 78
2258: 79: 79
2259: 80: 80
2260: 81: 81
2261: 82: 82
2262: 83: 83
2263: 84: 84
2264: 85: 85
2265: 86: 86
2266: 87: 87
2267: 88: 88
2268: 89: 89
2269: 90: 90
2270: 91: 91
2271: 92: 92
2272: 93: 93
2273: 94: 94
2274: 95: 95
2275: 96: 96
2276: 97: 97
2277: 98: 98
2278: 99: 99
2279: 100: 100
2280: 101: 101
2281: 102: 102
2282: 103: 103
2283: 104: 104
2284: 105: 105
2285: 106: 106
2286: 107: 107
2287: 108: 108
2288: 109: 109
2289: 110: 110
2290: 111: 111
2291: 112: 112
2292: 113: 113
2293: 114: 114
2294: 115: 115
2295: 116: 116
2296: 117: 117
2297: 118: 118
2298: 119: 119
2299: 120: 120
2300: 121: 121
2301: 122: 122
2302: 123: 123
2303: 124: 124
2304: 125: 125
2305: 126: 126
2306: 127: 127
2307: 128: 128
2308: 129: 129
2309: 130: 130
2310: 131: 131
2311: 132: 132
2312: 133: 133
2313: 134: 134
2314: 135: 135
2315: 136: 136
2316: 137: 137
2317: 138: 138
2318: 139: 139
2319: 140: 140
2320: 141: 141
2321: 142: 142
2322: 143: 143
2323: 144: 144
2324: 145: 145
2325: 146: 146
2326: 147: 147
2327: 148: 148
2328: 149: 149
2329: 150: 150
2330: 151: 151
2331: 152: 152
2332: 153: 153
2333: 154: 154
2334: 155: 155
2335: 156: 156
2336: 157: 157
2337: 158: 158
2338: 159: 159
2339: 160: 160
2340: 161: 161
2341: 162: 162
2342: 163: 163
2343: 164: 164
2344: 165: 165
2345: 166: 166
2346: 167: 167
2347: 168: 168
2348: 169: 169
2349: 170: 170
2350: 171: 171
2351: 172: 172
2352: 173: 173
2353: 174: 174
2354: 175: 175
2355: 176: 176
2356: 177: 177
2357: 178: 178
2358: 179: 179
2359: 180: 180
2360: 181: 181
2361: 182: 182
2362: 183: 183
2363: 184: 184
2364: 185: 185
2365: 186: 186
2366: 187: 187
2367: 188: 188
2368: 189: 189
2369: 190: 190
2370: 191: 191
2371: 192: 192
2372: 193: 193
2373: 194: 194
2374: 195: 195
2375: 196: 196
2376: 197: 197
2377: 198: 198
2378: 199: 199
2379: 200: 200
2380: 201: 201
2381: 202: 202
2382: 203: 203
2383: 204: 204
2384: 205: 205
2385: 206: 206
2386: 207: 207
2387: 208: 208
2388: 209: 209
2389: 210: 210
2390: 211: 211
2391: 212: 212
2392: 213: 213
2393: 214: 214
2394: 215: 215
2395: 216: 216
2396: 217: 217
2397: 218: 218
2398: 219: 219
2399: 220: 220
2400: 221: 221
2401: 222: 222
2402: 223: 223
2403: 224: 224
2404: 225: 225
2405: 226: 226
2406: 227: 227
2407: 228: 228
2408: 229: 229
2409: 230: 230
2410: 231: 231
2411: 232: 232
2412: 233: 233
2413: 234: 234
2414: 235: 235
2415: 236: 236
2416: 237: 237
2417: 238: 238
2418: 239: 239
2419: 240: 240
2420: 241: 241
2421: 242: 242
2422: 243: 243
2423: 244: 244
2424: 245: 245
2425: 246: 246
2426: 247: 247
2427: 248: 248
2428: 249: 249
2429: 250: 250
2430: 251: 251
2431: 252: 252
2432: 253: 253
2433: 254: 254
2434: 255: 255
2435: 256: 256
2436: 257: 257
2437: 258: 258
2438: 259: 259
2439: 260: 260
2440: 261: 261
2441: 262: 262
2442: 263: 263
2443: 264: 264
2444: 265: 265
2445: 266: 266
2446: 267: 267
2447: 268: 268
2448: 269: 269
2449: 270: ABC
2450: 271: ABC
2451:
2452: /This one's here because Perl does this differently and PCRE can't at present/I
2453: Capturing subpattern count = 0
2454: No options
2455: First char = 'T'
2456: Need char = 't'
2457:
2458: /(main(O)?)+/I
2459: Capturing subpattern count = 2
2460: No options
2461: First char = 'm'
2462: Need char = 'n'
2463: mainmain
2464: 0: mainmain
2465: 1: main
2466: mainOmain
2467: 0: mainOmain
2468: 1: main
2469: 2: O
2470:
2471: /These are all cases where Perl does it differently (nested captures)/I
2472: Capturing subpattern count = 1
2473: No options
2474: First char = 'T'
2475: Need char = 's'
2476:
2477: /^(a(b)?)+$/I
2478: Capturing subpattern count = 2
2479: Options: anchored
2480: No first char
2481: No need char
2482: aba
2483: 0: aba
2484: 1: a
2485: 2: b
2486:
2487: /^(aa(bb)?)+$/I
2488: Capturing subpattern count = 2
2489: Options: anchored
2490: No first char
2491: No need char
2492: aabbaa
2493: 0: aabbaa
2494: 1: aa
2495: 2: bb
2496:
2497: /^(aa|aa(bb))+$/I
2498: Capturing subpattern count = 2
2499: Options: anchored
2500: No first char
2501: No need char
2502: aabbaa
2503: 0: aabbaa
2504: 1: aa
2505: 2: bb
2506:
2507: /^(aa(bb)??)+$/I
2508: Capturing subpattern count = 2
2509: Options: anchored
2510: No first char
2511: No need char
2512: aabbaa
2513: 0: aabbaa
2514: 1: aa
2515: 2: bb
2516:
2517: /^(?:aa(bb)?)+$/I
2518: Capturing subpattern count = 1
2519: Options: anchored
2520: No first char
2521: No need char
2522: aabbaa
2523: 0: aabbaa
2524: 1: bb
2525:
2526: /^(aa(b(b))?)+$/I
2527: Capturing subpattern count = 3
2528: Options: anchored
2529: No first char
2530: No need char
2531: aabbaa
2532: 0: aabbaa
2533: 1: aa
2534: 2: bb
2535: 3: b
2536:
2537: /^(?:aa(b(b))?)+$/I
2538: Capturing subpattern count = 2
2539: Options: anchored
2540: No first char
2541: No need char
2542: aabbaa
2543: 0: aabbaa
2544: 1: bb
2545: 2: b
2546:
2547: /^(?:aa(b(?:b))?)+$/I
2548: Capturing subpattern count = 1
2549: Options: anchored
2550: No first char
2551: No need char
2552: aabbaa
2553: 0: aabbaa
2554: 1: bb
2555:
2556: /^(?:aa(bb(?:b))?)+$/I
2557: Capturing subpattern count = 1
2558: Options: anchored
2559: No first char
2560: No need char
2561: aabbbaa
2562: 0: aabbbaa
2563: 1: bbb
2564:
2565: /^(?:aa(b(?:bb))?)+$/I
2566: Capturing subpattern count = 1
2567: Options: anchored
2568: No first char
2569: No need char
2570: aabbbaa
2571: 0: aabbbaa
2572: 1: bbb
2573:
2574: /^(?:aa(?:b(b))?)+$/I
2575: Capturing subpattern count = 1
2576: Options: anchored
2577: No first char
2578: No need char
2579: aabbaa
2580: 0: aabbaa
2581: 1: b
2582:
2583: /^(?:aa(?:b(bb))?)+$/I
2584: Capturing subpattern count = 1
2585: Options: anchored
2586: No first char
2587: No need char
2588: aabbbaa
2589: 0: aabbbaa
2590: 1: bb
2591:
2592: /^(aa(b(bb))?)+$/I
2593: Capturing subpattern count = 3
2594: Options: anchored
2595: No first char
2596: No need char
2597: aabbbaa
2598: 0: aabbbaa
2599: 1: aa
2600: 2: bbb
2601: 3: bb
2602:
2603: /^(aa(bb(bb))?)+$/I
2604: Capturing subpattern count = 3
2605: Options: anchored
2606: No first char
2607: No need char
2608: aabbbbaa
2609: 0: aabbbbaa
2610: 1: aa
2611: 2: bbbb
2612: 3: bb
2613:
2614: /--------------------------------------------------------------------/I
2615: Capturing subpattern count = 0
2616: No options
2617: First char = '-'
2618: Need char = '-'
2619:
2620: /#/IxDZ
2621: ------------------------------------------------------------------
2622: Bra
2623: Ket
2624: End
2625: ------------------------------------------------------------------
2626: Capturing subpattern count = 0
2627: Options: extended
2628: No first char
2629: No need char
2630:
2631: /a#/IxDZ
2632: ------------------------------------------------------------------
2633: Bra
2634: a
2635: Ket
2636: End
2637: ------------------------------------------------------------------
2638: Capturing subpattern count = 0
2639: Options: extended
2640: First char = 'a'
2641: No need char
2642:
2643: /[\s]/DZ
2644: ------------------------------------------------------------------
2645: Bra
2646: [\x09\x0a\x0c\x0d ]
2647: Ket
2648: End
2649: ------------------------------------------------------------------
2650: Capturing subpattern count = 0
2651: No options
2652: No first char
2653: No need char
2654:
2655: /[\S]/DZ
2656: ------------------------------------------------------------------
2657: Bra
2658: [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2659: Ket
2660: End
2661: ------------------------------------------------------------------
2662: Capturing subpattern count = 0
2663: No options
2664: No first char
2665: No need char
2666:
2667: /a(?i)b/DZ
2668: ------------------------------------------------------------------
2669: Bra
2670: a
2671: /i b
2672: Ket
2673: End
2674: ------------------------------------------------------------------
2675: Capturing subpattern count = 0
2676: No options
2677: First char = 'a'
2678: Need char = 'b' (caseless)
2679: ab
2680: 0: ab
2681: aB
2682: 0: aB
2683: *** Failers
2684: No match
2685: AB
2686: No match
2687:
2688: /(a(?i)b)/DZ
2689: ------------------------------------------------------------------
2690: Bra
2691: CBra 1
2692: a
2693: /i b
2694: Ket
2695: Ket
2696: End
2697: ------------------------------------------------------------------
2698: Capturing subpattern count = 1
2699: No options
2700: First char = 'a'
2701: Need char = 'b' (caseless)
2702: ab
2703: 0: ab
2704: 1: ab
2705: aB
2706: 0: aB
2707: 1: aB
2708: *** Failers
2709: No match
2710: AB
2711: No match
2712:
2713: / (?i)abc/IxDZ
2714: ------------------------------------------------------------------
2715: Bra
2716: /i abc
2717: Ket
2718: End
2719: ------------------------------------------------------------------
2720: Capturing subpattern count = 0
2721: Options: caseless extended
2722: First char = 'a' (caseless)
2723: Need char = 'c' (caseless)
2724:
2725: /#this is a comment
2726: (?i)abc/IxDZ
2727: ------------------------------------------------------------------
2728: Bra
2729: /i abc
2730: Ket
2731: End
2732: ------------------------------------------------------------------
2733: Capturing subpattern count = 0
2734: Options: caseless extended
2735: First char = 'a' (caseless)
2736: Need char = 'c' (caseless)
2737:
2738: /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2739: ------------------------------------------------------------------
2740: Bra
2741: 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2742: Ket
2743: End
2744: ------------------------------------------------------------------
2745: Capturing subpattern count = 0
2746: No options
2747: First char = '1'
2748: Need char = '0'
2749:
2750: /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2751: ------------------------------------------------------------------
2752: Bra
2753: 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2754: Ket
2755: End
2756: ------------------------------------------------------------------
2757: Capturing subpattern count = 0
2758: No options
2759: First char = '1'
2760: Need char = '0'
2761:
2762: /\Q\E/DZ
2763: ------------------------------------------------------------------
2764: Bra
2765: Ket
2766: End
2767: ------------------------------------------------------------------
2768: Capturing subpattern count = 0
2769: No options
2770: No first char
2771: No need char
2772: \
2773: 0:
2774:
2775: /\Q\Ex/DZ
2776: ------------------------------------------------------------------
2777: Bra
2778: x
2779: Ket
2780: End
2781: ------------------------------------------------------------------
2782: Capturing subpattern count = 0
2783: No options
2784: First char = 'x'
2785: No need char
2786:
2787: / \Q\E/DZ
2788: ------------------------------------------------------------------
2789: Bra
2790:
2791: Ket
2792: End
2793: ------------------------------------------------------------------
2794: Capturing subpattern count = 0
2795: No options
2796: First char = ' '
2797: No need char
2798:
2799: /a\Q\E/DZ
2800: ------------------------------------------------------------------
2801: Bra
2802: a
2803: Ket
2804: End
2805: ------------------------------------------------------------------
2806: Capturing subpattern count = 0
2807: No options
2808: First char = 'a'
2809: No need char
2810: abc
2811: 0: a
2812: bca
2813: 0: a
2814: bac
2815: 0: a
2816:
2817: /a\Q\Eb/DZ
2818: ------------------------------------------------------------------
2819: Bra
2820: ab
2821: Ket
2822: End
2823: ------------------------------------------------------------------
2824: Capturing subpattern count = 0
2825: No options
2826: First char = 'a'
2827: Need char = 'b'
2828: abc
2829: 0: ab
2830:
2831: /\Q\Eabc/DZ
2832: ------------------------------------------------------------------
2833: Bra
2834: abc
2835: Ket
2836: End
2837: ------------------------------------------------------------------
2838: Capturing subpattern count = 0
2839: No options
2840: First char = 'a'
2841: Need char = 'c'
2842:
2843: /x*+\w/DZ
2844: ------------------------------------------------------------------
2845: Bra
2846: x*+
2847: \w
2848: Ket
2849: End
2850: ------------------------------------------------------------------
2851: Capturing subpattern count = 0
2852: No options
2853: No first char
2854: No need char
2855: *** Failers
2856: 0: F
2857: xxxxx
2858: No match
2859:
2860: /x?+/DZ
2861: ------------------------------------------------------------------
2862: Bra
2863: x?+
2864: Ket
2865: End
2866: ------------------------------------------------------------------
2867: Capturing subpattern count = 0
2868: No options
2869: No first char
2870: No need char
2871:
2872: /x++/DZ
2873: ------------------------------------------------------------------
2874: Bra
2875: x++
2876: Ket
2877: End
2878: ------------------------------------------------------------------
2879: Capturing subpattern count = 0
2880: No options
2881: First char = 'x'
2882: No need char
2883:
2884: /x{1,3}+/DZ
2885: ------------------------------------------------------------------
2886: Bra
2887: Once
2888: x
2889: x{0,2}
2890: Ket
2891: Ket
2892: End
2893: ------------------------------------------------------------------
2894: Capturing subpattern count = 0
2895: No options
2896: First char = 'x'
2897: No need char
2898:
2899: /(x)*+/DZ
2900: ------------------------------------------------------------------
2901: Bra
2902: Braposzero
2903: CBraPos 1
2904: x
2905: KetRpos
2906: Ket
2907: End
2908: ------------------------------------------------------------------
2909: Capturing subpattern count = 1
2910: No options
2911: No first char
2912: No need char
2913:
2914: /^(\w++|\s++)*$/I
2915: Capturing subpattern count = 1
2916: Options: anchored
2917: No first char
2918: No need char
2919: now is the time for all good men to come to the aid of the party
2920: 0: now is the time for all good men to come to the aid of the party
2921: 1: party
2922: *** Failers
2923: No match
2924: this is not a line with only words and spaces!
2925: No match
2926:
2927: /(\d++)(\w)/I
2928: Capturing subpattern count = 2
2929: No options
2930: No first char
2931: No need char
2932: 12345a
2933: 0: 12345a
2934: 1: 12345
2935: 2: a
2936: *** Failers
2937: No match
2938: 12345+
2939: No match
2940:
2941: /a++b/I
2942: Capturing subpattern count = 0
2943: No options
2944: First char = 'a'
2945: Need char = 'b'
2946: aaab
2947: 0: aaab
2948:
2949: /(a++b)/I
2950: Capturing subpattern count = 1
2951: No options
2952: First char = 'a'
2953: Need char = 'b'
2954: aaab
2955: 0: aaab
2956: 1: aaab
2957:
2958: /(a++)b/I
2959: Capturing subpattern count = 1
2960: No options
2961: First char = 'a'
2962: Need char = 'b'
2963: aaab
2964: 0: aaab
2965: 1: aaa
2966:
2967: /([^()]++|\([^()]*\))+/I
2968: Capturing subpattern count = 1
2969: No options
2970: No first char
2971: No need char
2972: ((abc(ade)ufh()()x
2973: 0: abc(ade)ufh()()x
2974: 1: x
2975:
2976: /\(([^()]++|\([^()]+\))+\)/I
2977: Capturing subpattern count = 1
2978: No options
2979: First char = '('
2980: Need char = ')'
2981: (abc)
2982: 0: (abc)
2983: 1: abc
2984: (abc(def)xyz)
2985: 0: (abc(def)xyz)
2986: 1: xyz
2987: *** Failers
2988: No match
2989: ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
2990: No match
2991:
2992: /(abc){1,3}+/DZ
2993: ------------------------------------------------------------------
2994: Bra
2995: Once
2996: CBra 1
2997: abc
2998: Ket
2999: Brazero
3000: Bra
3001: CBra 1
3002: abc
3003: Ket
3004: Brazero
3005: CBra 1
3006: abc
3007: Ket
3008: Ket
3009: Ket
3010: Ket
3011: End
3012: ------------------------------------------------------------------
3013: Capturing subpattern count = 1
3014: No options
3015: First char = 'a'
3016: Need char = 'c'
3017:
3018: /a+?+/I
3019: Failed: nothing to repeat at offset 3
3020:
3021: /a{2,3}?+b/I
3022: Failed: nothing to repeat at offset 7
3023:
3024: /(?U)a+?+/I
3025: Failed: nothing to repeat at offset 7
3026:
3027: /a{2,3}?+b/IU
3028: Failed: nothing to repeat at offset 7
3029:
3030: /x(?U)a++b/DZ
3031: ------------------------------------------------------------------
3032: Bra
3033: x
3034: a++
3035: b
3036: Ket
3037: End
3038: ------------------------------------------------------------------
3039: Capturing subpattern count = 0
3040: No options
3041: First char = 'x'
3042: Need char = 'b'
3043: xaaaab
3044: 0: xaaaab
3045:
3046: /(?U)xa++b/DZ
3047: ------------------------------------------------------------------
3048: Bra
3049: x
3050: a++
3051: b
3052: Ket
3053: End
3054: ------------------------------------------------------------------
3055: Capturing subpattern count = 0
3056: Options: ungreedy
3057: First char = 'x'
3058: Need char = 'b'
3059: xaaaab
3060: 0: xaaaab
3061:
3062: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3063: ------------------------------------------------------------------
3064: Bra
3065: ^
3066: CBra 1
3067: CBra 2
3068: a+
3069: Ket
3070: CBra 3
3071: [ab]+?
3072: Ket
3073: CBra 4
3074: [bc]+
3075: Ket
3076: CBra 5
3077: \w*
3078: Ket
3079: Ket
3080: Ket
3081: End
3082: ------------------------------------------------------------------
3083: Capturing subpattern count = 5
3084: Options: anchored
3085: No first char
3086: No need char
3087:
3088: /^x(?U)a+b/DZ
3089: ------------------------------------------------------------------
3090: Bra
3091: ^
3092: x
3093: a++
3094: b
3095: Ket
3096: End
3097: ------------------------------------------------------------------
3098: Capturing subpattern count = 0
3099: Options: anchored
3100: No first char
3101: Need char = 'b'
3102:
3103: /^x(?U)(a+)b/DZ
3104: ------------------------------------------------------------------
3105: Bra
3106: ^
3107: x
3108: CBra 1
3109: a+?
3110: Ket
3111: b
3112: Ket
3113: End
3114: ------------------------------------------------------------------
3115: Capturing subpattern count = 1
3116: Options: anchored
3117: No first char
3118: Need char = 'b'
3119:
3120: /[.x.]/I
3121: Failed: POSIX collating elements are not supported at offset 0
3122:
3123: /[=x=]/I
3124: Failed: POSIX collating elements are not supported at offset 0
3125:
3126: /[:x:]/I
3127: Failed: POSIX named classes are supported only within a class at offset 0
3128:
3129: /\l/I
3130: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3131:
3132: /\L/I
3133: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3134:
3135: /\N{name}/I
3136: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3137:
3138: /\u/I
3139: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3140:
3141: /\U/I
3142: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3143:
3144: /[/I
3145: Failed: missing terminating ] for character class at offset 1
3146:
3147: /[a-/I
3148: Failed: missing terminating ] for character class at offset 3
3149:
3150: /[[:space:]/I
3151: Failed: missing terminating ] for character class at offset 10
3152:
3153: /[\s]/IDZ
3154: ------------------------------------------------------------------
3155: Bra
3156: [\x09\x0a\x0c\x0d ]
3157: Ket
3158: End
3159: ------------------------------------------------------------------
3160: Capturing subpattern count = 0
3161: No options
3162: No first char
3163: No need char
3164:
3165: /[[:space:]]/IDZ
3166: ------------------------------------------------------------------
3167: Bra
3168: [\x09-\x0d ]
3169: Ket
3170: End
3171: ------------------------------------------------------------------
3172: Capturing subpattern count = 0
3173: No options
3174: No first char
3175: No need char
3176:
3177: /[[:space:]abcde]/IDZ
3178: ------------------------------------------------------------------
3179: Bra
3180: [\x09-\x0d a-e]
3181: Ket
3182: End
3183: ------------------------------------------------------------------
3184: Capturing subpattern count = 0
3185: No options
3186: No first char
3187: No need char
3188:
3189: /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix
3190: Capturing subpattern count = 0
3191: Options: extended
3192: First char = '<'
3193: Need char = '>'
3194: <>
3195: 0: <>
3196: <abcd>
3197: 0: <abcd>
3198: <abc <123> hij>
3199: 0: <abc <123> hij>
3200: <abc <def> hij>
3201: 0: <def>
3202: <abc<>def>
3203: 0: <abc<>def>
3204: <abc<>
3205: 0: <>
3206: *** Failers
3207: No match
3208: <abc
3209: No match
3210:
3211: |8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
3212: ------------------------------------------------------------------
3213: Bra
3214: 8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X
3215: \b
3216: Ket
3217: End
3218: ------------------------------------------------------------------
3219: Capturing subpattern count = 0
3220: No options
3221: First char = '8'
3222: Need char = 'X'
3223:
3224: |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
3225: ------------------------------------------------------------------
3226: Bra
3227: $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X
3228: \b
3229: Ket
3230: End
3231: ------------------------------------------------------------------
3232: Capturing subpattern count = 0
3233: No options
3234: First char = '$'
3235: Need char = 'X'
3236:
3237: /(.*)\d+\1/I
3238: Capturing subpattern count = 1
3239: Max back reference = 1
3240: No options
3241: No first char
3242: No need char
3243:
3244: /(.*)\d+/I
3245: Capturing subpattern count = 1
3246: No options
3247: First char at start or follows newline
3248: No need char
3249:
3250: /(.*)\d+\1/Is
3251: Capturing subpattern count = 1
3252: Max back reference = 1
3253: Options: dotall
3254: No first char
3255: No need char
3256:
3257: /(.*)\d+/Is
3258: Capturing subpattern count = 1
3259: Options: anchored dotall
3260: No first char
3261: No need char
3262:
3263: /(.*(xyz))\d+\2/I
3264: Capturing subpattern count = 2
3265: Max back reference = 2
3266: No options
3267: First char at start or follows newline
3268: Need char = 'z'
3269:
3270: /((.*))\d+\1/I
3271: Capturing subpattern count = 2
3272: Max back reference = 1
3273: No options
3274: No first char
3275: No need char
3276: abc123bc
3277: 0: bc123bc
3278: 1: bc
3279: 2: bc
3280:
3281: /a[b]/I
3282: Capturing subpattern count = 0
3283: No options
3284: First char = 'a'
3285: Need char = 'b'
3286:
3287: /(?=a).*/I
3288: Capturing subpattern count = 0
3289: No options
3290: First char = 'a'
3291: No need char
3292:
3293: /(?=abc).xyz/IiI
3294: Capturing subpattern count = 0
3295: Options: caseless
3296: First char = 'a' (caseless)
3297: Need char = 'z' (caseless)
3298:
3299: /(?=abc)(?i).xyz/I
3300: Capturing subpattern count = 0
3301: No options
3302: First char = 'a'
3303: Need char = 'z' (caseless)
3304:
3305: /(?=a)(?=b)/I
3306: Capturing subpattern count = 0
3307: No options
3308: First char = 'a'
3309: No need char
3310:
3311: /(?=.)a/I
3312: Capturing subpattern count = 0
3313: No options
3314: First char = 'a'
3315: No need char
3316:
3317: /((?=abcda)a)/I
3318: Capturing subpattern count = 1
3319: No options
3320: First char = 'a'
3321: Need char = 'a'
3322:
3323: /((?=abcda)ab)/I
3324: Capturing subpattern count = 1
3325: No options
3326: First char = 'a'
3327: Need char = 'b'
3328:
3329: /()a/I
3330: Capturing subpattern count = 1
3331: No options
3332: No first char
3333: Need char = 'a'
3334:
3335: /(?(1)ab|ac)(.)/I
3336: Capturing subpattern count = 1
3337: No options
3338: First char = 'a'
3339: No need char
3340:
3341: /(?(1)abz|acz)(.)/I
3342: Capturing subpattern count = 1
3343: No options
3344: First char = 'a'
3345: Need char = 'z'
3346:
3347: /(?(1)abz)(.)/I
3348: Capturing subpattern count = 1
3349: No options
3350: No first char
3351: No need char
3352:
3353: /(?(1)abz)(1)23/I
3354: Capturing subpattern count = 1
3355: No options
3356: No first char
3357: Need char = '3'
3358:
3359: /(a)+/I
3360: Capturing subpattern count = 1
3361: No options
3362: First char = 'a'
3363: No need char
3364:
3365: /(a){2,3}/I
3366: Capturing subpattern count = 1
3367: No options
3368: First char = 'a'
3369: Need char = 'a'
3370:
3371: /(a)*/I
3372: Capturing subpattern count = 1
3373: No options
3374: No first char
3375: No need char
3376:
3377: /[a]/I
3378: Capturing subpattern count = 0
3379: No options
3380: First char = 'a'
3381: No need char
3382:
3383: /[ab]/I
3384: Capturing subpattern count = 0
3385: No options
3386: No first char
3387: No need char
3388:
3389: /[ab]/IS
3390: Capturing subpattern count = 0
3391: No options
3392: No first char
3393: No need char
3394: Subject length lower bound = 1
3395: Starting byte set: a b
3396:
3397: /[^a]/I
3398: Capturing subpattern count = 0
3399: No options
3400: No first char
3401: No need char
3402:
3403: /\d456/I
3404: Capturing subpattern count = 0
3405: No options
3406: No first char
3407: Need char = '6'
3408:
3409: /\d456/IS
3410: Capturing subpattern count = 0
3411: No options
3412: No first char
3413: Need char = '6'
3414: Subject length lower bound = 4
3415: Starting byte set: 0 1 2 3 4 5 6 7 8 9
3416:
3417: /a^b/I
3418: Capturing subpattern count = 0
3419: No options
3420: First char = 'a'
3421: Need char = 'b'
3422:
3423: /^a/Im
3424: Capturing subpattern count = 0
3425: Options: multiline
3426: First char at start or follows newline
3427: Need char = 'a'
3428: abcde
3429: 0: a
3430: xy\nabc
3431: 0: a
3432: *** Failers
3433: No match
3434: xyabc
3435: No match
3436:
3437: /c|abc/I
3438: Capturing subpattern count = 0
3439: No options
3440: No first char
3441: Need char = 'c'
3442:
3443: /(?i)[ab]/IS
3444: Capturing subpattern count = 0
3445: Options: caseless
3446: No first char
3447: No need char
3448: Subject length lower bound = 1
3449: Starting byte set: A B a b
3450:
3451: /[ab](?i)cd/IS
3452: Capturing subpattern count = 0
3453: No options
3454: No first char
3455: Need char = 'd' (caseless)
3456: Subject length lower bound = 3
3457: Starting byte set: a b
3458:
3459: /abc(?C)def/I
3460: Capturing subpattern count = 0
3461: No options
3462: First char = 'a'
3463: Need char = 'f'
3464: abcdef
3465: --->abcdef
3466: 0 ^ ^ d
3467: 0: abcdef
3468: 1234abcdef
3469: --->1234abcdef
3470: 0 ^ ^ d
3471: 0: abcdef
3472: *** Failers
3473: No match
3474: abcxyz
3475: No match
3476: abcxyzf
3477: --->abcxyzf
3478: 0 ^ ^ d
3479: No match
3480:
3481: /abc(?C)de(?C1)f/I
3482: Capturing subpattern count = 0
3483: No options
3484: First char = 'a'
3485: Need char = 'f'
3486: 123abcdef
3487: --->123abcdef
3488: 0 ^ ^ d
3489: 1 ^ ^ f
3490: 0: abcdef
3491:
3492: /(?C1)\dabc(?C2)def/IS
3493: Capturing subpattern count = 0
3494: No options
3495: No first char
3496: Need char = 'f'
3497: Subject length lower bound = 7
3498: Starting byte set: 0 1 2 3 4 5 6 7 8 9
3499: 1234abcdef
3500: --->1234abcdef
3501: 1 ^ \d
3502: 1 ^ \d
3503: 1 ^ \d
3504: 1 ^ \d
3505: 2 ^ ^ d
3506: 0: 4abcdef
3507: *** Failers
3508: No match
3509: abcdef
3510: No match
3511:
3512: /(?C1)\dabc(?C2)def/ISS
3513: Capturing subpattern count = 0
3514: No options
3515: No first char
3516: Need char = 'f'
3517: 1234abcdef
3518: --->1234abcdef
3519: 1 ^ \d
3520: 1 ^ \d
3521: 1 ^ \d
3522: 1 ^ \d
3523: 2 ^ ^ d
3524: 0: 4abcdef
3525: *** Failers
3526: No match
3527: abcdef
3528: --->abcdef
3529: 1 ^ \d
3530: 1 ^ \d
3531: 1 ^ \d
3532: 1 ^ \d
3533: 1 ^ \d
3534: 1 ^ \d
3535: No match
3536:
3537: /(?C255)ab/I
3538: Capturing subpattern count = 0
3539: No options
3540: First char = 'a'
3541: Need char = 'b'
3542:
3543: /(?C256)ab/I
3544: Failed: number after (?C is > 255 at offset 6
3545:
3546: /(?Cab)xx/I
3547: Failed: closing ) for (?C expected at offset 3
3548:
3549: /(?C12vr)x/I
3550: Failed: closing ) for (?C expected at offset 5
3551:
3552: /abc(?C)def/I
3553: Capturing subpattern count = 0
3554: No options
3555: First char = 'a'
3556: Need char = 'f'
3557: *** Failers
3558: No match
3559: \x83\x0\x61bcdef
3560: --->\x83\x00abcdef
3561: 0 ^ ^ d
3562: 0: abcdef
3563:
3564: /(abc)(?C)de(?C1)f/I
3565: Capturing subpattern count = 1
3566: No options
3567: First char = 'a'
3568: Need char = 'f'
3569: 123abcdef
3570: --->123abcdef
3571: 0 ^ ^ d
3572: 1 ^ ^ f
3573: 0: abcdef
3574: 1: abc
3575: 123abcdef\C+
3576: Callout 0: last capture = 1
3577: 0: <unset>
3578: 1: abc
3579: --->123abcdef
3580: ^ ^ d
3581: Callout 1: last capture = 1
3582: 0: <unset>
3583: 1: abc
3584: --->123abcdef
3585: ^ ^ f
3586: 0: abcdef
3587: 1: abc
3588: 123abcdef\C-
3589: 0: abcdef
3590: 1: abc
3591: *** Failers
3592: No match
3593: 123abcdef\C!1
3594: --->123abcdef
3595: 0 ^ ^ d
3596: 1 ^ ^ f
3597: No match
3598:
3599: /(?C0)(abc(?C1))*/I
3600: Capturing subpattern count = 1
3601: No options
3602: No first char
3603: No need char
3604: abcabcabc
3605: --->abcabcabc
3606: 0 ^ (abc(?C1))*
3607: 1 ^ ^ )
3608: 1 ^ ^ )
3609: 1 ^ ^ )
3610: 0: abcabcabc
3611: 1: abc
3612: abcabc\C!1!3
3613: --->abcabc
3614: 0 ^ (abc(?C1))*
3615: 1 ^ ^ )
3616: 1 ^ ^ )
3617: 0: abcabc
3618: 1: abc
3619: *** Failers
3620: --->*** Failers
3621: 0 ^ (abc(?C1))*
3622: 0:
3623: abcabcabc\C!1!3
3624: --->abcabcabc
3625: 0 ^ (abc(?C1))*
3626: 1 ^ ^ )
3627: 1 ^ ^ )
3628: 1 ^ ^ )
3629: 0: abcabc
3630: 1: abc
3631:
3632: /(\d{3}(?C))*/I
3633: Capturing subpattern count = 1
3634: No options
3635: No first char
3636: No need char
3637: 123\C+
3638: Callout 0: last capture = -1
3639: 0: <unset>
3640: --->123
3641: ^ ^ )
3642: 0: 123
3643: 1: 123
3644: 123456\C+
3645: Callout 0: last capture = -1
3646: 0: <unset>
3647: --->123456
3648: ^ ^ )
3649: Callout 0: last capture = 1
3650: 0: <unset>
3651: 1: 123
3652: --->123456
3653: ^ ^ )
3654: 0: 123456
3655: 1: 456
3656: 123456789\C+
3657: Callout 0: last capture = -1
3658: 0: <unset>
3659: --->123456789
3660: ^ ^ )
3661: Callout 0: last capture = 1
3662: 0: <unset>
3663: 1: 123
3664: --->123456789
3665: ^ ^ )
3666: Callout 0: last capture = 1
3667: 0: <unset>
3668: 1: 456
3669: --->123456789
3670: ^ ^ )
3671: 0: 123456789
3672: 1: 789
3673:
3674: /((xyz)(?C)p|(?C1)xyzabc)/I
3675: Capturing subpattern count = 2
3676: No options
3677: First char = 'x'
3678: No need char
3679: xyzabc\C+
3680: Callout 0: last capture = 2
3681: 0: <unset>
3682: 1: <unset>
3683: 2: xyz
3684: --->xyzabc
3685: ^ ^ p
3686: Callout 1: last capture = -1
3687: 0: <unset>
3688: --->xyzabc
3689: ^ x
3690: 0: xyzabc
3691: 1: xyzabc
3692:
3693: /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3694: Capturing subpattern count = 3
3695: No options
3696: First char = 'X'
3697: Need char = 'x'
3698: Xxyzabc\C+
3699: Callout 0: last capture = 3
3700: 0: <unset>
3701: 1: X
3702: 2: <unset>
3703: 3: xyz
3704: --->Xxyzabc
3705: ^ ^ p
3706: Callout 1: last capture = 1
3707: 0: <unset>
3708: 1: X
3709: --->Xxyzabc
3710: ^^ x
3711: 0: Xxyzabc
3712: 1: X
3713: 2: xyzabc
3714:
3715: /(?=(abc))(?C)abcdef/I
3716: Capturing subpattern count = 1
3717: No options
3718: First char = 'a'
3719: Need char = 'f'
3720: abcdef\C+
3721: Callout 0: last capture = 1
3722: 0: <unset>
3723: 1: abc
3724: --->abcdef
3725: ^ a
3726: 0: abcdef
3727: 1: abc
3728:
3729: /(?!(abc)(?C1)d)(?C2)abcxyz/I
3730: Capturing subpattern count = 1
3731: No options
3732: First char = 'a'
3733: Need char = 'z'
3734: abcxyz\C+
3735: Callout 1: last capture = 1
3736: 0: <unset>
3737: 1: abc
3738: --->abcxyz
3739: ^ ^ d
3740: Callout 2: last capture = -1
3741: 0: <unset>
3742: --->abcxyz
3743: ^ a
3744: 0: abcxyz
3745:
3746: /(?<=(abc)(?C))xyz/I
3747: Capturing subpattern count = 1
3748: No options
3749: First char = 'x'
3750: Need char = 'z'
3751: abcxyz\C+
3752: Callout 0: last capture = 1
3753: 0: <unset>
3754: 1: abc
3755: --->abcxyz
3756: ^ )
3757: 0: xyz
3758: 1: abc
3759:
3760: /a(b+)(c*)(?C1)/I
3761: Capturing subpattern count = 2
3762: No options
3763: First char = 'a'
3764: Need char = 'b'
3765: abbbbbccc\C*1
3766: --->abbbbbccc
3767: 1 ^ ^
3768: Callout data = 1
3769: 1 ^ ^
3770: Callout data = 1
3771: 1 ^ ^
3772: Callout data = 1
3773: 1 ^ ^
3774: Callout data = 1
3775: 1 ^ ^
3776: Callout data = 1
3777: 1 ^ ^
3778: Callout data = 1
3779: 1 ^ ^
3780: Callout data = 1
3781: 1 ^ ^
3782: Callout data = 1
3783: No match
3784:
3785: /a(b+?)(c*?)(?C1)/I
3786: Capturing subpattern count = 2
3787: No options
3788: First char = 'a'
3789: Need char = 'b'
3790: abbbbbccc\C*1
3791: --->abbbbbccc
3792: 1 ^ ^
3793: Callout data = 1
3794: 1 ^ ^
3795: Callout data = 1
3796: 1 ^ ^
3797: Callout data = 1
3798: 1 ^ ^
3799: Callout data = 1
3800: 1 ^ ^
3801: Callout data = 1
3802: 1 ^ ^
3803: Callout data = 1
3804: 1 ^ ^
3805: Callout data = 1
3806: 1 ^ ^
3807: Callout data = 1
3808: No match
3809:
3810: /(?C)abc/I
3811: Capturing subpattern count = 0
3812: No options
3813: First char = 'a'
3814: Need char = 'c'
3815:
3816: /(?C)^abc/I
3817: Capturing subpattern count = 0
3818: Options: anchored
3819: No first char
3820: No need char
3821:
3822: /(?C)a|b/IS
3823: Capturing subpattern count = 0
3824: No options
3825: No first char
3826: No need char
3827: Subject length lower bound = 1
3828: Starting byte set: a b
3829:
3830: /(?R)/I
3831: Failed: recursive call could loop indefinitely at offset 3
3832:
3833: /(a|(?R))/I
3834: Failed: recursive call could loop indefinitely at offset 6
3835:
3836: /(ab|(bc|(de|(?R))))/I
3837: Failed: recursive call could loop indefinitely at offset 15
3838:
3839: /x(ab|(bc|(de|(?R))))/I
3840: Capturing subpattern count = 3
3841: No options
3842: First char = 'x'
3843: No need char
3844: xab
3845: 0: xab
3846: 1: ab
3847: xbc
3848: 0: xbc
3849: 1: bc
3850: 2: bc
3851: xde
3852: 0: xde
3853: 1: de
3854: 2: de
3855: 3: de
3856: xxab
3857: 0: xxab
3858: 1: xab
3859: 2: xab
3860: 3: xab
3861: xxxab
3862: 0: xxxab
3863: 1: xxab
3864: 2: xxab
3865: 3: xxab
3866: *** Failers
3867: No match
3868: xyab
3869: No match
3870:
3871: /(ab|(bc|(de|(?1))))/I
3872: Failed: recursive call could loop indefinitely at offset 15
3873:
3874: /x(ab|(bc|(de|(?1)x)x)x)/I
3875: Failed: recursive call could loop indefinitely at offset 16
3876:
3877: /^([^()]|\((?1)*\))*$/I
3878: Capturing subpattern count = 1
3879: Options: anchored
3880: No first char
3881: No need char
3882: abc
3883: 0: abc
3884: 1: c
3885: a(b)c
3886: 0: a(b)c
3887: 1: c
3888: a(b(c))d
3889: 0: a(b(c))d
3890: 1: d
3891: *** Failers)
3892: No match
3893: a(b(c)d
3894: No match
3895:
3896: /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3897: Capturing subpattern count = 1
3898: Options: anchored
3899: No first char
3900: Need char = '<'
3901: >abc>123<xyz<
3902: 0: >abc>123<xyz<
3903: 1: 3
3904: >abc>1(2)3<xyz<
3905: 0: >abc>1(2)3<xyz<
3906: 1: 3
3907: >abc>(1(2)3)<xyz<
3908: 0: >abc>(1(2)3)<xyz<
3909: 1: (1(2)3)
3910:
3911: /(a(?1)b)/DZ
3912: ------------------------------------------------------------------
3913: Bra
3914: CBra 1
3915: a
3916: Recurse
3917: b
3918: Ket
3919: Ket
3920: End
3921: ------------------------------------------------------------------
3922: Capturing subpattern count = 1
3923: No options
3924: First char = 'a'
3925: Need char = 'b'
3926:
3927: /(a(?1)+b)/DZ
3928: ------------------------------------------------------------------
3929: Bra
3930: CBra 1
3931: a
3932: Once
3933: Recurse
3934: KetRmax
3935: b
3936: Ket
3937: Ket
3938: End
3939: ------------------------------------------------------------------
3940: Capturing subpattern count = 1
3941: No options
3942: First char = 'a'
3943: Need char = 'b'
3944:
3945: /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3946: Capturing subpattern count = 2
3947: Options: anchored
3948: No first char
3949: No need char
3950: 12
3951: 0: 12
3952: 1: 12
3953: (((2+2)*-3)-7)
3954: 0: (((2+2)*-3)-7)
3955: 1: (((2+2)*-3)-7)
3956: 2: -
3957: -12
3958: 0: -12
3959: 1: -12
3960: *** Failers
3961: No match
3962: ((2+2)*-3)-7)
3963: No match
3964:
3965: /^(x(y|(?1){2})z)/I
3966: Capturing subpattern count = 2
3967: Options: anchored
3968: No first char
3969: No need char
3970: xyz
3971: 0: xyz
3972: 1: xyz
3973: 2: y
3974: xxyzxyzz
3975: 0: xxyzxyzz
3976: 1: xxyzxyzz
3977: 2: xyzxyz
3978: *** Failers
3979: No match
3980: xxyzz
3981: No match
3982: xxyzxyzxyzz
3983: No match
3984:
3985: /((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix
3986: Capturing subpattern count = 2
3987: Options: extended
3988: First char = '<'
3989: Need char = '>'
3990: <>
3991: 0: <>
3992: 1: <>
3993: 2: <>
3994: <abcd>
3995: 0: <abcd>
3996: 1: <abcd>
3997: 2: <abcd>
3998: <abc <123> hij>
3999: 0: <abc <123> hij>
4000: 1: <abc <123> hij>
4001: 2: <abc <123> hij>
4002: <abc <def> hij>
4003: 0: <def>
4004: 1: <def>
4005: 2: <def>
4006: <abc<>def>
4007: 0: <abc<>def>
4008: 1: <abc<>def>
4009: 2: <abc<>def>
4010: <abc<>
4011: 0: <>
4012: 1: <>
4013: 2: <>
4014: *** Failers
4015: No match
4016: <abc
4017: No match
4018:
4019: /(?1)/I
4020: Failed: reference to non-existent subpattern at offset 3
4021:
4022: /((?2)(abc)/I
4023: Failed: missing ) at offset 10
4024:
4025: /^(abc)def(?1)/I
4026: Capturing subpattern count = 1
4027: Options: anchored
4028: No first char
4029: No need char
4030: abcdefabc
4031: 0: abcdefabc
4032: 1: abc
4033:
4034: /^(a|b|c)=(?1)+/I
4035: Capturing subpattern count = 1
4036: Options: anchored
4037: No first char
4038: No need char
4039: a=a
4040: 0: a=a
4041: 1: a
4042: a=b
4043: 0: a=b
4044: 1: a
4045: a=bc
4046: 0: a=bc
4047: 1: a
4048:
4049: /^(a|b|c)=((?1))+/I
4050: Capturing subpattern count = 2
4051: Options: anchored
4052: No first char
4053: No need char
4054: a=a
4055: 0: a=a
4056: 1: a
4057: 2: a
4058: a=b
4059: 0: a=b
4060: 1: a
4061: 2: b
4062: a=bc
4063: 0: a=bc
4064: 1: a
4065: 2: c
4066:
4067: /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4068: ------------------------------------------------------------------
4069: Bra
4070: a
4071: CBra 1
4072: b
4073: Alt
4074: c
4075: Ket
4076: d
4077: CBra 2
4078: e
4079: Ket
4080: Ket
4081: End
4082: ------------------------------------------------------------------
4083: Capturing subpattern count = 2
4084: Named capturing subpatterns:
4085: longername2 2
4086: name1 1
4087: No options
4088: First char = 'a'
4089: Need char = 'e'
4090: abde
4091: 0: abde
4092: 1: b
4093: 2: e
4094: acde
4095: 0: acde
4096: 1: c
4097: 2: e
4098:
4099: /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4100: ------------------------------------------------------------------
4101: Bra
4102: Bra
4103: a
4104: CBra 1
4105: c
4106: CBra 2
4107: d
4108: Ket
4109: Ket
4110: Ket
4111: CBra 3
4112: a
4113: Ket
4114: Ket
4115: End
4116: ------------------------------------------------------------------
4117: Capturing subpattern count = 3
4118: Named capturing subpatterns:
4119: a 3
4120: c 1
4121: d 2
4122: No options
4123: First char = 'a'
4124: Need char = 'a'
4125:
4126: /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4127: ------------------------------------------------------------------
4128: Bra
4129: CBra 1
4130: a
4131: Ket
4132: Any
4133: Any
4134: Any
4135: \1
4136: bbb
4137: Recurse
4138: d
4139: Ket
4140: End
4141: ------------------------------------------------------------------
4142: Capturing subpattern count = 1
4143: Max back reference = 1
4144: Named capturing subpatterns:
4145: a 1
4146: No options
4147: First char = 'a'
4148: Need char = 'd'
4149:
4150: /^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii
4151: Capturing subpattern count = 4
4152: Max back reference = 4
4153: Named capturing subpatterns:
4154: four 4
4155: one 1
4156: three 3
4157: two 2
4158: Options: anchored caseless
4159: No first char
4160: No need char
4161: 1221
4162: 0: 1221
4163: 1: 1221
4164: 2: 1
4165: Satan, oscillate my metallic sonatas!
4166: 0: Satan, oscillate my metallic sonatas!
4167: 1: <unset>
4168: 2: <unset>
4169: 3: Satan, oscillate my metallic sonatas
4170: 4: S
4171: A man, a plan, a canal: Panama!
4172: 0: A man, a plan, a canal: Panama!
4173: 1: <unset>
4174: 2: <unset>
4175: 3: A man, a plan, a canal: Panama
4176: 4: A
4177: Able was I ere I saw Elba.
4178: 0: Able was I ere I saw Elba.
4179: 1: <unset>
4180: 2: <unset>
4181: 3: Able was I ere I saw Elba
4182: 4: A
4183: *** Failers
4184: No match
4185: The quick brown fox
4186: No match
4187:
4188: /((?(R)a|b))\1(?1)?/I
4189: Capturing subpattern count = 1
4190: Max back reference = 1
4191: No options
4192: No first char
4193: No need char
4194: bb
4195: 0: bb
4196: 1: b
4197: bbaa
4198: 0: bba
4199: 1: b
4200:
4201: /(.*)a/Is
4202: Capturing subpattern count = 1
4203: Options: anchored dotall
4204: No first char
4205: Need char = 'a'
4206:
4207: /(.*)a\1/Is
4208: Capturing subpattern count = 1
4209: Max back reference = 1
4210: Options: dotall
4211: No first char
4212: Need char = 'a'
4213:
4214: /(.*)a(b)\2/Is
4215: Capturing subpattern count = 2
4216: Max back reference = 2
4217: Options: anchored dotall
4218: No first char
4219: Need char = 'b'
4220:
4221: /((.*)a|(.*)b)z/Is
4222: Capturing subpattern count = 3
4223: Options: anchored dotall
4224: No first char
4225: Need char = 'z'
4226:
4227: /((.*)a|(.*)b)z\1/Is
4228: Capturing subpattern count = 3
4229: Max back reference = 1
4230: Options: dotall
4231: No first char
4232: Need char = 'z'
4233:
4234: /((.*)a|(.*)b)z\2/Is
4235: Capturing subpattern count = 3
4236: Max back reference = 2
4237: Options: dotall
4238: No first char
4239: Need char = 'z'
4240:
4241: /((.*)a|(.*)b)z\3/Is
4242: Capturing subpattern count = 3
4243: Max back reference = 3
4244: Options: dotall
4245: No first char
4246: Need char = 'z'
4247:
4248: /((.*)a|^(.*)b)z\3/Is
4249: Capturing subpattern count = 3
4250: Max back reference = 3
4251: Options: anchored dotall
4252: No first char
4253: Need char = 'z'
4254:
4255: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4256: Capturing subpattern count = 31
4257: Options: anchored dotall
4258: No first char
4259: No need char
4260:
4261: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4262: Capturing subpattern count = 31
4263: Max back reference = 31
4264: Options: dotall
4265: No first char
4266: No need char
4267:
4268: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4269: Capturing subpattern count = 32
4270: Max back reference = 32
4271: Options: dotall
4272: No first char
4273: No need char
4274:
4275: /(a)(bc)/INDZ
4276: ------------------------------------------------------------------
4277: Bra
4278: Bra
4279: a
4280: Ket
4281: Bra
4282: bc
4283: Ket
4284: Ket
4285: End
4286: ------------------------------------------------------------------
4287: Capturing subpattern count = 0
4288: Options: no_auto_capture
4289: First char = 'a'
4290: Need char = 'c'
4291: abc
4292: 0: abc
4293:
4294: /(?P<one>a)(bc)/INDZ
4295: ------------------------------------------------------------------
4296: Bra
4297: CBra 1
4298: a
4299: Ket
4300: Bra
4301: bc
4302: Ket
4303: Ket
4304: End
4305: ------------------------------------------------------------------
4306: Capturing subpattern count = 1
4307: Named capturing subpatterns:
4308: one 1
4309: Options: no_auto_capture
4310: First char = 'a'
4311: Need char = 'c'
4312: abc
4313: 0: abc
4314: 1: a
4315:
4316: /(a)(?P<named>bc)/INDZ
4317: ------------------------------------------------------------------
4318: Bra
4319: Bra
4320: a
4321: Ket
4322: CBra 1
4323: bc
4324: Ket
4325: Ket
4326: End
4327: ------------------------------------------------------------------
4328: Capturing subpattern count = 1
4329: Named capturing subpatterns:
4330: named 1
4331: Options: no_auto_capture
4332: First char = 'a'
4333: Need char = 'c'
4334:
4335: /(a+)*zz/I
4336: Capturing subpattern count = 1
4337: No options
4338: No first char
4339: Need char = 'z'
4340: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4341: Minimum match() limit = 8
4342: Minimum match() recursion limit = 6
4343: 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4344: 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4345: aaaaaaaaaaaaaz\M
4346: Minimum match() limit = 32768
4347: Minimum match() recursion limit = 42
4348: No match
4349:
4350: /(aaa(?C1)bbb|ab)/I
4351: Capturing subpattern count = 1
4352: No options
4353: First char = 'a'
4354: Need char = 'b'
4355: aaabbb
4356: --->aaabbb
4357: 1 ^ ^ b
4358: 0: aaabbb
4359: 1: aaabbb
4360: aaabbb\C*0
4361: --->aaabbb
4362: 1 ^ ^ b
4363: 0: aaabbb
4364: 1: aaabbb
4365: aaabbb\C*1
4366: --->aaabbb
4367: 1 ^ ^ b
4368: Callout data = 1
4369: 0: ab
4370: 1: ab
4371: aaabbb\C*-1
4372: --->aaabbb
4373: 1 ^ ^ b
4374: Callout data = -1
4375: No match
4376:
4377: /ab(?P<one>cd)ef(?P<two>gh)/I
4378: Capturing subpattern count = 2
4379: Named capturing subpatterns:
4380: one 1
4381: two 2
4382: No options
4383: First char = 'a'
4384: Need char = 'h'
4385: abcdefgh
4386: 0: abcdefgh
4387: 1: cd
4388: 2: gh
4389: abcdefgh\C1\Gtwo
4390: 0: abcdefgh
4391: 1: cd
4392: 2: gh
4393: 1C cd (2)
4394: G gh (2) two
4395: abcdefgh\Cone\Ctwo
4396: 0: abcdefgh
4397: 1: cd
4398: 2: gh
4399: C cd (2) one
4400: C gh (2) two
4401: abcdefgh\Cthree
4402: no parentheses with name "three"
4403: 0: abcdefgh
4404: 1: cd
4405: 2: gh
4406: copy substring three failed -7
4407:
4408: /(?P<Tes>)(?P<Test>)/DZ
4409: ------------------------------------------------------------------
4410: Bra
4411: CBra 1
4412: Ket
4413: CBra 2
4414: Ket
4415: Ket
4416: End
4417: ------------------------------------------------------------------
4418: Capturing subpattern count = 2
4419: Named capturing subpatterns:
4420: Tes 1
4421: Test 2
4422: No options
4423: No first char
4424: No need char
4425:
4426: /(?P<Test>)(?P<Tes>)/DZ
4427: ------------------------------------------------------------------
4428: Bra
4429: CBra 1
4430: Ket
4431: CBra 2
4432: Ket
4433: Ket
4434: End
4435: ------------------------------------------------------------------
4436: Capturing subpattern count = 2
4437: Named capturing subpatterns:
4438: Tes 2
4439: Test 1
4440: No options
4441: No first char
4442: No need char
4443:
4444: /(?P<Z>zz)(?P<A>aa)/I
4445: Capturing subpattern count = 2
4446: Named capturing subpatterns:
4447: A 2
4448: Z 1
4449: No options
4450: First char = 'z'
4451: Need char = 'a'
4452: zzaa\CZ
4453: 0: zzaa
4454: 1: zz
4455: 2: aa
4456: C zz (2) Z
4457: zzaa\CA
4458: 0: zzaa
4459: 1: zz
4460: 2: aa
4461: C aa (2) A
4462:
4463: /(?P<x>eks)(?P<x>eccs)/I
4464: Failed: two named subpatterns have the same name at offset 15
4465:
4466: /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
4467: Failed: two named subpatterns have the same name at offset 30
4468:
4469: "\[((?P<elem>\d+)(,(?P>elem))*)\]"I
4470: Capturing subpattern count = 3
4471: Named capturing subpatterns:
4472: elem 2
4473: No options
4474: First char = '['
4475: Need char = ']'
4476: [10,20,30,5,5,4,4,2,43,23,4234]
4477: 0: [10,20,30,5,5,4,4,2,43,23,4234]
4478: 1: 10,20,30,5,5,4,4,2,43,23,4234
4479: 2: 10
4480: 3: ,4234
4481: *** Failers
4482: No match
4483: []
4484: No match
4485:
4486: "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
4487: Capturing subpattern count = 3
4488: Named capturing subpatterns:
4489: elem 2
4490: No options
4491: First char = '['
4492: Need char = ']'
4493: [10,20,30,5,5,4,4,2,43,23,4234]
4494: 0: [10,20,30,5,5,4,4,2,43,23,4234]
4495: 1: 10,20,30,5,5,4,4,2,43,23,4234
4496: 2: 10
4497: 3: ,4234
4498: []
4499: 0: []
4500:
4501: /(a(b(?2)c))?/DZ
4502: ------------------------------------------------------------------
4503: Bra
4504: Brazero
4505: CBra 1
4506: a
4507: CBra 2
4508: b
4509: Recurse
4510: c
4511: Ket
4512: Ket
4513: Ket
4514: End
4515: ------------------------------------------------------------------
4516: Capturing subpattern count = 2
4517: No options
4518: No first char
4519: No need char
4520:
4521: /(a(b(?2)c))*/DZ
4522: ------------------------------------------------------------------
4523: Bra
4524: Brazero
4525: CBra 1
4526: a
4527: CBra 2
4528: b
4529: Recurse
4530: c
4531: Ket
4532: KetRmax
4533: Ket
4534: End
4535: ------------------------------------------------------------------
4536: Capturing subpattern count = 2
4537: No options
4538: No first char
4539: No need char
4540:
4541: /(a(b(?2)c)){0,2}/DZ
4542: ------------------------------------------------------------------
4543: Bra
4544: Brazero
4545: Bra
4546: CBra 1
4547: a
4548: CBra 2
4549: b
4550: Recurse
4551: c
4552: Ket
4553: Ket
4554: Brazero
4555: CBra 1
4556: a
4557: CBra 2
4558: b
4559: Recurse
4560: c
4561: Ket
4562: Ket
4563: Ket
4564: Ket
4565: End
4566: ------------------------------------------------------------------
4567: Capturing subpattern count = 2
4568: No options
4569: No first char
4570: No need char
4571:
4572: /[ab]{1}+/DZ
4573: ------------------------------------------------------------------
4574: Bra
4575: Once
4576: [ab]{1,1}
4577: Ket
4578: Ket
4579: End
4580: ------------------------------------------------------------------
4581: Capturing subpattern count = 0
4582: No options
4583: No first char
4584: No need char
4585:
4586: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4587: Capturing subpattern count = 3
4588: Options: caseless
4589: No first char
4590: Need char = 'g' (caseless)
4591: Baby Bjorn Active Carrier - With free SHIPPING!!
4592: 0: Baby Bjorn Active Carrier - With free SHIPPING!!
4593: 1: Baby Bjorn Active Carrier - With free SHIPPING!!
4594:
4595: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4596: Capturing subpattern count = 3
4597: Options: caseless
4598: No first char
4599: Need char = 'g' (caseless)
4600: Subject length lower bound = 8
4601: No set of starting bytes
4602: Baby Bjorn Active Carrier - With free SHIPPING!!
4603: 0: Baby Bjorn Active Carrier - With free SHIPPING!!
4604: 1: Baby Bjorn Active Carrier - With free SHIPPING!!
4605:
4606: /a*.*b/ISDZ
4607: ------------------------------------------------------------------
4608: Bra
4609: a*
4610: Any*
4611: b
4612: Ket
4613: End
4614: ------------------------------------------------------------------
4615: Capturing subpattern count = 0
4616: No options
4617: No first char
4618: Need char = 'b'
4619: Subject length lower bound = 1
4620: No set of starting bytes
4621:
4622: /(a|b)*.?c/ISDZ
4623: ------------------------------------------------------------------
4624: Bra
4625: Brazero
4626: CBra 1
4627: a
4628: Alt
4629: b
4630: KetRmax
4631: Any?
4632: c
4633: Ket
4634: End
4635: ------------------------------------------------------------------
4636: Capturing subpattern count = 1
4637: No options
4638: No first char
4639: Need char = 'c'
4640: Subject length lower bound = 1
4641: No set of starting bytes
4642:
4643: /abc(?C255)de(?C)f/DZ
4644: ------------------------------------------------------------------
4645: Bra
4646: abc
4647: Callout 255 10 1
4648: de
4649: Callout 0 16 1
4650: f
4651: Ket
4652: End
4653: ------------------------------------------------------------------
4654: Capturing subpattern count = 0
4655: No options
4656: First char = 'a'
4657: Need char = 'f'
4658:
4659: /abcde/ICDZ
4660: ------------------------------------------------------------------
4661: Bra
4662: Callout 255 0 1
4663: a
4664: Callout 255 1 1
4665: b
4666: Callout 255 2 1
4667: c
4668: Callout 255 3 1
4669: d
4670: Callout 255 4 1
4671: e
4672: Callout 255 5 0
4673: Ket
4674: End
4675: ------------------------------------------------------------------
4676: Capturing subpattern count = 0
4677: Options:
4678: First char = 'a'
4679: Need char = 'e'
4680: abcde
4681: --->abcde
4682: +0 ^ a
4683: +1 ^^ b
4684: +2 ^ ^ c
4685: +3 ^ ^ d
4686: +4 ^ ^ e
4687: +5 ^ ^
4688: 0: abcde
4689: abcdfe
4690: --->abcdfe
4691: +0 ^ a
4692: +1 ^^ b
4693: +2 ^ ^ c
4694: +3 ^ ^ d
4695: +4 ^ ^ e
4696: No match
4697:
4698: /a*b/ICDZS
4699: ------------------------------------------------------------------
4700: Bra
4701: Callout 255 0 2
4702: a*+
4703: Callout 255 2 1
4704: b
4705: Callout 255 3 0
4706: Ket
4707: End
4708: ------------------------------------------------------------------
4709: Capturing subpattern count = 0
4710: Options:
4711: No first char
4712: Need char = 'b'
4713: Subject length lower bound = 1
4714: Starting byte set: a b
4715: ab
4716: --->ab
4717: +0 ^ a*
4718: +2 ^^ b
4719: +3 ^ ^
4720: 0: ab
4721: aaaab
4722: --->aaaab
4723: +0 ^ a*
4724: +2 ^ ^ b
4725: +3 ^ ^
4726: 0: aaaab
4727: aaaacb
4728: --->aaaacb
4729: +0 ^ a*
4730: +2 ^ ^ b
4731: +0 ^ a*
4732: +2 ^ ^ b
4733: +0 ^ a*
4734: +2 ^ ^ b
4735: +0 ^ a*
4736: +2 ^^ b
4737: +0 ^ a*
4738: +2 ^ b
4739: +3 ^^
4740: 0: b
4741:
4742: /a*b/ICDZSS
4743: ------------------------------------------------------------------
4744: Bra
4745: Callout 255 0 2
4746: a*+
4747: Callout 255 2 1
4748: b
4749: Callout 255 3 0
4750: Ket
4751: End
4752: ------------------------------------------------------------------
4753: Capturing subpattern count = 0
4754: Options:
4755: No first char
4756: Need char = 'b'
4757: ab
4758: --->ab
4759: +0 ^ a*
4760: +2 ^^ b
4761: +3 ^ ^
4762: 0: ab
4763: aaaab
4764: --->aaaab
4765: +0 ^ a*
4766: +2 ^ ^ b
4767: +3 ^ ^
4768: 0: aaaab
4769: aaaacb
4770: --->aaaacb
4771: +0 ^ a*
4772: +2 ^ ^ b
4773: +0 ^ a*
4774: +2 ^ ^ b
4775: +0 ^ a*
4776: +2 ^ ^ b
4777: +0 ^ a*
4778: +2 ^^ b
4779: +0 ^ a*
4780: +2 ^ b
4781: +0 ^ a*
4782: +2 ^ b
4783: +3 ^^
4784: 0: b
4785:
4786: /a+b/ICDZ
4787: ------------------------------------------------------------------
4788: Bra
4789: Callout 255 0 2
4790: a++
4791: Callout 255 2 1
4792: b
4793: Callout 255 3 0
4794: Ket
4795: End
4796: ------------------------------------------------------------------
4797: Capturing subpattern count = 0
4798: Options:
4799: First char = 'a'
4800: Need char = 'b'
4801: ab
4802: --->ab
4803: +0 ^ a+
4804: +2 ^^ b
4805: +3 ^ ^
4806: 0: ab
4807: aaaab
4808: --->aaaab
4809: +0 ^ a+
4810: +2 ^ ^ b
4811: +3 ^ ^
4812: 0: aaaab
4813: aaaacb
4814: --->aaaacb
4815: +0 ^ a+
4816: +2 ^ ^ b
4817: +0 ^ a+
4818: +2 ^ ^ b
4819: +0 ^ a+
4820: +2 ^ ^ b
4821: +0 ^ a+
4822: +2 ^^ b
4823: No match
4824:
4825: /(abc|def)x/ICDZS
4826: ------------------------------------------------------------------
4827: Bra
4828: Callout 255 0 9
4829: CBra 1
4830: Callout 255 1 1
4831: a
4832: Callout 255 2 1
4833: b
4834: Callout 255 3 1
4835: c
4836: Callout 255 4 0
4837: Alt
4838: Callout 255 5 1
4839: d
4840: Callout 255 6 1
4841: e
4842: Callout 255 7 1
4843: f
4844: Callout 255 8 0
4845: Ket
4846: Callout 255 9 1
4847: x
4848: Callout 255 10 0
4849: Ket
4850: End
4851: ------------------------------------------------------------------
4852: Capturing subpattern count = 1
4853: Options:
4854: No first char
4855: Need char = 'x'
4856: Subject length lower bound = 4
4857: Starting byte set: a d
4858: abcx
4859: --->abcx
4860: +0 ^ (abc|def)
4861: +1 ^ a
4862: +2 ^^ b
4863: +3 ^ ^ c
4864: +4 ^ ^ |
4865: +9 ^ ^ x
4866: +10 ^ ^
4867: 0: abcx
4868: 1: abc
4869: defx
4870: --->defx
4871: +0 ^ (abc|def)
4872: +1 ^ a
4873: +5 ^ d
4874: +6 ^^ e
4875: +7 ^ ^ f
4876: +8 ^ ^ )
4877: +9 ^ ^ x
4878: +10 ^ ^
4879: 0: defx
4880: 1: def
4881: ** Failers
4882: No match
4883: abcdefzx
4884: --->abcdefzx
4885: +0 ^ (abc|def)
4886: +1 ^ a
4887: +2 ^^ b
4888: +3 ^ ^ c
4889: +4 ^ ^ |
4890: +9 ^ ^ x
4891: +5 ^ d
4892: +0 ^ (abc|def)
4893: +1 ^ a
4894: +5 ^ d
4895: +6 ^^ e
4896: +7 ^ ^ f
4897: +8 ^ ^ )
4898: +9 ^ ^ x
4899: No match
4900:
4901: /(abc|def)x/ICDZSS
4902: ------------------------------------------------------------------
4903: Bra
4904: Callout 255 0 9
4905: CBra 1
4906: Callout 255 1 1
4907: a
4908: Callout 255 2 1
4909: b
4910: Callout 255 3 1
4911: c
4912: Callout 255 4 0
4913: Alt
4914: Callout 255 5 1
4915: d
4916: Callout 255 6 1
4917: e
4918: Callout 255 7 1
4919: f
4920: Callout 255 8 0
4921: Ket
4922: Callout 255 9 1
4923: x
4924: Callout 255 10 0
4925: Ket
4926: End
4927: ------------------------------------------------------------------
4928: Capturing subpattern count = 1
4929: Options:
4930: No first char
4931: Need char = 'x'
4932: abcx
4933: --->abcx
4934: +0 ^ (abc|def)
4935: +1 ^ a
4936: +2 ^^ b
4937: +3 ^ ^ c
4938: +4 ^ ^ |
4939: +9 ^ ^ x
4940: +10 ^ ^
4941: 0: abcx
4942: 1: abc
4943: defx
4944: --->defx
4945: +0 ^ (abc|def)
4946: +1 ^ a
4947: +5 ^ d
4948: +6 ^^ e
4949: +7 ^ ^ f
4950: +8 ^ ^ )
4951: +9 ^ ^ x
4952: +10 ^ ^
4953: 0: defx
4954: 1: def
4955: ** Failers
4956: No match
4957: abcdefzx
4958: --->abcdefzx
4959: +0 ^ (abc|def)
4960: +1 ^ a
4961: +2 ^^ b
4962: +3 ^ ^ c
4963: +4 ^ ^ |
4964: +9 ^ ^ x
4965: +5 ^ d
4966: +0 ^ (abc|def)
4967: +1 ^ a
4968: +5 ^ d
4969: +0 ^ (abc|def)
4970: +1 ^ a
4971: +5 ^ d
4972: +0 ^ (abc|def)
4973: +1 ^ a
4974: +5 ^ d
4975: +6 ^^ e
4976: +7 ^ ^ f
4977: +8 ^ ^ )
4978: +9 ^ ^ x
4979: +0 ^ (abc|def)
4980: +1 ^ a
4981: +5 ^ d
4982: +0 ^ (abc|def)
4983: +1 ^ a
4984: +5 ^ d
4985: +0 ^ (abc|def)
4986: +1 ^ a
4987: +5 ^ d
4988: +0 ^ (abc|def)
4989: +1 ^ a
4990: +5 ^ d
4991: No match
4992:
4993: /(ab|cd){3,4}/IC
4994: Capturing subpattern count = 1
4995: Options:
4996: No first char
4997: No need char
4998: ababab
4999: --->ababab
5000: +0 ^ (ab|cd){3,4}
5001: +1 ^ a
5002: +2 ^^ b
5003: +3 ^ ^ |
5004: +1 ^ ^ a
5005: +2 ^ ^ b
5006: +3 ^ ^ |
5007: +1 ^ ^ a
5008: +2 ^ ^ b
5009: +3 ^ ^ |
5010: +1 ^ ^ a
5011: +4 ^ ^ c
5012: +12 ^ ^
5013: 0: ababab
5014: 1: ab
5015: abcdabcd
5016: --->abcdabcd
5017: +0 ^ (ab|cd){3,4}
5018: +1 ^ a
5019: +2 ^^ b
5020: +3 ^ ^ |
5021: +1 ^ ^ a
5022: +4 ^ ^ c
5023: +5 ^ ^ d
5024: +6 ^ ^ )
5025: +1 ^ ^ a
5026: +2 ^ ^ b
5027: +3 ^ ^ |
5028: +1 ^ ^ a
5029: +4 ^ ^ c
5030: +5 ^ ^ d
5031: +6 ^ ^ )
5032: +12 ^ ^
5033: 0: abcdabcd
5034: 1: cd
5035: abcdcdcdcdcd
5036: --->abcdcdcdcdcd
5037: +0 ^ (ab|cd){3,4}
5038: +1 ^ a
5039: +2 ^^ b
5040: +3 ^ ^ |
5041: +1 ^ ^ a
5042: +4 ^ ^ c
5043: +5 ^ ^ d
5044: +6 ^ ^ )
5045: +1 ^ ^ a
5046: +4 ^ ^ c
5047: +5 ^ ^ d
5048: +6 ^ ^ )
5049: +1 ^ ^ a
5050: +4 ^ ^ c
5051: +5 ^ ^ d
5052: +6 ^ ^ )
5053: +12 ^ ^
5054: 0: abcdcdcd
5055: 1: cd
5056:
5057: /([ab]{,4}c|xy)/ICDZS
5058: ------------------------------------------------------------------
5059: Bra
5060: Callout 255 0 14
5061: CBra 1
5062: Callout 255 1 4
5063: [ab]
5064: Callout 255 5 1
5065: {
5066: Callout 255 6 1
5067: ,
5068: Callout 255 7 1
5069: 4
5070: Callout 255 8 1
5071: }
5072: Callout 255 9 1
5073: c
5074: Callout 255 10 0
5075: Alt
5076: Callout 255 11 1
5077: x
5078: Callout 255 12 1
5079: y
5080: Callout 255 13 0
5081: Ket
5082: Callout 255 14 0
5083: Ket
5084: End
5085: ------------------------------------------------------------------
5086: Capturing subpattern count = 1
5087: Options:
5088: No first char
5089: No need char
5090: Subject length lower bound = 2
5091: Starting byte set: a b x
5092: Note: that { does NOT introduce a quantifier
5093: --->Note: that { does NOT introduce a quantifier
5094: +0 ^ ([ab]{,4}c|xy)
5095: +1 ^ [ab]
5096: +5 ^^ {
5097: +11 ^ x
5098: +0 ^ ([ab]{,4}c|xy)
5099: +1 ^ [ab]
5100: +5 ^^ {
5101: +11 ^ x
5102: +0 ^ ([ab]{,4}c|xy)
5103: +1 ^ [ab]
5104: +5 ^^ {
5105: +11 ^ x
5106: No match
5107:
5108: /([ab]{,4}c|xy)/ICDZSS
5109: ------------------------------------------------------------------
5110: Bra
5111: Callout 255 0 14
5112: CBra 1
5113: Callout 255 1 4
5114: [ab]
5115: Callout 255 5 1
5116: {
5117: Callout 255 6 1
5118: ,
5119: Callout 255 7 1
5120: 4
5121: Callout 255 8 1
5122: }
5123: Callout 255 9 1
5124: c
5125: Callout 255 10 0
5126: Alt
5127: Callout 255 11 1
5128: x
5129: Callout 255 12 1
5130: y
5131: Callout 255 13 0
5132: Ket
5133: Callout 255 14 0
5134: Ket
5135: End
5136: ------------------------------------------------------------------
5137: Capturing subpattern count = 1
5138: Options:
5139: No first char
5140: No need char
5141: Note: that { does NOT introduce a quantifier
5142: --->Note: that { does NOT introduce a quantifier
5143: +0 ^ ([ab]{,4}c|xy)
5144: +1 ^ [ab]
5145: +11 ^ x
5146: +0 ^ ([ab]{,4}c|xy)
5147: +1 ^ [ab]
5148: +11 ^ x
5149: +0 ^ ([ab]{,4}c|xy)
5150: +1 ^ [ab]
5151: +11 ^ x
5152: +0 ^ ([ab]{,4}c|xy)
5153: +1 ^ [ab]
5154: +11 ^ x
5155: +0 ^ ([ab]{,4}c|xy)
5156: +1 ^ [ab]
5157: +11 ^ x
5158: +0 ^ ([ab]{,4}c|xy)
5159: +1 ^ [ab]
5160: +11 ^ x
5161: +0 ^ ([ab]{,4}c|xy)
5162: +1 ^ [ab]
5163: +11 ^ x
5164: +0 ^ ([ab]{,4}c|xy)
5165: +1 ^ [ab]
5166: +11 ^ x
5167: +0 ^ ([ab]{,4}c|xy)
5168: +1 ^ [ab]
5169: +5 ^^ {
5170: +11 ^ x
5171: +0 ^ ([ab]{,4}c|xy)
5172: +1 ^ [ab]
5173: +11 ^ x
5174: +0 ^ ([ab]{,4}c|xy)
5175: +1 ^ [ab]
5176: +11 ^ x
5177: +0 ^ ([ab]{,4}c|xy)
5178: +1 ^ [ab]
5179: +11 ^ x
5180: +0 ^ ([ab]{,4}c|xy)
5181: +1 ^ [ab]
5182: +11 ^ x
5183: +0 ^ ([ab]{,4}c|xy)
5184: +1 ^ [ab]
5185: +11 ^ x
5186: +0 ^ ([ab]{,4}c|xy)
5187: +1 ^ [ab]
5188: +11 ^ x
5189: +0 ^ ([ab]{,4}c|xy)
5190: +1 ^ [ab]
5191: +11 ^ x
5192: +0 ^ ([ab]{,4}c|xy)
5193: +1 ^ [ab]
5194: +11 ^ x
5195: +0 ^ ([ab]{,4}c|xy)
5196: +1 ^ [ab]
5197: +11 ^ x
5198: +0 ^ ([ab]{,4}c|xy)
5199: +1 ^ [ab]
5200: +11 ^ x
5201: +0 ^ ([ab]{,4}c|xy)
5202: +1 ^ [ab]
5203: +11 ^ x
5204: +0 ^ ([ab]{,4}c|xy)
5205: +1 ^ [ab]
5206: +11 ^ x
5207: +0 ^ ([ab]{,4}c|xy)
5208: +1 ^ [ab]
5209: +11 ^ x
5210: +0 ^ ([ab]{,4}c|xy)
5211: +1 ^ [ab]
5212: +11 ^ x
5213: +0 ^ ([ab]{,4}c|xy)
5214: +1 ^ [ab]
5215: +11 ^ x
5216: +0 ^ ([ab]{,4}c|xy)
5217: +1 ^ [ab]
5218: +11 ^ x
5219: +0 ^ ([ab]{,4}c|xy)
5220: +1 ^ [ab]
5221: +11 ^ x
5222: +0 ^ ([ab]{,4}c|xy)
5223: +1 ^ [ab]
5224: +11 ^ x
5225: +0 ^ ([ab]{,4}c|xy)
5226: +1 ^ [ab]
5227: +11 ^ x
5228: +0 ^ ([ab]{,4}c|xy)
5229: +1 ^ [ab]
5230: +11 ^ x
5231: +0 ^ ([ab]{,4}c|xy)
5232: +1 ^ [ab]
5233: +11 ^ x
5234: +0 ^ ([ab]{,4}c|xy)
5235: +1 ^ [ab]
5236: +11 ^ x
5237: +0 ^ ([ab]{,4}c|xy)
5238: +1 ^ [ab]
5239: +11 ^ x
5240: +0 ^ ([ab]{,4}c|xy)
5241: +1 ^ [ab]
5242: +5 ^^ {
5243: +11 ^ x
5244: +0 ^ ([ab]{,4}c|xy)
5245: +1 ^ [ab]
5246: +11 ^ x
5247: +0 ^ ([ab]{,4}c|xy)
5248: +1 ^ [ab]
5249: +11 ^ x
5250: +0 ^ ([ab]{,4}c|xy)
5251: +1 ^ [ab]
5252: +11 ^ x
5253: +0 ^ ([ab]{,4}c|xy)
5254: +1 ^ [ab]
5255: +5 ^^ {
5256: +11 ^ x
5257: +0 ^ ([ab]{,4}c|xy)
5258: +1 ^ [ab]
5259: +11 ^ x
5260: +0 ^ ([ab]{,4}c|xy)
5261: +1 ^ [ab]
5262: +11 ^ x
5263: +0 ^ ([ab]{,4}c|xy)
5264: +1 ^ [ab]
5265: +11 ^ x
5266: +0 ^ ([ab]{,4}c|xy)
5267: +1 ^ [ab]
5268: +11 ^ x
5269: +0 ^ ([ab]{,4}c|xy)
5270: +1 ^ [ab]
5271: +11 ^ x
5272: +0 ^ ([ab]{,4}c|xy)
5273: +1 ^ [ab]
5274: +11 ^ x
5275: +0 ^ ([ab]{,4}c|xy)
5276: +1 ^ [ab]
5277: +11 ^ x
5278: +0 ^ ([ab]{,4}c|xy)
5279: +1 ^ [ab]
5280: +11 ^ x
5281: No match
5282:
5283: /([ab]{1,4}c|xy){4,5}?123/ICDZ
5284: ------------------------------------------------------------------
5285: Bra
5286: Callout 255 0 21
5287: CBra 1
5288: Callout 255 1 9
5289: [ab]{1,4}
5290: Callout 255 10 1
5291: c
5292: Callout 255 11 0
5293: Alt
5294: Callout 255 12 1
5295: x
5296: Callout 255 13 1
5297: y
5298: Callout 255 14 0
5299: Ket
5300: CBra 1
5301: Callout 255 1 9
5302: [ab]{1,4}
5303: Callout 255 10 1
5304: c
5305: Callout 255 11 0
5306: Alt
5307: Callout 255 12 1
5308: x
5309: Callout 255 13 1
5310: y
5311: Callout 255 14 0
5312: Ket
5313: CBra 1
5314: Callout 255 1 9
5315: [ab]{1,4}
5316: Callout 255 10 1
5317: c
5318: Callout 255 11 0
5319: Alt
5320: Callout 255 12 1
5321: x
5322: Callout 255 13 1
5323: y
5324: Callout 255 14 0
5325: Ket
5326: CBra 1
5327: Callout 255 1 9
5328: [ab]{1,4}
5329: Callout 255 10 1
5330: c
5331: Callout 255 11 0
5332: Alt
5333: Callout 255 12 1
5334: x
5335: Callout 255 13 1
5336: y
5337: Callout 255 14 0
5338: Ket
5339: Braminzero
5340: CBra 1
5341: Callout 255 1 9
5342: [ab]{1,4}
5343: Callout 255 10 1
5344: c
5345: Callout 255 11 0
5346: Alt
5347: Callout 255 12 1
5348: x
5349: Callout 255 13 1
5350: y
5351: Callout 255 14 0
5352: Ket
5353: Callout 255 21 1
5354: 1
5355: Callout 255 22 1
5356: 2
5357: Callout 255 23 1
5358: 3
5359: Callout 255 24 0
5360: Ket
5361: End
5362: ------------------------------------------------------------------
5363: Capturing subpattern count = 1
5364: Options:
5365: No first char
5366: Need char = '3'
5367: aacaacaacaacaac123
5368: --->aacaacaacaacaac123
5369: +0 ^ ([ab]{1,4}c|xy){4,5}?
5370: +1 ^ [ab]{1,4}
5371: +10 ^ ^ c
5372: +11 ^ ^ |
5373: +1 ^ ^ [ab]{1,4}
5374: +10 ^ ^ c
5375: +11 ^ ^ |
5376: +1 ^ ^ [ab]{1,4}
5377: +10 ^ ^ c
5378: +11 ^ ^ |
5379: +1 ^ ^ [ab]{1,4}
5380: +10 ^ ^ c
5381: +11 ^ ^ |
5382: +21 ^ ^ 1
5383: +1 ^ ^ [ab]{1,4}
5384: +10 ^ ^ c
5385: +11 ^ ^ |
5386: +21 ^ ^ 1
5387: +22 ^ ^ 2
5388: +23 ^ ^ 3
5389: +24 ^ ^
5390: 0: aacaacaacaacaac123
5391: 1: aac
5392:
5393: /\b.*/I
5394: Capturing subpattern count = 0
5395: No options
5396: No first char
5397: No need char
5398: ab cd\>1
5399: 0: cd
5400:
5401: /\b.*/Is
5402: Capturing subpattern count = 0
5403: Options: dotall
5404: No first char
5405: No need char
5406: ab cd\>1
5407: 0: cd
5408:
5409: /(?!.bcd).*/I
5410: Capturing subpattern count = 0
5411: No options
5412: No first char
5413: No need char
5414: Xbcd12345
5415: 0: bcd12345
5416:
5417: /abcde/I
5418: Capturing subpattern count = 0
5419: No options
5420: First char = 'a'
5421: Need char = 'e'
5422: ab\P
5423: Partial match: ab
5424: abc\P
5425: Partial match: abc
5426: abcd\P
5427: Partial match: abcd
5428: abcde\P
5429: 0: abcde
5430: the quick brown abc\P
5431: Partial match: abc
5432: ** Failers\P
5433: No match
5434: the quick brown abxyz fox\P
5435: No match
5436:
5437: "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
5438: Capturing subpattern count = 3
5439: Options: anchored
5440: No first char
5441: Need char = '/'
5442: 13/05/04\P
5443: 0: 13/05/04
5444: 1: 13
5445: 2: 05
5446: 13/5/2004\P
5447: 0: 13/5/2004
5448: 1: 13
5449: 2: 5
5450: 3: 20
5451: 02/05/09\P
5452: 0: 02/05/09
5453: 1: 02
5454: 2: 05
5455: 1\P
5456: Partial match: 1
5457: 1/2\P
5458: Partial match: 1/2
5459: 1/2/0\P
5460: Partial match: 1/2/0
5461: 1/2/04\P
5462: 0: 1/2/04
5463: 1: 1
5464: 2: 2
5465: 0\P
5466: Partial match: 0
5467: 02/\P
5468: Partial match: 02/
5469: 02/0\P
5470: Partial match: 02/0
5471: 02/1\P
5472: Partial match: 02/1
5473: ** Failers\P
5474: No match
5475: \P
5476: No match
5477: 123\P
5478: No match
5479: 33/4/04\P
5480: No match
5481: 3/13/04\P
5482: No match
5483: 0/1/2003\P
5484: No match
5485: 0/\P
5486: No match
5487: 02/0/\P
5488: No match
5489: 02/13\P
5490: No match
5491:
5492: /0{0,2}ABC/I
5493: Capturing subpattern count = 0
5494: No options
5495: No first char
5496: Need char = 'C'
5497:
5498: /\d{3,}ABC/I
5499: Capturing subpattern count = 0
5500: No options
5501: No first char
5502: Need char = 'C'
5503:
5504: /\d*ABC/I
5505: Capturing subpattern count = 0
5506: No options
5507: No first char
5508: Need char = 'C'
5509:
5510: /[abc]+DE/I
5511: Capturing subpattern count = 0
5512: No options
5513: No first char
5514: Need char = 'E'
5515:
5516: /[abc]?123/I
5517: Capturing subpattern count = 0
5518: No options
5519: No first char
5520: Need char = '3'
5521: 123\P
5522: 0: 123
5523: a\P
5524: Partial match: a
5525: b\P
5526: Partial match: b
5527: c\P
5528: Partial match: c
5529: c12\P
5530: Partial match: c12
5531: c123\P
5532: 0: c123
5533:
5534: /^(?:\d){3,5}X/I
5535: Capturing subpattern count = 0
5536: Options: anchored
5537: No first char
5538: Need char = 'X'
5539: 1\P
5540: Partial match: 1
5541: 123\P
5542: Partial match: 123
5543: 123X
5544: 0: 123X
5545: 1234\P
5546: Partial match: 1234
5547: 1234X
5548: 0: 1234X
5549: 12345\P
5550: Partial match: 12345
5551: 12345X
5552: 0: 12345X
5553: *** Failers
5554: No match
5555: 1X
5556: No match
5557: 123456\P
5558: No match
5559:
5560: /abc/IS>testsavedregex
5561: Capturing subpattern count = 0
5562: No options
5563: First char = 'a'
5564: Need char = 'c'
5565: Subject length lower bound = 3
5566: No set of starting bytes
5567: Compiled pattern written to testsavedregex
5568: Study data written to testsavedregex
5569: <testsavedregex
5570: Compiled pattern loaded from testsavedregex
5571: Study data loaded from testsavedregex
5572: abc
5573: 0: abc
5574: ** Failers
5575: No match
5576: bca
5577: No match
5578:
5579: /abc/ISS>testsavedregex
5580: Capturing subpattern count = 0
5581: No options
5582: First char = 'a'
5583: Need char = 'c'
5584: Compiled pattern written to testsavedregex
5585: <testsavedregex
5586: Compiled pattern loaded from testsavedregex
5587: No study data
5588: abc
5589: 0: abc
5590: ** Failers
5591: No match
5592: bca
5593: No match
5594:
5595: /abc/IFS>testsavedregex
5596: Capturing subpattern count = 0
5597: No options
5598: First char = 'a'
5599: Need char = 'c'
5600: Subject length lower bound = 3
5601: No set of starting bytes
5602: Compiled pattern written to testsavedregex
5603: Study data written to testsavedregex
5604: <testsavedregex
5605: Compiled pattern (byte-inverted) loaded from testsavedregex
5606: Study data loaded from testsavedregex
5607: abc
5608: 0: abc
5609: ** Failers
5610: No match
5611: bca
5612: No match
5613:
5614: /abc/IFSS>testsavedregex
5615: Capturing subpattern count = 0
5616: No options
5617: First char = 'a'
5618: Need char = 'c'
5619: Compiled pattern written to testsavedregex
5620: <testsavedregex
5621: Compiled pattern (byte-inverted) loaded from testsavedregex
5622: No study data
5623: abc
5624: 0: abc
5625: ** Failers
5626: No match
5627: bca
5628: No match
5629:
5630: /(a|b)/IS>testsavedregex
5631: Capturing subpattern count = 1
5632: No options
5633: No first char
5634: No need char
5635: Subject length lower bound = 1
5636: Starting byte set: a b
5637: Compiled pattern written to testsavedregex
5638: Study data written to testsavedregex
5639: <testsavedregex
5640: Compiled pattern loaded from testsavedregex
5641: Study data loaded from testsavedregex
5642: abc
5643: 0: a
5644: 1: a
5645: ** Failers
5646: 0: a
5647: 1: a
5648: def
5649: No match
5650:
5651: /(a|b)/ISS>testsavedregex
5652: Capturing subpattern count = 1
5653: No options
5654: No first char
5655: No need char
5656: Compiled pattern written to testsavedregex
5657: <testsavedregex
5658: Compiled pattern loaded from testsavedregex
5659: No study data
5660: abc
5661: 0: a
5662: 1: a
5663: ** Failers
5664: 0: a
5665: 1: a
5666: def
5667: No match
5668:
5669: /(a|b)/ISF>testsavedregex
5670: Capturing subpattern count = 1
5671: No options
5672: No first char
5673: No need char
5674: Subject length lower bound = 1
5675: Starting byte set: a b
5676: Compiled pattern written to testsavedregex
5677: Study data written to testsavedregex
5678: <testsavedregex
5679: Compiled pattern (byte-inverted) loaded from testsavedregex
5680: Study data loaded from testsavedregex
5681: abc
5682: 0: a
5683: 1: a
5684: ** Failers
5685: 0: a
5686: 1: a
5687: def
5688: No match
5689:
5690: /(a|b)/ISSF>testsavedregex
5691: Capturing subpattern count = 1
5692: No options
5693: No first char
5694: No need char
5695: Compiled pattern written to testsavedregex
5696: <testsavedregex
5697: Compiled pattern (byte-inverted) loaded from testsavedregex
5698: No study data
5699: abc
5700: 0: a
5701: 1: a
5702: ** Failers
5703: 0: a
5704: 1: a
5705: def
5706: No match
5707:
5708: ~<(\w+)/?>(.)*</(\1)>~smgI
5709: Capturing subpattern count = 3
5710: Max back reference = 1
5711: Options: multiline dotall
5712: First char = '<'
5713: Need char = '>'
5714: \J1024<!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>
5715: 0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>
5716: 1: seite
5717: 2: \x0a
5718: 3: seite
5719:
5720: /^a/IF
5721: Capturing subpattern count = 0
5722: Options: anchored
5723: No first char
5724: No need char
5725:
5726: /line\nbreak/I
5727: Capturing subpattern count = 0
5728: Contains explicit CR or LF match
5729: No options
5730: First char = 'l'
5731: Need char = 'k'
5732: this is a line\nbreak
5733: 0: line\x0abreak
5734: line one\nthis is a line\nbreak in the second line
5735: 0: line\x0abreak
5736:
5737: /line\nbreak/If
5738: Capturing subpattern count = 0
5739: Contains explicit CR or LF match
5740: Options: firstline
5741: First char = 'l'
5742: Need char = 'k'
5743: this is a line\nbreak
5744: 0: line\x0abreak
5745: ** Failers
5746: No match
5747: line one\nthis is a line\nbreak in the second line
5748: No match
5749:
5750: /line\nbreak/Imf
5751: Capturing subpattern count = 0
5752: Contains explicit CR or LF match
5753: Options: multiline firstline
5754: First char = 'l'
5755: Need char = 'k'
5756: this is a line\nbreak
5757: 0: line\x0abreak
5758: ** Failers
5759: No match
5760: line one\nthis is a line\nbreak in the second line
5761: No match
5762:
5763: /(?i)(?-i)AbCd/I
5764: Capturing subpattern count = 0
5765: No options
5766: First char = 'A'
5767: Need char = 'd'
5768: AbCd
5769: 0: AbCd
5770: ** Failers
5771: No match
5772: abcd
5773: No match
5774:
5775: /a{11111111111111111111}/I
5776: Failed: number too big in {} quantifier at offset 22
5777:
5778: /(){64294967295}/I
5779: Failed: number too big in {} quantifier at offset 14
5780:
5781: /(){2,4294967295}/I
5782: Failed: number too big in {} quantifier at offset 15
5783:
5784: "(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B"I
5785: Capturing subpattern count = 1
5786: Max back reference = 1
5787: No options
5788: First char = 'a' (caseless)
5789: Need char = 'B'
5790: abcdefghijklAkB
5791: 0: abcdefghijklAkB
5792: 1: k
5793:
5794: "(?P<n0>a)(?P<n1>b)(?P<n2>c)(?P<n3>d)(?P<n4>e)(?P<n5>f)(?P<n6>g)(?P<n7>h)(?P<n8>i)(?P<n9>j)(?P<n10>k)(?P<n11>l)A\11B"I
5795: Capturing subpattern count = 12
5796: Max back reference = 11
5797: Named capturing subpatterns:
5798: n0 1
5799: n1 2
5800: n10 11
5801: n11 12
5802: n2 3
5803: n3 4
5804: n4 5
5805: n5 6
5806: n6 7
5807: n7 8
5808: n8 9
5809: n9 10
5810: No options
5811: First char = 'a'
5812: Need char = 'B'
5813: abcdefghijklAkB
5814: 0: abcdefghijklAkB
5815: 1: a
5816: 2: b
5817: 3: c
5818: 4: d
5819: 5: e
5820: 6: f
5821: 7: g
5822: 8: h
5823: 9: i
5824: 10: j
5825: 11: k
5826: 12: l
5827:
5828: "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
5829: Capturing subpattern count = 12
5830: Max back reference = 11
5831: No options
5832: First char = 'a'
5833: Need char = 'B'
5834: abcdefghijklAkB
5835: 0: abcdefghijklAkB
5836: 1: a
5837: 2: b
5838: 3: c
5839: 4: d
5840: 5: e
5841: 6: f
5842: 7: g
5843: 8: h
5844: 9: i
5845: 10: j
5846: 11: k
5847: 12: l
5848:
5849: "(?P<name0>a)(?P<name1>a)(?P<name2>a)(?P<name3>a)(?P<name4>a)(?P<name5>a)(?P<name6>a)(?P<name7>a)(?P<name8>a)(?P<name9>a)(?P<name10>a)(?P<name11>a)(?P<name12>a)(?P<name13>a)(?P<name14>a)(?P<name15>a)(?P<name16>a)(?P<name17>a)(?P<name18>a)(?P<name19>a)(?P<name20>a)(?P<name21>a)(?P<name22>a)(?P<name23>a)(?P<name24>a)(?P<name25>a)(?P<name26>a)(?P<name27>a)(?P<name28>a)(?P<name29>a)(?P<name30>a)(?P<name31>a)(?P<name32>a)(?P<name33>a)(?P<name34>a)(?P<name35>a)(?P<name36>a)(?P<name37>a)(?P<name38>a)(?P<name39>a)(?P<name40>a)(?P<name41>a)(?P<name42>a)(?P<name43>a)(?P<name44>a)(?P<name45>a)(?P<name46>a)(?P<name47>a)(?P<name48>a)(?P<name49>a)(?P<name50>a)(?P<name51>a)(?P<name52>a)(?P<name53>a)(?P<name54>a)(?P<name55>a)(?P<name56>a)(?P<name57>a)(?P<name58>a)(?P<name59>a)(?P<name60>a)(?P<name61>a)(?P<name62>a)(?P<name63>a)(?P<name64>a)(?P<name65>a)(?P<name66>a)(?P<name67>a)(?P<name68>a)(?P<name69>a)(?P<name70>a)(?P<name71>a)(?P<name72>a)(?P<name73>a)(?P<name74>a)(?P<name75>a)(?P<name76>a)(?P<name77>a)(?P<name78>a)(?P<name79>a)(?P<name80>a)(?P<name81>a)(?P<name82>a)(?P<name83>a)(?P<name84>a)(?P<name85>a)(?P<name86>a)(?P<name87>a)(?P<name88>a)(?P<name89>a)(?P<name90>a)(?P<name91>a)(?P<name92>a)(?P<name93>a)(?P<name94>a)(?P<name95>a)(?P<name96>a)(?P<name97>a)(?P<name98>a)(?P<name99>a)(?P<name100>a)"I
5850: Capturing subpattern count = 101
5851: Named capturing subpatterns:
5852: name0 1
5853: name1 2
5854: name10 11
5855: name100 101
5856: name11 12
5857: name12 13
5858: name13 14
5859: name14 15
5860: name15 16
5861: name16 17
5862: name17 18
5863: name18 19
5864: name19 20
5865: name2 3
5866: name20 21
5867: name21 22
5868: name22 23
5869: name23 24
5870: name24 25
5871: name25 26
5872: name26 27
5873: name27 28
5874: name28 29
5875: name29 30
5876: name3 4
5877: name30 31
5878: name31 32
5879: name32 33
5880: name33 34
5881: name34 35
5882: name35 36
5883: name36 37
5884: name37 38
5885: name38 39
5886: name39 40
5887: name4 5
5888: name40 41
5889: name41 42
5890: name42 43
5891: name43 44
5892: name44 45
5893: name45 46
5894: name46 47
5895: name47 48
5896: name48 49
5897: name49 50
5898: name5 6
5899: name50 51
5900: name51 52
5901: name52 53
5902: name53 54
5903: name54 55
5904: name55 56
5905: name56 57
5906: name57 58
5907: name58 59
5908: name59 60
5909: name6 7
5910: name60 61
5911: name61 62
5912: name62 63
5913: name63 64
5914: name64 65
5915: name65 66
5916: name66 67
5917: name67 68
5918: name68 69
5919: name69 70
5920: name7 8
5921: name70 71
5922: name71 72
5923: name72 73
5924: name73 74
5925: name74 75
5926: name75 76
5927: name76 77
5928: name77 78
5929: name78 79
5930: name79 80
5931: name8 9
5932: name80 81
5933: name81 82
5934: name82 83
5935: name83 84
5936: name84 85
5937: name85 86
5938: name86 87
5939: name87 88
5940: name88 89
5941: name89 90
5942: name9 10
5943: name90 91
5944: name91 92
5945: name92 93
5946: name93 94
5947: name94 95
5948: name95 96
5949: name96 97
5950: name97 98
5951: name98 99
5952: name99 100
5953: No options
5954: First char = 'a'
5955: Need char = 'a'
5956: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
5957: Matched, but too many substrings
5958: 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
5959: 1: a
5960: 2: a
5961: 3: a
5962: 4: a
5963: 5: a
5964: 6: a
5965: 7: a
5966: 8: a
5967: 9: a
5968: 10: a
5969: 11: a
5970: 12: a
5971: 13: a
5972: 14: a
5973:
5974: "(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)"I
5975: Capturing subpattern count = 101
5976: No options
5977: First char = 'a'
5978: Need char = 'a'
5979: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
5980: Matched, but too many substrings
5981: 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
5982: 1: a
5983: 2: a
5984: 3: a
5985: 4: a
5986: 5: a
5987: 6: a
5988: 7: a
5989: 8: a
5990: 9: a
5991: 10: a
5992: 11: a
5993: 12: a
5994: 13: a
5995: 14: a
5996:
5997: /[^()]*(?:\((?R)\)[^()]*)*/I
5998: Capturing subpattern count = 0
5999: No options
6000: No first char
6001: No need char
6002: (this(and)that
6003: 0:
6004: (this(and)that)
6005: 0: (this(and)that)
6006: (this(and)that)stuff
6007: 0: (this(and)that)stuff
6008:
6009: /[^()]*(?:\((?>(?R))\)[^()]*)*/I
6010: Capturing subpattern count = 0
6011: No options
6012: No first char
6013: No need char
6014: (this(and)that
6015: 0:
6016: (this(and)that)
6017: 0: (this(and)that)
6018:
6019: /[^()]*(?:\((?R)\))*[^()]*/I
6020: Capturing subpattern count = 0
6021: No options
6022: No first char
6023: No need char
6024: (this(and)that
6025: 0:
6026: (this(and)that)
6027: 0: (this(and)that)
6028:
6029: /(?:\((?R)\))*[^()]*/I
6030: Capturing subpattern count = 0
6031: No options
6032: No first char
6033: No need char
6034: (this(and)that
6035: 0:
6036: (this(and)that)
6037: 0:
6038: ((this))
6039: 0: ((this))
6040:
6041: /(?:\((?R)\))|[^()]*/I
6042: Capturing subpattern count = 0
6043: No options
6044: No first char
6045: No need char
6046: (this(and)that
6047: 0:
6048: (this(and)that)
6049: 0:
6050: (this)
6051: 0: (this)
6052: ((this))
6053: 0: ((this))
6054:
6055: /\x{0000ff}/I
6056: Capturing subpattern count = 0
6057: No options
1.1.1.2 ! misho 6058: First char = \xff
1.1 misho 6059: No need char
6060:
6061: /^((?P<A>a1)|(?P<A>a2)b)/I
6062: Failed: two named subpatterns have the same name at offset 17
6063:
6064: /^((?P<A>a1)|(?P<A>a2)b)/IJ
6065: Capturing subpattern count = 3
6066: Named capturing subpatterns:
6067: A 2
6068: A 3
6069: Options: anchored dupnames
6070: No first char
6071: No need char
6072: a1b\CA
6073: 0: a1
6074: 1: a1
6075: 2: a1
6076: C a1 (2) A
6077: a2b\CA
6078: 0: a2b
6079: 1: a2b
6080: 2: <unset>
6081: 3: a2
6082: C a2 (2) A
6083: ** Failers
6084: No match
6085: a1b\CZ\CA
6086: no parentheses with name "Z"
6087: 0: a1
6088: 1: a1
6089: 2: a1
6090: copy substring Z failed -7
6091: C a1 (2) A
6092:
6093: /^(?P<A>a)(?P<A>b)/IJ
6094: Capturing subpattern count = 2
6095: Named capturing subpatterns:
6096: A 1
6097: A 2
6098: Options: anchored dupnames
6099: No first char
6100: No need char
6101: ab\CA
6102: 0: ab
6103: 1: a
6104: 2: b
6105: C a (1) A
6106:
6107: /^(?P<A>a)(?P<A>b)|cd/IJ
6108: Capturing subpattern count = 2
6109: Named capturing subpatterns:
6110: A 1
6111: A 2
6112: Options: dupnames
6113: No first char
6114: No need char
6115: ab\CA
6116: 0: ab
6117: 1: a
6118: 2: b
6119: C a (1) A
6120: cd\CA
6121: 0: cd
6122: copy substring A failed -7
6123:
6124: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6125: Capturing subpattern count = 4
6126: Named capturing subpatterns:
6127: A 1
6128: A 2
6129: A 3
6130: A 4
6131: Options: dupnames
6132: No first char
6133: No need char
6134: cdefgh\CA
6135: 0: cdefgh
6136: 1: <unset>
6137: 2: <unset>
6138: 3: ef
6139: 4: gh
6140: C ef (2) A
6141:
6142: /^((?P<A>a1)|(?P<A>a2)b)/IJ
6143: Capturing subpattern count = 3
6144: Named capturing subpatterns:
6145: A 2
6146: A 3
6147: Options: anchored dupnames
6148: No first char
6149: No need char
6150: a1b\GA
6151: 0: a1
6152: 1: a1
6153: 2: a1
6154: G a1 (2) A
6155: a2b\GA
6156: 0: a2b
6157: 1: a2b
6158: 2: <unset>
6159: 3: a2
6160: G a2 (2) A
6161: ** Failers
6162: No match
6163: a1b\GZ\GA
6164: no parentheses with name "Z"
6165: 0: a1
6166: 1: a1
6167: 2: a1
1.1.1.2 ! misho 6168: get substring Z failed -7
1.1 misho 6169: G a1 (2) A
6170:
6171: /^(?P<A>a)(?P<A>b)/IJ
6172: Capturing subpattern count = 2
6173: Named capturing subpatterns:
6174: A 1
6175: A 2
6176: Options: anchored dupnames
6177: No first char
6178: No need char
6179: ab\GA
6180: 0: ab
6181: 1: a
6182: 2: b
6183: G a (1) A
6184:
6185: /^(?P<A>a)(?P<A>b)|cd/IJ
6186: Capturing subpattern count = 2
6187: Named capturing subpatterns:
6188: A 1
6189: A 2
6190: Options: dupnames
6191: No first char
6192: No need char
6193: ab\GA
6194: 0: ab
6195: 1: a
6196: 2: b
6197: G a (1) A
6198: cd\GA
6199: 0: cd
1.1.1.2 ! misho 6200: get substring A failed -7
1.1 misho 6201:
6202: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6203: Capturing subpattern count = 4
6204: Named capturing subpatterns:
6205: A 1
6206: A 2
6207: A 3
6208: A 4
6209: Options: dupnames
6210: No first char
6211: No need char
6212: cdefgh\GA
6213: 0: cdefgh
6214: 1: <unset>
6215: 2: <unset>
6216: 3: ef
6217: 4: gh
6218: G ef (2) A
6219:
6220: /(?J)^((?P<A>a1)|(?P<A>a2)b)/I
6221: Capturing subpattern count = 3
6222: Named capturing subpatterns:
6223: A 2
6224: A 3
6225: Options: anchored dupnames
6226: Duplicate name status changes
6227: No first char
6228: No need char
6229: a1b\CA
6230: 0: a1
6231: 1: a1
6232: 2: a1
6233: C a1 (2) A
6234: a2b\CA
6235: 0: a2b
6236: 1: a2b
6237: 2: <unset>
6238: 3: a2
6239: C a2 (2) A
6240:
6241: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
6242: Failed: two named subpatterns have the same name at offset 37
6243:
6244: / In this next test, J is not set at the outer level; consequently it isn't
6245: set in the pattern's options; consequently pcre_get_named_substring() produces
6246: a random value. /Ix
6247: Capturing subpattern count = 1
6248: Options: extended
6249: First char = 'I'
6250: Need char = 'e'
6251:
6252: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
6253: Capturing subpattern count = 4
6254: Named capturing subpatterns:
6255: A 1
6256: B 2
6257: B 3
6258: C 4
6259: Options: anchored
6260: Duplicate name status changes
6261: No first char
6262: No need char
6263: a bc d\CA\CB\CC
6264: 0: a bc d
6265: 1: a
6266: 2: b
6267: 3: c
6268: 4: d
6269: C a (1) A
6270: C b (1) B
6271: C d (1) C
6272:
6273: /^(?P<A>a)?(?(A)a|b)/I
6274: Capturing subpattern count = 1
6275: Named capturing subpatterns:
6276: A 1
6277: Options: anchored
6278: No first char
6279: No need char
6280: aabc
6281: 0: aa
6282: 1: a
6283: bc
6284: 0: b
6285: ** Failers
6286: No match
6287: abc
6288: No match
6289:
6290: /(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
6291: Capturing subpattern count = 1
6292: Named capturing subpatterns:
6293: ZZ 1
6294: No options
6295: No first char
6296: Need char = 'X'
6297: bXaX
6298: 0: bXaX
6299: 1: X
6300:
6301: /(?:(?(2y)a|b)(X))+/I
6302: Failed: reference to non-existent subpattern at offset 9
6303:
6304: /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
6305: Failed: reference to non-existent subpattern at offset 9
6306:
6307: /(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
6308: Capturing subpattern count = 1
6309: Named capturing subpatterns:
6310: ZZ 1
6311: No options
6312: No first char
6313: Need char = 'X'
6314: bbXaaX
6315: 0: bbXaaX
6316: 1: X
6317:
6318: /(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
6319: Capturing subpattern count = 1
6320: Named capturing subpatterns:
6321: ZZ 1
6322: No options
6323: No first char
6324: Need char = 'X'
6325: (b)\\Xa\\X
6326: 0: (b)\Xa\X
6327: 1: X
6328:
6329: /(?P<ABC/I
6330: Failed: syntax error in subpattern name (missing terminator) at offset 7
6331:
6332: /(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6333: Capturing subpattern count = 1
6334: Max back reference = 1
6335: Named capturing subpatterns:
6336: A 1
6337: No options
6338: No first char
6339: No need char
6340: bXXaYYaY
6341: 0: bXXaYYaY
6342: 1: Y
6343: bXYaXXaX
6344: 0: bX
6345: 1: X
6346:
6347: /()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6348: Capturing subpattern count = 10
6349: Max back reference = 10
6350: Named capturing subpatterns:
6351: A 10
6352: No options
6353: No first char
6354: No need char
6355: bXXaYYaY
6356: 0: bXXaYYaY
6357: 1:
6358: 2:
6359: 3:
6360: 4:
6361: 5:
6362: 6:
6363: 7:
6364: 8:
6365: 9:
6366: 10: Y
6367:
6368: /\s*,\s*/IS
6369: Capturing subpattern count = 0
6370: No options
6371: No first char
6372: Need char = ','
6373: Subject length lower bound = 1
6374: Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6375: \x0b,\x0b
6376: 0: ,
6377: \x0c,\x0d
6378: 0: \x0c,\x0d
6379:
6380: /^abc/Im
6381: Capturing subpattern count = 0
6382: Options: multiline
6383: First char at start or follows newline
6384: Need char = 'c'
6385: xyz\nabc
6386: 0: abc
6387: xyz\nabc\<lf>
6388: 0: abc
6389: xyz\r\nabc\<lf>
6390: 0: abc
6391: xyz\rabc\<cr>
6392: 0: abc
6393: xyz\r\nabc\<crlf>
6394: 0: abc
6395: ** Failers
6396: No match
6397: xyz\nabc\<cr>
6398: No match
6399: xyz\r\nabc\<cr>
6400: No match
6401: xyz\nabc\<crlf>
6402: No match
6403: xyz\rabc\<crlf>
6404: No match
6405: xyz\rabc\<lf>
6406: No match
6407:
6408: /abc$/Im<lf>
6409: Capturing subpattern count = 0
6410: Options: multiline
6411: Forced newline sequence: LF
6412: First char = 'a'
6413: Need char = 'c'
6414: xyzabc
6415: 0: abc
6416: xyzabc\n
6417: 0: abc
6418: xyzabc\npqr
6419: 0: abc
6420: xyzabc\r\<cr>
6421: 0: abc
6422: xyzabc\rpqr\<cr>
6423: 0: abc
6424: xyzabc\r\n\<crlf>
6425: 0: abc
6426: xyzabc\r\npqr\<crlf>
6427: 0: abc
6428: ** Failers
6429: No match
6430: xyzabc\r
6431: No match
6432: xyzabc\rpqr
6433: No match
6434: xyzabc\r\n
6435: No match
6436: xyzabc\r\npqr
6437: No match
6438:
6439: /^abc/Im<cr>
6440: Capturing subpattern count = 0
6441: Options: multiline
6442: Forced newline sequence: CR
6443: First char at start or follows newline
6444: Need char = 'c'
6445: xyz\rabcdef
6446: 0: abc
6447: xyz\nabcdef\<lf>
6448: 0: abc
6449: ** Failers
6450: No match
6451: xyz\nabcdef
6452: No match
6453:
6454: /^abc/Im<lf>
6455: Capturing subpattern count = 0
6456: Options: multiline
6457: Forced newline sequence: LF
6458: First char at start or follows newline
6459: Need char = 'c'
6460: xyz\nabcdef
6461: 0: abc
6462: xyz\rabcdef\<cr>
6463: 0: abc
6464: ** Failers
6465: No match
6466: xyz\rabcdef
6467: No match
6468:
6469: /^abc/Im<crlf>
6470: Capturing subpattern count = 0
6471: Options: multiline
6472: Forced newline sequence: CRLF
6473: First char at start or follows newline
6474: Need char = 'c'
6475: xyz\r\nabcdef
6476: 0: abc
6477: xyz\rabcdef\<cr>
6478: 0: abc
6479: ** Failers
6480: No match
6481: xyz\rabcdef
6482: No match
6483:
6484: /^abc/Im<bad>
6485: Unknown newline type at: <bad>
6486:
6487:
6488: /abc/I
6489: Capturing subpattern count = 0
6490: No options
6491: First char = 'a'
6492: Need char = 'c'
6493: xyz\rabc\<bad>
6494: Unknown newline type at: <bad>
6495: abc
6496: 0: abc
6497:
6498: /.*/I<lf>
6499: Capturing subpattern count = 0
6500: Options:
6501: Forced newline sequence: LF
6502: First char at start or follows newline
6503: No need char
6504: abc\ndef
6505: 0: abc
6506: abc\rdef
6507: 0: abc\x0ddef
6508: abc\r\ndef
6509: 0: abc\x0d
6510: \<cr>abc\ndef
6511: 0: abc\x0adef
6512: \<cr>abc\rdef
6513: 0: abc
6514: \<cr>abc\r\ndef
6515: 0: abc
6516: \<crlf>abc\ndef
6517: 0: abc\x0adef
6518: \<crlf>abc\rdef
6519: 0: abc\x0ddef
6520: \<crlf>abc\r\ndef
6521: 0: abc
6522:
6523: /\w+(.)(.)?def/Is
6524: Capturing subpattern count = 2
6525: Options: dotall
6526: No first char
6527: Need char = 'f'
6528: abc\ndef
6529: 0: abc\x0adef
6530: 1: \x0a
6531: abc\rdef
6532: 0: abc\x0ddef
6533: 1: \x0d
6534: abc\r\ndef
6535: 0: abc\x0d\x0adef
6536: 1: \x0d
6537: 2: \x0a
6538:
6539: +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6540: Capturing subpattern count = 1
6541: No options
6542: No first char
6543: No need char
6544: /* this is a C style comment */\M
6545: Minimum match() limit = 120
6546: Minimum match() recursion limit = 6
6547: 0: /* this is a C style comment */
6548: 1: /* this is a C style comment */
6549:
6550: /(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
6551: Capturing subpattern count = 1
6552: Named capturing subpatterns:
6553: B 1
6554: No options
6555: No first char
6556: Need char = '.'
6557:
6558: /()()()()()()()()()()()()()()()()()()()()
6559: ()()()()()()()()()()()()()()()()()()()()
6560: ()()()()()()()()()()()()()()()()()()()()
6561: ()()()()()()()()()()()()()()()()()()()()
6562: ()()()()()()()()()()()()()()()()()()()()
6563: (.(.))/Ix
6564: Capturing subpattern count = 102
6565: Options: extended
6566: No first char
6567: No need char
6568: XY\O400
6569: 0: XY
6570: 1:
6571: 2:
6572: 3:
6573: 4:
6574: 5:
6575: 6:
6576: 7:
6577: 8:
6578: 9:
6579: 10:
6580: 11:
6581: 12:
6582: 13:
6583: 14:
6584: 15:
6585: 16:
6586: 17:
6587: 18:
6588: 19:
6589: 20:
6590: 21:
6591: 22:
6592: 23:
6593: 24:
6594: 25:
6595: 26:
6596: 27:
6597: 28:
6598: 29:
6599: 30:
6600: 31:
6601: 32:
6602: 33:
6603: 34:
6604: 35:
6605: 36:
6606: 37:
6607: 38:
6608: 39:
6609: 40:
6610: 41:
6611: 42:
6612: 43:
6613: 44:
6614: 45:
6615: 46:
6616: 47:
6617: 48:
6618: 49:
6619: 50:
6620: 51:
6621: 52:
6622: 53:
6623: 54:
6624: 55:
6625: 56:
6626: 57:
6627: 58:
6628: 59:
6629: 60:
6630: 61:
6631: 62:
6632: 63:
6633: 64:
6634: 65:
6635: 66:
6636: 67:
6637: 68:
6638: 69:
6639: 70:
6640: 71:
6641: 72:
6642: 73:
6643: 74:
6644: 75:
6645: 76:
6646: 77:
6647: 78:
6648: 79:
6649: 80:
6650: 81:
6651: 82:
6652: 83:
6653: 84:
6654: 85:
6655: 86:
6656: 87:
6657: 88:
6658: 89:
6659: 90:
6660: 91:
6661: 92:
6662: 93:
6663: 94:
6664: 95:
6665: 96:
6666: 97:
6667: 98:
6668: 99:
6669: 100:
6670: 101: XY
6671: 102: Y
6672:
6673: /(a*b|(?i:c*(?-i)d))/IS
6674: Capturing subpattern count = 1
6675: No options
6676: No first char
6677: No need char
6678: Subject length lower bound = 1
6679: Starting byte set: C a b c d
6680:
6681: /()[ab]xyz/IS
6682: Capturing subpattern count = 1
6683: No options
6684: No first char
6685: Need char = 'z'
6686: Subject length lower bound = 4
6687: Starting byte set: a b
6688:
6689: /(|)[ab]xyz/IS
6690: Capturing subpattern count = 1
6691: No options
6692: No first char
6693: Need char = 'z'
6694: Subject length lower bound = 4
6695: Starting byte set: a b
6696:
6697: /(|c)[ab]xyz/IS
6698: Capturing subpattern count = 1
6699: No options
6700: No first char
6701: Need char = 'z'
6702: Subject length lower bound = 4
6703: Starting byte set: a b c
6704:
6705: /(|c?)[ab]xyz/IS
6706: Capturing subpattern count = 1
6707: No options
6708: No first char
6709: Need char = 'z'
6710: Subject length lower bound = 4
6711: Starting byte set: a b c
6712:
6713: /(d?|c?)[ab]xyz/IS
6714: Capturing subpattern count = 1
6715: No options
6716: No first char
6717: Need char = 'z'
6718: Subject length lower bound = 4
6719: Starting byte set: a b c d
6720:
6721: /(d?|c)[ab]xyz/IS
6722: Capturing subpattern count = 1
6723: No options
6724: No first char
6725: Need char = 'z'
6726: Subject length lower bound = 4
6727: Starting byte set: a b c d
6728:
6729: /^a*b\d/DZ
6730: ------------------------------------------------------------------
6731: Bra
6732: ^
6733: a*+
6734: b
6735: \d
6736: Ket
6737: End
6738: ------------------------------------------------------------------
6739: Capturing subpattern count = 0
6740: Options: anchored
6741: No first char
6742: Need char = 'b'
6743:
6744: /^a*+b\d/DZ
6745: ------------------------------------------------------------------
6746: Bra
6747: ^
6748: a*+
6749: b
6750: \d
6751: Ket
6752: End
6753: ------------------------------------------------------------------
6754: Capturing subpattern count = 0
6755: Options: anchored
6756: No first char
6757: Need char = 'b'
6758:
6759: /^a*?b\d/DZ
6760: ------------------------------------------------------------------
6761: Bra
6762: ^
6763: a*+
6764: b
6765: \d
6766: Ket
6767: End
6768: ------------------------------------------------------------------
6769: Capturing subpattern count = 0
6770: Options: anchored
6771: No first char
6772: Need char = 'b'
6773:
6774: /^a+A\d/DZ
6775: ------------------------------------------------------------------
6776: Bra
6777: ^
6778: a++
6779: A
6780: \d
6781: Ket
6782: End
6783: ------------------------------------------------------------------
6784: Capturing subpattern count = 0
6785: Options: anchored
6786: No first char
6787: Need char = 'A'
6788: aaaA5
6789: 0: aaaA5
6790: ** Failers
6791: No match
6792: aaaa5
6793: No match
6794:
6795: /^a*A\d/IiDZ
6796: ------------------------------------------------------------------
6797: Bra
6798: ^
6799: /i a*
6800: /i A
6801: \d
6802: Ket
6803: End
6804: ------------------------------------------------------------------
6805: Capturing subpattern count = 0
6806: Options: anchored caseless
6807: No first char
6808: Need char = 'A' (caseless)
6809: aaaA5
6810: 0: aaaA5
6811: aaaa5
6812: 0: aaaa5
6813:
6814: /(a*|b*)[cd]/IS
6815: Capturing subpattern count = 1
6816: No options
6817: No first char
6818: No need char
6819: Subject length lower bound = 1
6820: Starting byte set: a b c d
6821:
6822: /(a+|b*)[cd]/IS
6823: Capturing subpattern count = 1
6824: No options
6825: No first char
6826: No need char
6827: Subject length lower bound = 1
6828: Starting byte set: a b c d
6829:
6830: /(a*|b+)[cd]/IS
6831: Capturing subpattern count = 1
6832: No options
6833: No first char
6834: No need char
6835: Subject length lower bound = 1
6836: Starting byte set: a b c d
6837:
6838: /(a+|b+)[cd]/IS
6839: Capturing subpattern count = 1
6840: No options
6841: No first char
6842: No need char
6843: Subject length lower bound = 2
6844: Starting byte set: a b
6845:
6846: /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6847: ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6848: (((
6849: a
6850: ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6851: ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6852: )))
6853: /Ix
6854: Capturing subpattern count = 203
6855: Options: extended
6856: First char = 'a'
6857: No need char
6858: large nest
6859: Matched, but too many substrings
6860: 0: a
6861: 1: a
6862: 2: a
6863: 3: a
6864: 4: a
6865: 5: a
6866: 6: a
6867: 7: a
6868: 8: a
6869: 9: a
6870: 10: a
6871: 11: a
6872: 12: a
6873: 13: a
6874: 14: a
6875:
6876: /a*\d/BZ
6877: ------------------------------------------------------------------
6878: Bra
6879: a*+
6880: \d
6881: Ket
6882: End
6883: ------------------------------------------------------------------
6884:
6885: /a*\D/BZ
6886: ------------------------------------------------------------------
6887: Bra
6888: a*
6889: \D
6890: Ket
6891: End
6892: ------------------------------------------------------------------
6893:
6894: /0*\d/BZ
6895: ------------------------------------------------------------------
6896: Bra
6897: 0*
6898: \d
6899: Ket
6900: End
6901: ------------------------------------------------------------------
6902:
6903: /0*\D/BZ
6904: ------------------------------------------------------------------
6905: Bra
6906: 0*+
6907: \D
6908: Ket
6909: End
6910: ------------------------------------------------------------------
6911:
6912: /a*\s/BZ
6913: ------------------------------------------------------------------
6914: Bra
6915: a*+
6916: \s
6917: Ket
6918: End
6919: ------------------------------------------------------------------
6920:
6921: /a*\S/BZ
6922: ------------------------------------------------------------------
6923: Bra
6924: a*
6925: \S
6926: Ket
6927: End
6928: ------------------------------------------------------------------
6929:
6930: / *\s/BZ
6931: ------------------------------------------------------------------
6932: Bra
6933: *
6934: \s
6935: Ket
6936: End
6937: ------------------------------------------------------------------
6938:
6939: / *\S/BZ
6940: ------------------------------------------------------------------
6941: Bra
6942: *+
6943: \S
6944: Ket
6945: End
6946: ------------------------------------------------------------------
6947:
6948: /a*\w/BZ
6949: ------------------------------------------------------------------
6950: Bra
6951: a*
6952: \w
6953: Ket
6954: End
6955: ------------------------------------------------------------------
6956:
6957: /a*\W/BZ
6958: ------------------------------------------------------------------
6959: Bra
6960: a*+
6961: \W
6962: Ket
6963: End
6964: ------------------------------------------------------------------
6965:
6966: /=*\w/BZ
6967: ------------------------------------------------------------------
6968: Bra
6969: =*+
6970: \w
6971: Ket
6972: End
6973: ------------------------------------------------------------------
6974:
6975: /=*\W/BZ
6976: ------------------------------------------------------------------
6977: Bra
6978: =*
6979: \W
6980: Ket
6981: End
6982: ------------------------------------------------------------------
6983:
6984: /\d*a/BZ
6985: ------------------------------------------------------------------
6986: Bra
6987: \d*+
6988: a
6989: Ket
6990: End
6991: ------------------------------------------------------------------
6992:
6993: /\d*2/BZ
6994: ------------------------------------------------------------------
6995: Bra
6996: \d*
6997: 2
6998: Ket
6999: End
7000: ------------------------------------------------------------------
7001:
7002: /\d*\d/BZ
7003: ------------------------------------------------------------------
7004: Bra
7005: \d*
7006: \d
7007: Ket
7008: End
7009: ------------------------------------------------------------------
7010:
7011: /\d*\D/BZ
7012: ------------------------------------------------------------------
7013: Bra
7014: \d*+
7015: \D
7016: Ket
7017: End
7018: ------------------------------------------------------------------
7019:
7020: /\d*\s/BZ
7021: ------------------------------------------------------------------
7022: Bra
7023: \d*+
7024: \s
7025: Ket
7026: End
7027: ------------------------------------------------------------------
7028:
7029: /\d*\S/BZ
7030: ------------------------------------------------------------------
7031: Bra
7032: \d*
7033: \S
7034: Ket
7035: End
7036: ------------------------------------------------------------------
7037:
7038: /\d*\w/BZ
7039: ------------------------------------------------------------------
7040: Bra
7041: \d*
7042: \w
7043: Ket
7044: End
7045: ------------------------------------------------------------------
7046:
7047: /\d*\W/BZ
7048: ------------------------------------------------------------------
7049: Bra
7050: \d*+
7051: \W
7052: Ket
7053: End
7054: ------------------------------------------------------------------
7055:
7056: /\D*a/BZ
7057: ------------------------------------------------------------------
7058: Bra
7059: \D*
7060: a
7061: Ket
7062: End
7063: ------------------------------------------------------------------
7064:
7065: /\D*2/BZ
7066: ------------------------------------------------------------------
7067: Bra
7068: \D*+
7069: 2
7070: Ket
7071: End
7072: ------------------------------------------------------------------
7073:
7074: /\D*\d/BZ
7075: ------------------------------------------------------------------
7076: Bra
7077: \D*+
7078: \d
7079: Ket
7080: End
7081: ------------------------------------------------------------------
7082:
7083: /\D*\D/BZ
7084: ------------------------------------------------------------------
7085: Bra
7086: \D*
7087: \D
7088: Ket
7089: End
7090: ------------------------------------------------------------------
7091:
7092: /\D*\s/BZ
7093: ------------------------------------------------------------------
7094: Bra
7095: \D*
7096: \s
7097: Ket
7098: End
7099: ------------------------------------------------------------------
7100:
7101: /\D*\S/BZ
7102: ------------------------------------------------------------------
7103: Bra
7104: \D*
7105: \S
7106: Ket
7107: End
7108: ------------------------------------------------------------------
7109:
7110: /\D*\w/BZ
7111: ------------------------------------------------------------------
7112: Bra
7113: \D*
7114: \w
7115: Ket
7116: End
7117: ------------------------------------------------------------------
7118:
7119: /\D*\W/BZ
7120: ------------------------------------------------------------------
7121: Bra
7122: \D*
7123: \W
7124: Ket
7125: End
7126: ------------------------------------------------------------------
7127:
7128: /\s*a/BZ
7129: ------------------------------------------------------------------
7130: Bra
7131: \s*+
7132: a
7133: Ket
7134: End
7135: ------------------------------------------------------------------
7136:
7137: /\s*2/BZ
7138: ------------------------------------------------------------------
7139: Bra
7140: \s*+
7141: 2
7142: Ket
7143: End
7144: ------------------------------------------------------------------
7145:
7146: /\s*\d/BZ
7147: ------------------------------------------------------------------
7148: Bra
7149: \s*+
7150: \d
7151: Ket
7152: End
7153: ------------------------------------------------------------------
7154:
7155: /\s*\D/BZ
7156: ------------------------------------------------------------------
7157: Bra
7158: \s*
7159: \D
7160: Ket
7161: End
7162: ------------------------------------------------------------------
7163:
7164: /\s*\s/BZ
7165: ------------------------------------------------------------------
7166: Bra
7167: \s*
7168: \s
7169: Ket
7170: End
7171: ------------------------------------------------------------------
7172:
7173: /\s*\S/BZ
7174: ------------------------------------------------------------------
7175: Bra
7176: \s*+
7177: \S
7178: Ket
7179: End
7180: ------------------------------------------------------------------
7181:
7182: /\s*\w/BZ
7183: ------------------------------------------------------------------
7184: Bra
7185: \s*+
7186: \w
7187: Ket
7188: End
7189: ------------------------------------------------------------------
7190:
7191: /\s*\W/BZ
7192: ------------------------------------------------------------------
7193: Bra
7194: \s*
7195: \W
7196: Ket
7197: End
7198: ------------------------------------------------------------------
7199:
7200: /\S*a/BZ
7201: ------------------------------------------------------------------
7202: Bra
7203: \S*
7204: a
7205: Ket
7206: End
7207: ------------------------------------------------------------------
7208:
7209: /\S*2/BZ
7210: ------------------------------------------------------------------
7211: Bra
7212: \S*
7213: 2
7214: Ket
7215: End
7216: ------------------------------------------------------------------
7217:
7218: /\S*\d/BZ
7219: ------------------------------------------------------------------
7220: Bra
7221: \S*
7222: \d
7223: Ket
7224: End
7225: ------------------------------------------------------------------
7226:
7227: /\S*\D/BZ
7228: ------------------------------------------------------------------
7229: Bra
7230: \S*
7231: \D
7232: Ket
7233: End
7234: ------------------------------------------------------------------
7235:
7236: /\S*\s/BZ
7237: ------------------------------------------------------------------
7238: Bra
7239: \S*+
7240: \s
7241: Ket
7242: End
7243: ------------------------------------------------------------------
7244:
7245: /\S*\S/BZ
7246: ------------------------------------------------------------------
7247: Bra
7248: \S*
7249: \S
7250: Ket
7251: End
7252: ------------------------------------------------------------------
7253:
7254: /\S*\w/BZ
7255: ------------------------------------------------------------------
7256: Bra
7257: \S*
7258: \w
7259: Ket
7260: End
7261: ------------------------------------------------------------------
7262:
7263: /\S*\W/BZ
7264: ------------------------------------------------------------------
7265: Bra
7266: \S*
7267: \W
7268: Ket
7269: End
7270: ------------------------------------------------------------------
7271:
7272: /\w*a/BZ
7273: ------------------------------------------------------------------
7274: Bra
7275: \w*
7276: a
7277: Ket
7278: End
7279: ------------------------------------------------------------------
7280:
7281: /\w*2/BZ
7282: ------------------------------------------------------------------
7283: Bra
7284: \w*
7285: 2
7286: Ket
7287: End
7288: ------------------------------------------------------------------
7289:
7290: /\w*\d/BZ
7291: ------------------------------------------------------------------
7292: Bra
7293: \w*
7294: \d
7295: Ket
7296: End
7297: ------------------------------------------------------------------
7298:
7299: /\w*\D/BZ
7300: ------------------------------------------------------------------
7301: Bra
7302: \w*
7303: \D
7304: Ket
7305: End
7306: ------------------------------------------------------------------
7307:
7308: /\w*\s/BZ
7309: ------------------------------------------------------------------
7310: Bra
7311: \w*+
7312: \s
7313: Ket
7314: End
7315: ------------------------------------------------------------------
7316:
7317: /\w*\S/BZ
7318: ------------------------------------------------------------------
7319: Bra
7320: \w*
7321: \S
7322: Ket
7323: End
7324: ------------------------------------------------------------------
7325:
7326: /\w*\w/BZ
7327: ------------------------------------------------------------------
7328: Bra
7329: \w*
7330: \w
7331: Ket
7332: End
7333: ------------------------------------------------------------------
7334:
7335: /\w*\W/BZ
7336: ------------------------------------------------------------------
7337: Bra
7338: \w*+
7339: \W
7340: Ket
7341: End
7342: ------------------------------------------------------------------
7343:
7344: /\W*a/BZ
7345: ------------------------------------------------------------------
7346: Bra
7347: \W*+
7348: a
7349: Ket
7350: End
7351: ------------------------------------------------------------------
7352:
7353: /\W*2/BZ
7354: ------------------------------------------------------------------
7355: Bra
7356: \W*+
7357: 2
7358: Ket
7359: End
7360: ------------------------------------------------------------------
7361:
7362: /\W*\d/BZ
7363: ------------------------------------------------------------------
7364: Bra
7365: \W*+
7366: \d
7367: Ket
7368: End
7369: ------------------------------------------------------------------
7370:
7371: /\W*\D/BZ
7372: ------------------------------------------------------------------
7373: Bra
7374: \W*
7375: \D
7376: Ket
7377: End
7378: ------------------------------------------------------------------
7379:
7380: /\W*\s/BZ
7381: ------------------------------------------------------------------
7382: Bra
7383: \W*
7384: \s
7385: Ket
7386: End
7387: ------------------------------------------------------------------
7388:
7389: /\W*\S/BZ
7390: ------------------------------------------------------------------
7391: Bra
7392: \W*
7393: \S
7394: Ket
7395: End
7396: ------------------------------------------------------------------
7397:
7398: /\W*\w/BZ
7399: ------------------------------------------------------------------
7400: Bra
7401: \W*+
7402: \w
7403: Ket
7404: End
7405: ------------------------------------------------------------------
7406:
7407: /\W*\W/BZ
7408: ------------------------------------------------------------------
7409: Bra
7410: \W*
7411: \W
7412: Ket
7413: End
7414: ------------------------------------------------------------------
7415:
7416: /[^a]+a/BZ
7417: ------------------------------------------------------------------
7418: Bra
7419: [^a]++
7420: a
7421: Ket
7422: End
7423: ------------------------------------------------------------------
7424:
7425: /[^a]+a/BZi
7426: ------------------------------------------------------------------
7427: Bra
1.1.1.2 ! misho 7428: /i [^a]++
1.1 misho 7429: /i a
7430: Ket
7431: End
7432: ------------------------------------------------------------------
7433:
7434: /[^a]+A/BZi
7435: ------------------------------------------------------------------
7436: Bra
1.1.1.2 ! misho 7437: /i [^a]++
1.1 misho 7438: /i A
7439: Ket
7440: End
7441: ------------------------------------------------------------------
7442:
7443: /[^a]+b/BZ
7444: ------------------------------------------------------------------
7445: Bra
7446: [^a]+
7447: b
7448: Ket
7449: End
7450: ------------------------------------------------------------------
7451:
7452: /[^a]+\d/BZ
7453: ------------------------------------------------------------------
7454: Bra
7455: [^a]+
7456: \d
7457: Ket
7458: End
7459: ------------------------------------------------------------------
7460:
7461: /a*[^a]/BZ
7462: ------------------------------------------------------------------
7463: Bra
7464: a*
7465: [^a]
7466: Ket
7467: End
7468: ------------------------------------------------------------------
7469:
7470: /(?P<abc>x)(?P<xyz>y)/I
7471: Capturing subpattern count = 2
7472: Named capturing subpatterns:
7473: abc 1
7474: xyz 2
7475: No options
7476: First char = 'x'
7477: Need char = 'y'
7478: xy\Cabc\Cxyz
7479: 0: xy
7480: 1: x
7481: 2: y
7482: C x (1) abc
7483: C y (1) xyz
7484:
7485: /(?<abc>x)(?'xyz'y)/I
7486: Capturing subpattern count = 2
7487: Named capturing subpatterns:
7488: abc 1
7489: xyz 2
7490: No options
7491: First char = 'x'
7492: Need char = 'y'
7493: xy\Cabc\Cxyz
7494: 0: xy
7495: 1: x
7496: 2: y
7497: C x (1) abc
7498: C y (1) xyz
7499:
7500: /(?<abc'x)(?'xyz'y)/I
7501: Failed: syntax error in subpattern name (missing terminator) at offset 6
7502:
7503: /(?<abc>x)(?'xyz>y)/I
7504: Failed: syntax error in subpattern name (missing terminator) at offset 15
7505:
7506: /(?P'abc'x)(?P<xyz>y)/I
7507: Failed: unrecognized character after (?P at offset 3
7508:
7509: /^(?:(?(ZZ)a|b)(?<ZZ>X))+/
7510: bXaX
7511: 0: bXaX
7512: 1: X
7513: bXbX
7514: 0: bX
7515: 1: X
7516: ** Failers
7517: No match
7518: aXaX
7519: No match
7520: aXbX
7521: No match
7522:
7523: /^(?P>abc)(?<abcd>xxx)/
7524: Failed: reference to non-existent subpattern at offset 8
7525:
7526: /^(?P>abc)(?<abc>x|y)/
7527: xx
7528: 0: xx
7529: 1: x
7530: xy
7531: 0: xy
7532: 1: y
7533: yy
7534: 0: yy
7535: 1: y
7536: yx
7537: 0: yx
7538: 1: x
7539:
7540: /^(?P>abc)(?P<abc>x|y)/
7541: xx
7542: 0: xx
7543: 1: x
7544: xy
7545: 0: xy
7546: 1: y
7547: yy
7548: 0: yy
7549: 1: y
7550: yx
7551: 0: yx
7552: 1: x
7553:
7554: /^((?(abc)a|b)(?<abc>x|y))+/
7555: bxay
7556: 0: bxay
7557: 1: ay
7558: 2: y
7559: bxby
7560: 0: bx
7561: 1: bx
7562: 2: x
7563: ** Failers
7564: No match
7565: axby
7566: No match
7567:
7568: /^(((?P=abc)|X)(?<abc>x|y))+/
7569: XxXxxx
7570: 0: XxXxxx
7571: 1: xx
7572: 2: x
7573: 3: x
7574: XxXyyx
7575: 0: XxXyyx
7576: 1: yx
7577: 2: y
7578: 3: x
7579: XxXyxx
7580: 0: XxXy
7581: 1: Xy
7582: 2: X
7583: 3: y
7584: ** Failers
7585: No match
7586: x
7587: No match
7588:
7589: /^(?1)(abc)/
7590: abcabc
7591: 0: abcabc
7592: 1: abc
7593:
7594: /^(?:(?:\1|X)(a|b))+/
7595: Xaaa
7596: 0: Xaaa
7597: 1: a
7598: Xaba
7599: 0: Xa
7600: 1: a
7601:
7602: /^[\E\Qa\E-\Qz\E]+/BZ
7603: ------------------------------------------------------------------
7604: Bra
7605: ^
7606: [a-z]+
7607: Ket
7608: End
7609: ------------------------------------------------------------------
7610:
7611: /^[a\Q]bc\E]/BZ
7612: ------------------------------------------------------------------
7613: Bra
7614: ^
7615: [\]a-c]
7616: Ket
7617: End
7618: ------------------------------------------------------------------
7619:
7620: /^[a-\Q\E]/BZ
7621: ------------------------------------------------------------------
7622: Bra
7623: ^
7624: [\-a]
7625: Ket
7626: End
7627: ------------------------------------------------------------------
7628:
7629: /^(?P>abc)[()](?<abc>)/BZ
7630: ------------------------------------------------------------------
7631: Bra
7632: ^
7633: Recurse
7634: [()]
7635: CBra 1
7636: Ket
7637: Ket
7638: End
7639: ------------------------------------------------------------------
7640:
7641: /^((?(abc)y)[()](?P<abc>x))+/BZ
7642: ------------------------------------------------------------------
7643: Bra
7644: ^
7645: CBra 1
7646: Cond
7647: 2 Cond nref
7648: y
7649: Ket
7650: [()]
7651: CBra 2
7652: x
7653: Ket
7654: KetRmax
7655: Ket
7656: End
7657: ------------------------------------------------------------------
7658: (xy)x
7659: 0: (xy)x
7660: 1: y)x
7661: 2: x
7662:
7663: /^(?P>abc)\Q()\E(?<abc>)/BZ
7664: ------------------------------------------------------------------
7665: Bra
7666: ^
7667: Recurse
7668: ()
7669: CBra 1
7670: Ket
7671: Ket
7672: End
7673: ------------------------------------------------------------------
7674:
7675: /^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
7676: ------------------------------------------------------------------
7677: Bra
7678: ^
7679: Recurse
7680: [(\]a]
7681: CBra 1
7682: Ket
7683: Ket
7684: End
7685: ------------------------------------------------------------------
7686:
7687: /^(?P>abc) # this is (a comment)
7688: (?<abc>)/BZx
7689: ------------------------------------------------------------------
7690: Bra
7691: ^
7692: Recurse
7693: CBra 1
7694: Ket
7695: Ket
7696: End
7697: ------------------------------------------------------------------
7698:
7699: /^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
7700: Capturing subpattern count = 4
7701: Max back reference = 4
7702: Named capturing subpatterns:
7703: four 4
7704: one 1
7705: three 3
7706: two 2
7707: Options: anchored caseless
7708: No first char
7709: No need char
7710: 1221
7711: 0: 1221
7712: 1: 1221
7713: 2: 1
7714: Satan, oscillate my metallic sonatas!
7715: 0: Satan, oscillate my metallic sonatas!
7716: 1: <unset>
7717: 2: <unset>
7718: 3: Satan, oscillate my metallic sonatas
7719: 4: S
7720: A man, a plan, a canal: Panama!
7721: 0: A man, a plan, a canal: Panama!
7722: 1: <unset>
7723: 2: <unset>
7724: 3: A man, a plan, a canal: Panama
7725: 4: A
7726: Able was I ere I saw Elba.
7727: 0: Able was I ere I saw Elba.
7728: 1: <unset>
7729: 2: <unset>
7730: 3: Able was I ere I saw Elba
7731: 4: A
7732: *** Failers
7733: No match
7734: The quick brown fox
7735: No match
7736:
7737: /(?=(\w+))\1:/I
7738: Capturing subpattern count = 1
7739: Max back reference = 1
7740: No options
7741: No first char
7742: Need char = ':'
7743: abcd:
7744: 0: abcd:
7745: 1: abcd
7746:
7747: /(?=(?'abc'\w+))\k<abc>:/I
7748: Capturing subpattern count = 1
7749: Max back reference = 1
7750: Named capturing subpatterns:
7751: abc 1
7752: No options
7753: No first char
7754: Need char = ':'
7755: abcd:
7756: 0: abcd:
7757: 1: abcd
7758:
7759: /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7760: adaa
7761: 0: adaa
7762: 1: a
7763: 2: d
7764: ** Failers
7765: No match
7766: addd
7767: No match
7768: adbb
7769: No match
7770:
7771: /(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
7772: bdaa
7773: 0: bdaa
7774: 1: b
7775: 2: d
7776: bdab
7777: 0: bdab
7778: 1: b
7779: 2: d
7780: ** Failers
7781: No match
7782: bddd
7783: No match
7784:
7785: /(?(<bc))/
7786: Failed: malformed number or name after (?( at offset 6
7787:
7788: /(?(''))/
7789: Failed: assertion expected after (?( at offset 4
7790:
7791: /(?('R')stuff)/
7792: Failed: reference to non-existent subpattern at offset 7
7793:
7794: /((abc (?(R) (?(R1)1) (?(R2)2) X | (?1) (?2) (?R) ))) /x
7795: abcabc1Xabc2XabcXabcabc
7796: 0: abcabc1Xabc2XabcX
7797: 1: abcabc1Xabc2XabcX
7798: 2: abcabc1Xabc2XabcX
7799:
7800: /(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
7801: abcabc1Xabc2XabcXabcabc
7802: 0: abcabc1Xabc2XabcX
7803: 1: abcabc1Xabc2XabcX
7804: 2: abcabc1Xabc2XabcX
7805:
7806: /(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
7807: Failed: reference to non-existent subpattern at offset 29
7808:
7809: /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
7810: abcabc1Xabc2XabcXabcabc
7811: 0: abcabc1Xabc2XabcX
7812: 1: abcabc1Xabc2XabcX
7813: 2: abcabc1Xabc2XabcX
7814:
7815: /^(?(DEFINE) abc | xyz ) /x
7816: Failed: DEFINE group contains more than one branch at offset 22
7817:
7818: /(?(DEFINE) abc) xyz/xI
7819: Capturing subpattern count = 0
7820: Options: extended
7821: First char = 'x'
7822: Need char = 'z'
7823:
7824: /(a|)*\d/
7825: \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7826: No match
7827: \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
7828: Matched, but too many substrings
7829:
7830: /^a.b/<lf>
7831: a\rb
7832: 0: a\x0db
7833: a\nb\<cr>
7834: 0: a\x0ab
7835: a\x85b\<anycrlf>
7836: 0: a\x85b
7837: ** Failers
7838: No match
7839: a\nb
7840: No match
7841: a\nb\<any>
7842: No match
7843: a\rb\<cr>
7844: No match
7845: a\rb\<any>
7846: No match
7847: a\x85b\<any>
7848: No match
7849: a\rb\<anycrlf>
7850: No match
7851:
7852: /^abc./mgx<any>
7853: abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7854: 0: abc1
7855: 0: abc2
7856: 0: abc3
7857: 0: abc4
7858: 0: abc5
7859: 0: abc6
7860: 0: abc7
7861:
7862: /abc.$/mgx<any>
7863: abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
7864: 0: abc1
7865: 0: abc2
7866: 0: abc3
7867: 0: abc4
7868: 0: abc5
7869: 0: abc6
7870: 0: abc9
7871:
7872: /a/<cr><any>
7873:
7874: /a/<any><crlf>
7875: Failed: inconsistent NEWLINE options at offset 0
7876:
7877: /^a\Rb/<bsr_unicode>
7878: a\nb
7879: 0: a\x0ab
7880: a\rb
7881: 0: a\x0db
7882: a\r\nb
7883: 0: a\x0d\x0ab
7884: a\x0bb
7885: 0: a\x0bb
7886: a\x0cb
7887: 0: a\x0cb
7888: a\x85b
7889: 0: a\x85b
7890: ** Failers
7891: No match
7892: a\n\rb
7893: No match
7894:
7895: /^a\R*b/<bsr_unicode>
7896: ab
7897: 0: ab
7898: a\nb
7899: 0: a\x0ab
7900: a\rb
7901: 0: a\x0db
7902: a\r\nb
7903: 0: a\x0d\x0ab
7904: a\x0bb
7905: 0: a\x0bb
7906: a\x0cb
7907: 0: a\x0cb
7908: a\x85b
7909: 0: a\x85b
7910: a\n\rb
7911: 0: a\x0a\x0db
7912: a\n\r\x85\x0cb
7913: 0: a\x0a\x0d\x85\x0cb
7914:
7915: /^a\R+b/<bsr_unicode>
7916: a\nb
7917: 0: a\x0ab
7918: a\rb
7919: 0: a\x0db
7920: a\r\nb
7921: 0: a\x0d\x0ab
7922: a\x0bb
7923: 0: a\x0bb
7924: a\x0cb
7925: 0: a\x0cb
7926: a\x85b
7927: 0: a\x85b
7928: a\n\rb
7929: 0: a\x0a\x0db
7930: a\n\r\x85\x0cb
7931: 0: a\x0a\x0d\x85\x0cb
7932: ** Failers
7933: No match
7934: ab
7935: No match
7936:
7937: /^a\R{1,3}b/<bsr_unicode>
7938: a\nb
7939: 0: a\x0ab
7940: a\n\rb
7941: 0: a\x0a\x0db
7942: a\n\r\x85b
7943: 0: a\x0a\x0d\x85b
7944: a\r\n\r\nb
7945: 0: a\x0d\x0a\x0d\x0ab
7946: a\r\n\r\n\r\nb
7947: 0: a\x0d\x0a\x0d\x0a\x0d\x0ab
7948: a\n\r\n\rb
7949: 0: a\x0a\x0d\x0a\x0db
7950: a\n\n\r\nb
7951: 0: a\x0a\x0a\x0d\x0ab
7952: ** Failers
7953: No match
7954: a\n\n\n\rb
7955: No match
7956: a\r
7957: No match
7958:
7959: /^a[\R]b/<bsr_unicode>
7960: aRb
7961: 0: aRb
7962: ** Failers
7963: No match
7964: a\nb
7965: No match
7966:
7967: /(?&abc)X(?<abc>P)/I
7968: Capturing subpattern count = 1
7969: Named capturing subpatterns:
7970: abc 1
7971: No options
7972: No first char
7973: Need char = 'P'
7974: abcPXP123
7975: 0: PXP
7976: 1: P
7977:
7978: /(?1)X(?<abc>P)/I
7979: Capturing subpattern count = 1
7980: Named capturing subpatterns:
7981: abc 1
7982: No options
7983: No first char
7984: Need char = 'P'
7985: abcPXP123
7986: 0: PXP
7987: 1: P
7988:
7989: /(?:a(?&abc)b)*(?<abc>x)/
7990: 123axbaxbaxbx456
7991: 0: axbaxbaxbx
7992: 1: x
7993: 123axbaxbaxb456
7994: 0: x
7995: 1: x
7996:
7997: /(?:a(?&abc)b){1,5}(?<abc>x)/
7998: 123axbaxbaxbx456
7999: 0: axbaxbaxbx
8000: 1: x
8001:
8002: /(?:a(?&abc)b){2,5}(?<abc>x)/
8003: 123axbaxbaxbx456
8004: 0: axbaxbaxbx
8005: 1: x
8006:
8007: /(?:a(?&abc)b){2,}(?<abc>x)/
8008: 123axbaxbaxbx456
8009: 0: axbaxbaxbx
8010: 1: x
8011:
8012: /(abc)(?i:(?1))/
8013: defabcabcxyz
8014: 0: abcabc
8015: 1: abc
8016: DEFabcABCXYZ
8017: No match
8018:
8019: /(abc)(?:(?i)(?1))/
8020: defabcabcxyz
8021: 0: abcabc
8022: 1: abc
8023: DEFabcABCXYZ
8024: No match
8025:
8026: /^(a)\g-2/
8027: Failed: reference to non-existent subpattern at offset 7
8028:
8029: /^(a)\g/
8030: Failed: a numbered reference must not be zero at offset 5
8031:
8032: /^(a)\g{0}/
8033: Failed: a numbered reference must not be zero at offset 8
8034:
8035: /^(a)\g{3/
8036: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
8037:
8038: /^(a)\g{4a}/
8039: Failed: reference to non-existent subpattern at offset 9
8040:
8041: /^a.b/<lf>
8042: a\rb
8043: 0: a\x0db
8044: *** Failers
8045: No match
8046: a\nb
8047: No match
8048:
8049: /.+foo/
8050: afoo
8051: 0: afoo
8052: ** Failers
8053: No match
8054: \r\nfoo
8055: No match
8056: \nfoo
8057: No match
8058:
8059: /.+foo/<crlf>
8060: afoo
8061: 0: afoo
8062: \nfoo
8063: 0: \x0afoo
8064: ** Failers
8065: No match
8066: \r\nfoo
8067: No match
8068:
8069: /.+foo/<any>
8070: afoo
8071: 0: afoo
8072: ** Failers
8073: No match
8074: \nfoo
8075: No match
8076: \r\nfoo
8077: No match
8078:
8079: /.+foo/s
8080: afoo
8081: 0: afoo
8082: \r\nfoo
8083: 0: \x0d\x0afoo
8084: \nfoo
8085: 0: \x0afoo
8086:
8087: /^$/mg<any>
8088: abc\r\rxyz
8089: 0:
8090: abc\n\rxyz
8091: 0:
8092: ** Failers
8093: No match
8094: abc\r\nxyz
8095: No match
8096:
8097: /(?m)^$/<any>g+
8098: abc\r\n\r\n
8099: 0:
8100: 0+ \x0d\x0a
8101:
8102: /(?m)^$|^\r\n/<any>g+
8103: abc\r\n\r\n
8104: 0:
8105: 0+ \x0d\x0a
8106: 0: \x0d\x0a
8107: 0+
8108:
8109: /(?m)$/<any>g+
8110: abc\r\n\r\n
8111: 0:
8112: 0+ \x0d\x0a\x0d\x0a
8113: 0:
8114: 0+ \x0d\x0a
8115: 0:
8116: 0+
8117:
8118: /abc.$/mgx<anycrlf>
8119: abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
8120: 0: abc1
8121: 0: abc4
8122: 0: abc5
8123: 0: abc9
8124:
8125: /^X/m
8126: XABC
8127: 0: X
8128: ** Failers
8129: No match
8130: XABC\B
8131: No match
8132:
8133: /(ab|c)(?-1)/BZ
8134: ------------------------------------------------------------------
8135: Bra
8136: CBra 1
8137: ab
8138: Alt
8139: c
8140: Ket
8141: Recurse
8142: Ket
8143: End
8144: ------------------------------------------------------------------
8145: abc
8146: 0: abc
8147: 1: ab
8148:
8149: /xy(?+1)(abc)/BZ
8150: ------------------------------------------------------------------
8151: Bra
8152: xy
8153: Recurse
8154: CBra 1
8155: abc
8156: Ket
8157: Ket
8158: End
8159: ------------------------------------------------------------------
8160: xyabcabc
8161: 0: xyabcabc
8162: 1: abc
8163: ** Failers
8164: No match
8165: xyabc
8166: No match
8167:
8168: /x(?-0)y/
8169: Failed: a numbered reference must not be zero at offset 5
8170:
8171: /x(?-1)y/
8172: Failed: reference to non-existent subpattern at offset 5
8173:
8174: /x(?+0)y/
8175: Failed: a numbered reference must not be zero at offset 5
8176:
8177: /x(?+1)y/
8178: Failed: reference to non-existent subpattern at offset 5
8179:
8180: /^(abc)?(?(-1)X|Y)/BZ
8181: ------------------------------------------------------------------
8182: Bra
8183: ^
8184: Brazero
8185: CBra 1
8186: abc
8187: Ket
8188: Cond
8189: 1 Cond ref
8190: X
8191: Alt
8192: Y
8193: Ket
8194: Ket
8195: End
8196: ------------------------------------------------------------------
8197: abcX
8198: 0: abcX
8199: 1: abc
8200: Y
8201: 0: Y
8202: ** Failers
8203: No match
8204: abcY
8205: No match
8206:
8207: /^((?(+1)X|Y)(abc))+/BZ
8208: ------------------------------------------------------------------
8209: Bra
8210: ^
8211: CBra 1
8212: Cond
8213: 2 Cond ref
8214: X
8215: Alt
8216: Y
8217: Ket
8218: CBra 2
8219: abc
8220: Ket
8221: KetRmax
8222: Ket
8223: End
8224: ------------------------------------------------------------------
8225: YabcXabc
8226: 0: YabcXabc
8227: 1: Xabc
8228: 2: abc
8229: YabcXabcXabc
8230: 0: YabcXabcXabc
8231: 1: Xabc
8232: 2: abc
8233: ** Failers
8234: No match
8235: XabcXabc
8236: No match
8237:
8238: /(?(-1)a)/BZ
8239: Failed: reference to non-existent subpattern at offset 6
8240:
8241: /((?(-1)a))/BZ
8242: ------------------------------------------------------------------
8243: Bra
8244: CBra 1
8245: Cond
8246: 1 Cond ref
8247: a
8248: Ket
8249: Ket
8250: Ket
8251: End
8252: ------------------------------------------------------------------
8253:
8254: /((?(-2)a))/BZ
8255: Failed: reference to non-existent subpattern at offset 7
8256:
8257: /^(?(+1)X|Y)(.)/BZ
8258: ------------------------------------------------------------------
8259: Bra
8260: ^
8261: Cond
8262: 1 Cond ref
8263: X
8264: Alt
8265: Y
8266: Ket
8267: CBra 1
8268: Any
8269: Ket
8270: Ket
8271: End
8272: ------------------------------------------------------------------
8273: Y!
8274: 0: Y!
8275: 1: !
8276:
8277: /(?<A>tom|bon)-\k{A}/
8278: tom-tom
8279: 0: tom-tom
8280: 1: tom
8281: bon-bon
8282: 0: bon-bon
8283: 1: bon
8284: ** Failers
8285: No match
8286: tom-bon
8287: No match
8288:
8289: /\g{A/
8290: Failed: syntax error in subpattern name (missing terminator) at offset 4
8291:
8292: /(?|(abc)|(xyz))/BZ
8293: ------------------------------------------------------------------
8294: Bra
8295: Bra
8296: CBra 1
8297: abc
8298: Ket
8299: Alt
8300: CBra 1
8301: xyz
8302: Ket
8303: Ket
8304: Ket
8305: End
8306: ------------------------------------------------------------------
8307: >abc<
8308: 0: abc
8309: 1: abc
8310: >xyz<
8311: 0: xyz
8312: 1: xyz
8313:
8314: /(x)(?|(abc)|(xyz))(x)/BZ
8315: ------------------------------------------------------------------
8316: Bra
8317: CBra 1
8318: x
8319: Ket
8320: Bra
8321: CBra 2
8322: abc
8323: Ket
8324: Alt
8325: CBra 2
8326: xyz
8327: Ket
8328: Ket
8329: CBra 3
8330: x
8331: Ket
8332: Ket
8333: End
8334: ------------------------------------------------------------------
8335: xabcx
8336: 0: xabcx
8337: 1: x
8338: 2: abc
8339: 3: x
8340: xxyzx
8341: 0: xxyzx
8342: 1: x
8343: 2: xyz
8344: 3: x
8345:
8346: /(x)(?|(abc)(pqr)|(xyz))(x)/BZ
8347: ------------------------------------------------------------------
8348: Bra
8349: CBra 1
8350: x
8351: Ket
8352: Bra
8353: CBra 2
8354: abc
8355: Ket
8356: CBra 3
8357: pqr
8358: Ket
8359: Alt
8360: CBra 2
8361: xyz
8362: Ket
8363: Ket
8364: CBra 4
8365: x
8366: Ket
8367: Ket
8368: End
8369: ------------------------------------------------------------------
8370: xabcpqrx
8371: 0: xabcpqrx
8372: 1: x
8373: 2: abc
8374: 3: pqr
8375: 4: x
8376: xxyzx
8377: 0: xxyzx
8378: 1: x
8379: 2: xyz
8380: 3: <unset>
8381: 4: x
8382:
8383: /\H++X/BZ
8384: ------------------------------------------------------------------
8385: Bra
8386: \H++
8387: X
8388: Ket
8389: End
8390: ------------------------------------------------------------------
8391: ** Failers
8392: No match
8393: XXXX
8394: No match
8395:
8396: /\H+\hY/BZ
8397: ------------------------------------------------------------------
8398: Bra
8399: \H++
8400: \h
8401: Y
8402: Ket
8403: End
8404: ------------------------------------------------------------------
8405: XXXX Y
8406: 0: XXXX Y
8407:
8408: /\H+ Y/BZ
8409: ------------------------------------------------------------------
8410: Bra
8411: \H++
8412: Y
8413: Ket
8414: End
8415: ------------------------------------------------------------------
8416:
8417: /\h+A/BZ
8418: ------------------------------------------------------------------
8419: Bra
8420: \h++
8421: A
8422: Ket
8423: End
8424: ------------------------------------------------------------------
8425:
8426: /\v*B/BZ
8427: ------------------------------------------------------------------
8428: Bra
8429: \v*+
8430: B
8431: Ket
8432: End
8433: ------------------------------------------------------------------
8434:
8435: /\V+\x0a/BZ
8436: ------------------------------------------------------------------
8437: Bra
8438: \V++
8439: \x0a
8440: Ket
8441: End
8442: ------------------------------------------------------------------
8443:
8444: /A+\h/BZ
8445: ------------------------------------------------------------------
8446: Bra
8447: A++
8448: \h
8449: Ket
8450: End
8451: ------------------------------------------------------------------
8452:
8453: / *\H/BZ
8454: ------------------------------------------------------------------
8455: Bra
8456: *+
8457: \H
8458: Ket
8459: End
8460: ------------------------------------------------------------------
8461:
8462: /A*\v/BZ
8463: ------------------------------------------------------------------
8464: Bra
8465: A*+
8466: \v
8467: Ket
8468: End
8469: ------------------------------------------------------------------
8470:
8471: /\x0b*\V/BZ
8472: ------------------------------------------------------------------
8473: Bra
8474: \x0b*+
8475: \V
8476: Ket
8477: End
8478: ------------------------------------------------------------------
8479:
8480: /\d+\h/BZ
8481: ------------------------------------------------------------------
8482: Bra
8483: \d++
8484: \h
8485: Ket
8486: End
8487: ------------------------------------------------------------------
8488:
8489: /\d*\v/BZ
8490: ------------------------------------------------------------------
8491: Bra
8492: \d*+
8493: \v
8494: Ket
8495: End
8496: ------------------------------------------------------------------
8497:
8498: /S+\h\S+\v/BZ
8499: ------------------------------------------------------------------
8500: Bra
8501: S++
8502: \h
8503: \S++
8504: \v
8505: Ket
8506: End
8507: ------------------------------------------------------------------
8508:
8509: /\w{3,}\h\w+\v/BZ
8510: ------------------------------------------------------------------
8511: Bra
8512: \w{3}
8513: \w*+
8514: \h
8515: \w++
8516: \v
8517: Ket
8518: End
8519: ------------------------------------------------------------------
8520:
8521: /\h+\d\h+\w\h+\S\h+\H/BZ
8522: ------------------------------------------------------------------
8523: Bra
8524: \h++
8525: \d
8526: \h++
8527: \w
8528: \h++
8529: \S
8530: \h++
8531: \H
8532: Ket
8533: End
8534: ------------------------------------------------------------------
8535:
8536: /\v+\d\v+\w\v+\S\v+\V/BZ
8537: ------------------------------------------------------------------
8538: Bra
8539: \v++
8540: \d
8541: \v++
8542: \w
8543: \v+
8544: \S
8545: \v++
8546: \V
8547: Ket
8548: End
8549: ------------------------------------------------------------------
8550:
8551: /\H+\h\H+\d/BZ
8552: ------------------------------------------------------------------
8553: Bra
8554: \H++
8555: \h
8556: \H+
8557: \d
8558: Ket
8559: End
8560: ------------------------------------------------------------------
8561:
8562: /\V+\v\V+\w/BZ
8563: ------------------------------------------------------------------
8564: Bra
8565: \V++
8566: \v
8567: \V+
8568: \w
8569: Ket
8570: End
8571: ------------------------------------------------------------------
8572:
8573: /\( (?: [^()]* | (?R) )* \)/x
8574: \J1024(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8575: 0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8576:
8577: /[\E]AAA/
8578: Failed: missing terminating ] for character class at offset 7
8579:
8580: /[\Q\E]AAA/
8581: Failed: missing terminating ] for character class at offset 9
8582:
8583: /[^\E]AAA/
8584: Failed: missing terminating ] for character class at offset 8
8585:
8586: /[^\Q\E]AAA/
8587: Failed: missing terminating ] for character class at offset 10
8588:
8589: /[\E^]AAA/
8590: Failed: missing terminating ] for character class at offset 8
8591:
8592: /[\Q\E^]AAA/
8593: Failed: missing terminating ] for character class at offset 10
8594:
8595: /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
8596: ------------------------------------------------------------------
8597: Bra
8598: A
8599: *PRUNE
8600: B
8601: *SKIP
8602: C
8603: *THEN
8604: D
8605: *COMMIT
8606: E
8607: *FAIL
8608: F
8609: *FAIL
8610: G
8611: *FAIL
8612: H
8613: *ACCEPT
8614: I
8615: Ket
8616: End
8617: ------------------------------------------------------------------
8618:
8619: /^a+(*FAIL)/C
8620: aaaaaa
8621: --->aaaaaa
8622: +0 ^ ^
8623: +1 ^ a+
8624: +3 ^ ^ (*FAIL)
8625: +3 ^ ^ (*FAIL)
8626: +3 ^ ^ (*FAIL)
8627: +3 ^ ^ (*FAIL)
8628: +3 ^ ^ (*FAIL)
8629: +3 ^^ (*FAIL)
8630: No match
8631:
8632: /a+b?c+(*FAIL)/C
8633: aaabccc
8634: --->aaabccc
8635: +0 ^ a+
8636: +2 ^ ^ b?
8637: +4 ^ ^ c+
8638: +6 ^ ^ (*FAIL)
8639: +6 ^ ^ (*FAIL)
8640: +6 ^ ^ (*FAIL)
8641: +4 ^ ^ c+
8642: +2 ^ ^ b?
8643: +4 ^ ^ c+
8644: +2 ^^ b?
8645: +4 ^^ c+
8646: +0 ^ a+
8647: +2 ^ ^ b?
8648: +4 ^ ^ c+
8649: +6 ^ ^ (*FAIL)
8650: +6 ^ ^ (*FAIL)
8651: +6 ^ ^ (*FAIL)
8652: +4 ^ ^ c+
8653: +2 ^^ b?
8654: +4 ^^ c+
8655: +0 ^ a+
8656: +2 ^^ b?
8657: +4 ^ ^ c+
8658: +6 ^ ^ (*FAIL)
8659: +6 ^ ^ (*FAIL)
8660: +6 ^ ^ (*FAIL)
8661: +4 ^^ c+
8662: No match
8663:
8664: /a+b?(*PRUNE)c+(*FAIL)/C
8665: aaabccc
8666: --->aaabccc
8667: +0 ^ a+
8668: +2 ^ ^ b?
8669: +4 ^ ^ (*PRUNE)
8670: +12 ^ ^ c+
8671: +14 ^ ^ (*FAIL)
8672: +14 ^ ^ (*FAIL)
8673: +14 ^ ^ (*FAIL)
8674: +0 ^ a+
8675: +2 ^ ^ b?
8676: +4 ^ ^ (*PRUNE)
8677: +12 ^ ^ c+
8678: +14 ^ ^ (*FAIL)
8679: +14 ^ ^ (*FAIL)
8680: +14 ^ ^ (*FAIL)
8681: +0 ^ a+
8682: +2 ^^ b?
8683: +4 ^ ^ (*PRUNE)
8684: +12 ^ ^ c+
8685: +14 ^ ^ (*FAIL)
8686: +14 ^ ^ (*FAIL)
8687: +14 ^ ^ (*FAIL)
8688: No match
8689:
8690: /a+b?(*COMMIT)c+(*FAIL)/C
8691: aaabccc
8692: --->aaabccc
8693: +0 ^ a+
8694: +2 ^ ^ b?
8695: +4 ^ ^ (*COMMIT)
8696: +13 ^ ^ c+
8697: +15 ^ ^ (*FAIL)
8698: +15 ^ ^ (*FAIL)
8699: +15 ^ ^ (*FAIL)
8700: No match
8701:
8702: /a+b?(*SKIP)c+(*FAIL)/C
8703: aaabcccaaabccc
8704: --->aaabcccaaabccc
8705: +0 ^ a+
8706: +2 ^ ^ b?
8707: +4 ^ ^ (*SKIP)
8708: +11 ^ ^ c+
8709: +13 ^ ^ (*FAIL)
8710: +13 ^ ^ (*FAIL)
8711: +13 ^ ^ (*FAIL)
8712: +0 ^ a+
8713: +2 ^ ^ b?
8714: +4 ^ ^ (*SKIP)
8715: +11 ^ ^ c+
8716: +13 ^ ^ (*FAIL)
8717: +13 ^ ^ (*FAIL)
8718: +13 ^ ^ (*FAIL)
8719: No match
8720:
8721: /a+b?(*THEN)c+(*FAIL)/C
8722: aaabccc
8723: --->aaabccc
8724: +0 ^ a+
8725: +2 ^ ^ b?
8726: +4 ^ ^ (*THEN)
8727: +11 ^ ^ c+
8728: +13 ^ ^ (*FAIL)
8729: +13 ^ ^ (*FAIL)
8730: +13 ^ ^ (*FAIL)
8731: +0 ^ a+
8732: +2 ^ ^ b?
8733: +4 ^ ^ (*THEN)
8734: +11 ^ ^ c+
8735: +13 ^ ^ (*FAIL)
8736: +13 ^ ^ (*FAIL)
8737: +13 ^ ^ (*FAIL)
8738: +0 ^ a+
8739: +2 ^^ b?
8740: +4 ^ ^ (*THEN)
8741: +11 ^ ^ c+
8742: +13 ^ ^ (*FAIL)
8743: +13 ^ ^ (*FAIL)
8744: +13 ^ ^ (*FAIL)
8745: No match
8746:
8747: /a(*MARK)b/
8748: Failed: (*MARK) must have an argument at offset 7
8749:
8750: /(?i:A{1,}\6666666666)/
8751: Failed: number is too big at offset 19
8752:
8753: /\g6666666666/
8754: Failed: number is too big at offset 11
8755:
8756: /[\g6666666666]/BZ
8757: ------------------------------------------------------------------
8758: Bra
8759: [6g]
8760: Ket
8761: End
8762: ------------------------------------------------------------------
8763:
8764: /(?1)\c[/
8765: Failed: reference to non-existent subpattern at offset 3
8766:
8767: /.+A/<crlf>
8768: \r\nA
8769: No match
8770:
8771: /\nA/<crlf>
8772: \r\nA
8773: 0: \x0aA
8774:
8775: /[\r\n]A/<crlf>
8776: \r\nA
8777: 0: \x0aA
8778:
8779: /(\r|\n)A/<crlf>
8780: \r\nA
8781: 0: \x0aA
8782: 1: \x0a
8783:
8784: /a(*CR)b/
8785: Failed: (*VERB) not recognized at offset 5
8786:
8787: /(*CR)a.b/
8788: a\nb
8789: 0: a\x0ab
8790: ** Failers
8791: No match
8792: a\rb
8793: No match
8794:
8795: /(*CR)a.b/<lf>
8796: a\nb
8797: 0: a\x0ab
8798: ** Failers
8799: No match
8800: a\rb
8801: No match
8802:
8803: /(*LF)a.b/<CRLF>
8804: a\rb
8805: 0: a\x0db
8806: ** Failers
8807: No match
8808: a\nb
8809: No match
8810:
8811: /(*CRLF)a.b/
8812: a\rb
8813: 0: a\x0db
8814: a\nb
8815: 0: a\x0ab
8816: ** Failers
8817: No match
8818: a\r\nb
8819: No match
8820:
8821: /(*ANYCRLF)a.b/<CR>
8822: ** Failers
8823: No match
8824: a\rb
8825: No match
8826: a\nb
8827: No match
8828: a\r\nb
8829: No match
8830:
8831: /(*ANY)a.b/<cr>
8832: ** Failers
8833: No match
8834: a\rb
8835: No match
8836: a\nb
8837: No match
8838: a\r\nb
8839: No match
8840: a\x85b
8841: No match
8842:
8843: /(*ANY).*/g
8844: abc\r\ndef
8845: 0: abc
8846: 0:
8847: 0: def
8848: 0:
8849:
8850: /(*ANYCRLF).*/g
8851: abc\r\ndef
8852: 0: abc
8853: 0:
8854: 0: def
8855: 0:
8856:
8857: /(*CRLF).*/g
8858: abc\r\ndef
8859: 0: abc
8860: 0:
8861: 0: def
8862: 0:
8863:
8864: /a\Rb/I<bsr_anycrlf>
8865: Capturing subpattern count = 0
8866: Options: bsr_anycrlf
8867: First char = 'a'
8868: Need char = 'b'
8869: a\rb
8870: 0: a\x0db
8871: a\nb
8872: 0: a\x0ab
8873: a\r\nb
8874: 0: a\x0d\x0ab
8875: ** Failers
8876: No match
8877: a\x85b
8878: No match
8879: a\x0bb
8880: No match
8881:
8882: /a\Rb/I<bsr_unicode>
8883: Capturing subpattern count = 0
8884: Options: bsr_unicode
8885: First char = 'a'
8886: Need char = 'b'
8887: a\rb
8888: 0: a\x0db
8889: a\nb
8890: 0: a\x0ab
8891: a\r\nb
8892: 0: a\x0d\x0ab
8893: a\x85b
8894: 0: a\x85b
8895: a\x0bb
8896: 0: a\x0bb
8897: ** Failers
8898: No match
8899: a\x85b\<bsr_anycrlf>
8900: No match
8901: a\x0bb\<bsr_anycrlf>
8902: No match
8903:
8904: /a\R?b/I<bsr_anycrlf>
8905: Capturing subpattern count = 0
8906: Options: bsr_anycrlf
8907: First char = 'a'
8908: Need char = 'b'
8909: a\rb
8910: 0: a\x0db
8911: a\nb
8912: 0: a\x0ab
8913: a\r\nb
8914: 0: a\x0d\x0ab
8915: ** Failers
8916: No match
8917: a\x85b
8918: No match
8919: a\x0bb
8920: No match
8921:
8922: /a\R?b/I<bsr_unicode>
8923: Capturing subpattern count = 0
8924: Options: bsr_unicode
8925: First char = 'a'
8926: Need char = 'b'
8927: a\rb
8928: 0: a\x0db
8929: a\nb
8930: 0: a\x0ab
8931: a\r\nb
8932: 0: a\x0d\x0ab
8933: a\x85b
8934: 0: a\x85b
8935: a\x0bb
8936: 0: a\x0bb
8937: ** Failers
8938: No match
8939: a\x85b\<bsr_anycrlf>
8940: No match
8941: a\x0bb\<bsr_anycrlf>
8942: No match
8943:
8944: /a\R{2,4}b/I<bsr_anycrlf>
8945: Capturing subpattern count = 0
8946: Options: bsr_anycrlf
8947: First char = 'a'
8948: Need char = 'b'
8949: a\r\n\nb
8950: 0: a\x0d\x0a\x0ab
8951: a\n\r\rb
8952: 0: a\x0a\x0d\x0db
8953: a\r\n\r\n\r\n\r\nb
8954: 0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
8955: ** Failers
8956: No match
8957: a\x85\85b
8958: No match
8959: a\x0b\0bb
8960: No match
8961:
8962: /a\R{2,4}b/I<bsr_unicode>
8963: Capturing subpattern count = 0
8964: Options: bsr_unicode
8965: First char = 'a'
8966: Need char = 'b'
8967: a\r\rb
8968: 0: a\x0d\x0db
8969: a\n\n\nb
8970: 0: a\x0a\x0a\x0ab
8971: a\r\n\n\r\rb
8972: 0: a\x0d\x0a\x0a\x0d\x0db
8973: a\x85\85b
8974: No match
8975: a\x0b\0bb
8976: No match
8977: ** Failers
8978: No match
8979: a\r\r\r\r\rb
8980: No match
8981: a\x85\85b\<bsr_anycrlf>
8982: No match
8983: a\x0b\0bb\<bsr_anycrlf>
8984: No match
8985:
8986: /(*BSR_ANYCRLF)a\Rb/I
8987: Capturing subpattern count = 0
8988: Options: bsr_anycrlf
8989: First char = 'a'
8990: Need char = 'b'
8991: a\nb
8992: 0: a\x0ab
8993: a\rb
8994: 0: a\x0db
8995:
8996: /(*BSR_UNICODE)a\Rb/I
8997: Capturing subpattern count = 0
8998: Options: bsr_unicode
8999: First char = 'a'
9000: Need char = 'b'
9001: a\x85b
9002: 0: a\x85b
9003:
9004: /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
9005: Capturing subpattern count = 0
9006: Options: bsr_anycrlf
9007: Forced newline sequence: CRLF
9008: First char = 'a'
9009: Need char = 'b'
9010: a\nb
9011: 0: a\x0ab
9012: a\rb
9013: 0: a\x0db
9014:
9015: /(*CRLF)(*BSR_UNICODE)a\Rb/I
9016: Capturing subpattern count = 0
9017: Options: bsr_unicode
9018: Forced newline sequence: CRLF
9019: First char = 'a'
9020: Need char = 'b'
9021: a\x85b
9022: 0: a\x85b
9023:
9024: /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
9025: Capturing subpattern count = 0
9026: Options: bsr_anycrlf
9027: Forced newline sequence: CR
9028: First char = 'a'
9029: Need char = 'b'
9030:
9031: /(?<a>)(?&)/
9032: Failed: subpattern name expected at offset 9
9033:
9034: /(?<abc>)(?&a)/
9035: Failed: reference to non-existent subpattern at offset 12
9036:
9037: /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
9038: Failed: reference to non-existent subpattern at offset 32
9039:
9040: /(?+-a)/
9041: Failed: digit expected after (?+ at offset 3
9042:
9043: /(?-+a)/
9044: Failed: unrecognized character after (? or (?- at offset 3
9045:
9046: /(?(-1))/
9047: Failed: reference to non-existent subpattern at offset 6
9048:
9049: /(?(+10))/
9050: Failed: reference to non-existent subpattern at offset 7
9051:
9052: /(?(10))/
9053: Failed: reference to non-existent subpattern at offset 6
9054:
9055: /(?(+2))()()/
9056:
9057: /(?(2))()()/
9058:
9059: /\k''/
9060: Failed: subpattern name expected at offset 3
9061:
9062: /\k<>/
9063: Failed: subpattern name expected at offset 3
9064:
9065: /\k{}/
9066: Failed: subpattern name expected at offset 3
9067:
9068: /\k/
9069: Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9070:
9071: /\kabc/
9072: Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9073:
9074: /(?P=)/
9075: Failed: subpattern name expected at offset 4
9076:
9077: /(?P>)/
9078: Failed: subpattern name expected at offset 4
9079:
9080: /(?!\w)(?R)/
9081: Failed: recursive call could loop indefinitely at offset 9
9082:
9083: /(?=\w)(?R)/
9084: Failed: recursive call could loop indefinitely at offset 9
9085:
9086: /(?<!\w)(?R)/
9087: Failed: recursive call could loop indefinitely at offset 10
9088:
9089: /(?<=\w)(?R)/
9090: Failed: recursive call could loop indefinitely at offset 10
9091:
9092: /[[:foo:]]/
9093: Failed: unknown POSIX class name at offset 3
9094:
9095: /[[:1234:]]/
9096: Failed: unknown POSIX class name at offset 3
9097:
9098: /[[:f\oo:]]/
9099: Failed: unknown POSIX class name at offset 3
9100:
9101: /[[: :]]/
9102: Failed: unknown POSIX class name at offset 3
9103:
9104: /[[:...:]]/
9105: Failed: unknown POSIX class name at offset 3
9106:
9107: /[[:l\ower:]]/
9108: Failed: unknown POSIX class name at offset 3
9109:
9110: /[[:abc\:]]/
9111: Failed: unknown POSIX class name at offset 3
9112:
9113: /[abc[:x\]pqr:]]/
9114: Failed: unknown POSIX class name at offset 6
9115:
9116: /[[:a\dz:]]/
9117: Failed: unknown POSIX class name at offset 3
9118:
9119: /(^(a|b\g<-1'c))/
9120: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
9121:
9122: /^(?+1)(?<a>x|y){0}z/
9123: xzxx
9124: 0: xz
9125: yzyy
9126: 0: yz
9127: ** Failers
9128: No match
9129: xxz
9130: No match
9131:
9132: /(\3)(\1)(a)/
9133: cat
9134: No match
9135:
9136: /(\3)(\1)(a)/<JS>
9137: cat
9138: 0: a
9139: 1:
9140: 2:
9141: 3: a
9142:
9143: /TA]/
9144: The ACTA] comes
9145: 0: TA]
9146:
9147: /TA]/<JS>
9148: Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
9149:
9150: /(?2)[]a()b](abc)/
9151: Failed: reference to non-existent subpattern at offset 3
9152:
9153: /(?2)[^]a()b](abc)/
9154: Failed: reference to non-existent subpattern at offset 3
9155:
9156: /(?1)[]a()b](abc)/
9157: abcbabc
9158: 0: abcbabc
9159: 1: abc
9160: ** Failers
9161: No match
9162: abcXabc
9163: No match
9164:
9165: /(?1)[^]a()b](abc)/
9166: abcXabc
9167: 0: abcXabc
9168: 1: abc
9169: ** Failers
9170: No match
9171: abcbabc
9172: No match
9173:
9174: /(?2)[]a()b](abc)(xyz)/
9175: xyzbabcxyz
9176: 0: xyzbabcxyz
9177: 1: abc
9178: 2: xyz
9179:
9180: /(?&N)[]a(?<N>)](?<M>abc)/
9181: Failed: reference to non-existent subpattern at offset 4
9182:
9183: /(?&N)[]a(?<N>)](abc)/
9184: Failed: reference to non-existent subpattern at offset 4
9185:
9186: /a[]b/
9187: Failed: missing terminating ] for character class at offset 4
9188:
9189: /a[^]b/
9190: Failed: missing terminating ] for character class at offset 5
9191:
9192: /a[]b/<JS>
9193: ** Failers
9194: No match
9195: ab
9196: No match
9197:
9198: /a[]+b/<JS>
9199: ** Failers
9200: No match
9201: ab
9202: No match
9203:
9204: /a[]*+b/<JS>
9205: ** Failers
9206: No match
9207: ab
9208: No match
9209:
9210: /a[^]b/<JS>
9211: aXb
9212: 0: aXb
9213: a\nb
9214: 0: a\x0ab
9215: ** Failers
9216: No match
9217: ab
9218: No match
9219:
9220: /a[^]+b/<JS>
9221: aXb
9222: 0: aXb
9223: a\nX\nXb
9224: 0: a\x0aX\x0aXb
9225: ** Failers
9226: No match
9227: ab
9228: No match
9229:
9230: /a(?!)+b/
9231: Failed: nothing to repeat at offset 5
9232:
9233: /a(*FAIL)+b/
9234: Failed: nothing to repeat at offset 8
9235:
9236: /(abc|pqr|123){0}[xyz]/SI
9237: Capturing subpattern count = 1
9238: No options
9239: No first char
9240: No need char
9241: Subject length lower bound = 1
9242: Starting byte set: x y z
9243:
9244: /(?(?=.*b)b|^)/CI
9245: Capturing subpattern count = 0
9246: Options:
9247: No first char
9248: No need char
9249: adc
9250: --->adc
9251: +0 ^ (?(?=.*b)b|^)
9252: +2 ^ (?=.*b)
9253: +5 ^ .*
9254: +7 ^ ^ b
9255: +7 ^ ^ b
9256: +7 ^^ b
9257: +7 ^ b
9258: +12 ^ )
9259: +13 ^
9260: 0:
9261: abc
9262: --->abc
9263: +0 ^ (?(?=.*b)b|^)
9264: +2 ^ (?=.*b)
9265: +5 ^ .*
9266: +7 ^ ^ b
9267: +7 ^ ^ b
9268: +7 ^^ b
9269: +8 ^ ^ )
9270: +9 ^ b
9271: +0 ^ (?(?=.*b)b|^)
9272: +2 ^ (?=.*b)
9273: +5 ^ .*
9274: +7 ^ ^ b
9275: +7 ^^ b
9276: +7 ^ b
9277: +8 ^^ )
9278: +9 ^ b
9279: +10 ^^ |
9280: +13 ^^
9281: 0: b
9282:
9283: /(?(?=b).*b|^d)/I
9284: Capturing subpattern count = 0
9285: No options
9286: No first char
9287: No need char
9288:
9289: /(?(?=.*b).*b|^d)/I
9290: Capturing subpattern count = 0
9291: No options
9292: First char at start or follows newline
9293: No need char
9294:
9295: /xyz/C
9296: xyz
9297: --->xyz
9298: +0 ^ x
9299: +1 ^^ y
9300: +2 ^ ^ z
9301: +3 ^ ^
9302: 0: xyz
9303: abcxyz
9304: --->abcxyz
9305: +0 ^ x
9306: +1 ^^ y
9307: +2 ^ ^ z
9308: +3 ^ ^
9309: 0: xyz
9310: abcxyz\Y
9311: --->abcxyz
9312: +0 ^ x
9313: +0 ^ x
9314: +0 ^ x
9315: +0 ^ x
9316: +1 ^^ y
9317: +2 ^ ^ z
9318: +3 ^ ^
9319: 0: xyz
9320: ** Failers
9321: No match
9322: abc
9323: No match
9324: abc\Y
9325: --->abc
9326: +0 ^ x
9327: +0 ^ x
9328: +0 ^ x
9329: +0 ^ x
9330: No match
9331: abcxypqr
9332: No match
9333: abcxypqr\Y
9334: --->abcxypqr
9335: +0 ^ x
9336: +0 ^ x
9337: +0 ^ x
9338: +0 ^ x
9339: +1 ^^ y
9340: +2 ^ ^ z
9341: +0 ^ x
9342: +0 ^ x
9343: +0 ^ x
9344: +0 ^ x
9345: +0 ^ x
9346: No match
9347:
9348: /(*NO_START_OPT)xyz/C
9349: abcxyz
9350: --->abcxyz
9351: +15 ^ x
9352: +15 ^ x
9353: +15 ^ x
9354: +15 ^ x
9355: +16 ^^ y
9356: +17 ^ ^ z
9357: +18 ^ ^
9358: 0: xyz
9359:
9360: /xyz/CY
9361: abcxyz
9362: --->abcxyz
9363: +0 ^ x
9364: +0 ^ x
9365: +0 ^ x
9366: +0 ^ x
9367: +1 ^^ y
9368: +2 ^ ^ z
9369: +3 ^ ^
9370: 0: xyz
9371:
9372: /^"((?(?=[a])[^"])|b)*"$/C
9373: "ab"
9374: --->"ab"
9375: +0 ^ ^
9376: +1 ^ "
9377: +2 ^^ ((?(?=[a])[^"])|b)*
9378: +3 ^^ (?(?=[a])[^"])
9379: +5 ^^ (?=[a])
9380: +8 ^^ [a]
9381: +11 ^ ^ )
9382: +12 ^^ [^"]
9383: +16 ^ ^ )
9384: +17 ^ ^ |
9385: +3 ^ ^ (?(?=[a])[^"])
9386: +5 ^ ^ (?=[a])
9387: +8 ^ ^ [a]
9388: +21 ^ ^ "
9389: +18 ^ ^ b
9390: +19 ^ ^ )
9391: +3 ^ ^ (?(?=[a])[^"])
9392: +5 ^ ^ (?=[a])
9393: +8 ^ ^ [a]
9394: +21 ^ ^ "
9395: +22 ^ ^ $
9396: +23 ^ ^
9397: 0: "ab"
9398: 1:
9399:
9400: /^"((?(?=[a])[^"])|b)*"$/
9401: "ab"
9402: 0: "ab"
9403: 1:
9404:
9405: /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9406: Failed: reference to non-existent subpattern at offset 5
9407:
9408: /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9409: XYabcdY
9410: 0: XYabcdY
9411: 1: a
9412: 2: b
9413: 3: c
9414: 4: d
9415: 5: Y
9416:
9417: /Xa{2,4}b/
9418: X\P
9419: Partial match: X
9420: Xa\P
9421: Partial match: Xa
9422: Xaa\P
9423: Partial match: Xaa
9424: Xaaa\P
9425: Partial match: Xaaa
9426: Xaaaa\P
9427: Partial match: Xaaaa
9428:
9429: /Xa{2,4}?b/
9430: X\P
9431: Partial match: X
9432: Xa\P
9433: Partial match: Xa
9434: Xaa\P
9435: Partial match: Xaa
9436: Xaaa\P
9437: Partial match: Xaaa
9438: Xaaaa\P
9439: Partial match: Xaaaa
9440:
9441: /Xa{2,4}+b/
9442: X\P
9443: Partial match: X
9444: Xa\P
9445: Partial match: Xa
9446: Xaa\P
9447: Partial match: Xaa
9448: Xaaa\P
9449: Partial match: Xaaa
9450: Xaaaa\P
9451: Partial match: Xaaaa
9452:
9453: /X\d{2,4}b/
9454: X\P
9455: Partial match: X
9456: X3\P
9457: Partial match: X3
9458: X33\P
9459: Partial match: X33
9460: X333\P
9461: Partial match: X333
9462: X3333\P
9463: Partial match: X3333
9464:
9465: /X\d{2,4}?b/
9466: X\P
9467: Partial match: X
9468: X3\P
9469: Partial match: X3
9470: X33\P
9471: Partial match: X33
9472: X333\P
9473: Partial match: X333
9474: X3333\P
9475: Partial match: X3333
9476:
9477: /X\d{2,4}+b/
9478: X\P
9479: Partial match: X
9480: X3\P
9481: Partial match: X3
9482: X33\P
9483: Partial match: X33
9484: X333\P
9485: Partial match: X333
9486: X3333\P
9487: Partial match: X3333
9488:
9489: /X\D{2,4}b/
9490: X\P
9491: Partial match: X
9492: Xa\P
9493: Partial match: Xa
9494: Xaa\P
9495: Partial match: Xaa
9496: Xaaa\P
9497: Partial match: Xaaa
9498: Xaaaa\P
9499: Partial match: Xaaaa
9500:
9501: /X\D{2,4}?b/
9502: X\P
9503: Partial match: X
9504: Xa\P
9505: Partial match: Xa
9506: Xaa\P
9507: Partial match: Xaa
9508: Xaaa\P
9509: Partial match: Xaaa
9510: Xaaaa\P
9511: Partial match: Xaaaa
9512:
9513: /X\D{2,4}+b/
9514: X\P
9515: Partial match: X
9516: Xa\P
9517: Partial match: Xa
9518: Xaa\P
9519: Partial match: Xaa
9520: Xaaa\P
9521: Partial match: Xaaa
9522: Xaaaa\P
9523: Partial match: Xaaaa
9524:
9525: /X[abc]{2,4}b/
9526: X\P
9527: Partial match: X
9528: Xa\P
9529: Partial match: Xa
9530: Xaa\P
9531: Partial match: Xaa
9532: Xaaa\P
9533: Partial match: Xaaa
9534: Xaaaa\P
9535: Partial match: Xaaaa
9536:
9537: /X[abc]{2,4}?b/
9538: X\P
9539: Partial match: X
9540: Xa\P
9541: Partial match: Xa
9542: Xaa\P
9543: Partial match: Xaa
9544: Xaaa\P
9545: Partial match: Xaaa
9546: Xaaaa\P
9547: Partial match: Xaaaa
9548:
9549: /X[abc]{2,4}+b/
9550: X\P
9551: Partial match: X
9552: Xa\P
9553: Partial match: Xa
9554: Xaa\P
9555: Partial match: Xaa
9556: Xaaa\P
9557: Partial match: Xaaa
9558: Xaaaa\P
9559: Partial match: Xaaaa
9560:
9561: /X[^a]{2,4}b/
9562: X\P
9563: Partial match: X
9564: Xz\P
9565: Partial match: Xz
9566: Xzz\P
9567: Partial match: Xzz
9568: Xzzz\P
9569: Partial match: Xzzz
9570: Xzzzz\P
9571: Partial match: Xzzzz
9572:
9573: /X[^a]{2,4}?b/
9574: X\P
9575: Partial match: X
9576: Xz\P
9577: Partial match: Xz
9578: Xzz\P
9579: Partial match: Xzz
9580: Xzzz\P
9581: Partial match: Xzzz
9582: Xzzzz\P
9583: Partial match: Xzzzz
9584:
9585: /X[^a]{2,4}+b/
9586: X\P
9587: Partial match: X
9588: Xz\P
9589: Partial match: Xz
9590: Xzz\P
9591: Partial match: Xzz
9592: Xzzz\P
9593: Partial match: Xzzz
9594: Xzzzz\P
9595: Partial match: Xzzzz
9596:
9597: /(Y)X\1{2,4}b/
9598: YX\P
9599: Partial match: YX
9600: YXY\P
9601: Partial match: YXY
9602: YXYY\P
9603: Partial match: YXYY
9604: YXYYY\P
9605: Partial match: YXYYY
9606: YXYYYY\P
9607: Partial match: YXYYYY
9608:
9609: /(Y)X\1{2,4}?b/
9610: YX\P
9611: Partial match: YX
9612: YXY\P
9613: Partial match: YXY
9614: YXYY\P
9615: Partial match: YXYY
9616: YXYYY\P
9617: Partial match: YXYYY
9618: YXYYYY\P
9619: Partial match: YXYYYY
9620:
9621: /(Y)X\1{2,4}+b/
9622: YX\P
9623: Partial match: YX
9624: YXY\P
9625: Partial match: YXY
9626: YXYY\P
9627: Partial match: YXYY
9628: YXYYY\P
9629: Partial match: YXYYY
9630: YXYYYY\P
9631: Partial match: YXYYYY
9632:
9633: /\++\KZ|\d+X|9+Y/
9634: ++++123999\P
9635: Partial match: 123999
9636: ++++123999Y\P
9637: 0: 999Y
9638: ++++Z1234\P
9639: 0: Z
9640:
9641: /Z(*F)/
9642: Z\P
9643: No match
9644: ZA\P
9645: No match
9646:
9647: /Z(?!)/
9648: Z\P
9649: No match
9650: ZA\P
9651: No match
9652:
9653: /dog(sbody)?/
9654: dogs\P
9655: 0: dog
9656: dogs\P\P
9657: Partial match: dogs
9658:
9659: /dog(sbody)??/
9660: dogs\P
9661: 0: dog
9662: dogs\P\P
9663: 0: dog
9664:
9665: /dog|dogsbody/
9666: dogs\P
9667: 0: dog
9668: dogs\P\P
9669: 0: dog
9670:
9671: /dogsbody|dog/
9672: dogs\P
9673: 0: dog
9674: dogs\P\P
9675: Partial match: dogs
9676:
9677: /\bthe cat\b/
9678: the cat\P
9679: 0: the cat
9680: the cat\P\P
9681: Partial match: the cat
9682:
9683: /abc/
9684: abc\P
9685: 0: abc
9686: abc\P\P
9687: 0: abc
9688:
9689: /abc\K123/
9690: xyzabc123pqr
9691: 0: 123
9692: xyzabc12\P
9693: Partial match: abc12
9694: xyzabc12\P\P
9695: Partial match: abc12
9696:
9697: /(?<=abc)123/
9698: xyzabc123pqr
9699: 0: 123
9700: xyzabc12\P
9701: Partial match: abc12
9702: xyzabc12\P\P
9703: Partial match: abc12
9704:
9705: /\babc\b/
9706: +++abc+++
9707: 0: abc
9708: +++ab\P
9709: Partial match: +ab
9710: +++ab\P\P
9711: Partial match: +ab
9712:
9713: /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9714: ------------------------------------------------------------------
9715: Bra
9716: Recurse
9717: Recurse
9718: Cond
9719: Cond def
9720: CBra 1
9721: <
9722: [^m]
9723: [^>]
9724: >
9725: [^<]
9726: Ket
9727: CBra 2
9728: \w*+
9729: Ket
9730: Ket
9731: Ket
9732: End
9733: ------------------------------------------------------------------
9734:
9735: /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9736: ------------------------------------------------------------------
9737: Bra
9738: Recurse
9739: Recurse
9740: Cond
9741: Cond def
9742: CBra 1
9743: <
9744: [\x00-/:-\xff] (neg)
9745: [^>]
9746: >
9747: [^<]
9748: Ket
9749: CBra 2
9750: \w*+
9751: Ket
9752: Ket
9753: Ket
9754: End
9755: ------------------------------------------------------------------
9756:
9757: /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9758: ------------------------------------------------------------------
9759: Bra
9760: CBra 1
9761: ab
9762: Ket
9763: CBra 2
9764: x
9765: CBra 3
9766: y
9767: Ket
9768: z
9769: CBra 4
9770: cd
9771: Close 4
9772: Close 2
9773: *ACCEPT
9774: Ket
9775: Ket
9776: pq
9777: Ket
9778: End
9779: ------------------------------------------------------------------
9780:
9781: /abc\K/+
9782: abcdef
9783: 0:
9784: 0+ def
9785: abcdef\N\N
9786: 0:
9787: 0+ def
9788: xyzabcdef\N\N
9789: 0:
9790: 0+ def
9791: ** Failers
9792: No match
9793: abcdef\N
9794: No match
9795: xyzabcdef\N
9796: No match
9797:
9798: /^(?:(?=abc)|abc\K)/+
9799: abcdef
9800: 0:
9801: 0+ abcdef
9802: abcdef\N\N
9803: 0:
9804: 0+ def
9805: ** Failers
9806: No match
9807: abcdef\N
9808: No match
9809:
9810: /a?b?/+
9811: xyz
9812: 0:
9813: 0+ xyz
9814: xyzabc
9815: 0:
9816: 0+ xyzabc
9817: xyzabc\N
9818: 0: ab
9819: 0+ c
9820: xyzabc\N\N
9821: 0:
9822: 0+ yzabc
9823: xyz\N\N
9824: 0:
9825: 0+ yz
9826: ** Failers
9827: 0:
9828: 0+ ** Failers
9829: xyz\N
9830: No match
9831:
9832: /^a?b?/+
9833: xyz
9834: 0:
9835: 0+ xyz
9836: xyzabc
9837: 0:
9838: 0+ xyzabc
9839: ** Failers
9840: 0:
9841: 0+ ** Failers
9842: xyzabc\N
9843: No match
9844: xyzabc\N\N
9845: No match
9846: xyz\N\N
9847: No match
9848: xyz\N
9849: No match
9850:
9851: /^(?<name>a|b\g<name>c)/
9852: aaaa
9853: 0: a
9854: 1: a
9855: bacxxx
9856: 0: bac
9857: 1: bac
9858: bbaccxxx
9859: 0: bbacc
9860: 1: bbacc
9861: bbbacccxx
9862: 0: bbbaccc
9863: 1: bbbaccc
9864:
9865: /^(?<name>a|b\g'name'c)/
9866: aaaa
9867: 0: a
9868: 1: a
9869: bacxxx
9870: 0: bac
9871: 1: bac
9872: bbaccxxx
9873: 0: bbacc
9874: 1: bbacc
9875: bbbacccxx
9876: 0: bbbaccc
9877: 1: bbbaccc
9878:
9879: /^(a|b\g<1>c)/
9880: aaaa
9881: 0: a
9882: 1: a
9883: bacxxx
9884: 0: bac
9885: 1: bac
9886: bbaccxxx
9887: 0: bbacc
9888: 1: bbacc
9889: bbbacccxx
9890: 0: bbbaccc
9891: 1: bbbaccc
9892:
9893: /^(a|b\g'1'c)/
9894: aaaa
9895: 0: a
9896: 1: a
9897: bacxxx
9898: 0: bac
9899: 1: bac
9900: bbaccxxx
9901: 0: bbacc
9902: 1: bbacc
9903: bbbacccxx
9904: 0: bbbaccc
9905: 1: bbbaccc
9906:
9907: /^(a|b\g'-1'c)/
9908: aaaa
9909: 0: a
9910: 1: a
9911: bacxxx
9912: 0: bac
9913: 1: bac
9914: bbaccxxx
9915: 0: bbacc
9916: 1: bbacc
9917: bbbacccxx
9918: 0: bbbaccc
9919: 1: bbbaccc
9920:
9921: /(^(a|b\g<-1>c))/
9922: aaaa
9923: 0: a
9924: 1: a
9925: 2: a
9926: bacxxx
9927: 0: bac
9928: 1: bac
9929: 2: bac
9930: bbaccxxx
9931: 0: bbacc
9932: 1: bbacc
9933: 2: bbacc
9934: bbbacccxx
9935: 0: bbbaccc
9936: 1: bbbaccc
9937: 2: bbbaccc
9938:
9939: /(?-i:\g<name>)(?i:(?<name>a))/
9940: XaaX
9941: 0: aa
9942: 1: a
9943: XAAX
9944: 0: AA
9945: 1: A
9946:
9947: /(?i:\g<name>)(?-i:(?<name>a))/
9948: XaaX
9949: 0: aa
9950: 1: a
9951: ** Failers
9952: No match
9953: XAAX
9954: No match
9955:
9956: /(?-i:\g<+1>)(?i:(a))/
9957: XaaX
9958: 0: aa
9959: 1: a
9960: XAAX
9961: 0: AA
9962: 1: A
9963:
9964: /(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/
9965:
9966: /(?<n>a|b|c)\g<n>*/
9967: abc
9968: 0: abc
9969: 1: a
9970: accccbbb
9971: 0: accccbbb
9972: 1: a
9973:
9974: /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
9975: XYabcdY
9976: 0: XYabcdY
9977: 1: a
9978: 2: b
9979: 3: <unset>
9980: 4: <unset>
9981: 5: c
9982: 6: d
9983: 7: Y
9984:
9985: /(?<=b(?1)|zzz)(a)/
9986: xbaax
9987: 0: a
9988: 1: a
9989: xzzzax
9990: 0: a
9991: 1: a
9992:
9993: /(a)(?<=b\1)/
9994: Failed: lookbehind assertion is not fixed length at offset 10
9995:
9996: /(a)(?<=b+(?1))/
9997: Failed: lookbehind assertion is not fixed length at offset 13
9998:
9999: /(a+)(?<=b(?1))/
10000: Failed: lookbehind assertion is not fixed length at offset 14
10001:
10002: /(a(?<=b(?1)))/
10003: Failed: lookbehind assertion is not fixed length at offset 13
10004:
10005: /(?<=b(?1))xyz/
10006: Failed: reference to non-existent subpattern at offset 8
10007:
10008: /(?<=b(?1))xyz(b+)pqrstuvew/
10009: Failed: lookbehind assertion is not fixed length at offset 26
10010:
10011: /(a|bc)\1/SI
10012: Capturing subpattern count = 1
10013: Max back reference = 1
10014: No options
10015: No first char
10016: No need char
10017: Subject length lower bound = 2
10018: Starting byte set: a b
10019:
10020: /(a|bc)\1{2,3}/SI
10021: Capturing subpattern count = 1
10022: Max back reference = 1
10023: No options
10024: No first char
10025: No need char
10026: Subject length lower bound = 3
10027: Starting byte set: a b
10028:
10029: /(a|bc)(?1)/SI
10030: Capturing subpattern count = 1
10031: No options
10032: No first char
10033: No need char
10034: Subject length lower bound = 2
10035: Starting byte set: a b
10036:
10037: /(a|b\1)(a|b\1)/SI
10038: Capturing subpattern count = 2
10039: Max back reference = 1
10040: No options
10041: No first char
10042: No need char
10043: Subject length lower bound = 2
10044: Starting byte set: a b
10045:
10046: /(a|b\1){2}/SI
10047: Capturing subpattern count = 1
10048: Max back reference = 1
10049: No options
10050: No first char
10051: No need char
10052: Subject length lower bound = 2
10053: Starting byte set: a b
10054:
10055: /(a|bbbb\1)(a|bbbb\1)/SI
10056: Capturing subpattern count = 2
10057: Max back reference = 1
10058: No options
10059: No first char
10060: No need char
10061: Subject length lower bound = 2
10062: Starting byte set: a b
10063:
10064: /(a|bbbb\1){2}/SI
10065: Capturing subpattern count = 1
10066: Max back reference = 1
10067: No options
10068: No first char
10069: No need char
10070: Subject length lower bound = 2
10071: Starting byte set: a b
10072:
10073: /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/SI
10074: Capturing subpattern count = 1
10075: Options: anchored
10076: No first char
10077: Need char = ':'
10078: Subject length lower bound = 22
10079: No set of starting bytes
10080:
10081: /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS
10082: Capturing subpattern count = 11
10083: Options: caseless dotall
10084: First char = '<'
10085: Need char = '>'
10086: Subject length lower bound = 47
10087: No set of starting bytes
10088:
10089: "(?>.*/)foo"SI
10090: Capturing subpattern count = 0
10091: No options
10092: First char at start or follows newline
10093: Need char = 'o'
10094: Subject length lower bound = 4
10095: No set of starting bytes
10096:
10097: /(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /xSI
10098: Capturing subpattern count = 0
10099: Options: extended
10100: No first char
10101: Need char = '-'
10102: Subject length lower bound = 8
10103: No set of starting bytes
10104:
10105: /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10106: Capturing subpattern count = 1
10107: Options: caseless
10108: No first char
10109: No need char
10110: Subject length lower bound = 1
10111: Starting byte set: A B C a b c
10112:
10113: /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10114: Capturing subpattern count = 0
10115: No options
10116: No first char
10117: Need char = 'b'
10118: Subject length lower bound = 41
10119: Starting byte set: c d
10120:
10121: /<a[\s]+href[\s]*=[\s]* # find <a href=
10122: ([\"\'])? # find single or double quote
10123: (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching
10124: # quote, otherwise match up to next space
10125: /isxSI
10126: Capturing subpattern count = 3
10127: Max back reference = 1
10128: Options: caseless extended dotall
10129: First char = '<'
10130: Need char = '='
10131: Subject length lower bound = 9
10132: No set of starting bytes
10133:
10134: /^(?!:) # colon disallowed at start
10135: (?: # start of item
10136: (?: [0-9a-f]{1,4} | # 1-4 hex digits or
10137: (?(1)0 | () ) ) # if null previously matched, fail; else null
10138: : # followed by colon
10139: ){1,7} # end item; 1-7 of them required
10140: [0-9a-f]{1,4} $ # final hex number at end of string
10141: (?(1)|.) # check that there was an empty component
10142: /xiIS
10143: Capturing subpattern count = 1
10144: Options: anchored caseless extended
10145: No first char
10146: Need char = ':'
10147: Subject length lower bound = 2
10148: No set of starting bytes
10149:
10150: /(?|(?<a>A)|(?<a>B))/I
10151: Capturing subpattern count = 1
10152: Named capturing subpatterns:
10153: a 1
10154: a 1
10155: No options
10156: No first char
10157: No need char
10158: AB\Ca
10159: 0: A
10160: 1: A
10161: C A (1) a
10162: BA\Ca
10163: 0: B
10164: 1: B
10165: C B (1) a
10166:
10167: /(?|(?<a>A)|(?<b>B))/
10168: Failed: different names for subpatterns of the same number are not allowed at offset 15
10169:
10170: /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10171: b(?<quote> (?<apostrophe>')|(?<realquote>")) )
10172: (?('quote')[a-z]+|[0-9]+)/JIx
10173: Capturing subpattern count = 6
10174: Named capturing subpatterns:
10175: apostrophe 2
10176: apostrophe 5
10177: quote 1
10178: quote 4
10179: realquote 3
10180: realquote 6
10181: Options: extended dupnames
10182: No first char
10183: No need char
10184: a"aaaaa
10185: 0: a"aaaaa
10186: 1: "
10187: 2: <unset>
10188: 3: "
10189: b"aaaaa
10190: 0: b"aaaaa
10191: 1: <unset>
10192: 2: <unset>
10193: 3: <unset>
10194: 4: "
10195: 5: <unset>
10196: 6: "
10197: ** Failers
10198: No match
10199: b"11111
10200: No match
10201: a"11111
10202: No match
10203:
10204: /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10205: ------------------------------------------------------------------
10206: Bra
10207: ^
10208: Bra
10209: CBra 1
10210: a
10211: Ket
10212: CBra 2
10213: b
10214: Ket
10215: CBra 3
10216: c
10217: Ket
10218: CBra 4
10219: d
10220: Ket
10221: Alt
10222: CBra 1
10223: e
10224: Ket
10225: Ket
10226: Cond
10227: 4 Cond nref
10228: X
10229: Alt
10230: Y
10231: Ket
10232: Ket
10233: End
10234: ------------------------------------------------------------------
10235: Capturing subpattern count = 4
10236: Named capturing subpatterns:
10237: D 4
10238: D 1
10239: Options: anchored extended dupnames
10240: No first char
10241: No need char
10242: abcdX
10243: 0: abcdX
10244: 1: a
10245: 2: b
10246: 3: c
10247: 4: d
10248: eX
10249: 0: eX
10250: 1: e
10251: ** Failers
10252: No match
10253: abcdY
10254: No match
10255: ey
10256: No match
10257:
10258: /(?<A>a) (b)(c) (?<A>d (?(R&A)$ | (?4)) )/JDZx
10259: ------------------------------------------------------------------
10260: Bra
10261: CBra 1
10262: a
10263: Ket
10264: CBra 2
10265: b
10266: Ket
10267: CBra 3
10268: c
10269: Ket
10270: CBra 4
10271: d
10272: Cond
10273: Cond nrecurse 1
10274: $
10275: Alt
10276: Recurse
10277: Ket
10278: Ket
10279: Ket
10280: End
10281: ------------------------------------------------------------------
10282: Capturing subpattern count = 4
10283: Named capturing subpatterns:
10284: A 1
10285: A 4
10286: Options: extended dupnames
10287: First char = 'a'
10288: Need char = 'd'
10289: abcdd
10290: 0: abcdd
10291: 1: a
10292: 2: b
10293: 3: c
10294: 4: dd
10295: ** Failers
10296: No match
10297: abcdde
10298: No match
10299:
10300: /abcd*/
10301: xxxxabcd\P
10302: 0: abcd
10303: xxxxabcd\P\P
10304: Partial match: abcd
10305:
10306: /abcd*/i
10307: xxxxabcd\P
10308: 0: abcd
10309: xxxxabcd\P\P
10310: Partial match: abcd
10311: XXXXABCD\P
10312: 0: ABCD
10313: XXXXABCD\P\P
10314: Partial match: ABCD
10315:
10316: /abc\d*/
10317: xxxxabc1\P
10318: 0: abc1
10319: xxxxabc1\P\P
10320: Partial match: abc1
10321:
10322: /(a)bc\1*/
10323: xxxxabca\P
10324: 0: abca
10325: 1: a
10326: xxxxabca\P\P
10327: Partial match: abca
10328:
10329: /abc[de]*/
10330: xxxxabcde\P
10331: 0: abcde
10332: xxxxabcde\P\P
10333: Partial match: abcde
10334:
10335: /-- This is not in the Perl >= 5.10 test because Perl seems currently to be
10336: broken and not behaving as specified in that it *does* bumpalong after
10337: hitting (*COMMIT). --/
10338:
10339: /(?1)(A(*COMMIT)|B)D/
10340: ABD
10341: 0: ABD
10342: 1: B
10343: XABD
10344: 0: ABD
10345: 1: B
10346: BAD
10347: 0: BAD
10348: 1: A
10349: ABXABD
10350: 0: ABD
10351: 1: B
10352: ** Failers
10353: No match
10354: ABX
10355: No match
10356: BAXBAD
10357: No match
10358:
10359: /(\3)(\1)(a)/<JS>
10360: cat
10361: 0: a
10362: 1:
10363: 2:
10364: 3: a
10365:
10366: /(\3)(\1)(a)/SI<JS>
10367: Capturing subpattern count = 3
10368: Max back reference = 3
10369: Options:
10370: No first char
10371: Need char = 'a'
10372: Subject length lower bound = 1
10373: No set of starting bytes
10374: cat
10375: 0: a
10376: 1:
10377: 2:
10378: 3: a
10379:
10380: /(\3)(\1)(a)/SI
10381: Capturing subpattern count = 3
10382: Max back reference = 3
10383: No options
10384: No first char
10385: Need char = 'a'
10386: Subject length lower bound = 3
10387: No set of starting bytes
10388: cat
10389: No match
10390:
10391: /i(?(DEFINE)(?<s>a))/SI
10392: Capturing subpattern count = 1
10393: Named capturing subpatterns:
10394: s 1
10395: No options
10396: First char = 'i'
10397: No need char
10398: Subject length lower bound = 1
10399: No set of starting bytes
10400: i
10401: 0: i
10402:
10403: /()i(?(1)a)/SI
10404: Capturing subpattern count = 1
10405: No options
10406: No first char
10407: Need char = 'i'
10408: Subject length lower bound = 1
10409: Starting byte set: i
10410: ia
10411: 0: ia
10412: 1:
10413:
10414: /(?i)a(?-i)b|c/BZ
10415: ------------------------------------------------------------------
10416: Bra
10417: /i a
10418: b
10419: Alt
10420: c
10421: Ket
10422: End
10423: ------------------------------------------------------------------
10424: XabX
10425: 0: ab
10426: XAbX
10427: 0: Ab
10428: CcC
10429: 0: c
10430: ** Failers
10431: No match
10432: XABX
10433: No match
10434:
10435: /(?i)a(?s)b|c/BZ
10436: ------------------------------------------------------------------
10437: Bra
10438: /i ab
10439: Alt
10440: /i c
10441: Ket
10442: End
10443: ------------------------------------------------------------------
10444:
10445: /(?i)a(?s-i)b|c/BZ
10446: ------------------------------------------------------------------
10447: Bra
10448: /i a
10449: b
10450: Alt
10451: c
10452: Ket
10453: End
10454: ------------------------------------------------------------------
10455:
10456: /^(ab(c\1)d|x){2}$/BZ
10457: ------------------------------------------------------------------
10458: Bra
10459: ^
10460: Once
10461: CBra 1
10462: ab
10463: CBra 2
10464: c
10465: \1
10466: Ket
10467: d
10468: Alt
10469: x
10470: Ket
10471: Ket
10472: Once
10473: CBra 1
10474: ab
10475: CBra 2
10476: c
10477: \1
10478: Ket
10479: d
10480: Alt
10481: x
10482: Ket
10483: Ket
10484: $
10485: Ket
10486: End
10487: ------------------------------------------------------------------
10488: xabcxd
10489: 0: xabcxd
10490: 1: abcxd
10491: 2: cx
10492:
10493: /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10494: ------------------------------------------------------------------
10495: Bra
10496: ^
10497: Braposzero
10498: SBraPos
10499: Recurse
10500: KetRpos
10501: Cond
10502: Cond def
10503: CBra 1
10504: Any
10505: Ket
10506: Ket
10507: $
10508: Ket
10509: End
10510: ------------------------------------------------------------------
10511:
10512: /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10513: ------------------------------------------------------------------
10514: Bra
10515: ^
10516: Brazero
10517: Once
10518: Recurse
10519: KetRmax
10520: Cond
10521: Cond def
10522: CBra 1
10523: Any
10524: Ket
10525: Ket
10526: $
10527: Ket
10528: End
10529: ------------------------------------------------------------------
10530:
10531: / -- The first four of these are not in the Perl >= 5.10 test because Perl
10532: documents that the use of \K in assertions is "not well defined". The
10533: last is here because Perl gives the match as "b" rather than "ab". I
10534: believe this to be a Perl bug. --/
10535:
10536: /(?=a\Kb)ab/
10537: ab
10538: 0: b
10539:
10540: /(?!a\Kb)ac/
10541: ac
10542: 0: ac
10543:
10544: /^abc(?<=b\Kc)d/
10545: abcd
10546: 0: cd
10547:
10548: /^abc(?<!b\Kq)d/
10549: abcd
10550: 0: abcd
10551:
10552: /(?>a\Kb)z|(ab)/
10553: ab
10554: 0: ab
10555: 1: ab
10556:
10557: /----------------------/
10558:
10559: /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10560: Failed: recursive call could loop indefinitely at offset 31
10561:
10562: /abc(*MARK:)pqr/
10563: Failed: (*MARK) must have an argument at offset 10
10564:
10565: /abc(*:)pqr/
10566: Failed: (*MARK) must have an argument at offset 6
10567:
10568: /abc(*FAIL:123)xyz/
10569: Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10570:
10571: /--- This should, and does, fail. In Perl, it does not, which I think is a
10572: bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10573:
10574: /A(*COMMIT)B/+K
10575: ACABX
10576: No match
10577:
10578: /--- These should be different, but in Perl 5.11 are not, which I think
10579: is a bug in Perl. ---/
10580:
10581: /A(*THEN)B|A(*THEN)C/K
10582: AC
10583: 0: AC
10584:
10585: /A(*PRUNE)B|A(*PRUNE)C/K
10586: AC
10587: No match
10588:
10589: /--- This should fail; the SKIP advances by one, but when we get to AC, the
10590: PRUNE kills it. Perl behaves differently. ---/
10591:
10592: /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
10593: AAAC
10594: No match, mark = A
10595:
10596: /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10597: though PCRE does. ---/
10598:
10599: /^A(*:A)B|^X(*:A)Y/K
10600: ** Failers
10601: No match
10602: XAQQ
10603: No match, mark = A
10604:
10605: /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10606: optimizations defeat this. So does the PCRE optimization unless we disable it
10607: with \Y. ---/
10608:
10609: /(*COMMIT)ABC/
10610: ABCDEFG
10611: 0: ABC
10612: ** Failers
10613: No match
10614: DEFGABC\Y
10615: No match
10616:
10617: /^(ab (c+(*THEN)cd) | xyz)/x
10618: abcccd
10619: No match
10620:
10621: /^(ab (c+(*PRUNE)cd) | xyz)/x
10622: abcccd
10623: No match
10624:
10625: /^(ab (c+(*FAIL)cd) | xyz)/x
10626: abcccd
10627: No match
10628:
10629: /--- Perl 5.11 gets some of these wrong ---/
10630:
10631: /(?>.(*ACCEPT))*?5/
10632: abcde
10633: 0: a
10634:
10635: /(.(*ACCEPT))*?5/
10636: abcde
10637: 0: a
10638: 1: a
10639:
10640: /(.(*ACCEPT))5/
10641: abcde
10642: 0: a
10643: 1: a
10644:
10645: /(.(*ACCEPT))*5/
10646: abcde
10647: 0: a
10648: 1: a
10649:
10650: /A\NB./BZ
10651: ------------------------------------------------------------------
10652: Bra
10653: A
10654: Any
10655: B
10656: Any
10657: Ket
10658: End
10659: ------------------------------------------------------------------
10660: ACBD
10661: 0: ACBD
10662: *** Failers
10663: No match
10664: A\nB
10665: No match
10666: ACB\n
10667: No match
10668:
10669: /A\NB./sBZ
10670: ------------------------------------------------------------------
10671: Bra
10672: A
10673: Any
10674: B
10675: AllAny
10676: Ket
10677: End
10678: ------------------------------------------------------------------
10679: ACBD
10680: 0: ACBD
10681: ACB\n
10682: 0: ACB\x0a
10683: *** Failers
10684: No match
10685: A\nB
10686: No match
10687:
10688: /A\NB/<crlf>
10689: A\nB
10690: 0: A\x0aB
10691: A\rB
10692: 0: A\x0dB
10693: ** Failers
10694: No match
10695: A\r\nB
10696: No match
10697:
10698: /\R+b/BZ
10699: ------------------------------------------------------------------
10700: Bra
10701: \R++
10702: b
10703: Ket
10704: End
10705: ------------------------------------------------------------------
10706:
10707: /\R+\n/BZ
10708: ------------------------------------------------------------------
10709: Bra
10710: \R+
10711: \x0a
10712: Ket
10713: End
10714: ------------------------------------------------------------------
10715:
10716: /\R+\d/BZ
10717: ------------------------------------------------------------------
10718: Bra
10719: \R++
10720: \d
10721: Ket
10722: End
10723: ------------------------------------------------------------------
10724:
10725: /\d*\R/BZ
10726: ------------------------------------------------------------------
10727: Bra
10728: \d*+
10729: \R
10730: Ket
10731: End
10732: ------------------------------------------------------------------
10733:
10734: /\s*\R/BZ
10735: ------------------------------------------------------------------
10736: Bra
10737: \s*+
10738: \R
10739: Ket
10740: End
10741: ------------------------------------------------------------------
10742:
10743: /-- Perl treats this one differently, not failing the second string. I believe
10744: that is a bug in Perl. --/
10745:
10746: /^((abc|abcx)(*THEN)y|abcd)/
10747: abcd
10748: 0: abcd
10749: 1: abcd
10750: *** Failers
10751: No match
10752: abcxy
10753: No match
10754:
10755: /(?<=abc)def/
10756: abc\P\P
10757: Partial match: abc
10758:
10759: /abc$/
10760: abc
10761: 0: abc
10762: abc\P
10763: 0: abc
10764: abc\P\P
10765: Partial match: abc
10766:
10767: /abc$/m
10768: abc
10769: 0: abc
10770: abc\n
10771: 0: abc
10772: abc\P\P
10773: Partial match: abc
10774: abc\n\P\P
10775: 0: abc
10776: abc\P
10777: 0: abc
10778: abc\n\P
10779: 0: abc
10780:
10781: /abc\z/
10782: abc
10783: 0: abc
10784: abc\P
10785: 0: abc
10786: abc\P\P
10787: Partial match: abc
10788:
10789: /abc\Z/
10790: abc
10791: 0: abc
10792: abc\P
10793: 0: abc
10794: abc\P\P
10795: Partial match: abc
10796:
10797: /abc\b/
10798: abc
10799: 0: abc
10800: abc\P
10801: 0: abc
10802: abc\P\P
10803: Partial match: abc
10804:
10805: /abc\B/
10806: abc
10807: No match
10808: abc\P
10809: Partial match: abc
10810: abc\P\P
10811: Partial match: abc
10812:
10813: /.+/
10814: abc\>0
10815: 0: abc
10816: abc\>1
10817: 0: bc
10818: abc\>2
10819: 0: c
10820: abc\>3
10821: No match
10822: abc\>4
10823: Error -24 (bad offset value)
10824: abc\>-4
10825: Error -24 (bad offset value)
10826:
10827: /^\cģ/
10828: Failed: \c must be followed by an ASCII character at offset 3
10829:
10830: /(?P<abn>(?P=abn)xxx)/BZ
10831: ------------------------------------------------------------------
10832: Bra
10833: Once
10834: CBra 1
10835: \1
10836: xxx
10837: Ket
10838: Ket
10839: Ket
10840: End
10841: ------------------------------------------------------------------
10842:
10843: /(a\1z)/BZ
10844: ------------------------------------------------------------------
10845: Bra
10846: Once
10847: CBra 1
10848: a
10849: \1
10850: z
10851: Ket
10852: Ket
10853: Ket
10854: End
10855: ------------------------------------------------------------------
10856:
10857: /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
10858: Failed: syntax error in subpattern name (missing terminator) at offset 29
10859:
10860: /(?P<abn>(?P=axn)xxx)/BZ
10861: Failed: reference to non-existent subpattern at offset 15
10862:
10863: /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
10864: ------------------------------------------------------------------
10865: Bra
10866: CBra 1
10867: \2
10868: xxx
10869: Ket
10870: CBra 2
10871: yy
10872: Ket
10873: Ket
10874: End
10875: ------------------------------------------------------------------
10876:
10877: /-- These tests are here because Perl gets the first one wrong. --/
10878:
10879: /(\R*)(.)/s
10880: \r\n
10881: 0: \x0d
10882: 1:
10883: 2: \x0d
10884: \r\r\n\n\r
10885: 0: \x0d\x0d\x0a\x0a\x0d
10886: 1: \x0d\x0d\x0a\x0a
10887: 2: \x0d
10888: \r\r\n\n\r\n
10889: 0: \x0d\x0d\x0a\x0a\x0d
10890: 1: \x0d\x0d\x0a\x0a
10891: 2: \x0d
10892:
10893: /(\R)*(.)/s
10894: \r\n
10895: 0: \x0d
10896: 1: <unset>
10897: 2: \x0d
10898: \r\r\n\n\r
10899: 0: \x0d\x0d\x0a\x0a\x0d
10900: 1: \x0a
10901: 2: \x0d
10902: \r\r\n\n\r\n
10903: 0: \x0d\x0d\x0a\x0a\x0d
10904: 1: \x0a
10905: 2: \x0d
10906:
10907: /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
10908: \r\n
10909: 0: \x0d
10910: 1:
10911: 2: \x0d
10912: \r\r\n\n\r
10913: 0: \x0d\x0d\x0a\x0a\x0d
10914: 1: \x0d\x0d\x0a\x0a
10915: 2: \x0d
10916: \r\r\n\n\r\n
10917: 0: \x0d\x0d\x0a\x0a\x0d
10918: 1: \x0d\x0d\x0a\x0a
10919: 2: \x0d
10920:
10921: /-- --/
10922:
10923: /^abc$/BZ
10924: ------------------------------------------------------------------
10925: Bra
10926: ^
10927: abc
10928: $
10929: Ket
10930: End
10931: ------------------------------------------------------------------
10932:
10933: /^abc$/BZm
10934: ------------------------------------------------------------------
10935: Bra
10936: /m ^
10937: abc
10938: /m $
10939: Ket
10940: End
10941: ------------------------------------------------------------------
10942:
10943: /^(a)*+(\w)/S
10944: aaaaX
10945: 0: aaaaX
10946: 1: a
10947: 2: X
10948: ** Failers
10949: No match
10950: aaaa
10951: No match
10952:
10953: /^(?:a)*+(\w)/S
10954: aaaaX
10955: 0: aaaaX
10956: 1: X
10957: ** Failers
10958: No match
10959: aaaa
10960: No match
10961:
10962: /(a)++1234/SDZ
10963: ------------------------------------------------------------------
10964: Bra
10965: CBraPos 1
10966: a
10967: KetRpos
10968: 1234
10969: Ket
10970: End
10971: ------------------------------------------------------------------
10972: Capturing subpattern count = 1
10973: No options
10974: First char = 'a'
10975: Need char = '4'
10976: Subject length lower bound = 5
10977: No set of starting bytes
10978:
10979: /([abc])++1234/SI
10980: Capturing subpattern count = 1
10981: No options
10982: No first char
10983: Need char = '4'
10984: Subject length lower bound = 5
10985: Starting byte set: a b c
10986:
10987: /(?<=(abc)+)X/
10988: Failed: lookbehind assertion is not fixed length at offset 10
10989:
10990: /(^ab)/I
10991: Capturing subpattern count = 1
10992: Options: anchored
10993: No first char
10994: No need char
10995:
10996: /(^ab)++/I
10997: Capturing subpattern count = 1
10998: Options: anchored
10999: No first char
11000: No need char
11001:
11002: /(^ab|^)+/I
11003: Capturing subpattern count = 1
11004: Options: anchored
11005: No first char
11006: No need char
11007:
11008: /(^ab|^)++/I
11009: Capturing subpattern count = 1
11010: Options: anchored
11011: No first char
11012: No need char
11013:
11014: /(?:^ab)/I
11015: Capturing subpattern count = 0
11016: Options: anchored
11017: No first char
11018: No need char
11019:
11020: /(?:^ab)++/I
11021: Capturing subpattern count = 0
11022: Options: anchored
11023: No first char
11024: No need char
11025:
11026: /(?:^ab|^)+/I
11027: Capturing subpattern count = 0
11028: Options: anchored
11029: No first char
11030: No need char
11031:
11032: /(?:^ab|^)++/I
11033: Capturing subpattern count = 0
11034: Options: anchored
11035: No first char
11036: No need char
11037:
11038: /(.*ab)/I
11039: Capturing subpattern count = 1
11040: No options
11041: First char at start or follows newline
11042: Need char = 'b'
11043:
11044: /(.*ab)++/I
11045: Capturing subpattern count = 1
11046: No options
11047: First char at start or follows newline
11048: Need char = 'b'
11049:
11050: /(.*ab|.*)+/I
11051: Capturing subpattern count = 1
11052: No options
11053: First char at start or follows newline
11054: No need char
11055:
11056: /(.*ab|.*)++/I
11057: Capturing subpattern count = 1
11058: No options
11059: First char at start or follows newline
11060: No need char
11061:
11062: /(?:.*ab)/I
11063: Capturing subpattern count = 0
11064: No options
11065: First char at start or follows newline
11066: Need char = 'b'
11067:
11068: /(?:.*ab)++/I
11069: Capturing subpattern count = 0
11070: No options
11071: First char at start or follows newline
11072: Need char = 'b'
11073:
11074: /(?:.*ab|.*)+/I
11075: Capturing subpattern count = 0
11076: No options
11077: First char at start or follows newline
11078: No need char
11079:
11080: /(?:.*ab|.*)++/I
11081: Capturing subpattern count = 0
11082: No options
11083: First char at start or follows newline
11084: No need char
11085:
11086: /(?=a)[bcd]/I
11087: Capturing subpattern count = 0
11088: No options
11089: First char = 'a'
11090: No need char
11091:
11092: /((?=a))[bcd]/I
11093: Capturing subpattern count = 1
11094: No options
11095: First char = 'a'
11096: No need char
11097:
11098: /((?=a))+[bcd]/I
11099: Capturing subpattern count = 1
11100: No options
11101: First char = 'a'
11102: No need char
11103:
11104: /((?=a))++[bcd]/I
11105: Capturing subpattern count = 1
11106: No options
11107: First char = 'a'
11108: No need char
11109:
11110: /(?=a+)[bcd]/iI
11111: Capturing subpattern count = 0
11112: Options: caseless
11113: First char = 'a' (caseless)
11114: No need char
11115:
11116: /(?=a+?)[bcd]/iI
11117: Capturing subpattern count = 0
11118: Options: caseless
11119: First char = 'a' (caseless)
11120: No need char
11121:
11122: /(?=a++)[bcd]/iI
11123: Capturing subpattern count = 0
11124: Options: caseless
11125: First char = 'a' (caseless)
11126: No need char
11127:
11128: /(?=a{3})[bcd]/iI
11129: Capturing subpattern count = 0
11130: Options: caseless
11131: First char = 'a' (caseless)
11132: Need char = 'a' (caseless)
11133:
11134: /(abc)\1+/S
11135:
11136: /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11137:
11138: /(?1)(?:(b(*ACCEPT))){0}/
11139: b
11140: 0: b
11141:
11142: /(?1)(?:(b(*ACCEPT))){0}c/
11143: bc
11144: 0: bc
11145: ** Failers
11146: No match
11147: b
11148: No match
11149:
11150: /(?1)(?:((*ACCEPT))){0}c/
11151: c
11152: 0: c
11153: c\N
11154: 0: c
11155:
11156: /^.*?(?(?=a)a|b(*THEN)c)/
11157: ba
11158: No match
11159:
11160: /^.*?(?(?=a)a|bc)/
11161: ba
11162: 0: ba
11163:
11164: /^.*?(?(?=a)a(*THEN)b|c)/
11165: ac
11166: No match
11167:
11168: /^.*?(?(?=a)a(*THEN)b)c/
11169: ac
11170: No match
11171:
11172: /^.*?(a(*THEN)b)c/
11173: aabc
11174: No match
11175:
11176: /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11177: aabc
11178: 0: aabc
11179:
11180: /^.*?(a(*THEN)b|z)c/
11181: aabc
11182: 0: aabc
11183: 1: ab
11184:
11185: /^.*?(z|a(*THEN)b)c/
11186: aabc
11187: 0: aabc
11188: 1: ab
11189:
11190: /-- --/
11191:
11192: /-- These studied versions are here because they are not Perl-compatible; the
11193: studying means the mark is not seen. --/
11194:
11195: /(*MARK:A)(*SKIP:B)(C|X)/KS
11196: C
11197: 0: C
11198: 1: C
11199: MK: A
11200: D
11201: No match, mark = A
11202:
11203: /(*:A)A+(*SKIP:A)(B|Z)/KS
11204: AAAC
11205: No match, mark = A
11206:
11207: /-- --/
11208:
11209: "(?=a*(*ACCEPT)b)c"
11210: c
11211: 0: c
11212: c\N
11213: 0: c
11214:
11215: /(?1)c(?(DEFINE)((*ACCEPT)b))/
11216: c
11217: 0: c
11218: c\N
11219: 0: c
11220:
11221: /(?>(*ACCEPT)b)c/
11222: c
11223: 0:
11224: c\N
11225: No match
11226:
11227: /(?:(?>(a)))+a%/++
11228: %aa%
11229: 0: aa%
11230: 0+
11231: 1: a
11232: 1+ a%
11233:
11234: /(a)b|ac/++SS
11235: ac\O3
11236: Matched, but too many substrings
11237: 0: ac
11238: 0+
11239:
11240: /(a)(b)x|abc/++
11241: abc\O6
11242: 0: abc
11243: 0+
11244:
11245: /(a)bc|(a)(b)\2/
11246: \O3abc
11247: Matched, but too many substrings
11248: 0: abc
11249: \O4abc
11250: Matched, but too many substrings
11251: 0: abc
11252:
11253: /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11254: Capturing subpattern count = 2
11255: No options
11256: No first char
11257: No need char
11258: Subject length lower bound = 1
11259: No set of starting bytes
11260:
11261: /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11262: Capturing subpattern count = 2
11263: No options
11264: No first char
11265: No need char
11266: Subject length lower bound = 3
11267: Starting byte set: a b
11268:
11269: /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11270: Capturing subpattern count = 2
11271: No options
11272: No first char
11273: No need char
11274: Subject length lower bound = 4
11275: Starting byte set: a b
11276:
11277: /(abc)(?1)/SI
11278: Capturing subpattern count = 1
11279: No options
11280: First char = 'a'
11281: Need char = 'c'
11282: Subject length lower bound = 6
11283: No set of starting bytes
11284:
11285: /^(?>a)++/
11286: aa\M
11287: Minimum match() limit = 5
11288: Minimum match() recursion limit = 2
11289: 0: aa
11290: aaaaaaaaa\M
11291: Minimum match() limit = 12
11292: Minimum match() recursion limit = 2
11293: 0: aaaaaaaaa
11294:
11295: /(a)(?1)++/
11296: aa\M
11297: Minimum match() limit = 7
11298: Minimum match() recursion limit = 4
11299: 0: aa
11300: 1: a
11301: aaaaaaaaa\M
11302: Minimum match() limit = 21
11303: Minimum match() recursion limit = 4
11304: 0: aaaaaaaaa
11305: 1: a
11306:
11307: /(?:(foo)|(bar)|(baz))X/SS=
11308: bazfooX
11309: 0: fooX
11310: 1: foo
11311: 2: <unset>
11312: 3: <unset>
11313: foobazbarX
11314: 0: barX
11315: 1: <unset>
11316: 2: bar
11317: 3: <unset>
11318: barfooX
11319: 0: fooX
11320: 1: foo
11321: 2: <unset>
11322: 3: <unset>
11323: bazX
11324: 0: bazX
11325: 1: <unset>
11326: 2: <unset>
11327: 3: baz
11328: foobarbazX
11329: 0: bazX
11330: 1: <unset>
11331: 2: <unset>
11332: 3: baz
11333: bazfooX\O0
11334: Matched, but too many substrings
11335: bazfooX\O2
11336: Matched, but too many substrings
11337: 0: fooX
11338: bazfooX\O4
11339: Matched, but too many substrings
11340: 0: fooX
11341: 1: <unset>
11342: bazfooX\O6
11343: Matched, but too many substrings
11344: 0: fooX
11345: 1: foo
11346: 2: <unset>
11347: bazfooX\O8
11348: Matched, but too many substrings
11349: 0: fooX
11350: 1: foo
11351: 2: <unset>
11352: 3: <unset>
11353: bazfooX\O10
11354: 0: fooX
11355: 1: foo
11356: 2: <unset>
11357: 3: <unset>
11358:
11359: /(?=abc){3}abc/BZ
11360: ------------------------------------------------------------------
11361: Bra
11362: Assert
11363: abc
11364: Ket
11365: abc
11366: Ket
11367: End
11368: ------------------------------------------------------------------
11369:
11370: /(?=abc)+abc/BZ
11371: ------------------------------------------------------------------
11372: Bra
11373: Assert
11374: abc
11375: Ket
11376: abc
11377: Ket
11378: End
11379: ------------------------------------------------------------------
11380:
11381: /(?=abc)++abc/BZ
11382: ------------------------------------------------------------------
11383: Bra
11384: Assert
11385: abc
11386: Ket
11387: abc
11388: Ket
11389: End
11390: ------------------------------------------------------------------
11391:
11392: /(?=abc){0}xyz/BZ
11393: ------------------------------------------------------------------
11394: Bra
11395: Skip zero
11396: Assert
11397: abc
11398: Ket
11399: xyz
11400: Ket
11401: End
11402: ------------------------------------------------------------------
11403:
11404: /(?=(a))?./BZ
11405: ------------------------------------------------------------------
11406: Bra
11407: Brazero
11408: Assert
11409: CBra 1
11410: a
11411: Ket
11412: Ket
11413: Any
11414: Ket
11415: End
11416: ------------------------------------------------------------------
11417:
11418: /(?=(a))??./BZ
11419: ------------------------------------------------------------------
11420: Bra
11421: Braminzero
11422: Assert
11423: CBra 1
11424: a
11425: Ket
11426: Ket
11427: Any
11428: Ket
11429: End
11430: ------------------------------------------------------------------
11431:
11432: /^(?=(a)){0}b(?1)/BZ
11433: ------------------------------------------------------------------
11434: Bra
11435: ^
11436: Skip zero
11437: Assert
11438: CBra 1
11439: a
11440: Ket
11441: Ket
11442: b
11443: Recurse
11444: Ket
11445: End
11446: ------------------------------------------------------------------
11447:
11448: /(?(DEFINE)(a))?b(?1)/BZ
11449: ------------------------------------------------------------------
11450: Bra
11451: Cond
11452: Cond def
11453: CBra 1
11454: a
11455: Ket
11456: Ket
11457: b
11458: Recurse
11459: Ket
11460: End
11461: ------------------------------------------------------------------
11462:
11463: /^(?=(?1))?[az]([abc])d/BZ
11464: ------------------------------------------------------------------
11465: Bra
11466: ^
11467: Brazero
11468: Assert
11469: Recurse
11470: Ket
11471: [az]
11472: CBra 1
11473: [a-c]
11474: Ket
11475: d
11476: Ket
11477: End
11478: ------------------------------------------------------------------
11479:
11480: /^(?!a){0}\w+/BZ
11481: ------------------------------------------------------------------
11482: Bra
11483: ^
11484: Skip zero
11485: Assert not
11486: a
11487: Ket
11488: \w+
11489: Ket
11490: End
11491: ------------------------------------------------------------------
11492:
11493: /(?<=(abc))?xyz/BZ
11494: ------------------------------------------------------------------
11495: Bra
11496: Brazero
11497: AssertB
11498: Reverse
11499: CBra 1
11500: abc
11501: Ket
11502: Ket
11503: xyz
11504: Ket
11505: End
11506: ------------------------------------------------------------------
11507:
11508: /[:a[:abc]b:]/BZ
11509: ------------------------------------------------------------------
11510: Bra
11511: [:[a-c]
11512: b:]
11513: Ket
11514: End
11515: ------------------------------------------------------------------
11516:
11517: /((?2))((?1))/SS
11518: abc
11519: Error -26 (nested recursion at the same subject position)
11520:
11521: /((?(R2)a+|(?1)b))/SS
11522: aaaabcde
11523: Error -26 (nested recursion at the same subject position)
11524:
11525: /(?(R)a*(?1)|((?R))b)/SS
11526: aaaabcde
11527: Error -26 (nested recursion at the same subject position)
11528:
11529: /(a+|(?R)b)/
11530: Failed: recursive call could loop indefinitely at offset 7
11531:
11532: /^(a(*:A)(d|e(*:B))z|aeq)/C
11533: adz
11534: --->adz
11535: +0 ^ ^
11536: +1 ^ (a(*:A)(d|e(*:B))z|aeq)
11537: +2 ^ a
11538: +3 ^^ (*:A)
11539: +8 ^^ (d|e(*:B))
11540: Latest Mark: A
11541: +9 ^^ d
11542: +10 ^ ^ |
11543: +18 ^ ^ z
11544: +19 ^ ^ |
11545: +24 ^ ^
11546: 0: adz
11547: 1: adz
11548: 2: d
11549: aez
11550: --->aez
11551: +0 ^ ^
11552: +1 ^ (a(*:A)(d|e(*:B))z|aeq)
11553: +2 ^ a
11554: +3 ^^ (*:A)
11555: +8 ^^ (d|e(*:B))
11556: Latest Mark: A
11557: +9 ^^ d
11558: +11 ^^ e
11559: +12 ^ ^ (*:B)
11560: +17 ^ ^ )
11561: Latest Mark: B
11562: +18 ^ ^ z
11563: +19 ^ ^ |
11564: +24 ^ ^
11565: 0: aez
11566: 1: aez
11567: 2: e
11568: aeqwerty
11569: --->aeqwerty
11570: +0 ^ ^
11571: +1 ^ (a(*:A)(d|e(*:B))z|aeq)
11572: +2 ^ a
11573: +3 ^^ (*:A)
11574: +8 ^^ (d|e(*:B))
11575: Latest Mark: A
11576: +9 ^^ d
11577: +11 ^^ e
11578: +12 ^ ^ (*:B)
11579: +17 ^ ^ )
11580: Latest Mark: B
11581: +18 ^ ^ z
11582: +20 ^ a
11583: +21 ^^ e
11584: +22 ^ ^ q
11585: +23 ^ ^ )
11586: +24 ^ ^
11587: 0: aeq
11588: 1: aeq
11589:
11590: /.(*F)/
11591: \P\Pabc
11592: No match
11593:
11594: /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11595: Capturing subpattern count = 0
11596: No options
11597: First char = 't'
11598: Need char = 't'
11599: Subject length lower bound = 18
11600: No set of starting bytes
11601:
11602: /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11603: Capturing subpattern count = 0
11604: No options
11605: No first char
11606: No need char
11607: Subject length lower bound = 8
11608: Starting byte set: < o t u
11609:
11610: /a(*SKIP)c|b(*ACCEPT)|/+SI
11611: Capturing subpattern count = 0
11612: No options
11613: No first char
11614: No need char
11615: Study returned NULL
11616: a
11617: 0:
11618: 0+
11619:
11620: /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11621: Capturing subpattern count = 0
11622: No options
11623: No first char
11624: No need char
11625: Subject length lower bound = -1
11626: Starting byte set: a b x
11627: ax
11628: 0: x
11629:
11630: 'a*(*ACCEPT)b'+
11631: \N\N
11632: No match
11633: abc\N\N
11634: 0: a
11635: 0+ bc
11636: bbb\N\N
11637: 0:
11638: 0+ bb
11639:
11640: /(*ACCEPT)a/+I
11641: Capturing subpattern count = 0
11642: No options
11643: No first char
11644: No need char
11645: bax
11646: 0:
11647: 0+ bax
11648:
11649: /z(*ACCEPT)a/+I
11650: Capturing subpattern count = 0
11651: No options
11652: First char = 'z'
11653: No need char
11654: baxzbx
11655: 0: z
11656: 0+ bx
11657:
11658: /a(?:.)*?a/ims
11659: \Mabbbbbbbbbbbbbbbbbbbbba
11660: Minimum match() limit = 65
11661: Minimum match() recursion limit = 2
11662: 0: abbbbbbbbbbbbbbbbbbbbba
11663:
11664: /a(?:.(*THEN))*?a/ims
11665: \Mabbbbbbbbbbbbbbbbbbbbba
11666: Minimum match() limit = 86
11667: Minimum match() recursion limit = 45
11668: 0: abbbbbbbbbbbbbbbbbbbbba
11669:
11670: /a(?:.(*THEN:ABC))*?a/ims
11671: \Mabbbbbbbbbbbbbbbbbbbbba
11672: Minimum match() limit = 86
11673: Minimum match() recursion limit = 45
11674: 0: abbbbbbbbbbbbbbbbbbbbba
11675:
11676: /-- These tests are in agreement with development Perl 5.015, which has fixed
11677: some things, but they don't all work with 5.012, so they aren't in the
11678: Perl-compatible tests. Those after the first come from Perl's own test
11679: files. --/
11680:
11681: /^((yes|no)(*THEN)(*F))?/
11682: yes
11683: No match
11684:
11685: /(A (.*) C? (*THEN) | A D) (*FAIL)/x
11686: AbcdCBefgBhiBqz
11687: No match
11688:
11689: /(A (.*) C? (*THEN) | A D) z/x
11690: AbcdCBefgBhiBqz
11691: No match
11692:
11693: /(A (.*) C? (*THEN) | A D) \s* (*FAIL)/x
11694: AbcdCBefgBhiBqz
11695: No match
11696:
11697: /(A (.*) C? (*THEN) | A D) \s* z/x
11698: AbcdCBefgBhiBqz
11699: No match
11700:
11701: /(A (.*) (?:C|) (*THEN) | A D) (*FAIL)/x
11702: AbcdCBefgBhiBqz
11703: No match
11704:
11705: /(A (.*) (?:C|) (*THEN) | A D) z/x
11706: AbcdCBefgBhiBqz
11707: No match
11708:
11709: /(A (.*) C{0,6} (*THEN) | A D) (*FAIL)/x
11710: AbcdCBefgBhiBqz
11711: No match
11712:
11713: /(A (.*) C{0,6} (*THEN) | A D) z/x
11714: AbcdCBefgBhiBqz
11715: No match
11716:
11717: /(A (.*) (CE){0,6} (*THEN) | A D) (*FAIL)/x
11718: AbcdCEBefgBhiBqz
11719: No match
11720:
11721: /(A (.*) (CE){0,6} (*THEN) | A D) z/x
11722: AbcdCEBefgBhiBqz
11723: No match
11724:
11725: /(A (.*) (CE*){0,6} (*THEN) | A D) (*FAIL)/x
11726: AbcdCBefgBhiBqz
11727: No match
11728:
11729: /(A (.*) (CE*){0,6} (*THEN) | A D) z/x
11730: AbcdCBefgBhiBqz
11731: No match
11732:
11733: /-----------------------------------------------/
11734:
11735: /^(?>a+)(?>(z+))\w/BZ
11736: ------------------------------------------------------------------
11737: Bra
11738: ^
11739: Once_NC
11740: a+
11741: Ket
11742: Once
11743: CBra 1
11744: z+
11745: Ket
11746: Ket
11747: \w
11748: Ket
11749: End
11750: ------------------------------------------------------------------
11751: aaaazzzzb
11752: 0: aaaazzzzb
11753: 1: zzzz
11754: ** Failers
11755: No match
11756: aazz
11757: No match
11758:
11759: /(.)(\1|a(?2))/
11760: bab
11761: 0: bab
11762: 1: b
11763: 2: ab
11764:
11765: /\1|(.)(?R)\1/
11766: cbbbc
11767: 0: cbbbc
11768: 1: c
11769:
11770: /(.)((?(1)c|a)|a(?2))/
11771: baa
11772: No match
11773:
11774: /(?P<abn>(?P=abn)xxx)/BZ
11775: ------------------------------------------------------------------
11776: Bra
11777: Once
11778: CBra 1
11779: \1
11780: xxx
11781: Ket
11782: Ket
11783: Ket
11784: End
11785: ------------------------------------------------------------------
11786:
11787: /(a\1z)/BZ
11788: ------------------------------------------------------------------
11789: Bra
11790: Once
11791: CBra 1
11792: a
11793: \1
11794: z
11795: Ket
11796: Ket
11797: Ket
11798: End
11799: ------------------------------------------------------------------
11800:
11801: /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11802: \Maabbccddee
11803: Minimum match() limit = 12
11804: Minimum match() recursion limit = 3
11805: 0: aabbccddee
11806:
11807: /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11808: \Maabbccddee
11809: Minimum match() limit = 22
11810: Minimum match() recursion limit = 21
11811: 0: aabbccddee
11812: 1: aa
11813: 2: bb
11814: 3: cc
11815: 4: dd
11816: 5: ee
11817:
11818: /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11819: \Maabbccddee
11820: Minimum match() limit = 18
11821: Minimum match() recursion limit = 13
11822: 0: aabbccddee
11823: 1: aa
11824: 2: cc
11825: 3: ee
11826:
11827: /^a\x41z/<JS>
11828: aAz
11829: 0: aAz
11830: *** Failers
11831: No match
11832: ax41z
11833: No match
11834:
11835: /^a[m\x41]z/<JS>
11836: aAz
11837: 0: aAz
11838:
11839: /^a\x1z/<JS>
11840: ax1z
11841: 0: ax1z
11842:
11843: /^a\u0041z/<JS>
11844: aAz
11845: 0: aAz
11846: *** Failers
11847: No match
11848: au0041z
11849: No match
11850:
11851: /^a[m\u0041]z/<JS>
11852: aAz
11853: 0: aAz
11854:
11855: /^a\u041z/<JS>
11856: au041z
11857: 0: au041z
11858: *** Failers
11859: No match
11860: aAz
11861: No match
11862:
11863: /^a\U0041z/<JS>
11864: aU0041z
11865: 0: aU0041z
11866: *** Failers
11867: No match
11868: aAz
11869: No match
11870:
11871: /(?(?=c)c|d)++Y/BZ
11872: ------------------------------------------------------------------
11873: Bra
11874: BraPos
11875: Cond
11876: Assert
11877: c
11878: Ket
11879: c
11880: Alt
11881: d
11882: Ket
11883: KetRpos
11884: Y
11885: Ket
11886: End
11887: ------------------------------------------------------------------
11888:
11889: /(?(?=c)c|d)*+Y/BZ
11890: ------------------------------------------------------------------
11891: Bra
11892: Braposzero
11893: BraPos
11894: Cond
11895: Assert
11896: c
11897: Ket
11898: c
11899: Alt
11900: d
11901: Ket
11902: KetRpos
11903: Y
11904: Ket
11905: End
11906: ------------------------------------------------------------------
11907:
11908: /a[\NB]c/
11909: Failed: \N is not supported in a class at offset 3
11910:
11911: /a[B-\Nc]/
11912: Failed: \N is not supported in a class at offset 5
11913:
11914: /(a)(?2){0,1999}?(b)/
11915:
11916: /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
11917:
11918: /--- This test, with something more complicated than individual letters, causes
11919: different behaviour in Perl. Perhaps it disables some optimization; no tag is
11920: passed back for the failures, whereas in PCRE there is a tag. ---/
11921:
11922: /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
11923: AABC
11924: 0: AB
11925: 1: A
11926: 2: B
11927: MK: A
11928: XXYZ
11929: 0: XXY
11930: 1: <unset>
11931: 2: <unset>
11932: 3: X
11933: 4: X
11934: 5: Y
11935: MK: B
11936: ** Failers
11937: No match
11938: XAQQ
11939: No match, mark = A
11940: XAQQXZZ
11941: No match, mark = A
11942: AXQQQ
11943: No match, mark = A
11944: AXXQQQ
11945: No match, mark = B
11946:
11947: /-- Perl doesn't give marks for these, though it does if the alternatives are
11948: replaced by single letters. --/
11949:
11950: /(b|q)(*:m)f|a(*:n)w/K
11951: aw
11952: 0: aw
11953: MK: n
11954: ** Failers
11955: No match, mark = n
11956: abc
11957: No match, mark = m
11958:
11959: /(q|b)(*:m)f|a(*:n)w/K
11960: aw
11961: 0: aw
11962: MK: n
11963: ** Failers
11964: No match, mark = n
11965: abc
11966: No match, mark = m
11967:
11968: /-- After a partial match, the behaviour is as for a failure. --/
11969:
11970: /^a(*:X)bcde/K
11971: abc\P
11972: Partial match, mark=X: abc
1.1.1.2 ! misho 11973:
! 11974: /-- These are here because Perl doesn't return a mark, except for the first --/
! 11975:
! 11976: /(?=(*:x))(q|)/K+
! 11977: abc
! 11978: 0:
! 11979: 0+ abc
! 11980: 1:
! 11981: MK: x
! 11982:
! 11983: /(?=(*:x))((*:y)q|)/K+
! 11984: abc
! 11985: 0:
! 11986: 0+ abc
! 11987: 1:
! 11988: MK: x
! 11989:
! 11990: /(?=(*:x))(?:(*:y)q|)/K+
! 11991: abc
! 11992: 0:
! 11993: 0+ abc
! 11994: MK: x
! 11995:
! 11996: /(?=(*:x))(?>(*:y)q|)/K+
! 11997: abc
! 11998: 0:
! 11999: 0+ abc
! 12000: MK: x
! 12001:
! 12002: /(?=a(*:x))(?!a(*:y)c)/K+
! 12003: ab
! 12004: 0:
! 12005: 0+ ab
! 12006: MK: x
! 12007:
! 12008: /(?=a(*:x))(?=a(*:y)c|)/K+
! 12009: ab
! 12010: 0:
! 12011: 0+ ab
! 12012: MK: x
1.1 misho 12013:
12014: /-- End of testinput2 --/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>