Annotation of embedaddon/pcre/testdata/testoutput2, revision 1.1.1.3
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'
1.1.1.3 ! misho 454: Max lookbehind = 6
1.1 misho 455: foo
456: 0: foo
457: catfoo
458: 0: foo
459: *** Failers
460: No match
461: the barfoo
462: No match
463: and cattlefoo
464: No match
465:
466: /(?<=a+)b/
467: Failed: lookbehind assertion is not fixed length at offset 6
468:
469: /(?<=aaa|b{0,3})b/
470: Failed: lookbehind assertion is not fixed length at offset 14
471:
472: /(?<!(foo)a\1)bar/
473: Failed: lookbehind assertion is not fixed length at offset 12
474:
475: /(?i)abc/I
476: Capturing subpattern count = 0
477: Options: caseless
478: First char = 'a' (caseless)
479: Need char = 'c' (caseless)
480:
481: /(a|(?m)a)/I
482: Capturing subpattern count = 1
483: No options
484: First char = 'a'
485: No need char
486:
487: /(?i)^1234/I
488: Capturing subpattern count = 0
489: Options: anchored caseless
490: No first char
491: No need char
492:
493: /(^b|(?i)^d)/I
494: Capturing subpattern count = 1
495: Options: anchored
496: No first char
497: No need char
498:
499: /(?s).*/I
500: Capturing subpattern count = 0
501: Options: anchored dotall
502: No first char
503: No need char
504:
505: /[abcd]/IS
506: Capturing subpattern count = 0
507: No options
508: No first char
509: No need char
510: Subject length lower bound = 1
511: Starting byte set: a b c d
512:
513: /(?i)[abcd]/IS
514: Capturing subpattern count = 0
515: Options: caseless
516: No first char
517: No need char
518: Subject length lower bound = 1
519: Starting byte set: A B C D a b c d
520:
521: /(?m)[xy]|(b|c)/IS
522: Capturing subpattern count = 1
523: Options: multiline
524: No first char
525: No need char
526: Subject length lower bound = 1
527: Starting byte set: b c x y
528:
529: /(^a|^b)/Im
530: Capturing subpattern count = 1
531: Options: multiline
532: First char at start or follows newline
533: No need char
534:
535: /(?i)(^a|^b)/Im
536: Capturing subpattern count = 1
537: Options: caseless multiline
538: First char at start or follows newline
539: No need char
540:
541: /(a)(?(1)a|b|c)/
542: Failed: conditional group contains more than two branches at offset 13
543:
544: /(?(?=a)a|b|c)/
545: Failed: conditional group contains more than two branches at offset 12
546:
547: /(?(1a)/
548: Failed: missing ) at offset 6
549:
550: /(?(1a))/
551: Failed: reference to non-existent subpattern at offset 6
552:
553: /(?(?i))/
554: Failed: assertion expected after (?( at offset 3
555:
556: /(?(abc))/
557: Failed: reference to non-existent subpattern at offset 7
558:
559: /(?(?<ab))/
560: Failed: syntax error in subpattern name (missing terminator) at offset 7
561:
562: /((?s)blah)\s+\1/I
563: Capturing subpattern count = 1
564: Max back reference = 1
565: No options
566: First char = 'b'
567: Need char = 'h'
568:
569: /((?i)blah)\s+\1/I
570: Capturing subpattern count = 1
571: Max back reference = 1
572: No options
573: First char = 'b' (caseless)
574: Need char = 'h' (caseless)
575:
576: /((?i)b)/IDZS
577: ------------------------------------------------------------------
578: Bra
579: CBra 1
580: /i b
581: Ket
582: Ket
583: End
584: ------------------------------------------------------------------
585: Capturing subpattern count = 1
586: No options
587: First char = 'b' (caseless)
588: No need char
589: Subject length lower bound = 1
590: No set of starting bytes
591:
592: /(a*b|(?i:c*(?-i)d))/IS
593: Capturing subpattern count = 1
594: No options
595: No first char
596: No need char
597: Subject length lower bound = 1
598: Starting byte set: C a b c d
599:
600: /a$/I
601: Capturing subpattern count = 0
602: No options
603: First char = 'a'
604: No need char
605: a
606: 0: a
607: a\n
608: 0: a
609: *** Failers
610: No match
611: \Za
612: No match
613: \Za\n
614: No match
615:
616: /a$/Im
617: Capturing subpattern count = 0
618: Options: multiline
619: First char = 'a'
620: No need char
621: a
622: 0: a
623: a\n
624: 0: a
625: \Za\n
626: 0: a
627: *** Failers
628: No match
629: \Za
630: No match
631:
632: /\Aabc/Im
633: Capturing subpattern count = 0
634: Options: anchored multiline
635: No first char
636: No need char
637:
638: /^abc/Im
639: Capturing subpattern count = 0
640: Options: multiline
641: First char at start or follows newline
642: Need char = 'c'
643:
644: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
645: Capturing subpattern count = 5
646: Options: anchored
647: No first char
648: No need char
649: aaaaabbbbbcccccdef
650: 0: aaaaabbbbbcccccdef
651: 1: aaaaabbbbbcccccdef
652: 2: aaaaa
653: 3: b
654: 4: bbbbccccc
655: 5: def
656:
657: /(?<=foo)[ab]/IS
658: Capturing subpattern count = 0
659: No options
660: No first char
661: No need char
1.1.1.3 ! misho 662: Max lookbehind = 3
1.1 misho 663: Subject length lower bound = 1
664: Starting byte set: a b
665:
666: /(?<!foo)(alpha|omega)/IS
667: Capturing subpattern count = 1
668: No options
669: No first char
670: Need char = 'a'
1.1.1.3 ! misho 671: Max lookbehind = 3
1.1 misho 672: Subject length lower bound = 5
673: Starting byte set: a o
674:
675: /(?!alphabet)[ab]/IS
676: Capturing subpattern count = 0
677: No options
678: No first char
679: No need char
680: Subject length lower bound = 1
681: Starting byte set: a b
682:
683: /(?<=foo\n)^bar/Im
684: Capturing subpattern count = 0
685: Contains explicit CR or LF match
686: Options: multiline
687: No first char
688: Need char = 'r'
1.1.1.3 ! misho 689: Max lookbehind = 4
1.1 misho 690: foo\nbarbar
691: 0: bar
692: ***Failers
693: No match
694: rhubarb
695: No match
696: barbell
697: No match
698: abc\nbarton
699: No match
700:
701: /^(?<=foo\n)bar/Im
702: Capturing subpattern count = 0
703: Contains explicit CR or LF match
704: Options: multiline
705: First char at start or follows newline
706: Need char = 'r'
1.1.1.3 ! misho 707: Max lookbehind = 4
1.1 misho 708: foo\nbarbar
709: 0: bar
710: ***Failers
711: No match
712: rhubarb
713: No match
714: barbell
715: No match
716: abc\nbarton
717: No match
718:
719: /(?>^abc)/Im
720: Capturing subpattern count = 0
721: Options: multiline
722: First char at start or follows newline
723: Need char = 'c'
724: abc
725: 0: abc
726: def\nabc
727: 0: abc
728: *** Failers
729: No match
730: defabc
731: No match
732:
733: /(?<=ab(c+)d)ef/
734: Failed: lookbehind assertion is not fixed length at offset 11
735:
736: /(?<=ab(?<=c+)d)ef/
737: Failed: lookbehind assertion is not fixed length at offset 12
738:
739: /(?<=ab(c|de)f)g/
740: Failed: lookbehind assertion is not fixed length at offset 13
741:
742: /The next three are in testinput2 because they have variable length branches/
743:
744: /(?<=bullock|donkey)-cart/I
745: Capturing subpattern count = 0
746: No options
747: First char = '-'
748: Need char = 't'
1.1.1.3 ! misho 749: Max lookbehind = 7
1.1 misho 750: the bullock-cart
751: 0: -cart
752: a donkey-cart race
753: 0: -cart
754: *** Failers
755: No match
756: cart
757: No match
758: horse-and-cart
759: No match
760:
761: /(?<=ab(?i)x|y|z)/I
762: Capturing subpattern count = 0
763: No options
764: No first char
765: No need char
1.1.1.3 ! misho 766: Max lookbehind = 3
1.1 misho 767:
768: /(?>.*)(?<=(abcd)|(xyz))/I
769: Capturing subpattern count = 2
770: No options
771: First char at start or follows newline
772: No need char
1.1.1.3 ! misho 773: Max lookbehind = 4
1.1 misho 774: alphabetabcd
775: 0: alphabetabcd
776: 1: abcd
777: endingxyz
778: 0: endingxyz
779: 1: <unset>
780: 2: xyz
781:
782: /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
783: Capturing subpattern count = 0
784: No options
785: First char = 'Z'
786: Need char = 'Z'
1.1.1.3 ! misho 787: Max lookbehind = 4
1.1 misho 788: abxyZZ
789: 0: ZZ
790: abXyZZ
791: 0: ZZ
792: ZZZ
793: 0: ZZ
794: zZZ
795: 0: ZZ
796: bZZ
797: 0: ZZ
798: BZZ
799: 0: ZZ
800: *** Failers
801: No match
802: ZZ
803: No match
804: abXYZZ
805: No match
806: zzz
807: No match
808: bzz
809: No match
810:
811: /(?<!(foo)a)bar/I
812: Capturing subpattern count = 1
813: No options
814: First char = 'b'
815: Need char = 'r'
1.1.1.3 ! misho 816: Max lookbehind = 4
1.1 misho 817: bar
818: 0: bar
819: foobbar
820: 0: bar
821: *** Failers
822: No match
823: fooabar
824: No match
825:
826: /This one is here because Perl 5.005_02 doesn't fail it/I
827: Capturing subpattern count = 0
828: No options
829: First char = 'T'
830: Need char = 't'
831:
832: /^(a)?(?(1)a|b)+$/I
833: Capturing subpattern count = 1
834: Options: anchored
835: No first char
836: No need char
837: *** Failers
838: No match
839: a
840: No match
841:
842: /This one is here because Perl behaves differently; see also the following/I
843: Capturing subpattern count = 0
844: No options
845: First char = 'T'
846: Need char = 'g'
847:
848: /^(a\1?){4}$/I
849: Capturing subpattern count = 1
850: Max back reference = 1
851: Options: anchored
852: No first char
853: No need char
854: aaaa
855: No match
856: aaaaaa
857: No match
858:
859: /Perl does not fail these two for the final subjects. Neither did PCRE until/
860: /release 8.01. The problem is in backtracking into a subpattern that contains/
861: No match
862: /a recursive reference to itself. PCRE has now made these into atomic patterns./
863: No match
864:
865: /^(xa|=?\1a){2}$/
866: xa=xaa
867: 0: xa=xaa
868: 1: =xaa
869: ** Failers
870: No match
871: xa=xaaa
872: No match
873:
874: /^(xa|=?\1a)+$/
875: xa=xaa
876: 0: xa=xaa
877: 1: =xaa
878: ** Failers
879: No match
880: xa=xaaa
881: No match
882:
883: /These are syntax tests from Perl 5.005/I
884: Capturing subpattern count = 0
885: No options
886: First char = 'T'
887: Need char = '5'
888:
889: /a[b-a]/
890: Failed: range out of order in character class at offset 4
891:
892: /a[]b/
893: Failed: missing terminating ] for character class at offset 4
894:
895: /a[/
896: Failed: missing terminating ] for character class at offset 2
897:
898: /*a/
899: Failed: nothing to repeat at offset 0
900:
901: /(*)b/
902: Failed: nothing to repeat at offset 1
903:
904: /abc)/
905: Failed: unmatched parentheses at offset 3
906:
907: /(abc/
908: Failed: missing ) at offset 4
909:
910: /a**/
911: Failed: nothing to repeat at offset 2
912:
913: /)(/
914: Failed: unmatched parentheses at offset 0
915:
916: /\1/
917: Failed: reference to non-existent subpattern at offset 2
918:
919: /\2/
920: Failed: reference to non-existent subpattern at offset 2
921:
922: /(a)|\2/
923: Failed: reference to non-existent subpattern at offset 6
924:
925: /a[b-a]/Ii
926: Failed: range out of order in character class at offset 4
927:
928: /a[]b/Ii
929: Failed: missing terminating ] for character class at offset 4
930:
931: /a[/Ii
932: Failed: missing terminating ] for character class at offset 2
933:
934: /*a/Ii
935: Failed: nothing to repeat at offset 0
936:
937: /(*)b/Ii
938: Failed: nothing to repeat at offset 1
939:
940: /abc)/Ii
941: Failed: unmatched parentheses at offset 3
942:
943: /(abc/Ii
944: Failed: missing ) at offset 4
945:
946: /a**/Ii
947: Failed: nothing to repeat at offset 2
948:
949: /)(/Ii
950: Failed: unmatched parentheses at offset 0
951:
952: /:(?:/
953: Failed: missing ) at offset 4
954:
955: /(?<%)b/
956: Failed: unrecognized character after (?< at offset 3
957:
958: /a(?{)b/
959: Failed: unrecognized character after (? or (?- at offset 3
960:
961: /a(?{{})b/
962: Failed: unrecognized character after (? or (?- at offset 3
963:
964: /a(?{}})b/
965: Failed: unrecognized character after (? or (?- at offset 3
966:
967: /a(?{"{"})b/
968: Failed: unrecognized character after (? or (?- at offset 3
969:
970: /a(?{"{"}})b/
971: Failed: unrecognized character after (? or (?- at offset 3
972:
973: /(?(1?)a|b)/
974: Failed: malformed number or name after (?( at offset 4
975:
976: /[a[:xyz:/
977: Failed: missing terminating ] for character class at offset 8
978:
979: /(?<=x+)y/
980: Failed: lookbehind assertion is not fixed length at offset 6
981:
982: /a{37,17}/
983: Failed: numbers out of order in {} quantifier at offset 7
984:
985: /abc/\
986: Failed: \ at end of pattern at offset 4
987:
988: /abc/\i
989: Failed: \ at end of pattern at offset 4
990:
991: /(a)bc(d)/I
992: Capturing subpattern count = 2
993: No options
994: First char = 'a'
995: Need char = 'd'
996: abcd
997: 0: abcd
998: 1: a
999: 2: d
1000: abcd\C2
1001: 0: abcd
1002: 1: a
1003: 2: d
1004: 2C d (1)
1005: abcd\C5
1006: 0: abcd
1007: 1: a
1008: 2: d
1009: copy substring 5 failed -7
1010:
1011: /(.{20})/I
1012: Capturing subpattern count = 1
1013: No options
1014: No first char
1015: No need char
1016: abcdefghijklmnopqrstuvwxyz
1017: 0: abcdefghijklmnopqrst
1018: 1: abcdefghijklmnopqrst
1019: abcdefghijklmnopqrstuvwxyz\C1
1020: 0: abcdefghijklmnopqrst
1021: 1: abcdefghijklmnopqrst
1022: 1C abcdefghijklmnopqrst (20)
1023: abcdefghijklmnopqrstuvwxyz\G1
1024: 0: abcdefghijklmnopqrst
1025: 1: abcdefghijklmnopqrst
1026: 1G abcdefghijklmnopqrst (20)
1027:
1028: /(.{15})/I
1029: Capturing subpattern count = 1
1030: No options
1031: No first char
1032: No need char
1033: abcdefghijklmnopqrstuvwxyz
1034: 0: abcdefghijklmno
1035: 1: abcdefghijklmno
1036: abcdefghijklmnopqrstuvwxyz\C1\G1
1037: 0: abcdefghijklmno
1038: 1: abcdefghijklmno
1039: 1C abcdefghijklmno (15)
1040: 1G abcdefghijklmno (15)
1041:
1042: /(.{16})/I
1043: Capturing subpattern count = 1
1044: No options
1045: No first char
1046: No need char
1047: abcdefghijklmnopqrstuvwxyz
1048: 0: abcdefghijklmnop
1049: 1: abcdefghijklmnop
1050: abcdefghijklmnopqrstuvwxyz\C1\G1\L
1051: 0: abcdefghijklmnop
1052: 1: abcdefghijklmnop
1053: 1C abcdefghijklmnop (16)
1054: 1G abcdefghijklmnop (16)
1055: 0L abcdefghijklmnop
1056: 1L abcdefghijklmnop
1057:
1058: /^(a|(bc))de(f)/I
1059: Capturing subpattern count = 3
1060: Options: anchored
1061: No first char
1062: No need char
1063: adef\G1\G2\G3\G4\L
1064: 0: adef
1065: 1: a
1066: 2: <unset>
1067: 3: f
1068: 1G a (1)
1069: 2G (0)
1070: 3G f (1)
1071: get substring 4 failed -7
1072: 0L adef
1073: 1L a
1074: 2L
1075: 3L f
1076: bcdef\G1\G2\G3\G4\L
1077: 0: bcdef
1078: 1: bc
1079: 2: bc
1080: 3: f
1081: 1G bc (2)
1082: 2G bc (2)
1083: 3G f (1)
1084: get substring 4 failed -7
1085: 0L bcdef
1086: 1L bc
1087: 2L bc
1088: 3L f
1089: adefghijk\C0
1090: 0: adef
1091: 1: a
1092: 2: <unset>
1093: 3: f
1094: 0C adef (4)
1095:
1096: /^abc\00def/I
1097: Capturing subpattern count = 0
1098: Options: anchored
1099: No first char
1100: No need char
1101: abc\00def\L\C0
1102: 0: abc\x00def
1.1.1.2 misho 1103: 0C abc\x00def (7)
1.1 misho 1104: 0L abc
1105:
1106: /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1107: )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1108: )?)?)?)?)?)?)?)?)?otherword/I
1109: Capturing subpattern count = 8
1110: Contains explicit CR or LF match
1111: No options
1112: First char = 'w'
1113: Need char = 'd'
1114:
1115: /.*X/IDZ
1116: ------------------------------------------------------------------
1117: Bra
1118: Any*
1119: X
1120: Ket
1121: End
1122: ------------------------------------------------------------------
1123: Capturing subpattern count = 0
1124: No options
1125: First char at start or follows newline
1126: Need char = 'X'
1127:
1128: /.*X/IDZs
1129: ------------------------------------------------------------------
1130: Bra
1131: AllAny*
1132: X
1133: Ket
1134: End
1135: ------------------------------------------------------------------
1136: Capturing subpattern count = 0
1137: Options: anchored dotall
1138: No first char
1139: Need char = 'X'
1140:
1141: /(.*X|^B)/IDZ
1142: ------------------------------------------------------------------
1143: Bra
1144: CBra 1
1145: Any*
1146: X
1147: Alt
1148: ^
1149: B
1150: Ket
1151: Ket
1152: End
1153: ------------------------------------------------------------------
1154: Capturing subpattern count = 1
1155: No options
1156: First char at start or follows newline
1157: No need char
1158:
1159: /(.*X|^B)/IDZs
1160: ------------------------------------------------------------------
1161: Bra
1162: CBra 1
1163: AllAny*
1164: X
1165: Alt
1166: ^
1167: B
1168: Ket
1169: Ket
1170: End
1171: ------------------------------------------------------------------
1172: Capturing subpattern count = 1
1173: Options: anchored dotall
1174: No first char
1175: No need char
1176:
1177: /(?s)(.*X|^B)/IDZ
1178: ------------------------------------------------------------------
1179: Bra
1180: CBra 1
1181: AllAny*
1182: X
1183: Alt
1184: ^
1185: B
1186: Ket
1187: Ket
1188: End
1189: ------------------------------------------------------------------
1190: Capturing subpattern count = 1
1191: Options: anchored dotall
1192: No first char
1193: No need char
1194:
1195: /(?s:.*X|^B)/IDZ
1196: ------------------------------------------------------------------
1197: Bra
1198: Bra
1199: AllAny*
1200: X
1201: Alt
1202: ^
1203: B
1204: Ket
1205: Ket
1206: End
1207: ------------------------------------------------------------------
1208: Capturing subpattern count = 0
1209: Options: anchored
1210: No first char
1211: No need char
1212:
1213: /\Biss\B/I+
1214: Capturing subpattern count = 0
1215: No options
1216: First char = 'i'
1217: Need char = 's'
1.1.1.3 ! misho 1218: Max lookbehind = 1
1.1 misho 1219: Mississippi
1220: 0: iss
1221: 0+ issippi
1222:
1223: /iss/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: 0: iss
1232: 0+ ippi
1233:
1234: /\Biss\B/IG+
1235: Capturing subpattern count = 0
1236: No options
1237: First char = 'i'
1238: Need char = 's'
1.1.1.3 ! misho 1239: Max lookbehind = 1
1.1 misho 1240: Mississippi
1241: 0: iss
1242: 0+ issippi
1243:
1244: /\Biss\B/Ig+
1245: Capturing subpattern count = 0
1246: No options
1247: First char = 'i'
1248: Need char = 's'
1.1.1.3 ! misho 1249: Max lookbehind = 1
1.1 misho 1250: Mississippi
1251: 0: iss
1252: 0+ issippi
1253: 0: iss
1254: 0+ ippi
1255: *** Failers
1256: No match
1257: Mississippi\A
1258: No match
1259:
1260: /(?<=[Ms])iss/Ig+
1261: Capturing subpattern count = 0
1262: No options
1263: First char = 'i'
1264: Need char = 's'
1.1.1.3 ! misho 1265: Max lookbehind = 1
1.1 misho 1266: Mississippi
1267: 0: iss
1268: 0+ issippi
1269: 0: iss
1270: 0+ ippi
1271:
1272: /(?<=[Ms])iss/IG+
1273: Capturing subpattern count = 0
1274: No options
1275: First char = 'i'
1276: Need char = 's'
1.1.1.3 ! misho 1277: Max lookbehind = 1
1.1 misho 1278: Mississippi
1279: 0: iss
1280: 0+ issippi
1281:
1282: /^iss/Ig+
1283: Capturing subpattern count = 0
1284: Options: anchored
1285: No first char
1286: No need char
1287: ississippi
1288: 0: iss
1289: 0+ issippi
1290:
1291: /.*iss/Ig+
1292: Capturing subpattern count = 0
1293: No options
1294: First char at start or follows newline
1295: Need char = 's'
1296: abciss\nxyzisspqr
1297: 0: abciss
1298: 0+ \x0axyzisspqr
1299: 0: xyziss
1300: 0+ pqr
1301:
1302: /.i./I+g
1303: Capturing subpattern count = 0
1304: No options
1305: No first char
1306: Need char = 'i'
1307: Mississippi
1308: 0: Mis
1309: 0+ sissippi
1310: 0: sis
1311: 0+ sippi
1312: 0: sip
1313: 0+ pi
1314: Mississippi\A
1315: 0: Mis
1316: 0+ sissippi
1317: 0: sis
1318: 0+ sippi
1319: 0: sip
1320: 0+ pi
1321: Missouri river
1322: 0: Mis
1323: 0+ souri river
1324: 0: ri
1325: 0+ river
1326: 0: riv
1327: 0+ er
1328: Missouri river\A
1329: 0: Mis
1330: 0+ souri river
1331:
1332: /^.is/I+g
1333: Capturing subpattern count = 0
1334: Options: anchored
1335: No first char
1336: No need char
1337: Mississippi
1338: 0: Mis
1339: 0+ sissippi
1340:
1341: /^ab\n/Ig+
1342: Capturing subpattern count = 0
1343: Contains explicit CR or LF match
1344: Options: anchored
1345: No first char
1346: No need char
1347: ab\nab\ncd
1348: 0: ab\x0a
1349: 0+ ab\x0acd
1350:
1351: /^ab\n/Img+
1352: Capturing subpattern count = 0
1353: Contains explicit CR or LF match
1354: Options: multiline
1355: First char at start or follows newline
1.1.1.2 misho 1356: Need char = \x0a
1.1 misho 1357: ab\nab\ncd
1358: 0: ab\x0a
1359: 0+ ab\x0acd
1360: 0: ab\x0a
1361: 0+ cd
1362:
1363: /abc/I
1364: Capturing subpattern count = 0
1365: No options
1366: First char = 'a'
1367: Need char = 'c'
1368:
1369: /abc|bac/I
1370: Capturing subpattern count = 0
1371: No options
1372: No first char
1373: Need char = 'c'
1374:
1375: /(abc|bac)/I
1376: Capturing subpattern count = 1
1377: No options
1378: No first char
1379: Need char = 'c'
1380:
1381: /(abc|(c|dc))/I
1382: Capturing subpattern count = 2
1383: No options
1384: No first char
1385: Need char = 'c'
1386:
1387: /(abc|(d|de)c)/I
1388: Capturing subpattern count = 2
1389: No options
1390: No first char
1391: Need char = 'c'
1392:
1393: /a*/I
1394: Capturing subpattern count = 0
1395: No options
1396: No first char
1397: No need char
1398:
1399: /a+/I
1400: Capturing subpattern count = 0
1401: No options
1402: First char = 'a'
1403: No need char
1404:
1405: /(baa|a+)/I
1406: Capturing subpattern count = 1
1407: No options
1408: No first char
1409: Need char = 'a'
1410:
1411: /a{0,3}/I
1412: Capturing subpattern count = 0
1413: No options
1414: No first char
1415: No need char
1416:
1417: /baa{3,}/I
1418: Capturing subpattern count = 0
1419: No options
1420: First char = 'b'
1421: Need char = 'a'
1422:
1423: /"([^\\"]+|\\.)*"/I
1424: Capturing subpattern count = 1
1425: No options
1426: First char = '"'
1427: Need char = '"'
1428:
1429: /(abc|ab[cd])/I
1430: Capturing subpattern count = 1
1431: No options
1432: First char = 'a'
1433: No need char
1434:
1435: /(a|.)/I
1436: Capturing subpattern count = 1
1437: No options
1438: No first char
1439: No need char
1440:
1441: /a|ba|\w/I
1442: Capturing subpattern count = 0
1443: No options
1444: No first char
1445: No need char
1446:
1447: /abc(?=pqr)/I
1448: Capturing subpattern count = 0
1449: No options
1450: First char = 'a'
1451: Need char = 'r'
1452:
1453: /...(?<=abc)/I
1454: Capturing subpattern count = 0
1455: No options
1456: No first char
1457: No need char
1.1.1.3 ! misho 1458: Max lookbehind = 3
1.1 misho 1459:
1460: /abc(?!pqr)/I
1461: Capturing subpattern count = 0
1462: No options
1463: First char = 'a'
1464: Need char = 'c'
1465:
1466: /ab./I
1467: Capturing subpattern count = 0
1468: No options
1469: First char = 'a'
1470: Need char = 'b'
1471:
1472: /ab[xyz]/I
1473: Capturing subpattern count = 0
1474: No options
1475: First char = 'a'
1476: Need char = 'b'
1477:
1478: /abc*/I
1479: Capturing subpattern count = 0
1480: No options
1481: First char = 'a'
1482: Need char = 'b'
1483:
1484: /ab.c*/I
1485: Capturing subpattern count = 0
1486: No options
1487: First char = 'a'
1488: Need char = 'b'
1489:
1490: /a.c*/I
1491: Capturing subpattern count = 0
1492: No options
1493: First char = 'a'
1494: No need char
1495:
1496: /.c*/I
1497: Capturing subpattern count = 0
1498: No options
1499: No first char
1500: No need char
1501:
1502: /ac*/I
1503: Capturing subpattern count = 0
1504: No options
1505: First char = 'a'
1506: No need char
1507:
1508: /(a.c*|b.c*)/I
1509: Capturing subpattern count = 1
1510: No options
1511: No first char
1512: No need char
1513:
1514: /a.c*|aba/I
1515: Capturing subpattern count = 0
1516: No options
1517: First char = 'a'
1518: No need char
1519:
1520: /.+a/I
1521: Capturing subpattern count = 0
1522: No options
1523: No first char
1524: Need char = 'a'
1525:
1526: /(?=abcda)a.*/I
1527: Capturing subpattern count = 0
1528: No options
1529: First char = 'a'
1530: Need char = 'a'
1531:
1532: /(?=a)a.*/I
1533: Capturing subpattern count = 0
1534: No options
1535: First char = 'a'
1536: No need char
1537:
1538: /a(b)*/I
1539: Capturing subpattern count = 1
1540: No options
1541: First char = 'a'
1542: No need char
1543:
1544: /a\d*/I
1545: Capturing subpattern count = 0
1546: No options
1547: First char = 'a'
1548: No need char
1549:
1550: /ab\d*/I
1551: Capturing subpattern count = 0
1552: No options
1553: First char = 'a'
1554: Need char = 'b'
1555:
1556: /a(\d)*/I
1557: Capturing subpattern count = 1
1558: No options
1559: First char = 'a'
1560: No need char
1561:
1562: /abcde{0,0}/I
1563: Capturing subpattern count = 0
1564: No options
1565: First char = 'a'
1566: Need char = 'd'
1567:
1568: /ab\d+/I
1569: Capturing subpattern count = 0
1570: No options
1571: First char = 'a'
1572: Need char = 'b'
1573:
1574: /a(?(1)b)(.)/I
1575: Capturing subpattern count = 1
1576: No options
1577: First char = 'a'
1578: No need char
1579:
1580: /a(?(1)bag|big)(.)/I
1581: Capturing subpattern count = 1
1582: No options
1583: First char = 'a'
1584: Need char = 'g'
1585:
1586: /a(?(1)bag|big)*(.)/I
1587: Capturing subpattern count = 1
1588: No options
1589: First char = 'a'
1590: No need char
1591:
1592: /a(?(1)bag|big)+(.)/I
1593: Capturing subpattern count = 1
1594: No options
1595: First char = 'a'
1596: Need char = 'g'
1597:
1598: /a(?(1)b..|b..)(.)/I
1599: Capturing subpattern count = 1
1600: No options
1601: First char = 'a'
1602: Need char = 'b'
1603:
1604: /ab\d{0}e/I
1605: Capturing subpattern count = 0
1606: No options
1607: First char = 'a'
1608: Need char = 'e'
1609:
1610: /a?b?/I
1611: Capturing subpattern count = 0
1612: No options
1613: No first char
1614: No need char
1615: a
1616: 0: a
1617: b
1618: 0: b
1619: ab
1620: 0: ab
1621: \
1622: 0:
1623: *** Failers
1624: 0:
1625: \N
1626: No match
1627:
1628: /|-/I
1629: Capturing subpattern count = 0
1630: No options
1631: No first char
1632: No need char
1633: abcd
1634: 0:
1635: -abc
1636: 0:
1637: \Nab-c
1638: 0: -
1639: *** Failers
1640: 0:
1641: \Nabc
1642: No match
1643:
1644: /^.?abcd/IS
1645: Capturing subpattern count = 0
1646: Options: anchored
1647: No first char
1648: Need char = 'd'
1649: Subject length lower bound = 4
1650: No set of starting bytes
1651:
1652: /\( # ( at start
1653: (?: # Non-capturing bracket
1654: (?>[^()]+) # Either a sequence of non-brackets (no backtracking)
1655: | # Or
1656: (?R) # Recurse - i.e. nested bracketed string
1657: )* # Zero or more contents
1658: \) # Closing )
1659: /Ix
1660: Capturing subpattern count = 0
1661: Options: extended
1662: First char = '('
1663: Need char = ')'
1664: (abcd)
1665: 0: (abcd)
1666: (abcd)xyz
1667: 0: (abcd)
1668: xyz(abcd)
1669: 0: (abcd)
1670: (ab(xy)cd)pqr
1671: 0: (ab(xy)cd)
1672: (ab(xycd)pqr
1673: 0: (xycd)
1674: () abc ()
1675: 0: ()
1676: 12(abcde(fsh)xyz(foo(bar))lmno)89
1677: 0: (abcde(fsh)xyz(foo(bar))lmno)
1678: *** Failers
1679: No match
1680: abcd
1681: No match
1682: abcd)
1683: No match
1684: (abcd
1685: No match
1686:
1687: /\( ( (?>[^()]+) | (?R) )* \) /Ixg
1688: Capturing subpattern count = 1
1689: Options: extended
1690: First char = '('
1691: Need char = ')'
1692: (ab(xy)cd)pqr
1693: 0: (ab(xy)cd)
1694: 1: cd
1695: 1(abcd)(x(y)z)pqr
1696: 0: (abcd)
1697: 1: abcd
1698: 0: (x(y)z)
1699: 1: z
1700:
1701: /\( (?: (?>[^()]+) | (?R) ) \) /Ix
1702: Capturing subpattern count = 0
1703: Options: extended
1704: First char = '('
1705: Need char = ')'
1706: (abcd)
1707: 0: (abcd)
1708: (ab(xy)cd)
1709: 0: (xy)
1710: (a(b(c)d)e)
1711: 0: (c)
1712: ((ab))
1713: 0: ((ab))
1714: *** Failers
1715: No match
1716: ()
1717: No match
1718:
1719: /\( (?: (?>[^()]+) | (?R) )? \) /Ix
1720: Capturing subpattern count = 0
1721: Options: extended
1722: First char = '('
1723: Need char = ')'
1724: ()
1725: 0: ()
1726: 12(abcde(fsh)xyz(foo(bar))lmno)89
1727: 0: (fsh)
1728:
1729: /\( ( (?>[^()]+) | (?R) )* \) /Ix
1730: Capturing subpattern count = 1
1731: Options: extended
1732: First char = '('
1733: Need char = ')'
1734: (ab(xy)cd)
1735: 0: (ab(xy)cd)
1736: 1: cd
1737:
1738: /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1739: Capturing subpattern count = 2
1740: Options: extended
1741: First char = '('
1742: Need char = ')'
1743: (ab(xy)cd)
1744: 0: (ab(xy)cd)
1745: 1: ab(xy)cd
1746: 2: 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: <unset>
1756: 2: ab(xy)cd
1757: 3: cd
1758: (123ab(xy)cd)
1759: 0: (123ab(xy)cd)
1760: 1: 123
1761: 2: ab(xy)cd
1762: 3: cd
1763:
1764: /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1765: Capturing subpattern count = 3
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: <unset>
1773: 3: cd
1774: (123ab(xy)cd)
1775: 0: (123ab(xy)cd)
1776: 1: 123ab(xy)cd
1777: 2: 123
1778: 3: cd
1779:
1780: /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1781: Capturing subpattern count = 11
1782: Options: extended
1783: First char = '('
1784: Need char = ')'
1785: (ab(xy)cd)
1786: 0: (ab(xy)cd)
1787: 1: ab(xy)cd
1788: 2: ab(xy)cd
1789: 3: ab(xy)cd
1790: 4: ab(xy)cd
1791: 5: ab(xy)cd
1792: 6: ab(xy)cd
1793: 7: ab(xy)cd
1794: 8: ab(xy)cd
1795: 9: ab(xy)cd
1796: 10: ab(xy)cd
1797: 11: cd
1798:
1799: /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1800: Capturing subpattern count = 3
1801: Options: extended
1802: First char = '('
1803: Need char = ')'
1804: (abcd(xyz<p>qrs)123)
1805: 0: (abcd(xyz<p>qrs)123)
1806: 1: abcd(xyz<p>qrs)123
1807: 2: 123
1808:
1809: /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1810: Capturing subpattern count = 3
1811: Options: extended
1812: First char = '('
1813: Need char = ')'
1814: (ab(cd)ef)
1815: 0: (ab(cd)ef)
1816: 1: ab(cd)ef
1817: 2: ef
1818: 3: (cd)
1819: (ab(cd(ef)gh)ij)
1820: 0: (ab(cd(ef)gh)ij)
1821: 1: ab(cd(ef)gh)ij
1822: 2: ij
1823: 3: (cd(ef)gh)
1824:
1825: /^[[:alnum:]]/DZ
1826: ------------------------------------------------------------------
1827: Bra
1828: ^
1829: [0-9A-Za-z]
1830: Ket
1831: End
1832: ------------------------------------------------------------------
1833: Capturing subpattern count = 0
1834: Options: anchored
1835: No first char
1836: No need char
1837:
1838: /^[[:^alnum:]]/DZ
1839: ------------------------------------------------------------------
1840: Bra
1841: ^
1842: [\x00-/:-@[-`{-\xff] (neg)
1843: Ket
1844: End
1845: ------------------------------------------------------------------
1846: Capturing subpattern count = 0
1847: Options: anchored
1848: No first char
1849: No need char
1850:
1851: /^[[:alpha:]]/DZ
1852: ------------------------------------------------------------------
1853: Bra
1854: ^
1855: [A-Za-z]
1856: Ket
1857: End
1858: ------------------------------------------------------------------
1859: Capturing subpattern count = 0
1860: Options: anchored
1861: No first char
1862: No need char
1863:
1864: /^[[:^alpha:]]/DZ
1865: ------------------------------------------------------------------
1866: Bra
1867: ^
1868: [\x00-@[-`{-\xff] (neg)
1869: Ket
1870: End
1871: ------------------------------------------------------------------
1872: Capturing subpattern count = 0
1873: Options: anchored
1874: No first char
1875: No need char
1876:
1877: /[_[:alpha:]]/IS
1878: Capturing subpattern count = 0
1879: No options
1880: No first char
1881: No need char
1882: Subject length lower bound = 1
1883: 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
1884: _ 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
1885:
1886: /^[[:ascii:]]/DZ
1887: ------------------------------------------------------------------
1888: Bra
1889: ^
1890: [\x00-\x7f]
1891: Ket
1892: End
1893: ------------------------------------------------------------------
1894: Capturing subpattern count = 0
1895: Options: anchored
1896: No first char
1897: No need char
1898:
1899: /^[[:^ascii:]]/DZ
1900: ------------------------------------------------------------------
1901: Bra
1902: ^
1903: [\x80-\xff] (neg)
1904: Ket
1905: End
1906: ------------------------------------------------------------------
1907: Capturing subpattern count = 0
1908: Options: anchored
1909: No first char
1910: No need char
1911:
1912: /^[[:blank:]]/DZ
1913: ------------------------------------------------------------------
1914: Bra
1915: ^
1916: [\x09 ]
1917: Ket
1918: End
1919: ------------------------------------------------------------------
1920: Capturing subpattern count = 0
1921: Options: anchored
1922: No first char
1923: No need char
1924:
1925: /^[[:^blank:]]/DZ
1926: ------------------------------------------------------------------
1927: Bra
1928: ^
1929: [\x00-\x08\x0a-\x1f!-\xff] (neg)
1930: Ket
1931: End
1932: ------------------------------------------------------------------
1933: Capturing subpattern count = 0
1934: Options: anchored
1935: No first char
1936: No need char
1937:
1938: /[\n\x0b\x0c\x0d[:blank:]]/IS
1939: Capturing subpattern count = 0
1940: Contains explicit CR or LF match
1941: No options
1942: No first char
1943: No need char
1944: Subject length lower bound = 1
1945: Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1946:
1947: /^[[:cntrl:]]/DZ
1948: ------------------------------------------------------------------
1949: Bra
1950: ^
1951: [\x00-\x1f\x7f]
1952: Ket
1953: End
1954: ------------------------------------------------------------------
1955: Capturing subpattern count = 0
1956: Options: anchored
1957: No first char
1958: No need char
1959:
1960: /^[[:digit:]]/DZ
1961: ------------------------------------------------------------------
1962: Bra
1963: ^
1964: [0-9]
1965: Ket
1966: End
1967: ------------------------------------------------------------------
1968: Capturing subpattern count = 0
1969: Options: anchored
1970: No first char
1971: No need char
1972:
1973: /^[[:graph:]]/DZ
1974: ------------------------------------------------------------------
1975: Bra
1976: ^
1977: [!-~]
1978: Ket
1979: End
1980: ------------------------------------------------------------------
1981: Capturing subpattern count = 0
1982: Options: anchored
1983: No first char
1984: No need char
1985:
1986: /^[[:lower:]]/DZ
1987: ------------------------------------------------------------------
1988: Bra
1989: ^
1990: [a-z]
1991: Ket
1992: End
1993: ------------------------------------------------------------------
1994: Capturing subpattern count = 0
1995: Options: anchored
1996: No first char
1997: No need char
1998:
1999: /^[[:print:]]/DZ
2000: ------------------------------------------------------------------
2001: Bra
2002: ^
2003: [ -~]
2004: Ket
2005: End
2006: ------------------------------------------------------------------
2007: Capturing subpattern count = 0
2008: Options: anchored
2009: No first char
2010: No need char
2011:
2012: /^[[:punct:]]/DZ
2013: ------------------------------------------------------------------
2014: Bra
2015: ^
2016: [!-/:-@[-`{-~]
2017: Ket
2018: End
2019: ------------------------------------------------------------------
2020: Capturing subpattern count = 0
2021: Options: anchored
2022: No first char
2023: No need char
2024:
2025: /^[[:space:]]/DZ
2026: ------------------------------------------------------------------
2027: Bra
2028: ^
2029: [\x09-\x0d ]
2030: Ket
2031: End
2032: ------------------------------------------------------------------
2033: Capturing subpattern count = 0
2034: Options: anchored
2035: No first char
2036: No need char
2037:
2038: /^[[:upper:]]/DZ
2039: ------------------------------------------------------------------
2040: Bra
2041: ^
2042: [A-Z]
2043: Ket
2044: End
2045: ------------------------------------------------------------------
2046: Capturing subpattern count = 0
2047: Options: anchored
2048: No first char
2049: No need char
2050:
2051: /^[[:xdigit:]]/DZ
2052: ------------------------------------------------------------------
2053: Bra
2054: ^
2055: [0-9A-Fa-f]
2056: Ket
2057: End
2058: ------------------------------------------------------------------
2059: Capturing subpattern count = 0
2060: Options: anchored
2061: No first char
2062: No need char
2063:
2064: /^[[:word:]]/DZ
2065: ------------------------------------------------------------------
2066: Bra
2067: ^
2068: [0-9A-Z_a-z]
2069: Ket
2070: End
2071: ------------------------------------------------------------------
2072: Capturing subpattern count = 0
2073: Options: anchored
2074: No first char
2075: No need char
2076:
2077: /^[[:^cntrl:]]/DZ
2078: ------------------------------------------------------------------
2079: Bra
2080: ^
2081: [ -~\x80-\xff] (neg)
2082: Ket
2083: End
2084: ------------------------------------------------------------------
2085: Capturing subpattern count = 0
2086: Options: anchored
2087: No first char
2088: No need char
2089:
2090: /^[12[:^digit:]]/DZ
2091: ------------------------------------------------------------------
2092: Bra
2093: ^
2094: [\x00-/12:-\xff] (neg)
2095: Ket
2096: End
2097: ------------------------------------------------------------------
2098: Capturing subpattern count = 0
2099: Options: anchored
2100: No first char
2101: No need char
2102:
2103: /^[[:^blank:]]/DZ
2104: ------------------------------------------------------------------
2105: Bra
2106: ^
2107: [\x00-\x08\x0a-\x1f!-\xff] (neg)
2108: Ket
2109: End
2110: ------------------------------------------------------------------
2111: Capturing subpattern count = 0
2112: Options: anchored
2113: No first char
2114: No need char
2115:
2116: /[01[:alpha:]%]/DZ
2117: ------------------------------------------------------------------
2118: Bra
2119: [%01A-Za-z]
2120: Ket
2121: End
2122: ------------------------------------------------------------------
2123: Capturing subpattern count = 0
2124: No options
2125: No first char
2126: No need char
2127:
2128: /[[.ch.]]/I
2129: Failed: POSIX collating elements are not supported at offset 1
2130:
2131: /[[=ch=]]/I
2132: Failed: POSIX collating elements are not supported at offset 1
2133:
2134: /[[:rhubarb:]]/I
2135: Failed: unknown POSIX class name at offset 3
2136:
2137: /[[:upper:]]/Ii
2138: Capturing subpattern count = 0
2139: Options: caseless
2140: No first char
2141: No need char
2142: A
2143: 0: A
2144: a
2145: 0: a
2146:
2147: /[[:lower:]]/Ii
2148: Capturing subpattern count = 0
2149: Options: caseless
2150: No first char
2151: No need char
2152: A
2153: 0: A
2154: a
2155: 0: a
2156:
2157: /((?-i)[[:lower:]])[[:lower:]]/Ii
2158: Capturing subpattern count = 1
2159: Options: caseless
2160: No first char
2161: No need char
2162: ab
2163: 0: ab
2164: 1: a
2165: aB
2166: 0: aB
2167: 1: a
2168: *** Failers
2169: 0: ai
2170: 1: a
2171: Ab
2172: No match
2173: AB
2174: No match
2175:
2176: /[\200-\110]/I
2177: Failed: range out of order in character class at offset 9
2178:
2179: /^(?(0)f|b)oo/I
2180: Failed: invalid condition (?(0) at offset 6
2181:
2182: /This one's here because of the large output vector needed/I
2183: Capturing subpattern count = 0
2184: No options
2185: First char = 'T'
2186: Need char = 'd'
2187:
2188: /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2189: Capturing subpattern count = 271
2190: Max back reference = 270
2191: No options
2192: No first char
2193: No need char
2194: \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
2195: 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
2196: 1: 1
2197: 2: 2
2198: 3: 3
2199: 4: 4
2200: 5: 5
2201: 6: 6
2202: 7: 7
2203: 8: 8
2204: 9: 9
2205: 10: 10
2206: 11: 11
2207: 12: 12
2208: 13: 13
2209: 14: 14
2210: 15: 15
2211: 16: 16
2212: 17: 17
2213: 18: 18
2214: 19: 19
2215: 20: 20
2216: 21: 21
2217: 22: 22
2218: 23: 23
2219: 24: 24
2220: 25: 25
2221: 26: 26
2222: 27: 27
2223: 28: 28
2224: 29: 29
2225: 30: 30
2226: 31: 31
2227: 32: 32
2228: 33: 33
2229: 34: 34
2230: 35: 35
2231: 36: 36
2232: 37: 37
2233: 38: 38
2234: 39: 39
2235: 40: 40
2236: 41: 41
2237: 42: 42
2238: 43: 43
2239: 44: 44
2240: 45: 45
2241: 46: 46
2242: 47: 47
2243: 48: 48
2244: 49: 49
2245: 50: 50
2246: 51: 51
2247: 52: 52
2248: 53: 53
2249: 54: 54
2250: 55: 55
2251: 56: 56
2252: 57: 57
2253: 58: 58
2254: 59: 59
2255: 60: 60
2256: 61: 61
2257: 62: 62
2258: 63: 63
2259: 64: 64
2260: 65: 65
2261: 66: 66
2262: 67: 67
2263: 68: 68
2264: 69: 69
2265: 70: 70
2266: 71: 71
2267: 72: 72
2268: 73: 73
2269: 74: 74
2270: 75: 75
2271: 76: 76
2272: 77: 77
2273: 78: 78
2274: 79: 79
2275: 80: 80
2276: 81: 81
2277: 82: 82
2278: 83: 83
2279: 84: 84
2280: 85: 85
2281: 86: 86
2282: 87: 87
2283: 88: 88
2284: 89: 89
2285: 90: 90
2286: 91: 91
2287: 92: 92
2288: 93: 93
2289: 94: 94
2290: 95: 95
2291: 96: 96
2292: 97: 97
2293: 98: 98
2294: 99: 99
2295: 100: 100
2296: 101: 101
2297: 102: 102
2298: 103: 103
2299: 104: 104
2300: 105: 105
2301: 106: 106
2302: 107: 107
2303: 108: 108
2304: 109: 109
2305: 110: 110
2306: 111: 111
2307: 112: 112
2308: 113: 113
2309: 114: 114
2310: 115: 115
2311: 116: 116
2312: 117: 117
2313: 118: 118
2314: 119: 119
2315: 120: 120
2316: 121: 121
2317: 122: 122
2318: 123: 123
2319: 124: 124
2320: 125: 125
2321: 126: 126
2322: 127: 127
2323: 128: 128
2324: 129: 129
2325: 130: 130
2326: 131: 131
2327: 132: 132
2328: 133: 133
2329: 134: 134
2330: 135: 135
2331: 136: 136
2332: 137: 137
2333: 138: 138
2334: 139: 139
2335: 140: 140
2336: 141: 141
2337: 142: 142
2338: 143: 143
2339: 144: 144
2340: 145: 145
2341: 146: 146
2342: 147: 147
2343: 148: 148
2344: 149: 149
2345: 150: 150
2346: 151: 151
2347: 152: 152
2348: 153: 153
2349: 154: 154
2350: 155: 155
2351: 156: 156
2352: 157: 157
2353: 158: 158
2354: 159: 159
2355: 160: 160
2356: 161: 161
2357: 162: 162
2358: 163: 163
2359: 164: 164
2360: 165: 165
2361: 166: 166
2362: 167: 167
2363: 168: 168
2364: 169: 169
2365: 170: 170
2366: 171: 171
2367: 172: 172
2368: 173: 173
2369: 174: 174
2370: 175: 175
2371: 176: 176
2372: 177: 177
2373: 178: 178
2374: 179: 179
2375: 180: 180
2376: 181: 181
2377: 182: 182
2378: 183: 183
2379: 184: 184
2380: 185: 185
2381: 186: 186
2382: 187: 187
2383: 188: 188
2384: 189: 189
2385: 190: 190
2386: 191: 191
2387: 192: 192
2388: 193: 193
2389: 194: 194
2390: 195: 195
2391: 196: 196
2392: 197: 197
2393: 198: 198
2394: 199: 199
2395: 200: 200
2396: 201: 201
2397: 202: 202
2398: 203: 203
2399: 204: 204
2400: 205: 205
2401: 206: 206
2402: 207: 207
2403: 208: 208
2404: 209: 209
2405: 210: 210
2406: 211: 211
2407: 212: 212
2408: 213: 213
2409: 214: 214
2410: 215: 215
2411: 216: 216
2412: 217: 217
2413: 218: 218
2414: 219: 219
2415: 220: 220
2416: 221: 221
2417: 222: 222
2418: 223: 223
2419: 224: 224
2420: 225: 225
2421: 226: 226
2422: 227: 227
2423: 228: 228
2424: 229: 229
2425: 230: 230
2426: 231: 231
2427: 232: 232
2428: 233: 233
2429: 234: 234
2430: 235: 235
2431: 236: 236
2432: 237: 237
2433: 238: 238
2434: 239: 239
2435: 240: 240
2436: 241: 241
2437: 242: 242
2438: 243: 243
2439: 244: 244
2440: 245: 245
2441: 246: 246
2442: 247: 247
2443: 248: 248
2444: 249: 249
2445: 250: 250
2446: 251: 251
2447: 252: 252
2448: 253: 253
2449: 254: 254
2450: 255: 255
2451: 256: 256
2452: 257: 257
2453: 258: 258
2454: 259: 259
2455: 260: 260
2456: 261: 261
2457: 262: 262
2458: 263: 263
2459: 264: 264
2460: 265: 265
2461: 266: 266
2462: 267: 267
2463: 268: 268
2464: 269: 269
2465: 270: ABC
2466: 271: ABC
2467:
2468: /This one's here because Perl does this differently and PCRE can't at present/I
2469: Capturing subpattern count = 0
2470: No options
2471: First char = 'T'
2472: Need char = 't'
2473:
2474: /(main(O)?)+/I
2475: Capturing subpattern count = 2
2476: No options
2477: First char = 'm'
2478: Need char = 'n'
2479: mainmain
2480: 0: mainmain
2481: 1: main
2482: mainOmain
2483: 0: mainOmain
2484: 1: main
2485: 2: O
2486:
2487: /These are all cases where Perl does it differently (nested captures)/I
2488: Capturing subpattern count = 1
2489: No options
2490: First char = 'T'
2491: Need char = 's'
2492:
2493: /^(a(b)?)+$/I
2494: Capturing subpattern count = 2
2495: Options: anchored
2496: No first char
2497: No need char
2498: aba
2499: 0: aba
2500: 1: a
2501: 2: b
2502:
2503: /^(aa(bb)?)+$/I
2504: Capturing subpattern count = 2
2505: Options: anchored
2506: No first char
2507: No need char
2508: aabbaa
2509: 0: aabbaa
2510: 1: aa
2511: 2: bb
2512:
2513: /^(aa|aa(bb))+$/I
2514: Capturing subpattern count = 2
2515: Options: anchored
2516: No first char
2517: No need char
2518: aabbaa
2519: 0: aabbaa
2520: 1: aa
2521: 2: bb
2522:
2523: /^(aa(bb)??)+$/I
2524: Capturing subpattern count = 2
2525: Options: anchored
2526: No first char
2527: No need char
2528: aabbaa
2529: 0: aabbaa
2530: 1: aa
2531: 2: bb
2532:
2533: /^(?:aa(bb)?)+$/I
2534: Capturing subpattern count = 1
2535: Options: anchored
2536: No first char
2537: No need char
2538: aabbaa
2539: 0: aabbaa
2540: 1: bb
2541:
2542: /^(aa(b(b))?)+$/I
2543: Capturing subpattern count = 3
2544: Options: anchored
2545: No first char
2546: No need char
2547: aabbaa
2548: 0: aabbaa
2549: 1: aa
2550: 2: bb
2551: 3: b
2552:
2553: /^(?:aa(b(b))?)+$/I
2554: Capturing subpattern count = 2
2555: Options: anchored
2556: No first char
2557: No need char
2558: aabbaa
2559: 0: aabbaa
2560: 1: bb
2561: 2: b
2562:
2563: /^(?:aa(b(?:b))?)+$/I
2564: Capturing subpattern count = 1
2565: Options: anchored
2566: No first char
2567: No need char
2568: aabbaa
2569: 0: aabbaa
2570: 1: bb
2571:
2572: /^(?:aa(bb(?:b))?)+$/I
2573: Capturing subpattern count = 1
2574: Options: anchored
2575: No first char
2576: No need char
2577: aabbbaa
2578: 0: aabbbaa
2579: 1: bbb
2580:
2581: /^(?:aa(b(?:bb))?)+$/I
2582: Capturing subpattern count = 1
2583: Options: anchored
2584: No first char
2585: No need char
2586: aabbbaa
2587: 0: aabbbaa
2588: 1: bbb
2589:
2590: /^(?:aa(?:b(b))?)+$/I
2591: Capturing subpattern count = 1
2592: Options: anchored
2593: No first char
2594: No need char
2595: aabbaa
2596: 0: aabbaa
2597: 1: b
2598:
2599: /^(?:aa(?:b(bb))?)+$/I
2600: Capturing subpattern count = 1
2601: Options: anchored
2602: No first char
2603: No need char
2604: aabbbaa
2605: 0: aabbbaa
2606: 1: bb
2607:
2608: /^(aa(b(bb))?)+$/I
2609: Capturing subpattern count = 3
2610: Options: anchored
2611: No first char
2612: No need char
2613: aabbbaa
2614: 0: aabbbaa
2615: 1: aa
2616: 2: bbb
2617: 3: bb
2618:
2619: /^(aa(bb(bb))?)+$/I
2620: Capturing subpattern count = 3
2621: Options: anchored
2622: No first char
2623: No need char
2624: aabbbbaa
2625: 0: aabbbbaa
2626: 1: aa
2627: 2: bbbb
2628: 3: bb
2629:
2630: /--------------------------------------------------------------------/I
2631: Capturing subpattern count = 0
2632: No options
2633: First char = '-'
2634: Need char = '-'
2635:
2636: /#/IxDZ
2637: ------------------------------------------------------------------
2638: Bra
2639: Ket
2640: End
2641: ------------------------------------------------------------------
2642: Capturing subpattern count = 0
2643: Options: extended
2644: No first char
2645: No need char
2646:
2647: /a#/IxDZ
2648: ------------------------------------------------------------------
2649: Bra
2650: a
2651: Ket
2652: End
2653: ------------------------------------------------------------------
2654: Capturing subpattern count = 0
2655: Options: extended
2656: First char = 'a'
2657: No need char
2658:
2659: /[\s]/DZ
2660: ------------------------------------------------------------------
2661: Bra
2662: [\x09\x0a\x0c\x0d ]
2663: Ket
2664: End
2665: ------------------------------------------------------------------
2666: Capturing subpattern count = 0
2667: No options
2668: No first char
2669: No need char
2670:
2671: /[\S]/DZ
2672: ------------------------------------------------------------------
2673: Bra
2674: [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2675: Ket
2676: End
2677: ------------------------------------------------------------------
2678: Capturing subpattern count = 0
2679: No options
2680: No first char
2681: No need char
2682:
2683: /a(?i)b/DZ
2684: ------------------------------------------------------------------
2685: Bra
2686: a
2687: /i b
2688: Ket
2689: End
2690: ------------------------------------------------------------------
2691: Capturing subpattern count = 0
2692: No options
2693: First char = 'a'
2694: Need char = 'b' (caseless)
2695: ab
2696: 0: ab
2697: aB
2698: 0: aB
2699: *** Failers
2700: No match
2701: AB
2702: No match
2703:
2704: /(a(?i)b)/DZ
2705: ------------------------------------------------------------------
2706: Bra
2707: CBra 1
2708: a
2709: /i b
2710: Ket
2711: Ket
2712: End
2713: ------------------------------------------------------------------
2714: Capturing subpattern count = 1
2715: No options
2716: First char = 'a'
2717: Need char = 'b' (caseless)
2718: ab
2719: 0: ab
2720: 1: ab
2721: aB
2722: 0: aB
2723: 1: aB
2724: *** Failers
2725: No match
2726: AB
2727: No match
2728:
2729: / (?i)abc/IxDZ
2730: ------------------------------------------------------------------
2731: Bra
2732: /i abc
2733: Ket
2734: End
2735: ------------------------------------------------------------------
2736: Capturing subpattern count = 0
2737: Options: caseless extended
2738: First char = 'a' (caseless)
2739: Need char = 'c' (caseless)
2740:
2741: /#this is a comment
2742: (?i)abc/IxDZ
2743: ------------------------------------------------------------------
2744: Bra
2745: /i abc
2746: Ket
2747: End
2748: ------------------------------------------------------------------
2749: Capturing subpattern count = 0
2750: Options: caseless extended
2751: First char = 'a' (caseless)
2752: Need char = 'c' (caseless)
2753:
2754: /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2755: ------------------------------------------------------------------
2756: Bra
2757: 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2758: Ket
2759: End
2760: ------------------------------------------------------------------
2761: Capturing subpattern count = 0
2762: No options
2763: First char = '1'
2764: Need char = '0'
2765:
2766: /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2767: ------------------------------------------------------------------
2768: Bra
2769: 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2770: Ket
2771: End
2772: ------------------------------------------------------------------
2773: Capturing subpattern count = 0
2774: No options
2775: First char = '1'
2776: Need char = '0'
2777:
2778: /\Q\E/DZ
2779: ------------------------------------------------------------------
2780: Bra
2781: Ket
2782: End
2783: ------------------------------------------------------------------
2784: Capturing subpattern count = 0
2785: No options
2786: No first char
2787: No need char
2788: \
2789: 0:
2790:
2791: /\Q\Ex/DZ
2792: ------------------------------------------------------------------
2793: Bra
2794: x
2795: Ket
2796: End
2797: ------------------------------------------------------------------
2798: Capturing subpattern count = 0
2799: No options
2800: First char = 'x'
2801: No need char
2802:
2803: / \Q\E/DZ
2804: ------------------------------------------------------------------
2805: Bra
2806:
2807: Ket
2808: End
2809: ------------------------------------------------------------------
2810: Capturing subpattern count = 0
2811: No options
2812: First char = ' '
2813: No need char
2814:
2815: /a\Q\E/DZ
2816: ------------------------------------------------------------------
2817: Bra
2818: a
2819: Ket
2820: End
2821: ------------------------------------------------------------------
2822: Capturing subpattern count = 0
2823: No options
2824: First char = 'a'
2825: No need char
2826: abc
2827: 0: a
2828: bca
2829: 0: a
2830: bac
2831: 0: a
2832:
2833: /a\Q\Eb/DZ
2834: ------------------------------------------------------------------
2835: Bra
2836: ab
2837: Ket
2838: End
2839: ------------------------------------------------------------------
2840: Capturing subpattern count = 0
2841: No options
2842: First char = 'a'
2843: Need char = 'b'
2844: abc
2845: 0: ab
2846:
2847: /\Q\Eabc/DZ
2848: ------------------------------------------------------------------
2849: Bra
2850: abc
2851: Ket
2852: End
2853: ------------------------------------------------------------------
2854: Capturing subpattern count = 0
2855: No options
2856: First char = 'a'
2857: Need char = 'c'
2858:
2859: /x*+\w/DZ
2860: ------------------------------------------------------------------
2861: Bra
2862: x*+
2863: \w
2864: Ket
2865: End
2866: ------------------------------------------------------------------
2867: Capturing subpattern count = 0
2868: No options
2869: No first char
2870: No need char
2871: *** Failers
2872: 0: F
2873: xxxxx
2874: No match
2875:
2876: /x?+/DZ
2877: ------------------------------------------------------------------
2878: Bra
2879: x?+
2880: Ket
2881: End
2882: ------------------------------------------------------------------
2883: Capturing subpattern count = 0
2884: No options
2885: No first char
2886: No need char
2887:
2888: /x++/DZ
2889: ------------------------------------------------------------------
2890: Bra
2891: x++
2892: Ket
2893: End
2894: ------------------------------------------------------------------
2895: Capturing subpattern count = 0
2896: No options
2897: First char = 'x'
2898: No need char
2899:
2900: /x{1,3}+/DZ
2901: ------------------------------------------------------------------
2902: Bra
2903: Once
2904: x
2905: x{0,2}
2906: Ket
2907: Ket
2908: End
2909: ------------------------------------------------------------------
2910: Capturing subpattern count = 0
2911: No options
2912: First char = 'x'
2913: No need char
2914:
2915: /(x)*+/DZ
2916: ------------------------------------------------------------------
2917: Bra
2918: Braposzero
2919: CBraPos 1
2920: x
2921: KetRpos
2922: Ket
2923: End
2924: ------------------------------------------------------------------
2925: Capturing subpattern count = 1
2926: No options
2927: No first char
2928: No need char
2929:
2930: /^(\w++|\s++)*$/I
2931: Capturing subpattern count = 1
2932: Options: anchored
2933: No first char
2934: No need char
2935: now is the time for all good men to come to the aid of the party
2936: 0: now is the time for all good men to come to the aid of the party
2937: 1: party
2938: *** Failers
2939: No match
2940: this is not a line with only words and spaces!
2941: No match
2942:
2943: /(\d++)(\w)/I
2944: Capturing subpattern count = 2
2945: No options
2946: No first char
2947: No need char
2948: 12345a
2949: 0: 12345a
2950: 1: 12345
2951: 2: a
2952: *** Failers
2953: No match
2954: 12345+
2955: No match
2956:
2957: /a++b/I
2958: Capturing subpattern count = 0
2959: No options
2960: First char = 'a'
2961: Need char = 'b'
2962: aaab
2963: 0: aaab
2964:
2965: /(a++b)/I
2966: Capturing subpattern count = 1
2967: No options
2968: First char = 'a'
2969: Need char = 'b'
2970: aaab
2971: 0: aaab
2972: 1: aaab
2973:
2974: /(a++)b/I
2975: Capturing subpattern count = 1
2976: No options
2977: First char = 'a'
2978: Need char = 'b'
2979: aaab
2980: 0: aaab
2981: 1: aaa
2982:
2983: /([^()]++|\([^()]*\))+/I
2984: Capturing subpattern count = 1
2985: No options
2986: No first char
2987: No need char
2988: ((abc(ade)ufh()()x
2989: 0: abc(ade)ufh()()x
2990: 1: x
2991:
2992: /\(([^()]++|\([^()]+\))+\)/I
2993: Capturing subpattern count = 1
2994: No options
2995: First char = '('
2996: Need char = ')'
2997: (abc)
2998: 0: (abc)
2999: 1: abc
3000: (abc(def)xyz)
3001: 0: (abc(def)xyz)
3002: 1: xyz
3003: *** Failers
3004: No match
3005: ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3006: No match
3007:
3008: /(abc){1,3}+/DZ
3009: ------------------------------------------------------------------
3010: Bra
3011: Once
3012: CBra 1
3013: abc
3014: Ket
3015: Brazero
3016: Bra
3017: CBra 1
3018: abc
3019: Ket
3020: Brazero
3021: CBra 1
3022: abc
3023: Ket
3024: Ket
3025: Ket
3026: Ket
3027: End
3028: ------------------------------------------------------------------
3029: Capturing subpattern count = 1
3030: No options
3031: First char = 'a'
3032: Need char = 'c'
3033:
3034: /a+?+/I
3035: Failed: nothing to repeat at offset 3
3036:
3037: /a{2,3}?+b/I
3038: Failed: nothing to repeat at offset 7
3039:
3040: /(?U)a+?+/I
3041: Failed: nothing to repeat at offset 7
3042:
3043: /a{2,3}?+b/IU
3044: Failed: nothing to repeat at offset 7
3045:
3046: /x(?U)a++b/DZ
3047: ------------------------------------------------------------------
3048: Bra
3049: x
3050: a++
3051: b
3052: Ket
3053: End
3054: ------------------------------------------------------------------
3055: Capturing subpattern count = 0
3056: No options
3057: First char = 'x'
3058: Need char = 'b'
3059: xaaaab
3060: 0: xaaaab
3061:
3062: /(?U)xa++b/DZ
3063: ------------------------------------------------------------------
3064: Bra
3065: x
3066: a++
3067: b
3068: Ket
3069: End
3070: ------------------------------------------------------------------
3071: Capturing subpattern count = 0
3072: Options: ungreedy
3073: First char = 'x'
3074: Need char = 'b'
3075: xaaaab
3076: 0: xaaaab
3077:
3078: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3079: ------------------------------------------------------------------
3080: Bra
3081: ^
3082: CBra 1
3083: CBra 2
3084: a+
3085: Ket
3086: CBra 3
3087: [ab]+?
3088: Ket
3089: CBra 4
3090: [bc]+
3091: Ket
3092: CBra 5
3093: \w*
3094: Ket
3095: Ket
3096: Ket
3097: End
3098: ------------------------------------------------------------------
3099: Capturing subpattern count = 5
3100: Options: anchored
3101: No first char
3102: No need char
3103:
3104: /^x(?U)a+b/DZ
3105: ------------------------------------------------------------------
3106: Bra
3107: ^
3108: x
3109: a++
3110: b
3111: Ket
3112: End
3113: ------------------------------------------------------------------
3114: Capturing subpattern count = 0
3115: Options: anchored
3116: No first char
3117: Need char = 'b'
3118:
3119: /^x(?U)(a+)b/DZ
3120: ------------------------------------------------------------------
3121: Bra
3122: ^
3123: x
3124: CBra 1
3125: a+?
3126: Ket
3127: b
3128: Ket
3129: End
3130: ------------------------------------------------------------------
3131: Capturing subpattern count = 1
3132: Options: anchored
3133: No first char
3134: Need char = 'b'
3135:
3136: /[.x.]/I
3137: Failed: POSIX collating elements are not supported at offset 0
3138:
3139: /[=x=]/I
3140: Failed: POSIX collating elements are not supported at offset 0
3141:
3142: /[:x:]/I
3143: Failed: POSIX named classes are supported only within a class at offset 0
3144:
3145: /\l/I
3146: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3147:
3148: /\L/I
3149: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3150:
3151: /\N{name}/I
3152: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3153:
3154: /\u/I
3155: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3156:
3157: /\U/I
3158: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3159:
3160: /[/I
3161: Failed: missing terminating ] for character class at offset 1
3162:
3163: /[a-/I
3164: Failed: missing terminating ] for character class at offset 3
3165:
3166: /[[:space:]/I
3167: Failed: missing terminating ] for character class at offset 10
3168:
3169: /[\s]/IDZ
3170: ------------------------------------------------------------------
3171: Bra
3172: [\x09\x0a\x0c\x0d ]
3173: Ket
3174: End
3175: ------------------------------------------------------------------
3176: Capturing subpattern count = 0
3177: No options
3178: No first char
3179: No need char
3180:
3181: /[[:space:]]/IDZ
3182: ------------------------------------------------------------------
3183: Bra
3184: [\x09-\x0d ]
3185: Ket
3186: End
3187: ------------------------------------------------------------------
3188: Capturing subpattern count = 0
3189: No options
3190: No first char
3191: No need char
3192:
3193: /[[:space:]abcde]/IDZ
3194: ------------------------------------------------------------------
3195: Bra
3196: [\x09-\x0d a-e]
3197: Ket
3198: End
3199: ------------------------------------------------------------------
3200: Capturing subpattern count = 0
3201: No options
3202: No first char
3203: No need char
3204:
3205: /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix
3206: Capturing subpattern count = 0
3207: Options: extended
3208: First char = '<'
3209: Need char = '>'
3210: <>
3211: 0: <>
3212: <abcd>
3213: 0: <abcd>
3214: <abc <123> hij>
3215: 0: <abc <123> hij>
3216: <abc <def> hij>
3217: 0: <def>
3218: <abc<>def>
3219: 0: <abc<>def>
3220: <abc<>
3221: 0: <>
3222: *** Failers
3223: No match
3224: <abc
3225: No match
3226:
3227: |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
3228: ------------------------------------------------------------------
3229: Bra
3230: 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
3231: \b
3232: Ket
3233: End
3234: ------------------------------------------------------------------
3235: Capturing subpattern count = 0
3236: No options
3237: First char = '8'
3238: Need char = 'X'
1.1.1.3 ! misho 3239: Max lookbehind = 1
1.1 misho 3240:
3241: |\$\<\.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
3242: ------------------------------------------------------------------
3243: Bra
3244: $<.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
3245: \b
3246: Ket
3247: End
3248: ------------------------------------------------------------------
3249: Capturing subpattern count = 0
3250: No options
3251: First char = '$'
3252: Need char = 'X'
1.1.1.3 ! misho 3253: Max lookbehind = 1
1.1 misho 3254:
3255: /(.*)\d+\1/I
3256: Capturing subpattern count = 1
3257: Max back reference = 1
3258: No options
3259: No first char
3260: No need char
3261:
3262: /(.*)\d+/I
3263: Capturing subpattern count = 1
3264: No options
3265: First char at start or follows newline
3266: No need char
3267:
3268: /(.*)\d+\1/Is
3269: Capturing subpattern count = 1
3270: Max back reference = 1
3271: Options: dotall
3272: No first char
3273: No need char
3274:
3275: /(.*)\d+/Is
3276: Capturing subpattern count = 1
3277: Options: anchored dotall
3278: No first char
3279: No need char
3280:
3281: /(.*(xyz))\d+\2/I
3282: Capturing subpattern count = 2
3283: Max back reference = 2
3284: No options
3285: First char at start or follows newline
3286: Need char = 'z'
3287:
3288: /((.*))\d+\1/I
3289: Capturing subpattern count = 2
3290: Max back reference = 1
3291: No options
3292: No first char
3293: No need char
3294: abc123bc
3295: 0: bc123bc
3296: 1: bc
3297: 2: bc
3298:
3299: /a[b]/I
3300: Capturing subpattern count = 0
3301: No options
3302: First char = 'a'
3303: Need char = 'b'
3304:
3305: /(?=a).*/I
3306: Capturing subpattern count = 0
3307: No options
3308: First char = 'a'
3309: No need char
3310:
3311: /(?=abc).xyz/IiI
3312: Capturing subpattern count = 0
3313: Options: caseless
3314: First char = 'a' (caseless)
3315: Need char = 'z' (caseless)
3316:
3317: /(?=abc)(?i).xyz/I
3318: Capturing subpattern count = 0
3319: No options
3320: First char = 'a'
3321: Need char = 'z' (caseless)
3322:
3323: /(?=a)(?=b)/I
3324: Capturing subpattern count = 0
3325: No options
3326: First char = 'a'
3327: No need char
3328:
3329: /(?=.)a/I
3330: Capturing subpattern count = 0
3331: No options
3332: First char = 'a'
3333: No need char
3334:
3335: /((?=abcda)a)/I
3336: Capturing subpattern count = 1
3337: No options
3338: First char = 'a'
3339: Need char = 'a'
3340:
3341: /((?=abcda)ab)/I
3342: Capturing subpattern count = 1
3343: No options
3344: First char = 'a'
3345: Need char = 'b'
3346:
3347: /()a/I
3348: Capturing subpattern count = 1
3349: No options
3350: No first char
3351: Need char = 'a'
3352:
3353: /(?(1)ab|ac)(.)/I
3354: Capturing subpattern count = 1
3355: No options
3356: First char = 'a'
3357: No need char
3358:
3359: /(?(1)abz|acz)(.)/I
3360: Capturing subpattern count = 1
3361: No options
3362: First char = 'a'
3363: Need char = 'z'
3364:
3365: /(?(1)abz)(.)/I
3366: Capturing subpattern count = 1
3367: No options
3368: No first char
3369: No need char
3370:
3371: /(?(1)abz)(1)23/I
3372: Capturing subpattern count = 1
3373: No options
3374: No first char
3375: Need char = '3'
3376:
3377: /(a)+/I
3378: Capturing subpattern count = 1
3379: No options
3380: First char = 'a'
3381: No need char
3382:
3383: /(a){2,3}/I
3384: Capturing subpattern count = 1
3385: No options
3386: First char = 'a'
3387: Need char = 'a'
3388:
3389: /(a)*/I
3390: Capturing subpattern count = 1
3391: No options
3392: No first char
3393: No need char
3394:
3395: /[a]/I
3396: Capturing subpattern count = 0
3397: No options
3398: First char = 'a'
3399: No need char
3400:
3401: /[ab]/I
3402: Capturing subpattern count = 0
3403: No options
3404: No first char
3405: No need char
3406:
3407: /[ab]/IS
3408: Capturing subpattern count = 0
3409: No options
3410: No first char
3411: No need char
3412: Subject length lower bound = 1
3413: Starting byte set: a b
3414:
3415: /[^a]/I
3416: Capturing subpattern count = 0
3417: No options
3418: No first char
3419: No need char
3420:
3421: /\d456/I
3422: Capturing subpattern count = 0
3423: No options
3424: No first char
3425: Need char = '6'
3426:
3427: /\d456/IS
3428: Capturing subpattern count = 0
3429: No options
3430: No first char
3431: Need char = '6'
3432: Subject length lower bound = 4
3433: Starting byte set: 0 1 2 3 4 5 6 7 8 9
3434:
3435: /a^b/I
3436: Capturing subpattern count = 0
3437: No options
3438: First char = 'a'
3439: Need char = 'b'
3440:
3441: /^a/Im
3442: Capturing subpattern count = 0
3443: Options: multiline
3444: First char at start or follows newline
3445: Need char = 'a'
3446: abcde
3447: 0: a
3448: xy\nabc
3449: 0: a
3450: *** Failers
3451: No match
3452: xyabc
3453: No match
3454:
3455: /c|abc/I
3456: Capturing subpattern count = 0
3457: No options
3458: No first char
3459: Need char = 'c'
3460:
3461: /(?i)[ab]/IS
3462: Capturing subpattern count = 0
3463: Options: caseless
3464: No first char
3465: No need char
3466: Subject length lower bound = 1
3467: Starting byte set: A B a b
3468:
3469: /[ab](?i)cd/IS
3470: Capturing subpattern count = 0
3471: No options
3472: No first char
3473: Need char = 'd' (caseless)
3474: Subject length lower bound = 3
3475: Starting byte set: a b
3476:
3477: /abc(?C)def/I
3478: Capturing subpattern count = 0
3479: No options
3480: First char = 'a'
3481: Need char = 'f'
3482: abcdef
3483: --->abcdef
3484: 0 ^ ^ d
3485: 0: abcdef
3486: 1234abcdef
3487: --->1234abcdef
3488: 0 ^ ^ d
3489: 0: abcdef
3490: *** Failers
3491: No match
3492: abcxyz
3493: No match
3494: abcxyzf
3495: --->abcxyzf
3496: 0 ^ ^ d
3497: No match
3498:
3499: /abc(?C)de(?C1)f/I
3500: Capturing subpattern count = 0
3501: No options
3502: First char = 'a'
3503: Need char = 'f'
3504: 123abcdef
3505: --->123abcdef
3506: 0 ^ ^ d
3507: 1 ^ ^ f
3508: 0: abcdef
3509:
3510: /(?C1)\dabc(?C2)def/IS
3511: Capturing subpattern count = 0
3512: No options
3513: No first char
3514: Need char = 'f'
3515: Subject length lower bound = 7
3516: Starting byte set: 0 1 2 3 4 5 6 7 8 9
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: No match
3529:
3530: /(?C1)\dabc(?C2)def/ISS
3531: Capturing subpattern count = 0
3532: No options
3533: No first char
3534: Need char = 'f'
3535: 1234abcdef
3536: --->1234abcdef
3537: 1 ^ \d
3538: 1 ^ \d
3539: 1 ^ \d
3540: 1 ^ \d
3541: 2 ^ ^ d
3542: 0: 4abcdef
3543: *** Failers
3544: No match
3545: abcdef
3546: --->abcdef
3547: 1 ^ \d
3548: 1 ^ \d
3549: 1 ^ \d
3550: 1 ^ \d
3551: 1 ^ \d
3552: 1 ^ \d
3553: No match
3554:
3555: /(?C255)ab/I
3556: Capturing subpattern count = 0
3557: No options
3558: First char = 'a'
3559: Need char = 'b'
3560:
3561: /(?C256)ab/I
3562: Failed: number after (?C is > 255 at offset 6
3563:
3564: /(?Cab)xx/I
3565: Failed: closing ) for (?C expected at offset 3
3566:
3567: /(?C12vr)x/I
3568: Failed: closing ) for (?C expected at offset 5
3569:
3570: /abc(?C)def/I
3571: Capturing subpattern count = 0
3572: No options
3573: First char = 'a'
3574: Need char = 'f'
3575: *** Failers
3576: No match
3577: \x83\x0\x61bcdef
3578: --->\x83\x00abcdef
3579: 0 ^ ^ d
3580: 0: abcdef
3581:
3582: /(abc)(?C)de(?C1)f/I
3583: Capturing subpattern count = 1
3584: No options
3585: First char = 'a'
3586: Need char = 'f'
3587: 123abcdef
3588: --->123abcdef
3589: 0 ^ ^ d
3590: 1 ^ ^ f
3591: 0: abcdef
3592: 1: abc
3593: 123abcdef\C+
3594: Callout 0: last capture = 1
3595: 0: <unset>
3596: 1: abc
3597: --->123abcdef
3598: ^ ^ d
3599: Callout 1: last capture = 1
3600: 0: <unset>
3601: 1: abc
3602: --->123abcdef
3603: ^ ^ f
3604: 0: abcdef
3605: 1: abc
3606: 123abcdef\C-
3607: 0: abcdef
3608: 1: abc
3609: *** Failers
3610: No match
3611: 123abcdef\C!1
3612: --->123abcdef
3613: 0 ^ ^ d
3614: 1 ^ ^ f
3615: No match
3616:
3617: /(?C0)(abc(?C1))*/I
3618: Capturing subpattern count = 1
3619: No options
3620: No first char
3621: No need char
3622: abcabcabc
3623: --->abcabcabc
3624: 0 ^ (abc(?C1))*
3625: 1 ^ ^ )
3626: 1 ^ ^ )
3627: 1 ^ ^ )
3628: 0: abcabcabc
3629: 1: abc
3630: abcabc\C!1!3
3631: --->abcabc
3632: 0 ^ (abc(?C1))*
3633: 1 ^ ^ )
3634: 1 ^ ^ )
3635: 0: abcabc
3636: 1: abc
3637: *** Failers
3638: --->*** Failers
3639: 0 ^ (abc(?C1))*
3640: 0:
3641: abcabcabc\C!1!3
3642: --->abcabcabc
3643: 0 ^ (abc(?C1))*
3644: 1 ^ ^ )
3645: 1 ^ ^ )
3646: 1 ^ ^ )
3647: 0: abcabc
3648: 1: abc
3649:
3650: /(\d{3}(?C))*/I
3651: Capturing subpattern count = 1
3652: No options
3653: No first char
3654: No need char
3655: 123\C+
3656: Callout 0: last capture = -1
3657: 0: <unset>
3658: --->123
3659: ^ ^ )
3660: 0: 123
3661: 1: 123
3662: 123456\C+
3663: Callout 0: last capture = -1
3664: 0: <unset>
3665: --->123456
3666: ^ ^ )
3667: Callout 0: last capture = 1
3668: 0: <unset>
3669: 1: 123
3670: --->123456
3671: ^ ^ )
3672: 0: 123456
3673: 1: 456
3674: 123456789\C+
3675: Callout 0: last capture = -1
3676: 0: <unset>
3677: --->123456789
3678: ^ ^ )
3679: Callout 0: last capture = 1
3680: 0: <unset>
3681: 1: 123
3682: --->123456789
3683: ^ ^ )
3684: Callout 0: last capture = 1
3685: 0: <unset>
3686: 1: 456
3687: --->123456789
3688: ^ ^ )
3689: 0: 123456789
3690: 1: 789
3691:
3692: /((xyz)(?C)p|(?C1)xyzabc)/I
3693: Capturing subpattern count = 2
3694: No options
3695: First char = 'x'
3696: No need char
3697: xyzabc\C+
3698: Callout 0: last capture = 2
3699: 0: <unset>
3700: 1: <unset>
3701: 2: xyz
3702: --->xyzabc
3703: ^ ^ p
3704: Callout 1: last capture = -1
3705: 0: <unset>
3706: --->xyzabc
3707: ^ x
3708: 0: xyzabc
3709: 1: xyzabc
3710:
3711: /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3712: Capturing subpattern count = 3
3713: No options
3714: First char = 'X'
3715: Need char = 'x'
3716: Xxyzabc\C+
3717: Callout 0: last capture = 3
3718: 0: <unset>
3719: 1: X
3720: 2: <unset>
3721: 3: xyz
3722: --->Xxyzabc
3723: ^ ^ p
3724: Callout 1: last capture = 1
3725: 0: <unset>
3726: 1: X
3727: --->Xxyzabc
3728: ^^ x
3729: 0: Xxyzabc
3730: 1: X
3731: 2: xyzabc
3732:
3733: /(?=(abc))(?C)abcdef/I
3734: Capturing subpattern count = 1
3735: No options
3736: First char = 'a'
3737: Need char = 'f'
3738: abcdef\C+
3739: Callout 0: last capture = 1
3740: 0: <unset>
3741: 1: abc
3742: --->abcdef
3743: ^ a
3744: 0: abcdef
3745: 1: abc
3746:
3747: /(?!(abc)(?C1)d)(?C2)abcxyz/I
3748: Capturing subpattern count = 1
3749: No options
3750: First char = 'a'
3751: Need char = 'z'
3752: abcxyz\C+
3753: Callout 1: last capture = 1
3754: 0: <unset>
3755: 1: abc
3756: --->abcxyz
3757: ^ ^ d
3758: Callout 2: last capture = -1
3759: 0: <unset>
3760: --->abcxyz
3761: ^ a
3762: 0: abcxyz
3763:
3764: /(?<=(abc)(?C))xyz/I
3765: Capturing subpattern count = 1
3766: No options
3767: First char = 'x'
3768: Need char = 'z'
1.1.1.3 ! misho 3769: Max lookbehind = 3
1.1 misho 3770: abcxyz\C+
3771: Callout 0: last capture = 1
3772: 0: <unset>
3773: 1: abc
3774: --->abcxyz
3775: ^ )
3776: 0: xyz
3777: 1: abc
3778:
3779: /a(b+)(c*)(?C1)/I
3780: Capturing subpattern count = 2
3781: No options
3782: First char = 'a'
3783: Need char = 'b'
3784: abbbbbccc\C*1
3785: --->abbbbbccc
3786: 1 ^ ^
3787: Callout data = 1
3788: 1 ^ ^
3789: Callout data = 1
3790: 1 ^ ^
3791: Callout data = 1
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: No match
3803:
3804: /a(b+?)(c*?)(?C1)/I
3805: Capturing subpattern count = 2
3806: No options
3807: First char = 'a'
3808: Need char = 'b'
3809: abbbbbccc\C*1
3810: --->abbbbbccc
3811: 1 ^ ^
3812: Callout data = 1
3813: 1 ^ ^
3814: Callout data = 1
3815: 1 ^ ^
3816: Callout data = 1
3817: 1 ^ ^
3818: Callout data = 1
3819: 1 ^ ^
3820: Callout data = 1
3821: 1 ^ ^
3822: Callout data = 1
3823: 1 ^ ^
3824: Callout data = 1
3825: 1 ^ ^
3826: Callout data = 1
3827: No match
3828:
3829: /(?C)abc/I
3830: Capturing subpattern count = 0
3831: No options
3832: First char = 'a'
3833: Need char = 'c'
3834:
3835: /(?C)^abc/I
3836: Capturing subpattern count = 0
3837: Options: anchored
3838: No first char
3839: No need char
3840:
3841: /(?C)a|b/IS
3842: Capturing subpattern count = 0
3843: No options
3844: No first char
3845: No need char
3846: Subject length lower bound = 1
3847: Starting byte set: a b
3848:
3849: /(?R)/I
3850: Failed: recursive call could loop indefinitely at offset 3
3851:
3852: /(a|(?R))/I
3853: Failed: recursive call could loop indefinitely at offset 6
3854:
3855: /(ab|(bc|(de|(?R))))/I
3856: Failed: recursive call could loop indefinitely at offset 15
3857:
3858: /x(ab|(bc|(de|(?R))))/I
3859: Capturing subpattern count = 3
3860: No options
3861: First char = 'x'
3862: No need char
3863: xab
3864: 0: xab
3865: 1: ab
3866: xbc
3867: 0: xbc
3868: 1: bc
3869: 2: bc
3870: xde
3871: 0: xde
3872: 1: de
3873: 2: de
3874: 3: de
3875: xxab
3876: 0: xxab
3877: 1: xab
3878: 2: xab
3879: 3: xab
3880: xxxab
3881: 0: xxxab
3882: 1: xxab
3883: 2: xxab
3884: 3: xxab
3885: *** Failers
3886: No match
3887: xyab
3888: No match
3889:
3890: /(ab|(bc|(de|(?1))))/I
3891: Failed: recursive call could loop indefinitely at offset 15
3892:
3893: /x(ab|(bc|(de|(?1)x)x)x)/I
3894: Failed: recursive call could loop indefinitely at offset 16
3895:
3896: /^([^()]|\((?1)*\))*$/I
3897: Capturing subpattern count = 1
3898: Options: anchored
3899: No first char
3900: No need char
3901: abc
3902: 0: abc
3903: 1: c
3904: a(b)c
3905: 0: a(b)c
3906: 1: c
3907: a(b(c))d
3908: 0: a(b(c))d
3909: 1: d
3910: *** Failers)
3911: No match
3912: a(b(c)d
3913: No match
3914:
3915: /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3916: Capturing subpattern count = 1
3917: Options: anchored
3918: No first char
3919: Need char = '<'
3920: >abc>123<xyz<
3921: 0: >abc>123<xyz<
3922: 1: 3
3923: >abc>1(2)3<xyz<
3924: 0: >abc>1(2)3<xyz<
3925: 1: 3
3926: >abc>(1(2)3)<xyz<
3927: 0: >abc>(1(2)3)<xyz<
3928: 1: (1(2)3)
3929:
3930: /(a(?1)b)/DZ
3931: ------------------------------------------------------------------
3932: Bra
3933: CBra 1
3934: a
3935: Recurse
3936: b
3937: Ket
3938: Ket
3939: End
3940: ------------------------------------------------------------------
3941: Capturing subpattern count = 1
3942: No options
3943: First char = 'a'
3944: Need char = 'b'
3945:
3946: /(a(?1)+b)/DZ
3947: ------------------------------------------------------------------
3948: Bra
3949: CBra 1
3950: a
3951: Once
3952: Recurse
3953: KetRmax
3954: b
3955: Ket
3956: Ket
3957: End
3958: ------------------------------------------------------------------
3959: Capturing subpattern count = 1
3960: No options
3961: First char = 'a'
3962: Need char = 'b'
3963:
3964: /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3965: Capturing subpattern count = 2
3966: Options: anchored
3967: No first char
3968: No need char
3969: 12
3970: 0: 12
3971: 1: 12
3972: (((2+2)*-3)-7)
3973: 0: (((2+2)*-3)-7)
3974: 1: (((2+2)*-3)-7)
3975: 2: -
3976: -12
3977: 0: -12
3978: 1: -12
3979: *** Failers
3980: No match
3981: ((2+2)*-3)-7)
3982: No match
3983:
3984: /^(x(y|(?1){2})z)/I
3985: Capturing subpattern count = 2
3986: Options: anchored
3987: No first char
3988: No need char
3989: xyz
3990: 0: xyz
3991: 1: xyz
3992: 2: y
3993: xxyzxyzz
3994: 0: xxyzxyzz
3995: 1: xxyzxyzz
3996: 2: xyzxyz
3997: *** Failers
3998: No match
3999: xxyzz
4000: No match
4001: xxyzxyzxyzz
4002: No match
4003:
4004: /((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix
4005: Capturing subpattern count = 2
4006: Options: extended
4007: First char = '<'
4008: Need char = '>'
4009: <>
4010: 0: <>
4011: 1: <>
4012: 2: <>
4013: <abcd>
4014: 0: <abcd>
4015: 1: <abcd>
4016: 2: <abcd>
4017: <abc <123> hij>
4018: 0: <abc <123> hij>
4019: 1: <abc <123> hij>
4020: 2: <abc <123> hij>
4021: <abc <def> hij>
4022: 0: <def>
4023: 1: <def>
4024: 2: <def>
4025: <abc<>def>
4026: 0: <abc<>def>
4027: 1: <abc<>def>
4028: 2: <abc<>def>
4029: <abc<>
4030: 0: <>
4031: 1: <>
4032: 2: <>
4033: *** Failers
4034: No match
4035: <abc
4036: No match
4037:
4038: /(?1)/I
4039: Failed: reference to non-existent subpattern at offset 3
4040:
4041: /((?2)(abc)/I
4042: Failed: missing ) at offset 10
4043:
4044: /^(abc)def(?1)/I
4045: Capturing subpattern count = 1
4046: Options: anchored
4047: No first char
4048: No need char
4049: abcdefabc
4050: 0: abcdefabc
4051: 1: abc
4052:
4053: /^(a|b|c)=(?1)+/I
4054: Capturing subpattern count = 1
4055: Options: anchored
4056: No first char
4057: No need char
4058: a=a
4059: 0: a=a
4060: 1: a
4061: a=b
4062: 0: a=b
4063: 1: a
4064: a=bc
4065: 0: a=bc
4066: 1: a
4067:
4068: /^(a|b|c)=((?1))+/I
4069: Capturing subpattern count = 2
4070: Options: anchored
4071: No first char
4072: No need char
4073: a=a
4074: 0: a=a
4075: 1: a
4076: 2: a
4077: a=b
4078: 0: a=b
4079: 1: a
4080: 2: b
4081: a=bc
4082: 0: a=bc
4083: 1: a
4084: 2: c
4085:
4086: /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4087: ------------------------------------------------------------------
4088: Bra
4089: a
4090: CBra 1
4091: b
4092: Alt
4093: c
4094: Ket
4095: d
4096: CBra 2
4097: e
4098: Ket
4099: Ket
4100: End
4101: ------------------------------------------------------------------
4102: Capturing subpattern count = 2
4103: Named capturing subpatterns:
4104: longername2 2
4105: name1 1
4106: No options
4107: First char = 'a'
4108: Need char = 'e'
4109: abde
4110: 0: abde
4111: 1: b
4112: 2: e
4113: acde
4114: 0: acde
4115: 1: c
4116: 2: e
4117:
4118: /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4119: ------------------------------------------------------------------
4120: Bra
4121: Bra
4122: a
4123: CBra 1
4124: c
4125: CBra 2
4126: d
4127: Ket
4128: Ket
4129: Ket
4130: CBra 3
4131: a
4132: Ket
4133: Ket
4134: End
4135: ------------------------------------------------------------------
4136: Capturing subpattern count = 3
4137: Named capturing subpatterns:
4138: a 3
4139: c 1
4140: d 2
4141: No options
4142: First char = 'a'
4143: Need char = 'a'
4144:
4145: /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4146: ------------------------------------------------------------------
4147: Bra
4148: CBra 1
4149: a
4150: Ket
4151: Any
4152: Any
4153: Any
4154: \1
4155: bbb
4156: Recurse
4157: d
4158: Ket
4159: End
4160: ------------------------------------------------------------------
4161: Capturing subpattern count = 1
4162: Max back reference = 1
4163: Named capturing subpatterns:
4164: a 1
4165: No options
4166: First char = 'a'
4167: Need char = 'd'
4168:
4169: /^\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
4170: Capturing subpattern count = 4
4171: Max back reference = 4
4172: Named capturing subpatterns:
4173: four 4
4174: one 1
4175: three 3
4176: two 2
4177: Options: anchored caseless
4178: No first char
4179: No need char
4180: 1221
4181: 0: 1221
4182: 1: 1221
4183: 2: 1
4184: Satan, oscillate my metallic sonatas!
4185: 0: Satan, oscillate my metallic sonatas!
4186: 1: <unset>
4187: 2: <unset>
4188: 3: Satan, oscillate my metallic sonatas
4189: 4: S
4190: A man, a plan, a canal: Panama!
4191: 0: A man, a plan, a canal: Panama!
4192: 1: <unset>
4193: 2: <unset>
4194: 3: A man, a plan, a canal: Panama
4195: 4: A
4196: Able was I ere I saw Elba.
4197: 0: Able was I ere I saw Elba.
4198: 1: <unset>
4199: 2: <unset>
4200: 3: Able was I ere I saw Elba
4201: 4: A
4202: *** Failers
4203: No match
4204: The quick brown fox
4205: No match
4206:
4207: /((?(R)a|b))\1(?1)?/I
4208: Capturing subpattern count = 1
4209: Max back reference = 1
4210: No options
4211: No first char
4212: No need char
4213: bb
4214: 0: bb
4215: 1: b
4216: bbaa
4217: 0: bba
4218: 1: b
4219:
4220: /(.*)a/Is
4221: Capturing subpattern count = 1
4222: Options: anchored dotall
4223: No first char
4224: Need char = 'a'
4225:
4226: /(.*)a\1/Is
4227: Capturing subpattern count = 1
4228: Max back reference = 1
4229: Options: dotall
4230: No first char
4231: Need char = 'a'
4232:
4233: /(.*)a(b)\2/Is
4234: Capturing subpattern count = 2
4235: Max back reference = 2
4236: Options: anchored dotall
4237: No first char
4238: Need char = 'b'
4239:
4240: /((.*)a|(.*)b)z/Is
4241: Capturing subpattern count = 3
4242: Options: anchored dotall
4243: No first char
4244: Need char = 'z'
4245:
4246: /((.*)a|(.*)b)z\1/Is
4247: Capturing subpattern count = 3
4248: Max back reference = 1
4249: Options: dotall
4250: No first char
4251: Need char = 'z'
4252:
4253: /((.*)a|(.*)b)z\2/Is
4254: Capturing subpattern count = 3
4255: Max back reference = 2
4256: Options: dotall
4257: No first char
4258: Need char = 'z'
4259:
4260: /((.*)a|(.*)b)z\3/Is
4261: Capturing subpattern count = 3
4262: Max back reference = 3
4263: Options: dotall
4264: No first char
4265: Need char = 'z'
4266:
4267: /((.*)a|^(.*)b)z\3/Is
4268: Capturing subpattern count = 3
4269: Max back reference = 3
4270: Options: anchored dotall
4271: No first char
4272: Need char = 'z'
4273:
4274: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4275: Capturing subpattern count = 31
4276: Options: anchored dotall
4277: No first char
4278: No need char
4279:
4280: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4281: Capturing subpattern count = 31
4282: Max back reference = 31
4283: Options: dotall
4284: No first char
4285: No need char
4286:
4287: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4288: Capturing subpattern count = 32
4289: Max back reference = 32
4290: Options: dotall
4291: No first char
4292: No need char
4293:
4294: /(a)(bc)/INDZ
4295: ------------------------------------------------------------------
4296: Bra
4297: Bra
4298: a
4299: Ket
4300: Bra
4301: bc
4302: Ket
4303: Ket
4304: End
4305: ------------------------------------------------------------------
4306: Capturing subpattern count = 0
4307: Options: no_auto_capture
4308: First char = 'a'
4309: Need char = 'c'
4310: abc
4311: 0: abc
4312:
4313: /(?P<one>a)(bc)/INDZ
4314: ------------------------------------------------------------------
4315: Bra
4316: CBra 1
4317: a
4318: Ket
4319: Bra
4320: bc
4321: Ket
4322: Ket
4323: End
4324: ------------------------------------------------------------------
4325: Capturing subpattern count = 1
4326: Named capturing subpatterns:
4327: one 1
4328: Options: no_auto_capture
4329: First char = 'a'
4330: Need char = 'c'
4331: abc
4332: 0: abc
4333: 1: a
4334:
4335: /(a)(?P<named>bc)/INDZ
4336: ------------------------------------------------------------------
4337: Bra
4338: Bra
4339: a
4340: Ket
4341: CBra 1
4342: bc
4343: Ket
4344: Ket
4345: End
4346: ------------------------------------------------------------------
4347: Capturing subpattern count = 1
4348: Named capturing subpatterns:
4349: named 1
4350: Options: no_auto_capture
4351: First char = 'a'
4352: Need char = 'c'
4353:
4354: /(a+)*zz/I
4355: Capturing subpattern count = 1
4356: No options
4357: No first char
4358: Need char = 'z'
4359: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4360: Minimum match() limit = 8
4361: Minimum match() recursion limit = 6
4362: 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4363: 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4364: aaaaaaaaaaaaaz\M
4365: Minimum match() limit = 32768
4366: Minimum match() recursion limit = 42
4367: No match
4368:
4369: /(aaa(?C1)bbb|ab)/I
4370: Capturing subpattern count = 1
4371: No options
4372: First char = 'a'
4373: Need char = 'b'
4374: aaabbb
4375: --->aaabbb
4376: 1 ^ ^ b
4377: 0: aaabbb
4378: 1: aaabbb
4379: aaabbb\C*0
4380: --->aaabbb
4381: 1 ^ ^ b
4382: 0: aaabbb
4383: 1: aaabbb
4384: aaabbb\C*1
4385: --->aaabbb
4386: 1 ^ ^ b
4387: Callout data = 1
4388: 0: ab
4389: 1: ab
4390: aaabbb\C*-1
4391: --->aaabbb
4392: 1 ^ ^ b
4393: Callout data = -1
4394: No match
4395:
4396: /ab(?P<one>cd)ef(?P<two>gh)/I
4397: Capturing subpattern count = 2
4398: Named capturing subpatterns:
4399: one 1
4400: two 2
4401: No options
4402: First char = 'a'
4403: Need char = 'h'
4404: abcdefgh
4405: 0: abcdefgh
4406: 1: cd
4407: 2: gh
4408: abcdefgh\C1\Gtwo
4409: 0: abcdefgh
4410: 1: cd
4411: 2: gh
4412: 1C cd (2)
4413: G gh (2) two
4414: abcdefgh\Cone\Ctwo
4415: 0: abcdefgh
4416: 1: cd
4417: 2: gh
4418: C cd (2) one
4419: C gh (2) two
4420: abcdefgh\Cthree
4421: no parentheses with name "three"
4422: 0: abcdefgh
4423: 1: cd
4424: 2: gh
4425: copy substring three failed -7
4426:
4427: /(?P<Tes>)(?P<Test>)/DZ
4428: ------------------------------------------------------------------
4429: Bra
4430: CBra 1
4431: Ket
4432: CBra 2
4433: Ket
4434: Ket
4435: End
4436: ------------------------------------------------------------------
4437: Capturing subpattern count = 2
4438: Named capturing subpatterns:
4439: Tes 1
4440: Test 2
4441: No options
4442: No first char
4443: No need char
4444:
4445: /(?P<Test>)(?P<Tes>)/DZ
4446: ------------------------------------------------------------------
4447: Bra
4448: CBra 1
4449: Ket
4450: CBra 2
4451: Ket
4452: Ket
4453: End
4454: ------------------------------------------------------------------
4455: Capturing subpattern count = 2
4456: Named capturing subpatterns:
4457: Tes 2
4458: Test 1
4459: No options
4460: No first char
4461: No need char
4462:
4463: /(?P<Z>zz)(?P<A>aa)/I
4464: Capturing subpattern count = 2
4465: Named capturing subpatterns:
4466: A 2
4467: Z 1
4468: No options
4469: First char = 'z'
4470: Need char = 'a'
4471: zzaa\CZ
4472: 0: zzaa
4473: 1: zz
4474: 2: aa
4475: C zz (2) Z
4476: zzaa\CA
4477: 0: zzaa
4478: 1: zz
4479: 2: aa
4480: C aa (2) A
4481:
4482: /(?P<x>eks)(?P<x>eccs)/I
4483: Failed: two named subpatterns have the same name at offset 15
4484:
4485: /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
4486: Failed: two named subpatterns have the same name at offset 30
4487:
4488: "\[((?P<elem>\d+)(,(?P>elem))*)\]"I
4489: Capturing subpattern count = 3
4490: Named capturing subpatterns:
4491: elem 2
4492: No options
4493: First char = '['
4494: Need char = ']'
4495: [10,20,30,5,5,4,4,2,43,23,4234]
4496: 0: [10,20,30,5,5,4,4,2,43,23,4234]
4497: 1: 10,20,30,5,5,4,4,2,43,23,4234
4498: 2: 10
4499: 3: ,4234
4500: *** Failers
4501: No match
4502: []
4503: No match
4504:
4505: "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
4506: Capturing subpattern count = 3
4507: Named capturing subpatterns:
4508: elem 2
4509: No options
4510: First char = '['
4511: Need char = ']'
4512: [10,20,30,5,5,4,4,2,43,23,4234]
4513: 0: [10,20,30,5,5,4,4,2,43,23,4234]
4514: 1: 10,20,30,5,5,4,4,2,43,23,4234
4515: 2: 10
4516: 3: ,4234
4517: []
4518: 0: []
4519:
4520: /(a(b(?2)c))?/DZ
4521: ------------------------------------------------------------------
4522: Bra
4523: Brazero
4524: CBra 1
4525: a
4526: CBra 2
4527: b
4528: Recurse
4529: c
4530: Ket
4531: Ket
4532: Ket
4533: End
4534: ------------------------------------------------------------------
4535: Capturing subpattern count = 2
4536: No options
4537: No first char
4538: No need char
4539:
4540: /(a(b(?2)c))*/DZ
4541: ------------------------------------------------------------------
4542: Bra
4543: Brazero
4544: CBra 1
4545: a
4546: CBra 2
4547: b
4548: Recurse
4549: c
4550: Ket
4551: KetRmax
4552: Ket
4553: End
4554: ------------------------------------------------------------------
4555: Capturing subpattern count = 2
4556: No options
4557: No first char
4558: No need char
4559:
4560: /(a(b(?2)c)){0,2}/DZ
4561: ------------------------------------------------------------------
4562: Bra
4563: Brazero
4564: Bra
4565: CBra 1
4566: a
4567: CBra 2
4568: b
4569: Recurse
4570: c
4571: Ket
4572: Ket
4573: Brazero
4574: CBra 1
4575: a
4576: CBra 2
4577: b
4578: Recurse
4579: c
4580: Ket
4581: Ket
4582: Ket
4583: Ket
4584: End
4585: ------------------------------------------------------------------
4586: Capturing subpattern count = 2
4587: No options
4588: No first char
4589: No need char
4590:
4591: /[ab]{1}+/DZ
4592: ------------------------------------------------------------------
4593: Bra
4594: Once
4595: [ab]{1,1}
4596: Ket
4597: Ket
4598: End
4599: ------------------------------------------------------------------
4600: Capturing subpattern count = 0
4601: No options
4602: No first char
4603: No need char
4604:
4605: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4606: Capturing subpattern count = 3
4607: Options: caseless
4608: No first char
4609: Need char = 'g' (caseless)
4610: Baby Bjorn Active Carrier - With free SHIPPING!!
4611: 0: Baby Bjorn Active Carrier - With free SHIPPING!!
4612: 1: Baby Bjorn Active Carrier - With free SHIPPING!!
4613:
4614: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4615: Capturing subpattern count = 3
4616: Options: caseless
4617: No first char
4618: Need char = 'g' (caseless)
4619: Subject length lower bound = 8
4620: No set of starting bytes
4621: Baby Bjorn Active Carrier - With free SHIPPING!!
4622: 0: Baby Bjorn Active Carrier - With free SHIPPING!!
4623: 1: Baby Bjorn Active Carrier - With free SHIPPING!!
4624:
4625: /a*.*b/ISDZ
4626: ------------------------------------------------------------------
4627: Bra
4628: a*
4629: Any*
4630: b
4631: Ket
4632: End
4633: ------------------------------------------------------------------
4634: Capturing subpattern count = 0
4635: No options
4636: No first char
4637: Need char = 'b'
4638: Subject length lower bound = 1
4639: No set of starting bytes
4640:
4641: /(a|b)*.?c/ISDZ
4642: ------------------------------------------------------------------
4643: Bra
4644: Brazero
4645: CBra 1
4646: a
4647: Alt
4648: b
4649: KetRmax
4650: Any?
4651: c
4652: Ket
4653: End
4654: ------------------------------------------------------------------
4655: Capturing subpattern count = 1
4656: No options
4657: No first char
4658: Need char = 'c'
4659: Subject length lower bound = 1
4660: No set of starting bytes
4661:
4662: /abc(?C255)de(?C)f/DZ
4663: ------------------------------------------------------------------
4664: Bra
4665: abc
4666: Callout 255 10 1
4667: de
4668: Callout 0 16 1
4669: f
4670: Ket
4671: End
4672: ------------------------------------------------------------------
4673: Capturing subpattern count = 0
4674: No options
4675: First char = 'a'
4676: Need char = 'f'
4677:
4678: /abcde/ICDZ
4679: ------------------------------------------------------------------
4680: Bra
4681: Callout 255 0 1
4682: a
4683: Callout 255 1 1
4684: b
4685: Callout 255 2 1
4686: c
4687: Callout 255 3 1
4688: d
4689: Callout 255 4 1
4690: e
4691: Callout 255 5 0
4692: Ket
4693: End
4694: ------------------------------------------------------------------
4695: Capturing subpattern count = 0
4696: Options:
4697: First char = 'a'
4698: Need char = 'e'
4699: abcde
4700: --->abcde
4701: +0 ^ a
4702: +1 ^^ b
4703: +2 ^ ^ c
4704: +3 ^ ^ d
4705: +4 ^ ^ e
4706: +5 ^ ^
4707: 0: abcde
4708: abcdfe
4709: --->abcdfe
4710: +0 ^ a
4711: +1 ^^ b
4712: +2 ^ ^ c
4713: +3 ^ ^ d
4714: +4 ^ ^ e
4715: No match
4716:
4717: /a*b/ICDZS
4718: ------------------------------------------------------------------
4719: Bra
4720: Callout 255 0 2
4721: a*+
4722: Callout 255 2 1
4723: b
4724: Callout 255 3 0
4725: Ket
4726: End
4727: ------------------------------------------------------------------
4728: Capturing subpattern count = 0
4729: Options:
4730: No first char
4731: Need char = 'b'
4732: Subject length lower bound = 1
4733: Starting byte set: a b
4734: ab
4735: --->ab
4736: +0 ^ a*
4737: +2 ^^ b
4738: +3 ^ ^
4739: 0: ab
4740: aaaab
4741: --->aaaab
4742: +0 ^ a*
4743: +2 ^ ^ b
4744: +3 ^ ^
4745: 0: aaaab
4746: aaaacb
4747: --->aaaacb
4748: +0 ^ a*
4749: +2 ^ ^ b
4750: +0 ^ a*
4751: +2 ^ ^ b
4752: +0 ^ a*
4753: +2 ^ ^ b
4754: +0 ^ a*
4755: +2 ^^ b
4756: +0 ^ a*
4757: +2 ^ b
4758: +3 ^^
4759: 0: b
4760:
4761: /a*b/ICDZSS
4762: ------------------------------------------------------------------
4763: Bra
4764: Callout 255 0 2
4765: a*+
4766: Callout 255 2 1
4767: b
4768: Callout 255 3 0
4769: Ket
4770: End
4771: ------------------------------------------------------------------
4772: Capturing subpattern count = 0
4773: Options:
4774: No first char
4775: Need char = 'b'
4776: ab
4777: --->ab
4778: +0 ^ a*
4779: +2 ^^ b
4780: +3 ^ ^
4781: 0: ab
4782: aaaab
4783: --->aaaab
4784: +0 ^ a*
4785: +2 ^ ^ b
4786: +3 ^ ^
4787: 0: aaaab
4788: aaaacb
4789: --->aaaacb
4790: +0 ^ a*
4791: +2 ^ ^ b
4792: +0 ^ a*
4793: +2 ^ ^ b
4794: +0 ^ a*
4795: +2 ^ ^ b
4796: +0 ^ a*
4797: +2 ^^ b
4798: +0 ^ a*
4799: +2 ^ b
4800: +0 ^ a*
4801: +2 ^ b
4802: +3 ^^
4803: 0: b
4804:
4805: /a+b/ICDZ
4806: ------------------------------------------------------------------
4807: Bra
4808: Callout 255 0 2
4809: a++
4810: Callout 255 2 1
4811: b
4812: Callout 255 3 0
4813: Ket
4814: End
4815: ------------------------------------------------------------------
4816: Capturing subpattern count = 0
4817: Options:
4818: First char = 'a'
4819: Need char = 'b'
4820: ab
4821: --->ab
4822: +0 ^ a+
4823: +2 ^^ b
4824: +3 ^ ^
4825: 0: ab
4826: aaaab
4827: --->aaaab
4828: +0 ^ a+
4829: +2 ^ ^ b
4830: +3 ^ ^
4831: 0: aaaab
4832: aaaacb
4833: --->aaaacb
4834: +0 ^ a+
4835: +2 ^ ^ b
4836: +0 ^ a+
4837: +2 ^ ^ b
4838: +0 ^ a+
4839: +2 ^ ^ b
4840: +0 ^ a+
4841: +2 ^^ b
4842: No match
4843:
4844: /(abc|def)x/ICDZS
4845: ------------------------------------------------------------------
4846: Bra
4847: Callout 255 0 9
4848: CBra 1
4849: Callout 255 1 1
4850: a
4851: Callout 255 2 1
4852: b
4853: Callout 255 3 1
4854: c
4855: Callout 255 4 0
4856: Alt
4857: Callout 255 5 1
4858: d
4859: Callout 255 6 1
4860: e
4861: Callout 255 7 1
4862: f
4863: Callout 255 8 0
4864: Ket
4865: Callout 255 9 1
4866: x
4867: Callout 255 10 0
4868: Ket
4869: End
4870: ------------------------------------------------------------------
4871: Capturing subpattern count = 1
4872: Options:
4873: No first char
4874: Need char = 'x'
4875: Subject length lower bound = 4
4876: Starting byte set: a d
4877: abcx
4878: --->abcx
4879: +0 ^ (abc|def)
4880: +1 ^ a
4881: +2 ^^ b
4882: +3 ^ ^ c
4883: +4 ^ ^ |
4884: +9 ^ ^ x
4885: +10 ^ ^
4886: 0: abcx
4887: 1: abc
4888: defx
4889: --->defx
4890: +0 ^ (abc|def)
4891: +1 ^ a
4892: +5 ^ d
4893: +6 ^^ e
4894: +7 ^ ^ f
4895: +8 ^ ^ )
4896: +9 ^ ^ x
4897: +10 ^ ^
4898: 0: defx
4899: 1: def
4900: ** Failers
4901: No match
4902: abcdefzx
4903: --->abcdefzx
4904: +0 ^ (abc|def)
4905: +1 ^ a
4906: +2 ^^ b
4907: +3 ^ ^ c
4908: +4 ^ ^ |
4909: +9 ^ ^ x
4910: +5 ^ d
4911: +0 ^ (abc|def)
4912: +1 ^ a
4913: +5 ^ d
4914: +6 ^^ e
4915: +7 ^ ^ f
4916: +8 ^ ^ )
4917: +9 ^ ^ x
4918: No match
4919:
4920: /(abc|def)x/ICDZSS
4921: ------------------------------------------------------------------
4922: Bra
4923: Callout 255 0 9
4924: CBra 1
4925: Callout 255 1 1
4926: a
4927: Callout 255 2 1
4928: b
4929: Callout 255 3 1
4930: c
4931: Callout 255 4 0
4932: Alt
4933: Callout 255 5 1
4934: d
4935: Callout 255 6 1
4936: e
4937: Callout 255 7 1
4938: f
4939: Callout 255 8 0
4940: Ket
4941: Callout 255 9 1
4942: x
4943: Callout 255 10 0
4944: Ket
4945: End
4946: ------------------------------------------------------------------
4947: Capturing subpattern count = 1
4948: Options:
4949: No first char
4950: Need char = 'x'
4951: abcx
4952: --->abcx
4953: +0 ^ (abc|def)
4954: +1 ^ a
4955: +2 ^^ b
4956: +3 ^ ^ c
4957: +4 ^ ^ |
4958: +9 ^ ^ x
4959: +10 ^ ^
4960: 0: abcx
4961: 1: abc
4962: defx
4963: --->defx
4964: +0 ^ (abc|def)
4965: +1 ^ a
4966: +5 ^ d
4967: +6 ^^ e
4968: +7 ^ ^ f
4969: +8 ^ ^ )
4970: +9 ^ ^ x
4971: +10 ^ ^
4972: 0: defx
4973: 1: def
4974: ** Failers
4975: No match
4976: abcdefzx
4977: --->abcdefzx
4978: +0 ^ (abc|def)
4979: +1 ^ a
4980: +2 ^^ b
4981: +3 ^ ^ c
4982: +4 ^ ^ |
4983: +9 ^ ^ x
4984: +5 ^ d
4985: +0 ^ (abc|def)
4986: +1 ^ a
4987: +5 ^ d
4988: +0 ^ (abc|def)
4989: +1 ^ a
4990: +5 ^ d
4991: +0 ^ (abc|def)
4992: +1 ^ a
4993: +5 ^ d
4994: +6 ^^ e
4995: +7 ^ ^ f
4996: +8 ^ ^ )
4997: +9 ^ ^ x
4998: +0 ^ (abc|def)
4999: +1 ^ a
5000: +5 ^ d
5001: +0 ^ (abc|def)
5002: +1 ^ a
5003: +5 ^ d
5004: +0 ^ (abc|def)
5005: +1 ^ a
5006: +5 ^ d
5007: +0 ^ (abc|def)
5008: +1 ^ a
5009: +5 ^ d
5010: No match
5011:
5012: /(ab|cd){3,4}/IC
5013: Capturing subpattern count = 1
5014: Options:
5015: No first char
5016: No need char
5017: ababab
5018: --->ababab
5019: +0 ^ (ab|cd){3,4}
5020: +1 ^ a
5021: +2 ^^ b
5022: +3 ^ ^ |
5023: +1 ^ ^ a
5024: +2 ^ ^ b
5025: +3 ^ ^ |
5026: +1 ^ ^ a
5027: +2 ^ ^ b
5028: +3 ^ ^ |
5029: +1 ^ ^ a
5030: +4 ^ ^ c
5031: +12 ^ ^
5032: 0: ababab
5033: 1: ab
5034: abcdabcd
5035: --->abcdabcd
5036: +0 ^ (ab|cd){3,4}
5037: +1 ^ a
5038: +2 ^^ b
5039: +3 ^ ^ |
5040: +1 ^ ^ a
5041: +4 ^ ^ c
5042: +5 ^ ^ d
5043: +6 ^ ^ )
5044: +1 ^ ^ a
5045: +2 ^ ^ b
5046: +3 ^ ^ |
5047: +1 ^ ^ a
5048: +4 ^ ^ c
5049: +5 ^ ^ d
5050: +6 ^ ^ )
5051: +12 ^ ^
5052: 0: abcdabcd
5053: 1: cd
5054: abcdcdcdcdcd
5055: --->abcdcdcdcdcd
5056: +0 ^ (ab|cd){3,4}
5057: +1 ^ a
5058: +2 ^^ b
5059: +3 ^ ^ |
5060: +1 ^ ^ a
5061: +4 ^ ^ c
5062: +5 ^ ^ d
5063: +6 ^ ^ )
5064: +1 ^ ^ a
5065: +4 ^ ^ c
5066: +5 ^ ^ d
5067: +6 ^ ^ )
5068: +1 ^ ^ a
5069: +4 ^ ^ c
5070: +5 ^ ^ d
5071: +6 ^ ^ )
5072: +12 ^ ^
5073: 0: abcdcdcd
5074: 1: cd
5075:
5076: /([ab]{,4}c|xy)/ICDZS
5077: ------------------------------------------------------------------
5078: Bra
5079: Callout 255 0 14
5080: CBra 1
5081: Callout 255 1 4
5082: [ab]
5083: Callout 255 5 1
5084: {
5085: Callout 255 6 1
5086: ,
5087: Callout 255 7 1
5088: 4
5089: Callout 255 8 1
5090: }
5091: Callout 255 9 1
5092: c
5093: Callout 255 10 0
5094: Alt
5095: Callout 255 11 1
5096: x
5097: Callout 255 12 1
5098: y
5099: Callout 255 13 0
5100: Ket
5101: Callout 255 14 0
5102: Ket
5103: End
5104: ------------------------------------------------------------------
5105: Capturing subpattern count = 1
5106: Options:
5107: No first char
5108: No need char
5109: Subject length lower bound = 2
5110: Starting byte set: a b x
5111: Note: that { does NOT introduce a quantifier
5112: --->Note: that { does NOT introduce a quantifier
5113: +0 ^ ([ab]{,4}c|xy)
5114: +1 ^ [ab]
5115: +5 ^^ {
5116: +11 ^ x
5117: +0 ^ ([ab]{,4}c|xy)
5118: +1 ^ [ab]
5119: +5 ^^ {
5120: +11 ^ x
5121: +0 ^ ([ab]{,4}c|xy)
5122: +1 ^ [ab]
5123: +5 ^^ {
5124: +11 ^ x
5125: No match
5126:
5127: /([ab]{,4}c|xy)/ICDZSS
5128: ------------------------------------------------------------------
5129: Bra
5130: Callout 255 0 14
5131: CBra 1
5132: Callout 255 1 4
5133: [ab]
5134: Callout 255 5 1
5135: {
5136: Callout 255 6 1
5137: ,
5138: Callout 255 7 1
5139: 4
5140: Callout 255 8 1
5141: }
5142: Callout 255 9 1
5143: c
5144: Callout 255 10 0
5145: Alt
5146: Callout 255 11 1
5147: x
5148: Callout 255 12 1
5149: y
5150: Callout 255 13 0
5151: Ket
5152: Callout 255 14 0
5153: Ket
5154: End
5155: ------------------------------------------------------------------
5156: Capturing subpattern count = 1
5157: Options:
5158: No first char
5159: No need char
5160: Note: that { does NOT introduce a quantifier
5161: --->Note: that { does NOT introduce a quantifier
5162: +0 ^ ([ab]{,4}c|xy)
5163: +1 ^ [ab]
5164: +11 ^ x
5165: +0 ^ ([ab]{,4}c|xy)
5166: +1 ^ [ab]
5167: +11 ^ x
5168: +0 ^ ([ab]{,4}c|xy)
5169: +1 ^ [ab]
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: +5 ^^ {
5189: +11 ^ x
5190: +0 ^ ([ab]{,4}c|xy)
5191: +1 ^ [ab]
5192: +11 ^ x
5193: +0 ^ ([ab]{,4}c|xy)
5194: +1 ^ [ab]
5195: +11 ^ x
5196: +0 ^ ([ab]{,4}c|xy)
5197: +1 ^ [ab]
5198: +11 ^ x
5199: +0 ^ ([ab]{,4}c|xy)
5200: +1 ^ [ab]
5201: +11 ^ x
5202: +0 ^ ([ab]{,4}c|xy)
5203: +1 ^ [ab]
5204: +11 ^ x
5205: +0 ^ ([ab]{,4}c|xy)
5206: +1 ^ [ab]
5207: +11 ^ x
5208: +0 ^ ([ab]{,4}c|xy)
5209: +1 ^ [ab]
5210: +11 ^ x
5211: +0 ^ ([ab]{,4}c|xy)
5212: +1 ^ [ab]
5213: +11 ^ x
5214: +0 ^ ([ab]{,4}c|xy)
5215: +1 ^ [ab]
5216: +11 ^ x
5217: +0 ^ ([ab]{,4}c|xy)
5218: +1 ^ [ab]
5219: +11 ^ x
5220: +0 ^ ([ab]{,4}c|xy)
5221: +1 ^ [ab]
5222: +11 ^ x
5223: +0 ^ ([ab]{,4}c|xy)
5224: +1 ^ [ab]
5225: +11 ^ x
5226: +0 ^ ([ab]{,4}c|xy)
5227: +1 ^ [ab]
5228: +11 ^ x
5229: +0 ^ ([ab]{,4}c|xy)
5230: +1 ^ [ab]
5231: +11 ^ x
5232: +0 ^ ([ab]{,4}c|xy)
5233: +1 ^ [ab]
5234: +11 ^ x
5235: +0 ^ ([ab]{,4}c|xy)
5236: +1 ^ [ab]
5237: +11 ^ x
5238: +0 ^ ([ab]{,4}c|xy)
5239: +1 ^ [ab]
5240: +11 ^ x
5241: +0 ^ ([ab]{,4}c|xy)
5242: +1 ^ [ab]
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: +11 ^ x
5256: +0 ^ ([ab]{,4}c|xy)
5257: +1 ^ [ab]
5258: +11 ^ x
5259: +0 ^ ([ab]{,4}c|xy)
5260: +1 ^ [ab]
5261: +5 ^^ {
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: +5 ^^ {
5275: +11 ^ x
5276: +0 ^ ([ab]{,4}c|xy)
5277: +1 ^ [ab]
5278: +11 ^ x
5279: +0 ^ ([ab]{,4}c|xy)
5280: +1 ^ [ab]
5281: +11 ^ x
5282: +0 ^ ([ab]{,4}c|xy)
5283: +1 ^ [ab]
5284: +11 ^ x
5285: +0 ^ ([ab]{,4}c|xy)
5286: +1 ^ [ab]
5287: +11 ^ x
5288: +0 ^ ([ab]{,4}c|xy)
5289: +1 ^ [ab]
5290: +11 ^ x
5291: +0 ^ ([ab]{,4}c|xy)
5292: +1 ^ [ab]
5293: +11 ^ x
5294: +0 ^ ([ab]{,4}c|xy)
5295: +1 ^ [ab]
5296: +11 ^ x
5297: +0 ^ ([ab]{,4}c|xy)
5298: +1 ^ [ab]
5299: +11 ^ x
5300: No match
5301:
5302: /([ab]{1,4}c|xy){4,5}?123/ICDZ
5303: ------------------------------------------------------------------
5304: Bra
5305: Callout 255 0 21
5306: CBra 1
5307: Callout 255 1 9
5308: [ab]{1,4}
5309: Callout 255 10 1
5310: c
5311: Callout 255 11 0
5312: Alt
5313: Callout 255 12 1
5314: x
5315: Callout 255 13 1
5316: y
5317: Callout 255 14 0
5318: Ket
5319: CBra 1
5320: Callout 255 1 9
5321: [ab]{1,4}
5322: Callout 255 10 1
5323: c
5324: Callout 255 11 0
5325: Alt
5326: Callout 255 12 1
5327: x
5328: Callout 255 13 1
5329: y
5330: Callout 255 14 0
5331: Ket
5332: CBra 1
5333: Callout 255 1 9
5334: [ab]{1,4}
5335: Callout 255 10 1
5336: c
5337: Callout 255 11 0
5338: Alt
5339: Callout 255 12 1
5340: x
5341: Callout 255 13 1
5342: y
5343: Callout 255 14 0
5344: Ket
5345: CBra 1
5346: Callout 255 1 9
5347: [ab]{1,4}
5348: Callout 255 10 1
5349: c
5350: Callout 255 11 0
5351: Alt
5352: Callout 255 12 1
5353: x
5354: Callout 255 13 1
5355: y
5356: Callout 255 14 0
5357: Ket
5358: Braminzero
5359: CBra 1
5360: Callout 255 1 9
5361: [ab]{1,4}
5362: Callout 255 10 1
5363: c
5364: Callout 255 11 0
5365: Alt
5366: Callout 255 12 1
5367: x
5368: Callout 255 13 1
5369: y
5370: Callout 255 14 0
5371: Ket
5372: Callout 255 21 1
5373: 1
5374: Callout 255 22 1
5375: 2
5376: Callout 255 23 1
5377: 3
5378: Callout 255 24 0
5379: Ket
5380: End
5381: ------------------------------------------------------------------
5382: Capturing subpattern count = 1
5383: Options:
5384: No first char
5385: Need char = '3'
5386: aacaacaacaacaac123
5387: --->aacaacaacaacaac123
5388: +0 ^ ([ab]{1,4}c|xy){4,5}?
5389: +1 ^ [ab]{1,4}
5390: +10 ^ ^ c
5391: +11 ^ ^ |
5392: +1 ^ ^ [ab]{1,4}
5393: +10 ^ ^ c
5394: +11 ^ ^ |
5395: +1 ^ ^ [ab]{1,4}
5396: +10 ^ ^ c
5397: +11 ^ ^ |
5398: +1 ^ ^ [ab]{1,4}
5399: +10 ^ ^ c
5400: +11 ^ ^ |
5401: +21 ^ ^ 1
5402: +1 ^ ^ [ab]{1,4}
5403: +10 ^ ^ c
5404: +11 ^ ^ |
5405: +21 ^ ^ 1
5406: +22 ^ ^ 2
5407: +23 ^ ^ 3
5408: +24 ^ ^
5409: 0: aacaacaacaacaac123
5410: 1: aac
5411:
5412: /\b.*/I
5413: Capturing subpattern count = 0
5414: No options
5415: No first char
5416: No need char
1.1.1.3 ! misho 5417: Max lookbehind = 1
1.1 misho 5418: ab cd\>1
5419: 0: cd
5420:
5421: /\b.*/Is
5422: Capturing subpattern count = 0
5423: Options: dotall
5424: No first char
5425: No need char
1.1.1.3 ! misho 5426: Max lookbehind = 1
1.1 misho 5427: ab cd\>1
5428: 0: cd
5429:
5430: /(?!.bcd).*/I
5431: Capturing subpattern count = 0
5432: No options
5433: No first char
5434: No need char
5435: Xbcd12345
5436: 0: bcd12345
5437:
5438: /abcde/I
5439: Capturing subpattern count = 0
5440: No options
5441: First char = 'a'
5442: Need char = 'e'
5443: ab\P
5444: Partial match: ab
5445: abc\P
5446: Partial match: abc
5447: abcd\P
5448: Partial match: abcd
5449: abcde\P
5450: 0: abcde
5451: the quick brown abc\P
5452: Partial match: abc
5453: ** Failers\P
5454: No match
5455: the quick brown abxyz fox\P
5456: No match
5457:
5458: "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
5459: Capturing subpattern count = 3
5460: Options: anchored
5461: No first char
5462: Need char = '/'
5463: 13/05/04\P
5464: 0: 13/05/04
5465: 1: 13
5466: 2: 05
5467: 13/5/2004\P
5468: 0: 13/5/2004
5469: 1: 13
5470: 2: 5
5471: 3: 20
5472: 02/05/09\P
5473: 0: 02/05/09
5474: 1: 02
5475: 2: 05
5476: 1\P
5477: Partial match: 1
5478: 1/2\P
5479: Partial match: 1/2
5480: 1/2/0\P
5481: Partial match: 1/2/0
5482: 1/2/04\P
5483: 0: 1/2/04
5484: 1: 1
5485: 2: 2
5486: 0\P
5487: Partial match: 0
5488: 02/\P
5489: Partial match: 02/
5490: 02/0\P
5491: Partial match: 02/0
5492: 02/1\P
5493: Partial match: 02/1
5494: ** Failers\P
5495: No match
5496: \P
5497: No match
5498: 123\P
5499: No match
5500: 33/4/04\P
5501: No match
5502: 3/13/04\P
5503: No match
5504: 0/1/2003\P
5505: No match
5506: 0/\P
5507: No match
5508: 02/0/\P
5509: No match
5510: 02/13\P
5511: No match
5512:
5513: /0{0,2}ABC/I
5514: Capturing subpattern count = 0
5515: No options
5516: No first char
5517: Need char = 'C'
5518:
5519: /\d{3,}ABC/I
5520: Capturing subpattern count = 0
5521: No options
5522: No first char
5523: Need char = 'C'
5524:
5525: /\d*ABC/I
5526: Capturing subpattern count = 0
5527: No options
5528: No first char
5529: Need char = 'C'
5530:
5531: /[abc]+DE/I
5532: Capturing subpattern count = 0
5533: No options
5534: No first char
5535: Need char = 'E'
5536:
5537: /[abc]?123/I
5538: Capturing subpattern count = 0
5539: No options
5540: No first char
5541: Need char = '3'
5542: 123\P
5543: 0: 123
5544: a\P
5545: Partial match: a
5546: b\P
5547: Partial match: b
5548: c\P
5549: Partial match: c
5550: c12\P
5551: Partial match: c12
5552: c123\P
5553: 0: c123
5554:
5555: /^(?:\d){3,5}X/I
5556: Capturing subpattern count = 0
5557: Options: anchored
5558: No first char
5559: Need char = 'X'
5560: 1\P
5561: Partial match: 1
5562: 123\P
5563: Partial match: 123
5564: 123X
5565: 0: 123X
5566: 1234\P
5567: Partial match: 1234
5568: 1234X
5569: 0: 1234X
5570: 12345\P
5571: Partial match: 12345
5572: 12345X
5573: 0: 12345X
5574: *** Failers
5575: No match
5576: 1X
5577: No match
5578: 123456\P
5579: No match
5580:
5581: /abc/IS>testsavedregex
5582: Capturing subpattern count = 0
5583: No options
5584: First char = 'a'
5585: Need char = 'c'
5586: Subject length lower bound = 3
5587: No set of starting bytes
5588: Compiled pattern written to testsavedregex
5589: Study data written to testsavedregex
5590: <testsavedregex
5591: Compiled pattern loaded from testsavedregex
5592: Study data loaded from testsavedregex
5593: abc
5594: 0: abc
5595: ** Failers
5596: No match
5597: bca
5598: No match
5599:
5600: /abc/ISS>testsavedregex
5601: Capturing subpattern count = 0
5602: No options
5603: First char = 'a'
5604: Need char = 'c'
5605: Compiled pattern written to testsavedregex
5606: <testsavedregex
5607: Compiled pattern loaded from testsavedregex
5608: No study data
5609: abc
5610: 0: abc
5611: ** Failers
5612: No match
5613: bca
5614: No match
5615:
5616: /abc/IFS>testsavedregex
5617: Capturing subpattern count = 0
5618: No options
5619: First char = 'a'
5620: Need char = 'c'
5621: Subject length lower bound = 3
5622: No set of starting bytes
5623: Compiled pattern written to testsavedregex
5624: Study data written to testsavedregex
5625: <testsavedregex
5626: Compiled pattern (byte-inverted) loaded from testsavedregex
5627: Study data loaded from testsavedregex
5628: abc
5629: 0: abc
5630: ** Failers
5631: No match
5632: bca
5633: No match
5634:
5635: /abc/IFSS>testsavedregex
5636: Capturing subpattern count = 0
5637: No options
5638: First char = 'a'
5639: Need char = 'c'
5640: Compiled pattern written to testsavedregex
5641: <testsavedregex
5642: Compiled pattern (byte-inverted) loaded from testsavedregex
5643: No study data
5644: abc
5645: 0: abc
5646: ** Failers
5647: No match
5648: bca
5649: No match
5650:
5651: /(a|b)/IS>testsavedregex
5652: Capturing subpattern count = 1
5653: No options
5654: No first char
5655: No need char
5656: Subject length lower bound = 1
5657: Starting byte set: a b
5658: Compiled pattern written to testsavedregex
5659: Study data written to testsavedregex
5660: <testsavedregex
5661: Compiled pattern loaded from testsavedregex
5662: Study data loaded from testsavedregex
5663: abc
5664: 0: a
5665: 1: a
5666: ** Failers
5667: 0: a
5668: 1: a
5669: def
5670: No match
5671:
5672: /(a|b)/ISS>testsavedregex
5673: Capturing subpattern count = 1
5674: No options
5675: No first char
5676: No need char
5677: Compiled pattern written to testsavedregex
5678: <testsavedregex
5679: Compiled pattern loaded from testsavedregex
5680: No study data
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)/ISF>testsavedregex
5691: Capturing subpattern count = 1
5692: No options
5693: No first char
5694: No need char
5695: Subject length lower bound = 1
5696: Starting byte set: a b
5697: Compiled pattern written to testsavedregex
5698: Study data written to testsavedregex
5699: <testsavedregex
5700: Compiled pattern (byte-inverted) loaded from testsavedregex
5701: Study data loaded from testsavedregex
5702: abc
5703: 0: a
5704: 1: a
5705: ** Failers
5706: 0: a
5707: 1: a
5708: def
5709: No match
5710:
5711: /(a|b)/ISSF>testsavedregex
5712: Capturing subpattern count = 1
5713: No options
5714: No first char
5715: No need char
5716: Compiled pattern written to testsavedregex
5717: <testsavedregex
5718: Compiled pattern (byte-inverted) loaded from testsavedregex
5719: No study data
5720: abc
5721: 0: a
5722: 1: a
5723: ** Failers
5724: 0: a
5725: 1: a
5726: def
5727: No match
5728:
5729: ~<(\w+)/?>(.)*</(\1)>~smgI
5730: Capturing subpattern count = 3
5731: Max back reference = 1
5732: Options: multiline dotall
5733: First char = '<'
5734: Need char = '>'
5735: \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>
5736: 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>
5737: 1: seite
5738: 2: \x0a
5739: 3: seite
5740:
5741: /^a/IF
5742: Capturing subpattern count = 0
5743: Options: anchored
5744: No first char
5745: No need char
5746:
5747: /line\nbreak/I
5748: Capturing subpattern count = 0
5749: Contains explicit CR or LF match
5750: No options
5751: First char = 'l'
5752: Need char = 'k'
5753: this is a line\nbreak
5754: 0: line\x0abreak
5755: line one\nthis is a line\nbreak in the second line
5756: 0: line\x0abreak
5757:
5758: /line\nbreak/If
5759: Capturing subpattern count = 0
5760: Contains explicit CR or LF match
5761: Options: firstline
5762: First char = 'l'
5763: Need char = 'k'
5764: this is a line\nbreak
5765: 0: line\x0abreak
5766: ** Failers
5767: No match
5768: line one\nthis is a line\nbreak in the second line
5769: No match
5770:
5771: /line\nbreak/Imf
5772: Capturing subpattern count = 0
5773: Contains explicit CR or LF match
5774: Options: multiline firstline
5775: First char = 'l'
5776: Need char = 'k'
5777: this is a line\nbreak
5778: 0: line\x0abreak
5779: ** Failers
5780: No match
5781: line one\nthis is a line\nbreak in the second line
5782: No match
5783:
5784: /(?i)(?-i)AbCd/I
5785: Capturing subpattern count = 0
5786: No options
5787: First char = 'A'
5788: Need char = 'd'
5789: AbCd
5790: 0: AbCd
5791: ** Failers
5792: No match
5793: abcd
5794: No match
5795:
5796: /a{11111111111111111111}/I
5797: Failed: number too big in {} quantifier at offset 22
5798:
5799: /(){64294967295}/I
5800: Failed: number too big in {} quantifier at offset 14
5801:
5802: /(){2,4294967295}/I
5803: Failed: number too big in {} quantifier at offset 15
5804:
5805: "(?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
5806: Capturing subpattern count = 1
5807: Max back reference = 1
5808: No options
5809: First char = 'a' (caseless)
5810: Need char = 'B'
5811: abcdefghijklAkB
5812: 0: abcdefghijklAkB
5813: 1: k
5814:
5815: "(?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
5816: Capturing subpattern count = 12
5817: Max back reference = 11
5818: Named capturing subpatterns:
5819: n0 1
5820: n1 2
5821: n10 11
5822: n11 12
5823: n2 3
5824: n3 4
5825: n4 5
5826: n5 6
5827: n6 7
5828: n7 8
5829: n8 9
5830: n9 10
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: "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
5850: Capturing subpattern count = 12
5851: Max back reference = 11
5852: No options
5853: First char = 'a'
5854: Need char = 'B'
5855: abcdefghijklAkB
5856: 0: abcdefghijklAkB
5857: 1: a
5858: 2: b
5859: 3: c
5860: 4: d
5861: 5: e
5862: 6: f
5863: 7: g
5864: 8: h
5865: 9: i
5866: 10: j
5867: 11: k
5868: 12: l
5869:
5870: "(?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
5871: Capturing subpattern count = 101
5872: Named capturing subpatterns:
5873: name0 1
5874: name1 2
5875: name10 11
5876: name100 101
5877: name11 12
5878: name12 13
5879: name13 14
5880: name14 15
5881: name15 16
5882: name16 17
5883: name17 18
5884: name18 19
5885: name19 20
5886: name2 3
5887: name20 21
5888: name21 22
5889: name22 23
5890: name23 24
5891: name24 25
5892: name25 26
5893: name26 27
5894: name27 28
5895: name28 29
5896: name29 30
5897: name3 4
5898: name30 31
5899: name31 32
5900: name32 33
5901: name33 34
5902: name34 35
5903: name35 36
5904: name36 37
5905: name37 38
5906: name38 39
5907: name39 40
5908: name4 5
5909: name40 41
5910: name41 42
5911: name42 43
5912: name43 44
5913: name44 45
5914: name45 46
5915: name46 47
5916: name47 48
5917: name48 49
5918: name49 50
5919: name5 6
5920: name50 51
5921: name51 52
5922: name52 53
5923: name53 54
5924: name54 55
5925: name55 56
5926: name56 57
5927: name57 58
5928: name58 59
5929: name59 60
5930: name6 7
5931: name60 61
5932: name61 62
5933: name62 63
5934: name63 64
5935: name64 65
5936: name65 66
5937: name66 67
5938: name67 68
5939: name68 69
5940: name69 70
5941: name7 8
5942: name70 71
5943: name71 72
5944: name72 73
5945: name73 74
5946: name74 75
5947: name75 76
5948: name76 77
5949: name77 78
5950: name78 79
5951: name79 80
5952: name8 9
5953: name80 81
5954: name81 82
5955: name82 83
5956: name83 84
5957: name84 85
5958: name85 86
5959: name86 87
5960: name87 88
5961: name88 89
5962: name89 90
5963: name9 10
5964: name90 91
5965: name91 92
5966: name92 93
5967: name93 94
5968: name94 95
5969: name95 96
5970: name96 97
5971: name97 98
5972: name98 99
5973: name99 100
5974: No options
5975: First char = 'a'
5976: Need char = 'a'
5977: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
5978: Matched, but too many substrings
5979: 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
5980: 1: a
5981: 2: a
5982: 3: a
5983: 4: a
5984: 5: a
5985: 6: a
5986: 7: a
5987: 8: a
5988: 9: a
5989: 10: a
5990: 11: a
5991: 12: a
5992: 13: a
5993: 14: a
5994:
5995: "(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
5996: Capturing subpattern count = 101
5997: No options
5998: First char = 'a'
5999: Need char = 'a'
6000: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6001: Matched, but too many substrings
6002: 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6003: 1: a
6004: 2: a
6005: 3: a
6006: 4: a
6007: 5: a
6008: 6: a
6009: 7: a
6010: 8: a
6011: 9: a
6012: 10: a
6013: 11: a
6014: 12: a
6015: 13: a
6016: 14: a
6017:
6018: /[^()]*(?:\((?R)\)[^()]*)*/I
6019: Capturing subpattern count = 0
6020: No options
6021: No first char
6022: No need char
6023: (this(and)that
6024: 0:
6025: (this(and)that)
6026: 0: (this(and)that)
6027: (this(and)that)stuff
6028: 0: (this(and)that)stuff
6029:
6030: /[^()]*(?:\((?>(?R))\)[^()]*)*/I
6031: Capturing subpattern count = 0
6032: No options
6033: No first char
6034: No need char
6035: (this(and)that
6036: 0:
6037: (this(and)that)
6038: 0: (this(and)that)
6039:
6040: /[^()]*(?:\((?R)\))*[^()]*/I
6041: Capturing subpattern count = 0
6042: No options
6043: No first char
6044: No need char
6045: (this(and)that
6046: 0:
6047: (this(and)that)
6048: 0: (this(and)that)
6049:
6050: /(?:\((?R)\))*[^()]*/I
6051: Capturing subpattern count = 0
6052: No options
6053: No first char
6054: No need char
6055: (this(and)that
6056: 0:
6057: (this(and)that)
6058: 0:
6059: ((this))
6060: 0: ((this))
6061:
6062: /(?:\((?R)\))|[^()]*/I
6063: Capturing subpattern count = 0
6064: No options
6065: No first char
6066: No need char
6067: (this(and)that
6068: 0:
6069: (this(and)that)
6070: 0:
6071: (this)
6072: 0: (this)
6073: ((this))
6074: 0: ((this))
6075:
6076: /\x{0000ff}/I
6077: Capturing subpattern count = 0
6078: No options
1.1.1.2 misho 6079: First char = \xff
1.1 misho 6080: No need char
6081:
6082: /^((?P<A>a1)|(?P<A>a2)b)/I
6083: Failed: two named subpatterns have the same name at offset 17
6084:
6085: /^((?P<A>a1)|(?P<A>a2)b)/IJ
6086: Capturing subpattern count = 3
6087: Named capturing subpatterns:
6088: A 2
6089: A 3
6090: Options: anchored dupnames
6091: No first char
6092: No need char
6093: a1b\CA
6094: 0: a1
6095: 1: a1
6096: 2: a1
6097: C a1 (2) A
6098: a2b\CA
6099: 0: a2b
6100: 1: a2b
6101: 2: <unset>
6102: 3: a2
6103: C a2 (2) A
6104: ** Failers
6105: No match
6106: a1b\CZ\CA
6107: no parentheses with name "Z"
6108: 0: a1
6109: 1: a1
6110: 2: a1
6111: copy substring Z failed -7
6112: C a1 (2) A
6113:
6114: /^(?P<A>a)(?P<A>b)/IJ
6115: Capturing subpattern count = 2
6116: Named capturing subpatterns:
6117: A 1
6118: A 2
6119: Options: anchored dupnames
6120: No first char
6121: No need char
6122: ab\CA
6123: 0: ab
6124: 1: a
6125: 2: b
6126: C a (1) A
6127:
6128: /^(?P<A>a)(?P<A>b)|cd/IJ
6129: Capturing subpattern count = 2
6130: Named capturing subpatterns:
6131: A 1
6132: A 2
6133: Options: dupnames
6134: No first char
6135: No need char
6136: ab\CA
6137: 0: ab
6138: 1: a
6139: 2: b
6140: C a (1) A
6141: cd\CA
6142: 0: cd
6143: copy substring A failed -7
6144:
6145: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6146: Capturing subpattern count = 4
6147: Named capturing subpatterns:
6148: A 1
6149: A 2
6150: A 3
6151: A 4
6152: Options: dupnames
6153: No first char
6154: No need char
6155: cdefgh\CA
6156: 0: cdefgh
6157: 1: <unset>
6158: 2: <unset>
6159: 3: ef
6160: 4: gh
6161: C ef (2) A
6162:
6163: /^((?P<A>a1)|(?P<A>a2)b)/IJ
6164: Capturing subpattern count = 3
6165: Named capturing subpatterns:
6166: A 2
6167: A 3
6168: Options: anchored dupnames
6169: No first char
6170: No need char
6171: a1b\GA
6172: 0: a1
6173: 1: a1
6174: 2: a1
6175: G a1 (2) A
6176: a2b\GA
6177: 0: a2b
6178: 1: a2b
6179: 2: <unset>
6180: 3: a2
6181: G a2 (2) A
6182: ** Failers
6183: No match
6184: a1b\GZ\GA
6185: no parentheses with name "Z"
6186: 0: a1
6187: 1: a1
6188: 2: a1
1.1.1.2 misho 6189: get substring Z failed -7
1.1 misho 6190: G a1 (2) A
6191:
6192: /^(?P<A>a)(?P<A>b)/IJ
6193: Capturing subpattern count = 2
6194: Named capturing subpatterns:
6195: A 1
6196: A 2
6197: Options: anchored dupnames
6198: No first char
6199: No need char
6200: ab\GA
6201: 0: ab
6202: 1: a
6203: 2: b
6204: G a (1) A
6205:
6206: /^(?P<A>a)(?P<A>b)|cd/IJ
6207: Capturing subpattern count = 2
6208: Named capturing subpatterns:
6209: A 1
6210: A 2
6211: Options: dupnames
6212: No first char
6213: No need char
6214: ab\GA
6215: 0: ab
6216: 1: a
6217: 2: b
6218: G a (1) A
6219: cd\GA
6220: 0: cd
1.1.1.2 misho 6221: get substring A failed -7
1.1 misho 6222:
6223: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6224: Capturing subpattern count = 4
6225: Named capturing subpatterns:
6226: A 1
6227: A 2
6228: A 3
6229: A 4
6230: Options: dupnames
6231: No first char
6232: No need char
6233: cdefgh\GA
6234: 0: cdefgh
6235: 1: <unset>
6236: 2: <unset>
6237: 3: ef
6238: 4: gh
6239: G ef (2) A
6240:
6241: /(?J)^((?P<A>a1)|(?P<A>a2)b)/I
6242: Capturing subpattern count = 3
6243: Named capturing subpatterns:
6244: A 2
6245: A 3
6246: Options: anchored dupnames
6247: Duplicate name status changes
6248: No first char
6249: No need char
6250: a1b\CA
6251: 0: a1
6252: 1: a1
6253: 2: a1
6254: C a1 (2) A
6255: a2b\CA
6256: 0: a2b
6257: 1: a2b
6258: 2: <unset>
6259: 3: a2
6260: C a2 (2) A
6261:
6262: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
6263: Failed: two named subpatterns have the same name at offset 37
6264:
6265: / In this next test, J is not set at the outer level; consequently it isn't
6266: set in the pattern's options; consequently pcre_get_named_substring() produces
6267: a random value. /Ix
6268: Capturing subpattern count = 1
6269: Options: extended
6270: First char = 'I'
6271: Need char = 'e'
6272:
6273: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
6274: Capturing subpattern count = 4
6275: Named capturing subpatterns:
6276: A 1
6277: B 2
6278: B 3
6279: C 4
6280: Options: anchored
6281: Duplicate name status changes
6282: No first char
6283: No need char
6284: a bc d\CA\CB\CC
6285: 0: a bc d
6286: 1: a
6287: 2: b
6288: 3: c
6289: 4: d
6290: C a (1) A
6291: C b (1) B
6292: C d (1) C
6293:
6294: /^(?P<A>a)?(?(A)a|b)/I
6295: Capturing subpattern count = 1
6296: Named capturing subpatterns:
6297: A 1
6298: Options: anchored
6299: No first char
6300: No need char
6301: aabc
6302: 0: aa
6303: 1: a
6304: bc
6305: 0: b
6306: ** Failers
6307: No match
6308: abc
6309: No match
6310:
6311: /(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
6312: Capturing subpattern count = 1
6313: Named capturing subpatterns:
6314: ZZ 1
6315: No options
6316: No first char
6317: Need char = 'X'
6318: bXaX
6319: 0: bXaX
6320: 1: X
6321:
6322: /(?:(?(2y)a|b)(X))+/I
6323: Failed: reference to non-existent subpattern at offset 9
6324:
6325: /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
6326: Failed: reference to non-existent subpattern at offset 9
6327:
6328: /(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
6329: Capturing subpattern count = 1
6330: Named capturing subpatterns:
6331: ZZ 1
6332: No options
6333: No first char
6334: Need char = 'X'
6335: bbXaaX
6336: 0: bbXaaX
6337: 1: X
6338:
6339: /(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
6340: Capturing subpattern count = 1
6341: Named capturing subpatterns:
6342: ZZ 1
6343: No options
6344: No first char
6345: Need char = 'X'
6346: (b)\\Xa\\X
6347: 0: (b)\Xa\X
6348: 1: X
6349:
6350: /(?P<ABC/I
6351: Failed: syntax error in subpattern name (missing terminator) at offset 7
6352:
6353: /(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6354: Capturing subpattern count = 1
6355: Max back reference = 1
6356: Named capturing subpatterns:
6357: A 1
6358: No options
6359: No first char
6360: No need char
6361: bXXaYYaY
6362: 0: bXXaYYaY
6363: 1: Y
6364: bXYaXXaX
6365: 0: bX
6366: 1: X
6367:
6368: /()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6369: Capturing subpattern count = 10
6370: Max back reference = 10
6371: Named capturing subpatterns:
6372: A 10
6373: No options
6374: No first char
6375: No need char
6376: bXXaYYaY
6377: 0: bXXaYYaY
6378: 1:
6379: 2:
6380: 3:
6381: 4:
6382: 5:
6383: 6:
6384: 7:
6385: 8:
6386: 9:
6387: 10: Y
6388:
6389: /\s*,\s*/IS
6390: Capturing subpattern count = 0
6391: No options
6392: No first char
6393: Need char = ','
6394: Subject length lower bound = 1
6395: Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6396: \x0b,\x0b
6397: 0: ,
6398: \x0c,\x0d
6399: 0: \x0c,\x0d
6400:
6401: /^abc/Im
6402: Capturing subpattern count = 0
6403: Options: multiline
6404: First char at start or follows newline
6405: Need char = 'c'
6406: xyz\nabc
6407: 0: abc
6408: xyz\nabc\<lf>
6409: 0: abc
6410: xyz\r\nabc\<lf>
6411: 0: abc
6412: xyz\rabc\<cr>
6413: 0: abc
6414: xyz\r\nabc\<crlf>
6415: 0: abc
6416: ** Failers
6417: No match
6418: xyz\nabc\<cr>
6419: No match
6420: xyz\r\nabc\<cr>
6421: No match
6422: xyz\nabc\<crlf>
6423: No match
6424: xyz\rabc\<crlf>
6425: No match
6426: xyz\rabc\<lf>
6427: No match
6428:
6429: /abc$/Im<lf>
6430: Capturing subpattern count = 0
6431: Options: multiline
6432: Forced newline sequence: LF
6433: First char = 'a'
6434: Need char = 'c'
6435: xyzabc
6436: 0: abc
6437: xyzabc\n
6438: 0: abc
6439: xyzabc\npqr
6440: 0: abc
6441: xyzabc\r\<cr>
6442: 0: abc
6443: xyzabc\rpqr\<cr>
6444: 0: abc
6445: xyzabc\r\n\<crlf>
6446: 0: abc
6447: xyzabc\r\npqr\<crlf>
6448: 0: abc
6449: ** Failers
6450: No match
6451: xyzabc\r
6452: No match
6453: xyzabc\rpqr
6454: No match
6455: xyzabc\r\n
6456: No match
6457: xyzabc\r\npqr
6458: No match
6459:
6460: /^abc/Im<cr>
6461: Capturing subpattern count = 0
6462: Options: multiline
6463: Forced newline sequence: CR
6464: First char at start or follows newline
6465: Need char = 'c'
6466: xyz\rabcdef
6467: 0: abc
6468: xyz\nabcdef\<lf>
6469: 0: abc
6470: ** Failers
6471: No match
6472: xyz\nabcdef
6473: No match
6474:
6475: /^abc/Im<lf>
6476: Capturing subpattern count = 0
6477: Options: multiline
6478: Forced newline sequence: LF
6479: First char at start or follows newline
6480: Need char = 'c'
6481: xyz\nabcdef
6482: 0: abc
6483: xyz\rabcdef\<cr>
6484: 0: abc
6485: ** Failers
6486: No match
6487: xyz\rabcdef
6488: No match
6489:
6490: /^abc/Im<crlf>
6491: Capturing subpattern count = 0
6492: Options: multiline
6493: Forced newline sequence: CRLF
6494: First char at start or follows newline
6495: Need char = 'c'
6496: xyz\r\nabcdef
6497: 0: abc
6498: xyz\rabcdef\<cr>
6499: 0: abc
6500: ** Failers
6501: No match
6502: xyz\rabcdef
6503: No match
6504:
6505: /^abc/Im<bad>
6506: Unknown newline type at: <bad>
6507:
6508:
6509: /abc/I
6510: Capturing subpattern count = 0
6511: No options
6512: First char = 'a'
6513: Need char = 'c'
6514: xyz\rabc\<bad>
6515: Unknown newline type at: <bad>
6516: abc
6517: 0: abc
6518:
6519: /.*/I<lf>
6520: Capturing subpattern count = 0
6521: Options:
6522: Forced newline sequence: LF
6523: First char at start or follows newline
6524: No need char
6525: abc\ndef
6526: 0: abc
6527: abc\rdef
6528: 0: abc\x0ddef
6529: abc\r\ndef
6530: 0: abc\x0d
6531: \<cr>abc\ndef
6532: 0: abc\x0adef
6533: \<cr>abc\rdef
6534: 0: abc
6535: \<cr>abc\r\ndef
6536: 0: abc
6537: \<crlf>abc\ndef
6538: 0: abc\x0adef
6539: \<crlf>abc\rdef
6540: 0: abc\x0ddef
6541: \<crlf>abc\r\ndef
6542: 0: abc
6543:
6544: /\w+(.)(.)?def/Is
6545: Capturing subpattern count = 2
6546: Options: dotall
6547: No first char
6548: Need char = 'f'
6549: abc\ndef
6550: 0: abc\x0adef
6551: 1: \x0a
6552: abc\rdef
6553: 0: abc\x0ddef
6554: 1: \x0d
6555: abc\r\ndef
6556: 0: abc\x0d\x0adef
6557: 1: \x0d
6558: 2: \x0a
6559:
6560: +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6561: Capturing subpattern count = 1
6562: No options
6563: No first char
6564: No need char
6565: /* this is a C style comment */\M
6566: Minimum match() limit = 120
6567: Minimum match() recursion limit = 6
6568: 0: /* this is a C style comment */
6569: 1: /* this is a C style comment */
6570:
6571: /(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
6572: Capturing subpattern count = 1
6573: Named capturing subpatterns:
6574: B 1
6575: No options
6576: No first char
6577: Need char = '.'
6578:
6579: /()()()()()()()()()()()()()()()()()()()()
6580: ()()()()()()()()()()()()()()()()()()()()
6581: ()()()()()()()()()()()()()()()()()()()()
6582: ()()()()()()()()()()()()()()()()()()()()
6583: ()()()()()()()()()()()()()()()()()()()()
6584: (.(.))/Ix
6585: Capturing subpattern count = 102
6586: Options: extended
6587: No first char
6588: No need char
6589: XY\O400
6590: 0: XY
6591: 1:
6592: 2:
6593: 3:
6594: 4:
6595: 5:
6596: 6:
6597: 7:
6598: 8:
6599: 9:
6600: 10:
6601: 11:
6602: 12:
6603: 13:
6604: 14:
6605: 15:
6606: 16:
6607: 17:
6608: 18:
6609: 19:
6610: 20:
6611: 21:
6612: 22:
6613: 23:
6614: 24:
6615: 25:
6616: 26:
6617: 27:
6618: 28:
6619: 29:
6620: 30:
6621: 31:
6622: 32:
6623: 33:
6624: 34:
6625: 35:
6626: 36:
6627: 37:
6628: 38:
6629: 39:
6630: 40:
6631: 41:
6632: 42:
6633: 43:
6634: 44:
6635: 45:
6636: 46:
6637: 47:
6638: 48:
6639: 49:
6640: 50:
6641: 51:
6642: 52:
6643: 53:
6644: 54:
6645: 55:
6646: 56:
6647: 57:
6648: 58:
6649: 59:
6650: 60:
6651: 61:
6652: 62:
6653: 63:
6654: 64:
6655: 65:
6656: 66:
6657: 67:
6658: 68:
6659: 69:
6660: 70:
6661: 71:
6662: 72:
6663: 73:
6664: 74:
6665: 75:
6666: 76:
6667: 77:
6668: 78:
6669: 79:
6670: 80:
6671: 81:
6672: 82:
6673: 83:
6674: 84:
6675: 85:
6676: 86:
6677: 87:
6678: 88:
6679: 89:
6680: 90:
6681: 91:
6682: 92:
6683: 93:
6684: 94:
6685: 95:
6686: 96:
6687: 97:
6688: 98:
6689: 99:
6690: 100:
6691: 101: XY
6692: 102: Y
6693:
6694: /(a*b|(?i:c*(?-i)d))/IS
6695: Capturing subpattern count = 1
6696: No options
6697: No first char
6698: No need char
6699: Subject length lower bound = 1
6700: Starting byte set: C a b c d
6701:
6702: /()[ab]xyz/IS
6703: Capturing subpattern count = 1
6704: No options
6705: No first char
6706: Need char = 'z'
6707: Subject length lower bound = 4
6708: Starting byte set: a b
6709:
6710: /(|)[ab]xyz/IS
6711: Capturing subpattern count = 1
6712: No options
6713: No first char
6714: Need char = 'z'
6715: Subject length lower bound = 4
6716: Starting byte set: a b
6717:
6718: /(|c)[ab]xyz/IS
6719: Capturing subpattern count = 1
6720: No options
6721: No first char
6722: Need char = 'z'
6723: Subject length lower bound = 4
6724: Starting byte set: a b c
6725:
6726: /(|c?)[ab]xyz/IS
6727: Capturing subpattern count = 1
6728: No options
6729: No first char
6730: Need char = 'z'
6731: Subject length lower bound = 4
6732: Starting byte set: a b c
6733:
6734: /(d?|c?)[ab]xyz/IS
6735: Capturing subpattern count = 1
6736: No options
6737: No first char
6738: Need char = 'z'
6739: Subject length lower bound = 4
6740: Starting byte set: a b c d
6741:
6742: /(d?|c)[ab]xyz/IS
6743: Capturing subpattern count = 1
6744: No options
6745: No first char
6746: Need char = 'z'
6747: Subject length lower bound = 4
6748: Starting byte set: a b c d
6749:
6750: /^a*b\d/DZ
6751: ------------------------------------------------------------------
6752: Bra
6753: ^
6754: a*+
6755: b
6756: \d
6757: Ket
6758: End
6759: ------------------------------------------------------------------
6760: Capturing subpattern count = 0
6761: Options: anchored
6762: No first char
6763: Need char = 'b'
6764:
6765: /^a*+b\d/DZ
6766: ------------------------------------------------------------------
6767: Bra
6768: ^
6769: a*+
6770: b
6771: \d
6772: Ket
6773: End
6774: ------------------------------------------------------------------
6775: Capturing subpattern count = 0
6776: Options: anchored
6777: No first char
6778: Need char = 'b'
6779:
6780: /^a*?b\d/DZ
6781: ------------------------------------------------------------------
6782: Bra
6783: ^
6784: a*+
6785: b
6786: \d
6787: Ket
6788: End
6789: ------------------------------------------------------------------
6790: Capturing subpattern count = 0
6791: Options: anchored
6792: No first char
6793: Need char = 'b'
6794:
6795: /^a+A\d/DZ
6796: ------------------------------------------------------------------
6797: Bra
6798: ^
6799: a++
6800: A
6801: \d
6802: Ket
6803: End
6804: ------------------------------------------------------------------
6805: Capturing subpattern count = 0
6806: Options: anchored
6807: No first char
6808: Need char = 'A'
6809: aaaA5
6810: 0: aaaA5
6811: ** Failers
6812: No match
6813: aaaa5
6814: No match
6815:
6816: /^a*A\d/IiDZ
6817: ------------------------------------------------------------------
6818: Bra
6819: ^
6820: /i a*
6821: /i A
6822: \d
6823: Ket
6824: End
6825: ------------------------------------------------------------------
6826: Capturing subpattern count = 0
6827: Options: anchored caseless
6828: No first char
6829: Need char = 'A' (caseless)
6830: aaaA5
6831: 0: aaaA5
6832: aaaa5
6833: 0: aaaa5
6834:
6835: /(a*|b*)[cd]/IS
6836: Capturing subpattern count = 1
6837: No options
6838: No first char
6839: No need char
6840: Subject length lower bound = 1
6841: Starting byte set: a b c d
6842:
6843: /(a+|b*)[cd]/IS
6844: Capturing subpattern count = 1
6845: No options
6846: No first char
6847: No need char
6848: Subject length lower bound = 1
6849: Starting byte set: a b c d
6850:
6851: /(a*|b+)[cd]/IS
6852: Capturing subpattern count = 1
6853: No options
6854: No first char
6855: No need char
6856: Subject length lower bound = 1
6857: Starting byte set: a b c d
6858:
6859: /(a+|b+)[cd]/IS
6860: Capturing subpattern count = 1
6861: No options
6862: No first char
6863: No need char
6864: Subject length lower bound = 2
6865: Starting byte set: a b
6866:
6867: /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6868: ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6869: (((
6870: a
6871: ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6872: ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6873: )))
6874: /Ix
6875: Capturing subpattern count = 203
6876: Options: extended
6877: First char = 'a'
6878: No need char
6879: large nest
6880: Matched, but too many substrings
6881: 0: a
6882: 1: a
6883: 2: a
6884: 3: a
6885: 4: a
6886: 5: a
6887: 6: a
6888: 7: a
6889: 8: a
6890: 9: a
6891: 10: a
6892: 11: a
6893: 12: a
6894: 13: a
6895: 14: a
6896:
6897: /a*\d/BZ
6898: ------------------------------------------------------------------
6899: Bra
6900: a*+
6901: \d
6902: Ket
6903: End
6904: ------------------------------------------------------------------
6905:
6906: /a*\D/BZ
6907: ------------------------------------------------------------------
6908: Bra
6909: a*
6910: \D
6911: Ket
6912: End
6913: ------------------------------------------------------------------
6914:
6915: /0*\d/BZ
6916: ------------------------------------------------------------------
6917: Bra
6918: 0*
6919: \d
6920: Ket
6921: End
6922: ------------------------------------------------------------------
6923:
6924: /0*\D/BZ
6925: ------------------------------------------------------------------
6926: Bra
6927: 0*+
6928: \D
6929: Ket
6930: End
6931: ------------------------------------------------------------------
6932:
6933: /a*\s/BZ
6934: ------------------------------------------------------------------
6935: Bra
6936: a*+
6937: \s
6938: Ket
6939: End
6940: ------------------------------------------------------------------
6941:
6942: /a*\S/BZ
6943: ------------------------------------------------------------------
6944: Bra
6945: a*
6946: \S
6947: Ket
6948: End
6949: ------------------------------------------------------------------
6950:
6951: / *\s/BZ
6952: ------------------------------------------------------------------
6953: Bra
6954: *
6955: \s
6956: Ket
6957: End
6958: ------------------------------------------------------------------
6959:
6960: / *\S/BZ
6961: ------------------------------------------------------------------
6962: Bra
6963: *+
6964: \S
6965: Ket
6966: End
6967: ------------------------------------------------------------------
6968:
6969: /a*\w/BZ
6970: ------------------------------------------------------------------
6971: Bra
6972: a*
6973: \w
6974: Ket
6975: End
6976: ------------------------------------------------------------------
6977:
6978: /a*\W/BZ
6979: ------------------------------------------------------------------
6980: Bra
6981: a*+
6982: \W
6983: Ket
6984: End
6985: ------------------------------------------------------------------
6986:
6987: /=*\w/BZ
6988: ------------------------------------------------------------------
6989: Bra
6990: =*+
6991: \w
6992: Ket
6993: End
6994: ------------------------------------------------------------------
6995:
6996: /=*\W/BZ
6997: ------------------------------------------------------------------
6998: Bra
6999: =*
7000: \W
7001: Ket
7002: End
7003: ------------------------------------------------------------------
7004:
7005: /\d*a/BZ
7006: ------------------------------------------------------------------
7007: Bra
7008: \d*+
7009: a
7010: Ket
7011: End
7012: ------------------------------------------------------------------
7013:
7014: /\d*2/BZ
7015: ------------------------------------------------------------------
7016: Bra
7017: \d*
7018: 2
7019: Ket
7020: End
7021: ------------------------------------------------------------------
7022:
7023: /\d*\d/BZ
7024: ------------------------------------------------------------------
7025: Bra
7026: \d*
7027: \d
7028: Ket
7029: End
7030: ------------------------------------------------------------------
7031:
7032: /\d*\D/BZ
7033: ------------------------------------------------------------------
7034: Bra
7035: \d*+
7036: \D
7037: Ket
7038: End
7039: ------------------------------------------------------------------
7040:
7041: /\d*\s/BZ
7042: ------------------------------------------------------------------
7043: Bra
7044: \d*+
7045: \s
7046: Ket
7047: End
7048: ------------------------------------------------------------------
7049:
7050: /\d*\S/BZ
7051: ------------------------------------------------------------------
7052: Bra
7053: \d*
7054: \S
7055: Ket
7056: End
7057: ------------------------------------------------------------------
7058:
7059: /\d*\w/BZ
7060: ------------------------------------------------------------------
7061: Bra
7062: \d*
7063: \w
7064: Ket
7065: End
7066: ------------------------------------------------------------------
7067:
7068: /\d*\W/BZ
7069: ------------------------------------------------------------------
7070: Bra
7071: \d*+
7072: \W
7073: Ket
7074: End
7075: ------------------------------------------------------------------
7076:
7077: /\D*a/BZ
7078: ------------------------------------------------------------------
7079: Bra
7080: \D*
7081: a
7082: Ket
7083: End
7084: ------------------------------------------------------------------
7085:
7086: /\D*2/BZ
7087: ------------------------------------------------------------------
7088: Bra
7089: \D*+
7090: 2
7091: Ket
7092: End
7093: ------------------------------------------------------------------
7094:
7095: /\D*\d/BZ
7096: ------------------------------------------------------------------
7097: Bra
7098: \D*+
7099: \d
7100: Ket
7101: End
7102: ------------------------------------------------------------------
7103:
7104: /\D*\D/BZ
7105: ------------------------------------------------------------------
7106: Bra
7107: \D*
7108: \D
7109: Ket
7110: End
7111: ------------------------------------------------------------------
7112:
7113: /\D*\s/BZ
7114: ------------------------------------------------------------------
7115: Bra
7116: \D*
7117: \s
7118: Ket
7119: End
7120: ------------------------------------------------------------------
7121:
7122: /\D*\S/BZ
7123: ------------------------------------------------------------------
7124: Bra
7125: \D*
7126: \S
7127: Ket
7128: End
7129: ------------------------------------------------------------------
7130:
7131: /\D*\w/BZ
7132: ------------------------------------------------------------------
7133: Bra
7134: \D*
7135: \w
7136: Ket
7137: End
7138: ------------------------------------------------------------------
7139:
7140: /\D*\W/BZ
7141: ------------------------------------------------------------------
7142: Bra
7143: \D*
7144: \W
7145: Ket
7146: End
7147: ------------------------------------------------------------------
7148:
7149: /\s*a/BZ
7150: ------------------------------------------------------------------
7151: Bra
7152: \s*+
7153: a
7154: Ket
7155: End
7156: ------------------------------------------------------------------
7157:
7158: /\s*2/BZ
7159: ------------------------------------------------------------------
7160: Bra
7161: \s*+
7162: 2
7163: Ket
7164: End
7165: ------------------------------------------------------------------
7166:
7167: /\s*\d/BZ
7168: ------------------------------------------------------------------
7169: Bra
7170: \s*+
7171: \d
7172: Ket
7173: End
7174: ------------------------------------------------------------------
7175:
7176: /\s*\D/BZ
7177: ------------------------------------------------------------------
7178: Bra
7179: \s*
7180: \D
7181: Ket
7182: End
7183: ------------------------------------------------------------------
7184:
7185: /\s*\s/BZ
7186: ------------------------------------------------------------------
7187: Bra
7188: \s*
7189: \s
7190: Ket
7191: End
7192: ------------------------------------------------------------------
7193:
7194: /\s*\S/BZ
7195: ------------------------------------------------------------------
7196: Bra
7197: \s*+
7198: \S
7199: Ket
7200: End
7201: ------------------------------------------------------------------
7202:
7203: /\s*\w/BZ
7204: ------------------------------------------------------------------
7205: Bra
7206: \s*+
7207: \w
7208: Ket
7209: End
7210: ------------------------------------------------------------------
7211:
7212: /\s*\W/BZ
7213: ------------------------------------------------------------------
7214: Bra
7215: \s*
7216: \W
7217: Ket
7218: End
7219: ------------------------------------------------------------------
7220:
7221: /\S*a/BZ
7222: ------------------------------------------------------------------
7223: Bra
7224: \S*
7225: a
7226: Ket
7227: End
7228: ------------------------------------------------------------------
7229:
7230: /\S*2/BZ
7231: ------------------------------------------------------------------
7232: Bra
7233: \S*
7234: 2
7235: Ket
7236: End
7237: ------------------------------------------------------------------
7238:
7239: /\S*\d/BZ
7240: ------------------------------------------------------------------
7241: Bra
7242: \S*
7243: \d
7244: Ket
7245: End
7246: ------------------------------------------------------------------
7247:
7248: /\S*\D/BZ
7249: ------------------------------------------------------------------
7250: Bra
7251: \S*
7252: \D
7253: Ket
7254: End
7255: ------------------------------------------------------------------
7256:
7257: /\S*\s/BZ
7258: ------------------------------------------------------------------
7259: Bra
7260: \S*+
7261: \s
7262: Ket
7263: End
7264: ------------------------------------------------------------------
7265:
7266: /\S*\S/BZ
7267: ------------------------------------------------------------------
7268: Bra
7269: \S*
7270: \S
7271: Ket
7272: End
7273: ------------------------------------------------------------------
7274:
7275: /\S*\w/BZ
7276: ------------------------------------------------------------------
7277: Bra
7278: \S*
7279: \w
7280: Ket
7281: End
7282: ------------------------------------------------------------------
7283:
7284: /\S*\W/BZ
7285: ------------------------------------------------------------------
7286: Bra
7287: \S*
7288: \W
7289: Ket
7290: End
7291: ------------------------------------------------------------------
7292:
7293: /\w*a/BZ
7294: ------------------------------------------------------------------
7295: Bra
7296: \w*
7297: a
7298: Ket
7299: End
7300: ------------------------------------------------------------------
7301:
7302: /\w*2/BZ
7303: ------------------------------------------------------------------
7304: Bra
7305: \w*
7306: 2
7307: Ket
7308: End
7309: ------------------------------------------------------------------
7310:
7311: /\w*\d/BZ
7312: ------------------------------------------------------------------
7313: Bra
7314: \w*
7315: \d
7316: Ket
7317: End
7318: ------------------------------------------------------------------
7319:
7320: /\w*\D/BZ
7321: ------------------------------------------------------------------
7322: Bra
7323: \w*
7324: \D
7325: Ket
7326: End
7327: ------------------------------------------------------------------
7328:
7329: /\w*\s/BZ
7330: ------------------------------------------------------------------
7331: Bra
7332: \w*+
7333: \s
7334: Ket
7335: End
7336: ------------------------------------------------------------------
7337:
7338: /\w*\S/BZ
7339: ------------------------------------------------------------------
7340: Bra
7341: \w*
7342: \S
7343: Ket
7344: End
7345: ------------------------------------------------------------------
7346:
7347: /\w*\w/BZ
7348: ------------------------------------------------------------------
7349: Bra
7350: \w*
7351: \w
7352: Ket
7353: End
7354: ------------------------------------------------------------------
7355:
7356: /\w*\W/BZ
7357: ------------------------------------------------------------------
7358: Bra
7359: \w*+
7360: \W
7361: Ket
7362: End
7363: ------------------------------------------------------------------
7364:
7365: /\W*a/BZ
7366: ------------------------------------------------------------------
7367: Bra
7368: \W*+
7369: a
7370: Ket
7371: End
7372: ------------------------------------------------------------------
7373:
7374: /\W*2/BZ
7375: ------------------------------------------------------------------
7376: Bra
7377: \W*+
7378: 2
7379: Ket
7380: End
7381: ------------------------------------------------------------------
7382:
7383: /\W*\d/BZ
7384: ------------------------------------------------------------------
7385: Bra
7386: \W*+
7387: \d
7388: Ket
7389: End
7390: ------------------------------------------------------------------
7391:
7392: /\W*\D/BZ
7393: ------------------------------------------------------------------
7394: Bra
7395: \W*
7396: \D
7397: Ket
7398: End
7399: ------------------------------------------------------------------
7400:
7401: /\W*\s/BZ
7402: ------------------------------------------------------------------
7403: Bra
7404: \W*
7405: \s
7406: Ket
7407: End
7408: ------------------------------------------------------------------
7409:
7410: /\W*\S/BZ
7411: ------------------------------------------------------------------
7412: Bra
7413: \W*
7414: \S
7415: Ket
7416: End
7417: ------------------------------------------------------------------
7418:
7419: /\W*\w/BZ
7420: ------------------------------------------------------------------
7421: Bra
7422: \W*+
7423: \w
7424: Ket
7425: End
7426: ------------------------------------------------------------------
7427:
7428: /\W*\W/BZ
7429: ------------------------------------------------------------------
7430: Bra
7431: \W*
7432: \W
7433: Ket
7434: End
7435: ------------------------------------------------------------------
7436:
7437: /[^a]+a/BZ
7438: ------------------------------------------------------------------
7439: Bra
7440: [^a]++
7441: a
7442: Ket
7443: End
7444: ------------------------------------------------------------------
7445:
7446: /[^a]+a/BZi
7447: ------------------------------------------------------------------
7448: Bra
1.1.1.2 misho 7449: /i [^a]++
1.1 misho 7450: /i a
7451: Ket
7452: End
7453: ------------------------------------------------------------------
7454:
7455: /[^a]+A/BZi
7456: ------------------------------------------------------------------
7457: Bra
1.1.1.2 misho 7458: /i [^a]++
1.1 misho 7459: /i A
7460: Ket
7461: End
7462: ------------------------------------------------------------------
7463:
7464: /[^a]+b/BZ
7465: ------------------------------------------------------------------
7466: Bra
7467: [^a]+
7468: b
7469: Ket
7470: End
7471: ------------------------------------------------------------------
7472:
7473: /[^a]+\d/BZ
7474: ------------------------------------------------------------------
7475: Bra
7476: [^a]+
7477: \d
7478: Ket
7479: End
7480: ------------------------------------------------------------------
7481:
7482: /a*[^a]/BZ
7483: ------------------------------------------------------------------
7484: Bra
7485: a*
7486: [^a]
7487: Ket
7488: End
7489: ------------------------------------------------------------------
7490:
7491: /(?P<abc>x)(?P<xyz>y)/I
7492: Capturing subpattern count = 2
7493: Named capturing subpatterns:
7494: abc 1
7495: xyz 2
7496: No options
7497: First char = 'x'
7498: Need char = 'y'
7499: xy\Cabc\Cxyz
7500: 0: xy
7501: 1: x
7502: 2: y
7503: C x (1) abc
7504: C y (1) xyz
7505:
7506: /(?<abc>x)(?'xyz'y)/I
7507: Capturing subpattern count = 2
7508: Named capturing subpatterns:
7509: abc 1
7510: xyz 2
7511: No options
7512: First char = 'x'
7513: Need char = 'y'
7514: xy\Cabc\Cxyz
7515: 0: xy
7516: 1: x
7517: 2: y
7518: C x (1) abc
7519: C y (1) xyz
7520:
7521: /(?<abc'x)(?'xyz'y)/I
7522: Failed: syntax error in subpattern name (missing terminator) at offset 6
7523:
7524: /(?<abc>x)(?'xyz>y)/I
7525: Failed: syntax error in subpattern name (missing terminator) at offset 15
7526:
7527: /(?P'abc'x)(?P<xyz>y)/I
7528: Failed: unrecognized character after (?P at offset 3
7529:
7530: /^(?:(?(ZZ)a|b)(?<ZZ>X))+/
7531: bXaX
7532: 0: bXaX
7533: 1: X
7534: bXbX
7535: 0: bX
7536: 1: X
7537: ** Failers
7538: No match
7539: aXaX
7540: No match
7541: aXbX
7542: No match
7543:
7544: /^(?P>abc)(?<abcd>xxx)/
7545: Failed: reference to non-existent subpattern at offset 8
7546:
7547: /^(?P>abc)(?<abc>x|y)/
7548: xx
7549: 0: xx
7550: 1: x
7551: xy
7552: 0: xy
7553: 1: y
7554: yy
7555: 0: yy
7556: 1: y
7557: yx
7558: 0: yx
7559: 1: x
7560:
7561: /^(?P>abc)(?P<abc>x|y)/
7562: xx
7563: 0: xx
7564: 1: x
7565: xy
7566: 0: xy
7567: 1: y
7568: yy
7569: 0: yy
7570: 1: y
7571: yx
7572: 0: yx
7573: 1: x
7574:
7575: /^((?(abc)a|b)(?<abc>x|y))+/
7576: bxay
7577: 0: bxay
7578: 1: ay
7579: 2: y
7580: bxby
7581: 0: bx
7582: 1: bx
7583: 2: x
7584: ** Failers
7585: No match
7586: axby
7587: No match
7588:
7589: /^(((?P=abc)|X)(?<abc>x|y))+/
7590: XxXxxx
7591: 0: XxXxxx
7592: 1: xx
7593: 2: x
7594: 3: x
7595: XxXyyx
7596: 0: XxXyyx
7597: 1: yx
7598: 2: y
7599: 3: x
7600: XxXyxx
7601: 0: XxXy
7602: 1: Xy
7603: 2: X
7604: 3: y
7605: ** Failers
7606: No match
7607: x
7608: No match
7609:
7610: /^(?1)(abc)/
7611: abcabc
7612: 0: abcabc
7613: 1: abc
7614:
7615: /^(?:(?:\1|X)(a|b))+/
7616: Xaaa
7617: 0: Xaaa
7618: 1: a
7619: Xaba
7620: 0: Xa
7621: 1: a
7622:
7623: /^[\E\Qa\E-\Qz\E]+/BZ
7624: ------------------------------------------------------------------
7625: Bra
7626: ^
7627: [a-z]+
7628: Ket
7629: End
7630: ------------------------------------------------------------------
7631:
7632: /^[a\Q]bc\E]/BZ
7633: ------------------------------------------------------------------
7634: Bra
7635: ^
7636: [\]a-c]
7637: Ket
7638: End
7639: ------------------------------------------------------------------
7640:
7641: /^[a-\Q\E]/BZ
7642: ------------------------------------------------------------------
7643: Bra
7644: ^
7645: [\-a]
7646: Ket
7647: End
7648: ------------------------------------------------------------------
7649:
7650: /^(?P>abc)[()](?<abc>)/BZ
7651: ------------------------------------------------------------------
7652: Bra
7653: ^
7654: Recurse
7655: [()]
7656: CBra 1
7657: Ket
7658: Ket
7659: End
7660: ------------------------------------------------------------------
7661:
7662: /^((?(abc)y)[()](?P<abc>x))+/BZ
7663: ------------------------------------------------------------------
7664: Bra
7665: ^
7666: CBra 1
7667: Cond
7668: 2 Cond nref
7669: y
7670: Ket
7671: [()]
7672: CBra 2
7673: x
7674: Ket
7675: KetRmax
7676: Ket
7677: End
7678: ------------------------------------------------------------------
7679: (xy)x
7680: 0: (xy)x
7681: 1: y)x
7682: 2: x
7683:
7684: /^(?P>abc)\Q()\E(?<abc>)/BZ
7685: ------------------------------------------------------------------
7686: Bra
7687: ^
7688: Recurse
7689: ()
7690: CBra 1
7691: Ket
7692: Ket
7693: End
7694: ------------------------------------------------------------------
7695:
7696: /^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
7697: ------------------------------------------------------------------
7698: Bra
7699: ^
7700: Recurse
7701: [(\]a]
7702: CBra 1
7703: Ket
7704: Ket
7705: End
7706: ------------------------------------------------------------------
7707:
7708: /^(?P>abc) # this is (a comment)
7709: (?<abc>)/BZx
7710: ------------------------------------------------------------------
7711: Bra
7712: ^
7713: Recurse
7714: CBra 1
7715: Ket
7716: Ket
7717: End
7718: ------------------------------------------------------------------
7719:
7720: /^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
7721: Capturing subpattern count = 4
7722: Max back reference = 4
7723: Named capturing subpatterns:
7724: four 4
7725: one 1
7726: three 3
7727: two 2
7728: Options: anchored caseless
7729: No first char
7730: No need char
7731: 1221
7732: 0: 1221
7733: 1: 1221
7734: 2: 1
7735: Satan, oscillate my metallic sonatas!
7736: 0: Satan, oscillate my metallic sonatas!
7737: 1: <unset>
7738: 2: <unset>
7739: 3: Satan, oscillate my metallic sonatas
7740: 4: S
7741: A man, a plan, a canal: Panama!
7742: 0: A man, a plan, a canal: Panama!
7743: 1: <unset>
7744: 2: <unset>
7745: 3: A man, a plan, a canal: Panama
7746: 4: A
7747: Able was I ere I saw Elba.
7748: 0: Able was I ere I saw Elba.
7749: 1: <unset>
7750: 2: <unset>
7751: 3: Able was I ere I saw Elba
7752: 4: A
7753: *** Failers
7754: No match
7755: The quick brown fox
7756: No match
7757:
7758: /(?=(\w+))\1:/I
7759: Capturing subpattern count = 1
7760: Max back reference = 1
7761: No options
7762: No first char
7763: Need char = ':'
7764: abcd:
7765: 0: abcd:
7766: 1: abcd
7767:
7768: /(?=(?'abc'\w+))\k<abc>:/I
7769: Capturing subpattern count = 1
7770: Max back reference = 1
7771: Named capturing subpatterns:
7772: abc 1
7773: No options
7774: No first char
7775: Need char = ':'
7776: abcd:
7777: 0: abcd:
7778: 1: abcd
7779:
7780: /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7781: adaa
7782: 0: adaa
7783: 1: a
7784: 2: d
7785: ** Failers
7786: No match
7787: addd
7788: No match
7789: adbb
7790: No match
7791:
7792: /(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
7793: bdaa
7794: 0: bdaa
7795: 1: b
7796: 2: d
7797: bdab
7798: 0: bdab
7799: 1: b
7800: 2: d
7801: ** Failers
7802: No match
7803: bddd
7804: No match
7805:
7806: /(?(<bc))/
7807: Failed: malformed number or name after (?( at offset 6
7808:
7809: /(?(''))/
7810: Failed: assertion expected after (?( at offset 4
7811:
7812: /(?('R')stuff)/
7813: Failed: reference to non-existent subpattern at offset 7
7814:
7815: /((abc (?(R) (?(R1)1) (?(R2)2) X | (?1) (?2) (?R) ))) /x
7816: abcabc1Xabc2XabcXabcabc
7817: 0: abcabc1Xabc2XabcX
7818: 1: abcabc1Xabc2XabcX
7819: 2: abcabc1Xabc2XabcX
7820:
7821: /(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
7822: abcabc1Xabc2XabcXabcabc
7823: 0: abcabc1Xabc2XabcX
7824: 1: abcabc1Xabc2XabcX
7825: 2: abcabc1Xabc2XabcX
7826:
7827: /(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
7828: Failed: reference to non-existent subpattern at offset 29
7829:
7830: /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
7831: abcabc1Xabc2XabcXabcabc
7832: 0: abcabc1Xabc2XabcX
7833: 1: abcabc1Xabc2XabcX
7834: 2: abcabc1Xabc2XabcX
7835:
7836: /^(?(DEFINE) abc | xyz ) /x
7837: Failed: DEFINE group contains more than one branch at offset 22
7838:
7839: /(?(DEFINE) abc) xyz/xI
7840: Capturing subpattern count = 0
7841: Options: extended
7842: First char = 'x'
7843: Need char = 'z'
7844:
7845: /(a|)*\d/
7846: \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7847: No match
7848: \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
7849: Matched, but too many substrings
7850:
7851: /^a.b/<lf>
7852: a\rb
7853: 0: a\x0db
7854: a\nb\<cr>
7855: 0: a\x0ab
7856: a\x85b\<anycrlf>
7857: 0: a\x85b
7858: ** Failers
7859: No match
7860: a\nb
7861: No match
7862: a\nb\<any>
7863: No match
7864: a\rb\<cr>
7865: No match
7866: a\rb\<any>
7867: No match
7868: a\x85b\<any>
7869: No match
7870: a\rb\<anycrlf>
7871: No match
7872:
7873: /^abc./mgx<any>
7874: abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7875: 0: abc1
7876: 0: abc2
7877: 0: abc3
7878: 0: abc4
7879: 0: abc5
7880: 0: abc6
7881: 0: abc7
7882:
7883: /abc.$/mgx<any>
7884: abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
7885: 0: abc1
7886: 0: abc2
7887: 0: abc3
7888: 0: abc4
7889: 0: abc5
7890: 0: abc6
7891: 0: abc9
7892:
7893: /a/<cr><any>
7894:
7895: /a/<any><crlf>
7896: Failed: inconsistent NEWLINE options at offset 0
7897:
7898: /^a\Rb/<bsr_unicode>
7899: a\nb
7900: 0: a\x0ab
7901: a\rb
7902: 0: a\x0db
7903: a\r\nb
7904: 0: a\x0d\x0ab
7905: a\x0bb
7906: 0: a\x0bb
7907: a\x0cb
7908: 0: a\x0cb
7909: a\x85b
7910: 0: a\x85b
7911: ** Failers
7912: No match
7913: a\n\rb
7914: No match
7915:
7916: /^a\R*b/<bsr_unicode>
7917: ab
7918: 0: ab
7919: a\nb
7920: 0: a\x0ab
7921: a\rb
7922: 0: a\x0db
7923: a\r\nb
7924: 0: a\x0d\x0ab
7925: a\x0bb
7926: 0: a\x0bb
7927: a\x0cb
7928: 0: a\x0cb
7929: a\x85b
7930: 0: a\x85b
7931: a\n\rb
7932: 0: a\x0a\x0db
7933: a\n\r\x85\x0cb
7934: 0: a\x0a\x0d\x85\x0cb
7935:
7936: /^a\R+b/<bsr_unicode>
7937: a\nb
7938: 0: a\x0ab
7939: a\rb
7940: 0: a\x0db
7941: a\r\nb
7942: 0: a\x0d\x0ab
7943: a\x0bb
7944: 0: a\x0bb
7945: a\x0cb
7946: 0: a\x0cb
7947: a\x85b
7948: 0: a\x85b
7949: a\n\rb
7950: 0: a\x0a\x0db
7951: a\n\r\x85\x0cb
7952: 0: a\x0a\x0d\x85\x0cb
7953: ** Failers
7954: No match
7955: ab
7956: No match
7957:
7958: /^a\R{1,3}b/<bsr_unicode>
7959: a\nb
7960: 0: a\x0ab
7961: a\n\rb
7962: 0: a\x0a\x0db
7963: a\n\r\x85b
7964: 0: a\x0a\x0d\x85b
7965: a\r\n\r\nb
7966: 0: a\x0d\x0a\x0d\x0ab
7967: a\r\n\r\n\r\nb
7968: 0: a\x0d\x0a\x0d\x0a\x0d\x0ab
7969: a\n\r\n\rb
7970: 0: a\x0a\x0d\x0a\x0db
7971: a\n\n\r\nb
7972: 0: a\x0a\x0a\x0d\x0ab
7973: ** Failers
7974: No match
7975: a\n\n\n\rb
7976: No match
7977: a\r
7978: No match
7979:
7980: /^a[\R]b/<bsr_unicode>
7981: aRb
7982: 0: aRb
7983: ** Failers
7984: No match
7985: a\nb
7986: No match
7987:
7988: /(?&abc)X(?<abc>P)/I
7989: Capturing subpattern count = 1
7990: Named capturing subpatterns:
7991: abc 1
7992: No options
7993: No first char
7994: Need char = 'P'
7995: abcPXP123
7996: 0: PXP
7997: 1: P
7998:
7999: /(?1)X(?<abc>P)/I
8000: Capturing subpattern count = 1
8001: Named capturing subpatterns:
8002: abc 1
8003: No options
8004: No first char
8005: Need char = 'P'
8006: abcPXP123
8007: 0: PXP
8008: 1: P
8009:
8010: /(?:a(?&abc)b)*(?<abc>x)/
8011: 123axbaxbaxbx456
8012: 0: axbaxbaxbx
8013: 1: x
8014: 123axbaxbaxb456
8015: 0: x
8016: 1: x
8017:
8018: /(?:a(?&abc)b){1,5}(?<abc>x)/
8019: 123axbaxbaxbx456
8020: 0: axbaxbaxbx
8021: 1: x
8022:
8023: /(?:a(?&abc)b){2,5}(?<abc>x)/
8024: 123axbaxbaxbx456
8025: 0: axbaxbaxbx
8026: 1: x
8027:
8028: /(?:a(?&abc)b){2,}(?<abc>x)/
8029: 123axbaxbaxbx456
8030: 0: axbaxbaxbx
8031: 1: x
8032:
8033: /(abc)(?i:(?1))/
8034: defabcabcxyz
8035: 0: abcabc
8036: 1: abc
8037: DEFabcABCXYZ
8038: No match
8039:
8040: /(abc)(?:(?i)(?1))/
8041: defabcabcxyz
8042: 0: abcabc
8043: 1: abc
8044: DEFabcABCXYZ
8045: No match
8046:
8047: /^(a)\g-2/
8048: Failed: reference to non-existent subpattern at offset 7
8049:
8050: /^(a)\g/
8051: Failed: a numbered reference must not be zero at offset 5
8052:
8053: /^(a)\g{0}/
8054: Failed: a numbered reference must not be zero at offset 8
8055:
8056: /^(a)\g{3/
8057: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
8058:
8059: /^(a)\g{4a}/
8060: Failed: reference to non-existent subpattern at offset 9
8061:
8062: /^a.b/<lf>
8063: a\rb
8064: 0: a\x0db
8065: *** Failers
8066: No match
8067: a\nb
8068: No match
8069:
8070: /.+foo/
8071: afoo
8072: 0: afoo
8073: ** Failers
8074: No match
8075: \r\nfoo
8076: No match
8077: \nfoo
8078: No match
8079:
8080: /.+foo/<crlf>
8081: afoo
8082: 0: afoo
8083: \nfoo
8084: 0: \x0afoo
8085: ** Failers
8086: No match
8087: \r\nfoo
8088: No match
8089:
8090: /.+foo/<any>
8091: afoo
8092: 0: afoo
8093: ** Failers
8094: No match
8095: \nfoo
8096: No match
8097: \r\nfoo
8098: No match
8099:
8100: /.+foo/s
8101: afoo
8102: 0: afoo
8103: \r\nfoo
8104: 0: \x0d\x0afoo
8105: \nfoo
8106: 0: \x0afoo
8107:
8108: /^$/mg<any>
8109: abc\r\rxyz
8110: 0:
8111: abc\n\rxyz
8112: 0:
8113: ** Failers
8114: No match
8115: abc\r\nxyz
8116: No match
8117:
8118: /(?m)^$/<any>g+
8119: abc\r\n\r\n
8120: 0:
8121: 0+ \x0d\x0a
8122:
8123: /(?m)^$|^\r\n/<any>g+
8124: abc\r\n\r\n
8125: 0:
8126: 0+ \x0d\x0a
8127: 0: \x0d\x0a
8128: 0+
8129:
8130: /(?m)$/<any>g+
8131: abc\r\n\r\n
8132: 0:
8133: 0+ \x0d\x0a\x0d\x0a
8134: 0:
8135: 0+ \x0d\x0a
8136: 0:
8137: 0+
8138:
8139: /abc.$/mgx<anycrlf>
8140: abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
8141: 0: abc1
8142: 0: abc4
8143: 0: abc5
8144: 0: abc9
8145:
8146: /^X/m
8147: XABC
8148: 0: X
8149: ** Failers
8150: No match
8151: XABC\B
8152: No match
8153:
8154: /(ab|c)(?-1)/BZ
8155: ------------------------------------------------------------------
8156: Bra
8157: CBra 1
8158: ab
8159: Alt
8160: c
8161: Ket
8162: Recurse
8163: Ket
8164: End
8165: ------------------------------------------------------------------
8166: abc
8167: 0: abc
8168: 1: ab
8169:
8170: /xy(?+1)(abc)/BZ
8171: ------------------------------------------------------------------
8172: Bra
8173: xy
8174: Recurse
8175: CBra 1
8176: abc
8177: Ket
8178: Ket
8179: End
8180: ------------------------------------------------------------------
8181: xyabcabc
8182: 0: xyabcabc
8183: 1: abc
8184: ** Failers
8185: No match
8186: xyabc
8187: No match
8188:
8189: /x(?-0)y/
8190: Failed: a numbered reference must not be zero at offset 5
8191:
8192: /x(?-1)y/
8193: Failed: reference to non-existent subpattern at offset 5
8194:
8195: /x(?+0)y/
8196: Failed: a numbered reference must not be zero at offset 5
8197:
8198: /x(?+1)y/
8199: Failed: reference to non-existent subpattern at offset 5
8200:
8201: /^(abc)?(?(-1)X|Y)/BZ
8202: ------------------------------------------------------------------
8203: Bra
8204: ^
8205: Brazero
8206: CBra 1
8207: abc
8208: Ket
8209: Cond
8210: 1 Cond ref
8211: X
8212: Alt
8213: Y
8214: Ket
8215: Ket
8216: End
8217: ------------------------------------------------------------------
8218: abcX
8219: 0: abcX
8220: 1: abc
8221: Y
8222: 0: Y
8223: ** Failers
8224: No match
8225: abcY
8226: No match
8227:
8228: /^((?(+1)X|Y)(abc))+/BZ
8229: ------------------------------------------------------------------
8230: Bra
8231: ^
8232: CBra 1
8233: Cond
8234: 2 Cond ref
8235: X
8236: Alt
8237: Y
8238: Ket
8239: CBra 2
8240: abc
8241: Ket
8242: KetRmax
8243: Ket
8244: End
8245: ------------------------------------------------------------------
8246: YabcXabc
8247: 0: YabcXabc
8248: 1: Xabc
8249: 2: abc
8250: YabcXabcXabc
8251: 0: YabcXabcXabc
8252: 1: Xabc
8253: 2: abc
8254: ** Failers
8255: No match
8256: XabcXabc
8257: No match
8258:
8259: /(?(-1)a)/BZ
8260: Failed: reference to non-existent subpattern at offset 6
8261:
8262: /((?(-1)a))/BZ
8263: ------------------------------------------------------------------
8264: Bra
8265: CBra 1
8266: Cond
8267: 1 Cond ref
8268: a
8269: Ket
8270: Ket
8271: Ket
8272: End
8273: ------------------------------------------------------------------
8274:
8275: /((?(-2)a))/BZ
8276: Failed: reference to non-existent subpattern at offset 7
8277:
8278: /^(?(+1)X|Y)(.)/BZ
8279: ------------------------------------------------------------------
8280: Bra
8281: ^
8282: Cond
8283: 1 Cond ref
8284: X
8285: Alt
8286: Y
8287: Ket
8288: CBra 1
8289: Any
8290: Ket
8291: Ket
8292: End
8293: ------------------------------------------------------------------
8294: Y!
8295: 0: Y!
8296: 1: !
8297:
8298: /(?<A>tom|bon)-\k{A}/
8299: tom-tom
8300: 0: tom-tom
8301: 1: tom
8302: bon-bon
8303: 0: bon-bon
8304: 1: bon
8305: ** Failers
8306: No match
8307: tom-bon
8308: No match
8309:
8310: /\g{A/
8311: Failed: syntax error in subpattern name (missing terminator) at offset 4
8312:
8313: /(?|(abc)|(xyz))/BZ
8314: ------------------------------------------------------------------
8315: Bra
8316: Bra
8317: CBra 1
8318: abc
8319: Ket
8320: Alt
8321: CBra 1
8322: xyz
8323: Ket
8324: Ket
8325: Ket
8326: End
8327: ------------------------------------------------------------------
8328: >abc<
8329: 0: abc
8330: 1: abc
8331: >xyz<
8332: 0: xyz
8333: 1: xyz
8334:
8335: /(x)(?|(abc)|(xyz))(x)/BZ
8336: ------------------------------------------------------------------
8337: Bra
8338: CBra 1
8339: x
8340: Ket
8341: Bra
8342: CBra 2
8343: abc
8344: Ket
8345: Alt
8346: CBra 2
8347: xyz
8348: Ket
8349: Ket
8350: CBra 3
8351: x
8352: Ket
8353: Ket
8354: End
8355: ------------------------------------------------------------------
8356: xabcx
8357: 0: xabcx
8358: 1: x
8359: 2: abc
8360: 3: x
8361: xxyzx
8362: 0: xxyzx
8363: 1: x
8364: 2: xyz
8365: 3: x
8366:
8367: /(x)(?|(abc)(pqr)|(xyz))(x)/BZ
8368: ------------------------------------------------------------------
8369: Bra
8370: CBra 1
8371: x
8372: Ket
8373: Bra
8374: CBra 2
8375: abc
8376: Ket
8377: CBra 3
8378: pqr
8379: Ket
8380: Alt
8381: CBra 2
8382: xyz
8383: Ket
8384: Ket
8385: CBra 4
8386: x
8387: Ket
8388: Ket
8389: End
8390: ------------------------------------------------------------------
8391: xabcpqrx
8392: 0: xabcpqrx
8393: 1: x
8394: 2: abc
8395: 3: pqr
8396: 4: x
8397: xxyzx
8398: 0: xxyzx
8399: 1: x
8400: 2: xyz
8401: 3: <unset>
8402: 4: x
8403:
8404: /\H++X/BZ
8405: ------------------------------------------------------------------
8406: Bra
8407: \H++
8408: X
8409: Ket
8410: End
8411: ------------------------------------------------------------------
8412: ** Failers
8413: No match
8414: XXXX
8415: No match
8416:
8417: /\H+\hY/BZ
8418: ------------------------------------------------------------------
8419: Bra
8420: \H++
8421: \h
8422: Y
8423: Ket
8424: End
8425: ------------------------------------------------------------------
8426: XXXX Y
8427: 0: XXXX Y
8428:
8429: /\H+ Y/BZ
8430: ------------------------------------------------------------------
8431: Bra
8432: \H++
8433: Y
8434: Ket
8435: End
8436: ------------------------------------------------------------------
8437:
8438: /\h+A/BZ
8439: ------------------------------------------------------------------
8440: Bra
8441: \h++
8442: A
8443: Ket
8444: End
8445: ------------------------------------------------------------------
8446:
8447: /\v*B/BZ
8448: ------------------------------------------------------------------
8449: Bra
8450: \v*+
8451: B
8452: Ket
8453: End
8454: ------------------------------------------------------------------
8455:
8456: /\V+\x0a/BZ
8457: ------------------------------------------------------------------
8458: Bra
8459: \V++
8460: \x0a
8461: Ket
8462: End
8463: ------------------------------------------------------------------
8464:
8465: /A+\h/BZ
8466: ------------------------------------------------------------------
8467: Bra
8468: A++
8469: \h
8470: Ket
8471: End
8472: ------------------------------------------------------------------
8473:
8474: / *\H/BZ
8475: ------------------------------------------------------------------
8476: Bra
8477: *+
8478: \H
8479: Ket
8480: End
8481: ------------------------------------------------------------------
8482:
8483: /A*\v/BZ
8484: ------------------------------------------------------------------
8485: Bra
8486: A*+
8487: \v
8488: Ket
8489: End
8490: ------------------------------------------------------------------
8491:
8492: /\x0b*\V/BZ
8493: ------------------------------------------------------------------
8494: Bra
8495: \x0b*+
8496: \V
8497: Ket
8498: End
8499: ------------------------------------------------------------------
8500:
8501: /\d+\h/BZ
8502: ------------------------------------------------------------------
8503: Bra
8504: \d++
8505: \h
8506: Ket
8507: End
8508: ------------------------------------------------------------------
8509:
8510: /\d*\v/BZ
8511: ------------------------------------------------------------------
8512: Bra
8513: \d*+
8514: \v
8515: Ket
8516: End
8517: ------------------------------------------------------------------
8518:
8519: /S+\h\S+\v/BZ
8520: ------------------------------------------------------------------
8521: Bra
8522: S++
8523: \h
8524: \S++
8525: \v
8526: Ket
8527: End
8528: ------------------------------------------------------------------
8529:
8530: /\w{3,}\h\w+\v/BZ
8531: ------------------------------------------------------------------
8532: Bra
8533: \w{3}
8534: \w*+
8535: \h
8536: \w++
8537: \v
8538: Ket
8539: End
8540: ------------------------------------------------------------------
8541:
8542: /\h+\d\h+\w\h+\S\h+\H/BZ
8543: ------------------------------------------------------------------
8544: Bra
8545: \h++
8546: \d
8547: \h++
8548: \w
8549: \h++
8550: \S
8551: \h++
8552: \H
8553: Ket
8554: End
8555: ------------------------------------------------------------------
8556:
8557: /\v+\d\v+\w\v+\S\v+\V/BZ
8558: ------------------------------------------------------------------
8559: Bra
8560: \v++
8561: \d
8562: \v++
8563: \w
8564: \v+
8565: \S
8566: \v++
8567: \V
8568: Ket
8569: End
8570: ------------------------------------------------------------------
8571:
8572: /\H+\h\H+\d/BZ
8573: ------------------------------------------------------------------
8574: Bra
8575: \H++
8576: \h
8577: \H+
8578: \d
8579: Ket
8580: End
8581: ------------------------------------------------------------------
8582:
8583: /\V+\v\V+\w/BZ
8584: ------------------------------------------------------------------
8585: Bra
8586: \V++
8587: \v
8588: \V+
8589: \w
8590: Ket
8591: End
8592: ------------------------------------------------------------------
8593:
8594: /\( (?: [^()]* | (?R) )* \)/x
8595: \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)
8596: 0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8597:
8598: /[\E]AAA/
8599: Failed: missing terminating ] for character class at offset 7
8600:
8601: /[\Q\E]AAA/
8602: Failed: missing terminating ] for character class at offset 9
8603:
8604: /[^\E]AAA/
8605: Failed: missing terminating ] for character class at offset 8
8606:
8607: /[^\Q\E]AAA/
8608: Failed: missing terminating ] for character class at offset 10
8609:
8610: /[\E^]AAA/
8611: Failed: missing terminating ] for character class at offset 8
8612:
8613: /[\Q\E^]AAA/
8614: Failed: missing terminating ] for character class at offset 10
8615:
8616: /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
8617: ------------------------------------------------------------------
8618: Bra
8619: A
8620: *PRUNE
8621: B
8622: *SKIP
8623: C
8624: *THEN
8625: D
8626: *COMMIT
8627: E
8628: *FAIL
8629: F
8630: *FAIL
8631: G
8632: *FAIL
8633: H
8634: *ACCEPT
8635: I
8636: Ket
8637: End
8638: ------------------------------------------------------------------
8639:
8640: /^a+(*FAIL)/C
8641: aaaaaa
8642: --->aaaaaa
8643: +0 ^ ^
8644: +1 ^ a+
8645: +3 ^ ^ (*FAIL)
8646: +3 ^ ^ (*FAIL)
8647: +3 ^ ^ (*FAIL)
8648: +3 ^ ^ (*FAIL)
8649: +3 ^ ^ (*FAIL)
8650: +3 ^^ (*FAIL)
8651: No match
8652:
8653: /a+b?c+(*FAIL)/C
8654: aaabccc
8655: --->aaabccc
8656: +0 ^ a+
8657: +2 ^ ^ b?
8658: +4 ^ ^ c+
8659: +6 ^ ^ (*FAIL)
8660: +6 ^ ^ (*FAIL)
8661: +6 ^ ^ (*FAIL)
8662: +4 ^ ^ c+
8663: +2 ^ ^ b?
8664: +4 ^ ^ c+
8665: +2 ^^ b?
8666: +4 ^^ c+
8667: +0 ^ a+
8668: +2 ^ ^ b?
8669: +4 ^ ^ c+
8670: +6 ^ ^ (*FAIL)
8671: +6 ^ ^ (*FAIL)
8672: +6 ^ ^ (*FAIL)
8673: +4 ^ ^ c+
8674: +2 ^^ b?
8675: +4 ^^ c+
8676: +0 ^ a+
8677: +2 ^^ b?
8678: +4 ^ ^ c+
8679: +6 ^ ^ (*FAIL)
8680: +6 ^ ^ (*FAIL)
8681: +6 ^ ^ (*FAIL)
8682: +4 ^^ c+
8683: No match
8684:
8685: /a+b?(*PRUNE)c+(*FAIL)/C
8686: aaabccc
8687: --->aaabccc
8688: +0 ^ a+
8689: +2 ^ ^ b?
8690: +4 ^ ^ (*PRUNE)
8691: +12 ^ ^ c+
8692: +14 ^ ^ (*FAIL)
8693: +14 ^ ^ (*FAIL)
8694: +14 ^ ^ (*FAIL)
8695: +0 ^ a+
8696: +2 ^ ^ b?
8697: +4 ^ ^ (*PRUNE)
8698: +12 ^ ^ c+
8699: +14 ^ ^ (*FAIL)
8700: +14 ^ ^ (*FAIL)
8701: +14 ^ ^ (*FAIL)
8702: +0 ^ a+
8703: +2 ^^ b?
8704: +4 ^ ^ (*PRUNE)
8705: +12 ^ ^ c+
8706: +14 ^ ^ (*FAIL)
8707: +14 ^ ^ (*FAIL)
8708: +14 ^ ^ (*FAIL)
8709: No match
8710:
8711: /a+b?(*COMMIT)c+(*FAIL)/C
8712: aaabccc
8713: --->aaabccc
8714: +0 ^ a+
8715: +2 ^ ^ b?
8716: +4 ^ ^ (*COMMIT)
8717: +13 ^ ^ c+
8718: +15 ^ ^ (*FAIL)
8719: +15 ^ ^ (*FAIL)
8720: +15 ^ ^ (*FAIL)
8721: No match
8722:
8723: /a+b?(*SKIP)c+(*FAIL)/C
8724: aaabcccaaabccc
8725: --->aaabcccaaabccc
8726: +0 ^ a+
8727: +2 ^ ^ b?
8728: +4 ^ ^ (*SKIP)
8729: +11 ^ ^ c+
8730: +13 ^ ^ (*FAIL)
8731: +13 ^ ^ (*FAIL)
8732: +13 ^ ^ (*FAIL)
8733: +0 ^ a+
8734: +2 ^ ^ b?
8735: +4 ^ ^ (*SKIP)
8736: +11 ^ ^ c+
8737: +13 ^ ^ (*FAIL)
8738: +13 ^ ^ (*FAIL)
8739: +13 ^ ^ (*FAIL)
8740: No match
8741:
8742: /a+b?(*THEN)c+(*FAIL)/C
8743: aaabccc
8744: --->aaabccc
8745: +0 ^ a+
8746: +2 ^ ^ b?
8747: +4 ^ ^ (*THEN)
8748: +11 ^ ^ c+
8749: +13 ^ ^ (*FAIL)
8750: +13 ^ ^ (*FAIL)
8751: +13 ^ ^ (*FAIL)
8752: +0 ^ a+
8753: +2 ^ ^ b?
8754: +4 ^ ^ (*THEN)
8755: +11 ^ ^ c+
8756: +13 ^ ^ (*FAIL)
8757: +13 ^ ^ (*FAIL)
8758: +13 ^ ^ (*FAIL)
8759: +0 ^ a+
8760: +2 ^^ b?
8761: +4 ^ ^ (*THEN)
8762: +11 ^ ^ c+
8763: +13 ^ ^ (*FAIL)
8764: +13 ^ ^ (*FAIL)
8765: +13 ^ ^ (*FAIL)
8766: No match
8767:
8768: /a(*MARK)b/
8769: Failed: (*MARK) must have an argument at offset 7
8770:
8771: /(?i:A{1,}\6666666666)/
8772: Failed: number is too big at offset 19
8773:
8774: /\g6666666666/
8775: Failed: number is too big at offset 11
8776:
8777: /[\g6666666666]/BZ
8778: ------------------------------------------------------------------
8779: Bra
8780: [6g]
8781: Ket
8782: End
8783: ------------------------------------------------------------------
8784:
8785: /(?1)\c[/
8786: Failed: reference to non-existent subpattern at offset 3
8787:
8788: /.+A/<crlf>
8789: \r\nA
8790: No match
8791:
8792: /\nA/<crlf>
8793: \r\nA
8794: 0: \x0aA
8795:
8796: /[\r\n]A/<crlf>
8797: \r\nA
8798: 0: \x0aA
8799:
8800: /(\r|\n)A/<crlf>
8801: \r\nA
8802: 0: \x0aA
8803: 1: \x0a
8804:
8805: /a(*CR)b/
8806: Failed: (*VERB) not recognized at offset 5
8807:
8808: /(*CR)a.b/
8809: a\nb
8810: 0: a\x0ab
8811: ** Failers
8812: No match
8813: a\rb
8814: No match
8815:
8816: /(*CR)a.b/<lf>
8817: a\nb
8818: 0: a\x0ab
8819: ** Failers
8820: No match
8821: a\rb
8822: No match
8823:
8824: /(*LF)a.b/<CRLF>
8825: a\rb
8826: 0: a\x0db
8827: ** Failers
8828: No match
8829: a\nb
8830: No match
8831:
8832: /(*CRLF)a.b/
8833: a\rb
8834: 0: a\x0db
8835: a\nb
8836: 0: a\x0ab
8837: ** Failers
8838: No match
8839: a\r\nb
8840: No match
8841:
8842: /(*ANYCRLF)a.b/<CR>
8843: ** Failers
8844: No match
8845: a\rb
8846: No match
8847: a\nb
8848: No match
8849: a\r\nb
8850: No match
8851:
8852: /(*ANY)a.b/<cr>
8853: ** Failers
8854: No match
8855: a\rb
8856: No match
8857: a\nb
8858: No match
8859: a\r\nb
8860: No match
8861: a\x85b
8862: No match
8863:
8864: /(*ANY).*/g
8865: abc\r\ndef
8866: 0: abc
8867: 0:
8868: 0: def
8869: 0:
8870:
8871: /(*ANYCRLF).*/g
8872: abc\r\ndef
8873: 0: abc
8874: 0:
8875: 0: def
8876: 0:
8877:
8878: /(*CRLF).*/g
8879: abc\r\ndef
8880: 0: abc
8881: 0:
8882: 0: def
8883: 0:
8884:
8885: /a\Rb/I<bsr_anycrlf>
8886: Capturing subpattern count = 0
8887: Options: bsr_anycrlf
8888: First char = 'a'
8889: Need char = 'b'
8890: a\rb
8891: 0: a\x0db
8892: a\nb
8893: 0: a\x0ab
8894: a\r\nb
8895: 0: a\x0d\x0ab
8896: ** Failers
8897: No match
8898: a\x85b
8899: No match
8900: a\x0bb
8901: No match
8902:
8903: /a\Rb/I<bsr_unicode>
8904: Capturing subpattern count = 0
8905: Options: bsr_unicode
8906: First char = 'a'
8907: Need char = 'b'
8908: a\rb
8909: 0: a\x0db
8910: a\nb
8911: 0: a\x0ab
8912: a\r\nb
8913: 0: a\x0d\x0ab
8914: a\x85b
8915: 0: a\x85b
8916: a\x0bb
8917: 0: a\x0bb
8918: ** Failers
8919: No match
8920: a\x85b\<bsr_anycrlf>
8921: No match
8922: a\x0bb\<bsr_anycrlf>
8923: No match
8924:
8925: /a\R?b/I<bsr_anycrlf>
8926: Capturing subpattern count = 0
8927: Options: bsr_anycrlf
8928: First char = 'a'
8929: Need char = 'b'
8930: a\rb
8931: 0: a\x0db
8932: a\nb
8933: 0: a\x0ab
8934: a\r\nb
8935: 0: a\x0d\x0ab
8936: ** Failers
8937: No match
8938: a\x85b
8939: No match
8940: a\x0bb
8941: No match
8942:
8943: /a\R?b/I<bsr_unicode>
8944: Capturing subpattern count = 0
8945: Options: bsr_unicode
8946: First char = 'a'
8947: Need char = 'b'
8948: a\rb
8949: 0: a\x0db
8950: a\nb
8951: 0: a\x0ab
8952: a\r\nb
8953: 0: a\x0d\x0ab
8954: a\x85b
8955: 0: a\x85b
8956: a\x0bb
8957: 0: a\x0bb
8958: ** Failers
8959: No match
8960: a\x85b\<bsr_anycrlf>
8961: No match
8962: a\x0bb\<bsr_anycrlf>
8963: No match
8964:
8965: /a\R{2,4}b/I<bsr_anycrlf>
8966: Capturing subpattern count = 0
8967: Options: bsr_anycrlf
8968: First char = 'a'
8969: Need char = 'b'
8970: a\r\n\nb
8971: 0: a\x0d\x0a\x0ab
8972: a\n\r\rb
8973: 0: a\x0a\x0d\x0db
8974: a\r\n\r\n\r\n\r\nb
8975: 0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
8976: ** Failers
8977: No match
8978: a\x85\85b
8979: No match
8980: a\x0b\0bb
8981: No match
8982:
8983: /a\R{2,4}b/I<bsr_unicode>
8984: Capturing subpattern count = 0
8985: Options: bsr_unicode
8986: First char = 'a'
8987: Need char = 'b'
8988: a\r\rb
8989: 0: a\x0d\x0db
8990: a\n\n\nb
8991: 0: a\x0a\x0a\x0ab
8992: a\r\n\n\r\rb
8993: 0: a\x0d\x0a\x0a\x0d\x0db
8994: a\x85\85b
8995: No match
8996: a\x0b\0bb
8997: No match
8998: ** Failers
8999: No match
9000: a\r\r\r\r\rb
9001: No match
9002: a\x85\85b\<bsr_anycrlf>
9003: No match
9004: a\x0b\0bb\<bsr_anycrlf>
9005: No match
9006:
9007: /(*BSR_ANYCRLF)a\Rb/I
9008: Capturing subpattern count = 0
9009: Options: bsr_anycrlf
9010: First char = 'a'
9011: Need char = 'b'
9012: a\nb
9013: 0: a\x0ab
9014: a\rb
9015: 0: a\x0db
9016:
9017: /(*BSR_UNICODE)a\Rb/I
9018: Capturing subpattern count = 0
9019: Options: bsr_unicode
9020: First char = 'a'
9021: Need char = 'b'
9022: a\x85b
9023: 0: a\x85b
9024:
9025: /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
9026: Capturing subpattern count = 0
9027: Options: bsr_anycrlf
9028: Forced newline sequence: CRLF
9029: First char = 'a'
9030: Need char = 'b'
9031: a\nb
9032: 0: a\x0ab
9033: a\rb
9034: 0: a\x0db
9035:
9036: /(*CRLF)(*BSR_UNICODE)a\Rb/I
9037: Capturing subpattern count = 0
9038: Options: bsr_unicode
9039: Forced newline sequence: CRLF
9040: First char = 'a'
9041: Need char = 'b'
9042: a\x85b
9043: 0: a\x85b
9044:
9045: /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
9046: Capturing subpattern count = 0
9047: Options: bsr_anycrlf
9048: Forced newline sequence: CR
9049: First char = 'a'
9050: Need char = 'b'
9051:
9052: /(?<a>)(?&)/
9053: Failed: subpattern name expected at offset 9
9054:
9055: /(?<abc>)(?&a)/
9056: Failed: reference to non-existent subpattern at offset 12
9057:
9058: /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
9059: Failed: reference to non-existent subpattern at offset 32
9060:
9061: /(?+-a)/
9062: Failed: digit expected after (?+ at offset 3
9063:
9064: /(?-+a)/
9065: Failed: unrecognized character after (? or (?- at offset 3
9066:
9067: /(?(-1))/
9068: Failed: reference to non-existent subpattern at offset 6
9069:
9070: /(?(+10))/
9071: Failed: reference to non-existent subpattern at offset 7
9072:
9073: /(?(10))/
9074: Failed: reference to non-existent subpattern at offset 6
9075:
9076: /(?(+2))()()/
9077:
9078: /(?(2))()()/
9079:
9080: /\k''/
9081: Failed: subpattern name expected at offset 3
9082:
9083: /\k<>/
9084: Failed: subpattern name expected at offset 3
9085:
9086: /\k{}/
9087: Failed: subpattern name expected at offset 3
9088:
9089: /\k/
9090: Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9091:
9092: /\kabc/
9093: Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9094:
9095: /(?P=)/
9096: Failed: subpattern name expected at offset 4
9097:
9098: /(?P>)/
9099: Failed: subpattern name expected at offset 4
9100:
9101: /(?!\w)(?R)/
9102: Failed: recursive call could loop indefinitely at offset 9
9103:
9104: /(?=\w)(?R)/
9105: Failed: recursive call could loop indefinitely at offset 9
9106:
9107: /(?<!\w)(?R)/
9108: Failed: recursive call could loop indefinitely at offset 10
9109:
9110: /(?<=\w)(?R)/
9111: Failed: recursive call could loop indefinitely at offset 10
9112:
9113: /[[:foo:]]/
9114: Failed: unknown POSIX class name at offset 3
9115:
9116: /[[:1234:]]/
9117: Failed: unknown POSIX class name at offset 3
9118:
9119: /[[:f\oo:]]/
9120: Failed: unknown POSIX class name at offset 3
9121:
9122: /[[: :]]/
9123: Failed: unknown POSIX class name at offset 3
9124:
9125: /[[:...:]]/
9126: Failed: unknown POSIX class name at offset 3
9127:
9128: /[[:l\ower:]]/
9129: Failed: unknown POSIX class name at offset 3
9130:
9131: /[[:abc\:]]/
9132: Failed: unknown POSIX class name at offset 3
9133:
9134: /[abc[:x\]pqr:]]/
9135: Failed: unknown POSIX class name at offset 6
9136:
9137: /[[:a\dz:]]/
9138: Failed: unknown POSIX class name at offset 3
9139:
9140: /(^(a|b\g<-1'c))/
9141: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
9142:
9143: /^(?+1)(?<a>x|y){0}z/
9144: xzxx
9145: 0: xz
9146: yzyy
9147: 0: yz
9148: ** Failers
9149: No match
9150: xxz
9151: No match
9152:
9153: /(\3)(\1)(a)/
9154: cat
9155: No match
9156:
9157: /(\3)(\1)(a)/<JS>
9158: cat
9159: 0: a
9160: 1:
9161: 2:
9162: 3: a
9163:
9164: /TA]/
9165: The ACTA] comes
9166: 0: TA]
9167:
9168: /TA]/<JS>
9169: Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
9170:
9171: /(?2)[]a()b](abc)/
9172: Failed: reference to non-existent subpattern at offset 3
9173:
9174: /(?2)[^]a()b](abc)/
9175: Failed: reference to non-existent subpattern at offset 3
9176:
9177: /(?1)[]a()b](abc)/
9178: abcbabc
9179: 0: abcbabc
9180: 1: abc
9181: ** Failers
9182: No match
9183: abcXabc
9184: No match
9185:
9186: /(?1)[^]a()b](abc)/
9187: abcXabc
9188: 0: abcXabc
9189: 1: abc
9190: ** Failers
9191: No match
9192: abcbabc
9193: No match
9194:
9195: /(?2)[]a()b](abc)(xyz)/
9196: xyzbabcxyz
9197: 0: xyzbabcxyz
9198: 1: abc
9199: 2: xyz
9200:
9201: /(?&N)[]a(?<N>)](?<M>abc)/
9202: Failed: reference to non-existent subpattern at offset 4
9203:
9204: /(?&N)[]a(?<N>)](abc)/
9205: Failed: reference to non-existent subpattern at offset 4
9206:
9207: /a[]b/
9208: Failed: missing terminating ] for character class at offset 4
9209:
9210: /a[^]b/
9211: Failed: missing terminating ] for character class at offset 5
9212:
9213: /a[]b/<JS>
9214: ** Failers
9215: No match
9216: ab
9217: No match
9218:
9219: /a[]+b/<JS>
9220: ** Failers
9221: No match
9222: ab
9223: No match
9224:
9225: /a[]*+b/<JS>
9226: ** Failers
9227: No match
9228: ab
9229: No match
9230:
9231: /a[^]b/<JS>
9232: aXb
9233: 0: aXb
9234: a\nb
9235: 0: a\x0ab
9236: ** Failers
9237: No match
9238: ab
9239: No match
9240:
9241: /a[^]+b/<JS>
9242: aXb
9243: 0: aXb
9244: a\nX\nXb
9245: 0: a\x0aX\x0aXb
9246: ** Failers
9247: No match
9248: ab
9249: No match
9250:
9251: /a(?!)+b/
9252: Failed: nothing to repeat at offset 5
9253:
9254: /a(*FAIL)+b/
9255: Failed: nothing to repeat at offset 8
9256:
9257: /(abc|pqr|123){0}[xyz]/SI
9258: Capturing subpattern count = 1
9259: No options
9260: No first char
9261: No need char
9262: Subject length lower bound = 1
9263: Starting byte set: x y z
9264:
9265: /(?(?=.*b)b|^)/CI
9266: Capturing subpattern count = 0
9267: Options:
9268: No first char
9269: No need char
9270: adc
9271: --->adc
9272: +0 ^ (?(?=.*b)b|^)
9273: +2 ^ (?=.*b)
9274: +5 ^ .*
9275: +7 ^ ^ b
9276: +7 ^ ^ b
9277: +7 ^^ b
9278: +7 ^ b
9279: +12 ^ )
9280: +13 ^
9281: 0:
9282: abc
9283: --->abc
9284: +0 ^ (?(?=.*b)b|^)
9285: +2 ^ (?=.*b)
9286: +5 ^ .*
9287: +7 ^ ^ b
9288: +7 ^ ^ b
9289: +7 ^^ b
9290: +8 ^ ^ )
9291: +9 ^ b
9292: +0 ^ (?(?=.*b)b|^)
9293: +2 ^ (?=.*b)
9294: +5 ^ .*
9295: +7 ^ ^ b
9296: +7 ^^ b
9297: +7 ^ b
9298: +8 ^^ )
9299: +9 ^ b
9300: +10 ^^ |
9301: +13 ^^
9302: 0: b
9303:
9304: /(?(?=b).*b|^d)/I
9305: Capturing subpattern count = 0
9306: No options
9307: No first char
9308: No need char
9309:
9310: /(?(?=.*b).*b|^d)/I
9311: Capturing subpattern count = 0
9312: No options
9313: First char at start or follows newline
9314: No need char
9315:
9316: /xyz/C
9317: xyz
9318: --->xyz
9319: +0 ^ x
9320: +1 ^^ y
9321: +2 ^ ^ z
9322: +3 ^ ^
9323: 0: xyz
9324: abcxyz
9325: --->abcxyz
9326: +0 ^ x
9327: +1 ^^ y
9328: +2 ^ ^ z
9329: +3 ^ ^
9330: 0: xyz
9331: abcxyz\Y
9332: --->abcxyz
9333: +0 ^ x
9334: +0 ^ x
9335: +0 ^ x
9336: +0 ^ x
9337: +1 ^^ y
9338: +2 ^ ^ z
9339: +3 ^ ^
9340: 0: xyz
9341: ** Failers
9342: No match
9343: abc
9344: No match
9345: abc\Y
9346: --->abc
9347: +0 ^ x
9348: +0 ^ x
9349: +0 ^ x
9350: +0 ^ x
9351: No match
9352: abcxypqr
9353: No match
9354: abcxypqr\Y
9355: --->abcxypqr
9356: +0 ^ x
9357: +0 ^ x
9358: +0 ^ x
9359: +0 ^ x
9360: +1 ^^ y
9361: +2 ^ ^ z
9362: +0 ^ x
9363: +0 ^ x
9364: +0 ^ x
9365: +0 ^ x
9366: +0 ^ x
9367: No match
9368:
9369: /(*NO_START_OPT)xyz/C
9370: abcxyz
9371: --->abcxyz
9372: +15 ^ x
9373: +15 ^ x
9374: +15 ^ x
9375: +15 ^ x
9376: +16 ^^ y
9377: +17 ^ ^ z
9378: +18 ^ ^
9379: 0: xyz
9380:
9381: /xyz/CY
9382: abcxyz
9383: --->abcxyz
9384: +0 ^ x
9385: +0 ^ x
9386: +0 ^ x
9387: +0 ^ x
9388: +1 ^^ y
9389: +2 ^ ^ z
9390: +3 ^ ^
9391: 0: xyz
9392:
9393: /^"((?(?=[a])[^"])|b)*"$/C
9394: "ab"
9395: --->"ab"
9396: +0 ^ ^
9397: +1 ^ "
9398: +2 ^^ ((?(?=[a])[^"])|b)*
9399: +3 ^^ (?(?=[a])[^"])
9400: +5 ^^ (?=[a])
9401: +8 ^^ [a]
9402: +11 ^ ^ )
9403: +12 ^^ [^"]
9404: +16 ^ ^ )
9405: +17 ^ ^ |
9406: +3 ^ ^ (?(?=[a])[^"])
9407: +5 ^ ^ (?=[a])
9408: +8 ^ ^ [a]
9409: +21 ^ ^ "
9410: +18 ^ ^ b
9411: +19 ^ ^ )
9412: +3 ^ ^ (?(?=[a])[^"])
9413: +5 ^ ^ (?=[a])
9414: +8 ^ ^ [a]
9415: +21 ^ ^ "
9416: +22 ^ ^ $
9417: +23 ^ ^
9418: 0: "ab"
9419: 1:
9420:
9421: /^"((?(?=[a])[^"])|b)*"$/
9422: "ab"
9423: 0: "ab"
9424: 1:
9425:
9426: /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9427: Failed: reference to non-existent subpattern at offset 5
9428:
9429: /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9430: XYabcdY
9431: 0: XYabcdY
9432: 1: a
9433: 2: b
9434: 3: c
9435: 4: d
9436: 5: Y
9437:
9438: /Xa{2,4}b/
9439: X\P
9440: Partial match: X
9441: Xa\P
9442: Partial match: Xa
9443: Xaa\P
9444: Partial match: Xaa
9445: Xaaa\P
9446: Partial match: Xaaa
9447: Xaaaa\P
9448: Partial match: Xaaaa
9449:
9450: /Xa{2,4}?b/
9451: X\P
9452: Partial match: X
9453: Xa\P
9454: Partial match: Xa
9455: Xaa\P
9456: Partial match: Xaa
9457: Xaaa\P
9458: Partial match: Xaaa
9459: Xaaaa\P
9460: Partial match: Xaaaa
9461:
9462: /Xa{2,4}+b/
9463: X\P
9464: Partial match: X
9465: Xa\P
9466: Partial match: Xa
9467: Xaa\P
9468: Partial match: Xaa
9469: Xaaa\P
9470: Partial match: Xaaa
9471: Xaaaa\P
9472: Partial match: Xaaaa
9473:
9474: /X\d{2,4}b/
9475: X\P
9476: Partial match: X
9477: X3\P
9478: Partial match: X3
9479: X33\P
9480: Partial match: X33
9481: X333\P
9482: Partial match: X333
9483: X3333\P
9484: Partial match: X3333
9485:
9486: /X\d{2,4}?b/
9487: X\P
9488: Partial match: X
9489: X3\P
9490: Partial match: X3
9491: X33\P
9492: Partial match: X33
9493: X333\P
9494: Partial match: X333
9495: X3333\P
9496: Partial match: X3333
9497:
9498: /X\d{2,4}+b/
9499: X\P
9500: Partial match: X
9501: X3\P
9502: Partial match: X3
9503: X33\P
9504: Partial match: X33
9505: X333\P
9506: Partial match: X333
9507: X3333\P
9508: Partial match: X3333
9509:
9510: /X\D{2,4}b/
9511: X\P
9512: Partial match: X
9513: Xa\P
9514: Partial match: Xa
9515: Xaa\P
9516: Partial match: Xaa
9517: Xaaa\P
9518: Partial match: Xaaa
9519: Xaaaa\P
9520: Partial match: Xaaaa
9521:
9522: /X\D{2,4}?b/
9523: X\P
9524: Partial match: X
9525: Xa\P
9526: Partial match: Xa
9527: Xaa\P
9528: Partial match: Xaa
9529: Xaaa\P
9530: Partial match: Xaaa
9531: Xaaaa\P
9532: Partial match: Xaaaa
9533:
9534: /X\D{2,4}+b/
9535: X\P
9536: Partial match: X
9537: Xa\P
9538: Partial match: Xa
9539: Xaa\P
9540: Partial match: Xaa
9541: Xaaa\P
9542: Partial match: Xaaa
9543: Xaaaa\P
9544: Partial match: Xaaaa
9545:
9546: /X[abc]{2,4}b/
9547: X\P
9548: Partial match: X
9549: Xa\P
9550: Partial match: Xa
9551: Xaa\P
9552: Partial match: Xaa
9553: Xaaa\P
9554: Partial match: Xaaa
9555: Xaaaa\P
9556: Partial match: Xaaaa
9557:
9558: /X[abc]{2,4}?b/
9559: X\P
9560: Partial match: X
9561: Xa\P
9562: Partial match: Xa
9563: Xaa\P
9564: Partial match: Xaa
9565: Xaaa\P
9566: Partial match: Xaaa
9567: Xaaaa\P
9568: Partial match: Xaaaa
9569:
9570: /X[abc]{2,4}+b/
9571: X\P
9572: Partial match: X
9573: Xa\P
9574: Partial match: Xa
9575: Xaa\P
9576: Partial match: Xaa
9577: Xaaa\P
9578: Partial match: Xaaa
9579: Xaaaa\P
9580: Partial match: Xaaaa
9581:
9582: /X[^a]{2,4}b/
9583: X\P
9584: Partial match: X
9585: Xz\P
9586: Partial match: Xz
9587: Xzz\P
9588: Partial match: Xzz
9589: Xzzz\P
9590: Partial match: Xzzz
9591: Xzzzz\P
9592: Partial match: Xzzzz
9593:
9594: /X[^a]{2,4}?b/
9595: X\P
9596: Partial match: X
9597: Xz\P
9598: Partial match: Xz
9599: Xzz\P
9600: Partial match: Xzz
9601: Xzzz\P
9602: Partial match: Xzzz
9603: Xzzzz\P
9604: Partial match: Xzzzz
9605:
9606: /X[^a]{2,4}+b/
9607: X\P
9608: Partial match: X
9609: Xz\P
9610: Partial match: Xz
9611: Xzz\P
9612: Partial match: Xzz
9613: Xzzz\P
9614: Partial match: Xzzz
9615: Xzzzz\P
9616: Partial match: Xzzzz
9617:
9618: /(Y)X\1{2,4}b/
9619: YX\P
9620: Partial match: YX
9621: YXY\P
9622: Partial match: YXY
9623: YXYY\P
9624: Partial match: YXYY
9625: YXYYY\P
9626: Partial match: YXYYY
9627: YXYYYY\P
9628: Partial match: YXYYYY
9629:
9630: /(Y)X\1{2,4}?b/
9631: YX\P
9632: Partial match: YX
9633: YXY\P
9634: Partial match: YXY
9635: YXYY\P
9636: Partial match: YXYY
9637: YXYYY\P
9638: Partial match: YXYYY
9639: YXYYYY\P
9640: Partial match: YXYYYY
9641:
9642: /(Y)X\1{2,4}+b/
9643: YX\P
9644: Partial match: YX
9645: YXY\P
9646: Partial match: YXY
9647: YXYY\P
9648: Partial match: YXYY
9649: YXYYY\P
9650: Partial match: YXYYY
9651: YXYYYY\P
9652: Partial match: YXYYYY
9653:
9654: /\++\KZ|\d+X|9+Y/
9655: ++++123999\P
9656: Partial match: 123999
9657: ++++123999Y\P
9658: 0: 999Y
9659: ++++Z1234\P
9660: 0: Z
9661:
9662: /Z(*F)/
9663: Z\P
9664: No match
9665: ZA\P
9666: No match
9667:
9668: /Z(?!)/
9669: Z\P
9670: No match
9671: ZA\P
9672: No match
9673:
9674: /dog(sbody)?/
9675: dogs\P
9676: 0: dog
9677: dogs\P\P
9678: Partial match: dogs
9679:
9680: /dog(sbody)??/
9681: dogs\P
9682: 0: dog
9683: dogs\P\P
9684: 0: dog
9685:
9686: /dog|dogsbody/
9687: dogs\P
9688: 0: dog
9689: dogs\P\P
9690: 0: dog
9691:
9692: /dogsbody|dog/
9693: dogs\P
9694: 0: dog
9695: dogs\P\P
9696: Partial match: dogs
9697:
9698: /\bthe cat\b/
9699: the cat\P
9700: 0: the cat
9701: the cat\P\P
9702: Partial match: the cat
9703:
9704: /abc/
9705: abc\P
9706: 0: abc
9707: abc\P\P
9708: 0: abc
9709:
9710: /abc\K123/
9711: xyzabc123pqr
9712: 0: 123
9713: xyzabc12\P
9714: Partial match: abc12
9715: xyzabc12\P\P
9716: Partial match: abc12
9717:
9718: /(?<=abc)123/
9719: xyzabc123pqr
9720: 0: 123
9721: xyzabc12\P
9722: Partial match: abc12
9723: xyzabc12\P\P
9724: Partial match: abc12
9725:
9726: /\babc\b/
9727: +++abc+++
9728: 0: abc
9729: +++ab\P
9730: Partial match: +ab
9731: +++ab\P\P
9732: Partial match: +ab
9733:
9734: /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9735: ------------------------------------------------------------------
9736: Bra
9737: Recurse
9738: Recurse
9739: Cond
9740: Cond def
9741: CBra 1
9742: <
9743: [^m]
9744: [^>]
9745: >
9746: [^<]
9747: Ket
9748: CBra 2
9749: \w*+
9750: Ket
9751: Ket
9752: Ket
9753: End
9754: ------------------------------------------------------------------
9755:
9756: /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9757: ------------------------------------------------------------------
9758: Bra
9759: Recurse
9760: Recurse
9761: Cond
9762: Cond def
9763: CBra 1
9764: <
9765: [\x00-/:-\xff] (neg)
9766: [^>]
9767: >
9768: [^<]
9769: Ket
9770: CBra 2
9771: \w*+
9772: Ket
9773: Ket
9774: Ket
9775: End
9776: ------------------------------------------------------------------
9777:
9778: /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9779: ------------------------------------------------------------------
9780: Bra
9781: CBra 1
9782: ab
9783: Ket
9784: CBra 2
9785: x
9786: CBra 3
9787: y
9788: Ket
9789: z
9790: CBra 4
9791: cd
9792: Close 4
9793: Close 2
9794: *ACCEPT
9795: Ket
9796: Ket
9797: pq
9798: Ket
9799: End
9800: ------------------------------------------------------------------
9801:
9802: /abc\K/+
9803: abcdef
9804: 0:
9805: 0+ def
9806: abcdef\N\N
9807: 0:
9808: 0+ def
9809: xyzabcdef\N\N
9810: 0:
9811: 0+ def
9812: ** Failers
9813: No match
9814: abcdef\N
9815: No match
9816: xyzabcdef\N
9817: No match
9818:
9819: /^(?:(?=abc)|abc\K)/+
9820: abcdef
9821: 0:
9822: 0+ abcdef
9823: abcdef\N\N
9824: 0:
9825: 0+ def
9826: ** Failers
9827: No match
9828: abcdef\N
9829: No match
9830:
9831: /a?b?/+
9832: xyz
9833: 0:
9834: 0+ xyz
9835: xyzabc
9836: 0:
9837: 0+ xyzabc
9838: xyzabc\N
9839: 0: ab
9840: 0+ c
9841: xyzabc\N\N
9842: 0:
9843: 0+ yzabc
9844: xyz\N\N
9845: 0:
9846: 0+ yz
9847: ** Failers
9848: 0:
9849: 0+ ** Failers
9850: xyz\N
9851: No match
9852:
9853: /^a?b?/+
9854: xyz
9855: 0:
9856: 0+ xyz
9857: xyzabc
9858: 0:
9859: 0+ xyzabc
9860: ** Failers
9861: 0:
9862: 0+ ** Failers
9863: xyzabc\N
9864: No match
9865: xyzabc\N\N
9866: No match
9867: xyz\N\N
9868: No match
9869: xyz\N
9870: No match
9871:
9872: /^(?<name>a|b\g<name>c)/
9873: aaaa
9874: 0: a
9875: 1: a
9876: bacxxx
9877: 0: bac
9878: 1: bac
9879: bbaccxxx
9880: 0: bbacc
9881: 1: bbacc
9882: bbbacccxx
9883: 0: bbbaccc
9884: 1: bbbaccc
9885:
9886: /^(?<name>a|b\g'name'c)/
9887: aaaa
9888: 0: a
9889: 1: a
9890: bacxxx
9891: 0: bac
9892: 1: bac
9893: bbaccxxx
9894: 0: bbacc
9895: 1: bbacc
9896: bbbacccxx
9897: 0: bbbaccc
9898: 1: bbbaccc
9899:
9900: /^(a|b\g<1>c)/
9901: aaaa
9902: 0: a
9903: 1: a
9904: bacxxx
9905: 0: bac
9906: 1: bac
9907: bbaccxxx
9908: 0: bbacc
9909: 1: bbacc
9910: bbbacccxx
9911: 0: bbbaccc
9912: 1: bbbaccc
9913:
9914: /^(a|b\g'1'c)/
9915: aaaa
9916: 0: a
9917: 1: a
9918: bacxxx
9919: 0: bac
9920: 1: bac
9921: bbaccxxx
9922: 0: bbacc
9923: 1: bbacc
9924: bbbacccxx
9925: 0: bbbaccc
9926: 1: bbbaccc
9927:
9928: /^(a|b\g'-1'c)/
9929: aaaa
9930: 0: a
9931: 1: a
9932: bacxxx
9933: 0: bac
9934: 1: bac
9935: bbaccxxx
9936: 0: bbacc
9937: 1: bbacc
9938: bbbacccxx
9939: 0: bbbaccc
9940: 1: bbbaccc
9941:
9942: /(^(a|b\g<-1>c))/
9943: aaaa
9944: 0: a
9945: 1: a
9946: 2: a
9947: bacxxx
9948: 0: bac
9949: 1: bac
9950: 2: bac
9951: bbaccxxx
9952: 0: bbacc
9953: 1: bbacc
9954: 2: bbacc
9955: bbbacccxx
9956: 0: bbbaccc
9957: 1: bbbaccc
9958: 2: bbbaccc
9959:
9960: /(?-i:\g<name>)(?i:(?<name>a))/
9961: XaaX
9962: 0: aa
9963: 1: a
9964: XAAX
9965: 0: AA
9966: 1: A
9967:
9968: /(?i:\g<name>)(?-i:(?<name>a))/
9969: XaaX
9970: 0: aa
9971: 1: a
9972: ** Failers
9973: No match
9974: XAAX
9975: No match
9976:
9977: /(?-i:\g<+1>)(?i:(a))/
9978: XaaX
9979: 0: aa
9980: 1: a
9981: XAAX
9982: 0: AA
9983: 1: A
9984:
9985: /(?=(?<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>\})\}))\{/
9986:
9987: /(?<n>a|b|c)\g<n>*/
9988: abc
9989: 0: abc
9990: 1: a
9991: accccbbb
9992: 0: accccbbb
9993: 1: a
9994:
9995: /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
9996: XYabcdY
9997: 0: XYabcdY
9998: 1: a
9999: 2: b
10000: 3: <unset>
10001: 4: <unset>
10002: 5: c
10003: 6: d
10004: 7: Y
10005:
10006: /(?<=b(?1)|zzz)(a)/
10007: xbaax
10008: 0: a
10009: 1: a
10010: xzzzax
10011: 0: a
10012: 1: a
10013:
10014: /(a)(?<=b\1)/
10015: Failed: lookbehind assertion is not fixed length at offset 10
10016:
10017: /(a)(?<=b+(?1))/
10018: Failed: lookbehind assertion is not fixed length at offset 13
10019:
10020: /(a+)(?<=b(?1))/
10021: Failed: lookbehind assertion is not fixed length at offset 14
10022:
10023: /(a(?<=b(?1)))/
10024: Failed: lookbehind assertion is not fixed length at offset 13
10025:
10026: /(?<=b(?1))xyz/
10027: Failed: reference to non-existent subpattern at offset 8
10028:
10029: /(?<=b(?1))xyz(b+)pqrstuvew/
10030: Failed: lookbehind assertion is not fixed length at offset 26
10031:
10032: /(a|bc)\1/SI
10033: Capturing subpattern count = 1
10034: Max back reference = 1
10035: No options
10036: No first char
10037: No need char
10038: Subject length lower bound = 2
10039: Starting byte set: a b
10040:
10041: /(a|bc)\1{2,3}/SI
10042: Capturing subpattern count = 1
10043: Max back reference = 1
10044: No options
10045: No first char
10046: No need char
10047: Subject length lower bound = 3
10048: Starting byte set: a b
10049:
10050: /(a|bc)(?1)/SI
10051: Capturing subpattern count = 1
10052: No options
10053: No first char
10054: No need char
10055: Subject length lower bound = 2
10056: Starting byte set: a b
10057:
10058: /(a|b\1)(a|b\1)/SI
10059: Capturing subpattern count = 2
10060: Max back reference = 1
10061: No options
10062: No first char
10063: No need char
10064: Subject length lower bound = 2
10065: Starting byte set: a b
10066:
10067: /(a|b\1){2}/SI
10068: Capturing subpattern count = 1
10069: Max back reference = 1
10070: No options
10071: No first char
10072: No need char
10073: Subject length lower bound = 2
10074: Starting byte set: a b
10075:
10076: /(a|bbbb\1)(a|bbbb\1)/SI
10077: Capturing subpattern count = 2
10078: Max back reference = 1
10079: No options
10080: No first char
10081: No need char
10082: Subject length lower bound = 2
10083: Starting byte set: a b
10084:
10085: /(a|bbbb\1){2}/SI
10086: Capturing subpattern count = 1
10087: Max back reference = 1
10088: No options
10089: No first char
10090: No need char
10091: Subject length lower bound = 2
10092: Starting byte set: a b
10093:
10094: /^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
10095: Capturing subpattern count = 1
10096: Options: anchored
10097: No first char
10098: Need char = ':'
10099: Subject length lower bound = 22
10100: No set of starting bytes
10101:
10102: /<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
10103: Capturing subpattern count = 11
10104: Options: caseless dotall
10105: First char = '<'
10106: Need char = '>'
10107: Subject length lower bound = 47
10108: No set of starting bytes
10109:
10110: "(?>.*/)foo"SI
10111: Capturing subpattern count = 0
10112: No options
10113: First char at start or follows newline
10114: Need char = 'o'
10115: Subject length lower bound = 4
10116: No set of starting bytes
10117:
10118: /(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /xSI
10119: Capturing subpattern count = 0
10120: Options: extended
10121: No first char
10122: Need char = '-'
10123: Subject length lower bound = 8
10124: No set of starting bytes
10125:
10126: /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10127: Capturing subpattern count = 1
10128: Options: caseless
10129: No first char
10130: No need char
10131: Subject length lower bound = 1
10132: Starting byte set: A B C a b c
10133:
10134: /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10135: Capturing subpattern count = 0
10136: No options
10137: No first char
10138: Need char = 'b'
10139: Subject length lower bound = 41
10140: Starting byte set: c d
10141:
10142: /<a[\s]+href[\s]*=[\s]* # find <a href=
10143: ([\"\'])? # find single or double quote
10144: (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching
10145: # quote, otherwise match up to next space
10146: /isxSI
10147: Capturing subpattern count = 3
10148: Max back reference = 1
10149: Options: caseless extended dotall
10150: First char = '<'
10151: Need char = '='
10152: Subject length lower bound = 9
10153: No set of starting bytes
10154:
10155: /^(?!:) # colon disallowed at start
10156: (?: # start of item
10157: (?: [0-9a-f]{1,4} | # 1-4 hex digits or
10158: (?(1)0 | () ) ) # if null previously matched, fail; else null
10159: : # followed by colon
10160: ){1,7} # end item; 1-7 of them required
10161: [0-9a-f]{1,4} $ # final hex number at end of string
10162: (?(1)|.) # check that there was an empty component
10163: /xiIS
10164: Capturing subpattern count = 1
10165: Options: anchored caseless extended
10166: No first char
10167: Need char = ':'
10168: Subject length lower bound = 2
10169: No set of starting bytes
10170:
10171: /(?|(?<a>A)|(?<a>B))/I
10172: Capturing subpattern count = 1
10173: Named capturing subpatterns:
10174: a 1
10175: a 1
10176: No options
10177: No first char
10178: No need char
10179: AB\Ca
10180: 0: A
10181: 1: A
10182: C A (1) a
10183: BA\Ca
10184: 0: B
10185: 1: B
10186: C B (1) a
10187:
10188: /(?|(?<a>A)|(?<b>B))/
10189: Failed: different names for subpatterns of the same number are not allowed at offset 15
10190:
10191: /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10192: b(?<quote> (?<apostrophe>')|(?<realquote>")) )
10193: (?('quote')[a-z]+|[0-9]+)/JIx
10194: Capturing subpattern count = 6
10195: Named capturing subpatterns:
10196: apostrophe 2
10197: apostrophe 5
10198: quote 1
10199: quote 4
10200: realquote 3
10201: realquote 6
10202: Options: extended dupnames
10203: No first char
10204: No need char
10205: a"aaaaa
10206: 0: a"aaaaa
10207: 1: "
10208: 2: <unset>
10209: 3: "
10210: b"aaaaa
10211: 0: b"aaaaa
10212: 1: <unset>
10213: 2: <unset>
10214: 3: <unset>
10215: 4: "
10216: 5: <unset>
10217: 6: "
10218: ** Failers
10219: No match
10220: b"11111
10221: No match
10222: a"11111
10223: No match
10224:
10225: /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10226: ------------------------------------------------------------------
10227: Bra
10228: ^
10229: Bra
10230: CBra 1
10231: a
10232: Ket
10233: CBra 2
10234: b
10235: Ket
10236: CBra 3
10237: c
10238: Ket
10239: CBra 4
10240: d
10241: Ket
10242: Alt
10243: CBra 1
10244: e
10245: Ket
10246: Ket
10247: Cond
10248: 4 Cond nref
10249: X
10250: Alt
10251: Y
10252: Ket
10253: Ket
10254: End
10255: ------------------------------------------------------------------
10256: Capturing subpattern count = 4
10257: Named capturing subpatterns:
10258: D 4
10259: D 1
10260: Options: anchored extended dupnames
10261: No first char
10262: No need char
10263: abcdX
10264: 0: abcdX
10265: 1: a
10266: 2: b
10267: 3: c
10268: 4: d
10269: eX
10270: 0: eX
10271: 1: e
10272: ** Failers
10273: No match
10274: abcdY
10275: No match
10276: ey
10277: No match
10278:
10279: /(?<A>a) (b)(c) (?<A>d (?(R&A)$ | (?4)) )/JDZx
10280: ------------------------------------------------------------------
10281: Bra
10282: CBra 1
10283: a
10284: Ket
10285: CBra 2
10286: b
10287: Ket
10288: CBra 3
10289: c
10290: Ket
10291: CBra 4
10292: d
10293: Cond
10294: Cond nrecurse 1
10295: $
10296: Alt
10297: Recurse
10298: Ket
10299: Ket
10300: Ket
10301: End
10302: ------------------------------------------------------------------
10303: Capturing subpattern count = 4
10304: Named capturing subpatterns:
10305: A 1
10306: A 4
10307: Options: extended dupnames
10308: First char = 'a'
10309: Need char = 'd'
10310: abcdd
10311: 0: abcdd
10312: 1: a
10313: 2: b
10314: 3: c
10315: 4: dd
10316: ** Failers
10317: No match
10318: abcdde
10319: No match
10320:
10321: /abcd*/
10322: xxxxabcd\P
10323: 0: abcd
10324: xxxxabcd\P\P
10325: Partial match: abcd
10326:
10327: /abcd*/i
10328: xxxxabcd\P
10329: 0: abcd
10330: xxxxabcd\P\P
10331: Partial match: abcd
10332: XXXXABCD\P
10333: 0: ABCD
10334: XXXXABCD\P\P
10335: Partial match: ABCD
10336:
10337: /abc\d*/
10338: xxxxabc1\P
10339: 0: abc1
10340: xxxxabc1\P\P
10341: Partial match: abc1
10342:
10343: /(a)bc\1*/
10344: xxxxabca\P
10345: 0: abca
10346: 1: a
10347: xxxxabca\P\P
10348: Partial match: abca
10349:
10350: /abc[de]*/
10351: xxxxabcde\P
10352: 0: abcde
10353: xxxxabcde\P\P
10354: Partial match: abcde
10355:
10356: /-- This is not in the Perl >= 5.10 test because Perl seems currently to be
10357: broken and not behaving as specified in that it *does* bumpalong after
10358: hitting (*COMMIT). --/
10359:
10360: /(?1)(A(*COMMIT)|B)D/
10361: ABD
10362: 0: ABD
10363: 1: B
10364: XABD
10365: 0: ABD
10366: 1: B
10367: BAD
10368: 0: BAD
10369: 1: A
10370: ABXABD
10371: 0: ABD
10372: 1: B
10373: ** Failers
10374: No match
10375: ABX
10376: No match
10377: BAXBAD
10378: No match
10379:
10380: /(\3)(\1)(a)/<JS>
10381: cat
10382: 0: a
10383: 1:
10384: 2:
10385: 3: a
10386:
10387: /(\3)(\1)(a)/SI<JS>
10388: Capturing subpattern count = 3
10389: Max back reference = 3
10390: Options:
10391: No first char
10392: Need char = 'a'
10393: Subject length lower bound = 1
10394: No set of starting bytes
10395: cat
10396: 0: a
10397: 1:
10398: 2:
10399: 3: a
10400:
10401: /(\3)(\1)(a)/SI
10402: Capturing subpattern count = 3
10403: Max back reference = 3
10404: No options
10405: No first char
10406: Need char = 'a'
10407: Subject length lower bound = 3
10408: No set of starting bytes
10409: cat
10410: No match
10411:
10412: /i(?(DEFINE)(?<s>a))/SI
10413: Capturing subpattern count = 1
10414: Named capturing subpatterns:
10415: s 1
10416: No options
10417: First char = 'i'
10418: No need char
10419: Subject length lower bound = 1
10420: No set of starting bytes
10421: i
10422: 0: i
10423:
10424: /()i(?(1)a)/SI
10425: Capturing subpattern count = 1
10426: No options
10427: No first char
10428: Need char = 'i'
10429: Subject length lower bound = 1
10430: Starting byte set: i
10431: ia
10432: 0: ia
10433: 1:
10434:
10435: /(?i)a(?-i)b|c/BZ
10436: ------------------------------------------------------------------
10437: Bra
10438: /i a
10439: b
10440: Alt
10441: c
10442: Ket
10443: End
10444: ------------------------------------------------------------------
10445: XabX
10446: 0: ab
10447: XAbX
10448: 0: Ab
10449: CcC
10450: 0: c
10451: ** Failers
10452: No match
10453: XABX
10454: No match
10455:
10456: /(?i)a(?s)b|c/BZ
10457: ------------------------------------------------------------------
10458: Bra
10459: /i ab
10460: Alt
10461: /i c
10462: Ket
10463: End
10464: ------------------------------------------------------------------
10465:
10466: /(?i)a(?s-i)b|c/BZ
10467: ------------------------------------------------------------------
10468: Bra
10469: /i a
10470: b
10471: Alt
10472: c
10473: Ket
10474: End
10475: ------------------------------------------------------------------
10476:
10477: /^(ab(c\1)d|x){2}$/BZ
10478: ------------------------------------------------------------------
10479: Bra
10480: ^
10481: Once
10482: CBra 1
10483: ab
10484: CBra 2
10485: c
10486: \1
10487: Ket
10488: d
10489: Alt
10490: x
10491: Ket
10492: Ket
10493: Once
10494: CBra 1
10495: ab
10496: CBra 2
10497: c
10498: \1
10499: Ket
10500: d
10501: Alt
10502: x
10503: Ket
10504: Ket
10505: $
10506: Ket
10507: End
10508: ------------------------------------------------------------------
10509: xabcxd
10510: 0: xabcxd
10511: 1: abcxd
10512: 2: cx
10513:
10514: /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10515: ------------------------------------------------------------------
10516: Bra
10517: ^
10518: Braposzero
10519: SBraPos
10520: Recurse
10521: KetRpos
10522: Cond
10523: Cond def
10524: CBra 1
10525: Any
10526: Ket
10527: Ket
10528: $
10529: Ket
10530: End
10531: ------------------------------------------------------------------
10532:
10533: /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10534: ------------------------------------------------------------------
10535: Bra
10536: ^
10537: Brazero
10538: Once
10539: Recurse
10540: KetRmax
10541: Cond
10542: Cond def
10543: CBra 1
10544: Any
10545: Ket
10546: Ket
10547: $
10548: Ket
10549: End
10550: ------------------------------------------------------------------
10551:
10552: / -- The first four of these are not in the Perl >= 5.10 test because Perl
10553: documents that the use of \K in assertions is "not well defined". The
10554: last is here because Perl gives the match as "b" rather than "ab". I
10555: believe this to be a Perl bug. --/
10556:
10557: /(?=a\Kb)ab/
10558: ab
10559: 0: b
10560:
10561: /(?!a\Kb)ac/
10562: ac
10563: 0: ac
10564:
10565: /^abc(?<=b\Kc)d/
10566: abcd
10567: 0: cd
10568:
10569: /^abc(?<!b\Kq)d/
10570: abcd
10571: 0: abcd
10572:
10573: /(?>a\Kb)z|(ab)/
10574: ab
10575: 0: ab
10576: 1: ab
10577:
10578: /----------------------/
10579:
10580: /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10581: Failed: recursive call could loop indefinitely at offset 31
10582:
10583: /abc(*MARK:)pqr/
10584: Failed: (*MARK) must have an argument at offset 10
10585:
10586: /abc(*:)pqr/
10587: Failed: (*MARK) must have an argument at offset 6
10588:
10589: /abc(*FAIL:123)xyz/
10590: Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10591:
10592: /--- This should, and does, fail. In Perl, it does not, which I think is a
10593: bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10594:
10595: /A(*COMMIT)B/+K
10596: ACABX
10597: No match
10598:
10599: /--- These should be different, but in Perl 5.11 are not, which I think
10600: is a bug in Perl. ---/
10601:
10602: /A(*THEN)B|A(*THEN)C/K
10603: AC
10604: 0: AC
10605:
10606: /A(*PRUNE)B|A(*PRUNE)C/K
10607: AC
10608: No match
10609:
10610: /--- This should fail; the SKIP advances by one, but when we get to AC, the
10611: PRUNE kills it. Perl behaves differently. ---/
10612:
10613: /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
10614: AAAC
10615: No match, mark = A
10616:
10617: /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10618: though PCRE does. ---/
10619:
10620: /^A(*:A)B|^X(*:A)Y/K
10621: ** Failers
10622: No match
10623: XAQQ
10624: No match, mark = A
10625:
10626: /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10627: optimizations defeat this. So does the PCRE optimization unless we disable it
10628: with \Y. ---/
10629:
10630: /(*COMMIT)ABC/
10631: ABCDEFG
10632: 0: ABC
10633: ** Failers
10634: No match
10635: DEFGABC\Y
10636: No match
10637:
10638: /^(ab (c+(*THEN)cd) | xyz)/x
10639: abcccd
10640: No match
10641:
10642: /^(ab (c+(*PRUNE)cd) | xyz)/x
10643: abcccd
10644: No match
10645:
10646: /^(ab (c+(*FAIL)cd) | xyz)/x
10647: abcccd
10648: No match
10649:
10650: /--- Perl 5.11 gets some of these wrong ---/
10651:
10652: /(?>.(*ACCEPT))*?5/
10653: abcde
10654: 0: a
10655:
10656: /(.(*ACCEPT))*?5/
10657: abcde
10658: 0: a
10659: 1: a
10660:
10661: /(.(*ACCEPT))5/
10662: abcde
10663: 0: a
10664: 1: a
10665:
10666: /(.(*ACCEPT))*5/
10667: abcde
10668: 0: a
10669: 1: a
10670:
10671: /A\NB./BZ
10672: ------------------------------------------------------------------
10673: Bra
10674: A
10675: Any
10676: B
10677: Any
10678: Ket
10679: End
10680: ------------------------------------------------------------------
10681: ACBD
10682: 0: ACBD
10683: *** Failers
10684: No match
10685: A\nB
10686: No match
10687: ACB\n
10688: No match
10689:
10690: /A\NB./sBZ
10691: ------------------------------------------------------------------
10692: Bra
10693: A
10694: Any
10695: B
10696: AllAny
10697: Ket
10698: End
10699: ------------------------------------------------------------------
10700: ACBD
10701: 0: ACBD
10702: ACB\n
10703: 0: ACB\x0a
10704: *** Failers
10705: No match
10706: A\nB
10707: No match
10708:
10709: /A\NB/<crlf>
10710: A\nB
10711: 0: A\x0aB
10712: A\rB
10713: 0: A\x0dB
10714: ** Failers
10715: No match
10716: A\r\nB
10717: No match
10718:
10719: /\R+b/BZ
10720: ------------------------------------------------------------------
10721: Bra
10722: \R++
10723: b
10724: Ket
10725: End
10726: ------------------------------------------------------------------
10727:
10728: /\R+\n/BZ
10729: ------------------------------------------------------------------
10730: Bra
10731: \R+
10732: \x0a
10733: Ket
10734: End
10735: ------------------------------------------------------------------
10736:
10737: /\R+\d/BZ
10738: ------------------------------------------------------------------
10739: Bra
10740: \R++
10741: \d
10742: Ket
10743: End
10744: ------------------------------------------------------------------
10745:
10746: /\d*\R/BZ
10747: ------------------------------------------------------------------
10748: Bra
10749: \d*+
10750: \R
10751: Ket
10752: End
10753: ------------------------------------------------------------------
10754:
10755: /\s*\R/BZ
10756: ------------------------------------------------------------------
10757: Bra
1.1.1.3 ! misho 10758: \s*
! 10759: \R
! 10760: Ket
! 10761: End
! 10762: ------------------------------------------------------------------
! 10763: \x20\x0a
! 10764: 0: \x0a
! 10765: \x20\x0d
! 10766: 0: \x0d
! 10767: \x20\x0d\x0a
! 10768: 0: \x0d\x0a
! 10769:
! 10770: /\S*\R/BZ
! 10771: ------------------------------------------------------------------
! 10772: Bra
! 10773: \S*+
! 10774: \R
! 10775: Ket
! 10776: End
! 10777: ------------------------------------------------------------------
! 10778: a\x0a
! 10779: 0: a\x0a
! 10780:
! 10781: /X\h*\R/BZ
! 10782: ------------------------------------------------------------------
! 10783: Bra
! 10784: X
! 10785: \h*+
! 10786: \R
! 10787: Ket
! 10788: End
! 10789: ------------------------------------------------------------------
! 10790: X\x20\x0a
! 10791: 0: X \x0a
! 10792:
! 10793: /X\H*\R/BZ
! 10794: ------------------------------------------------------------------
! 10795: Bra
! 10796: X
! 10797: \H*
1.1 misho 10798: \R
10799: Ket
10800: End
10801: ------------------------------------------------------------------
1.1.1.3 ! misho 10802: X\x0d\x0a
! 10803: 0: X\x0d\x0a
! 10804:
! 10805: /X\H+\R/BZ
! 10806: ------------------------------------------------------------------
! 10807: Bra
! 10808: X
! 10809: \H+
! 10810: \R
! 10811: Ket
! 10812: End
! 10813: ------------------------------------------------------------------
! 10814: X\x0d\x0a
! 10815: 0: X\x0d\x0a
! 10816:
! 10817: /X\H++\R/BZ
! 10818: ------------------------------------------------------------------
! 10819: Bra
! 10820: X
! 10821: \H++
! 10822: \R
! 10823: Ket
! 10824: End
! 10825: ------------------------------------------------------------------
! 10826: X\x0d\x0a
! 10827: No match
1.1 misho 10828:
10829: /-- Perl treats this one differently, not failing the second string. I believe
10830: that is a bug in Perl. --/
10831:
10832: /^((abc|abcx)(*THEN)y|abcd)/
10833: abcd
10834: 0: abcd
10835: 1: abcd
10836: *** Failers
10837: No match
10838: abcxy
10839: No match
10840:
10841: /(?<=abc)def/
10842: abc\P\P
10843: Partial match: abc
10844:
10845: /abc$/
10846: abc
10847: 0: abc
10848: abc\P
10849: 0: abc
10850: abc\P\P
10851: Partial match: abc
10852:
10853: /abc$/m
10854: abc
10855: 0: abc
10856: abc\n
10857: 0: abc
10858: abc\P\P
10859: Partial match: abc
10860: abc\n\P\P
10861: 0: abc
10862: abc\P
10863: 0: abc
10864: abc\n\P
10865: 0: abc
10866:
10867: /abc\z/
10868: abc
10869: 0: abc
10870: abc\P
10871: 0: abc
10872: abc\P\P
10873: Partial match: abc
10874:
10875: /abc\Z/
10876: abc
10877: 0: abc
10878: abc\P
10879: 0: abc
10880: abc\P\P
10881: Partial match: abc
10882:
10883: /abc\b/
10884: abc
10885: 0: abc
10886: abc\P
10887: 0: abc
10888: abc\P\P
10889: Partial match: abc
10890:
10891: /abc\B/
10892: abc
10893: No match
10894: abc\P
10895: Partial match: abc
10896: abc\P\P
10897: Partial match: abc
10898:
10899: /.+/
10900: abc\>0
10901: 0: abc
10902: abc\>1
10903: 0: bc
10904: abc\>2
10905: 0: c
10906: abc\>3
10907: No match
10908: abc\>4
10909: Error -24 (bad offset value)
10910: abc\>-4
10911: Error -24 (bad offset value)
10912:
10913: /^\cģ/
10914: Failed: \c must be followed by an ASCII character at offset 3
10915:
10916: /(?P<abn>(?P=abn)xxx)/BZ
10917: ------------------------------------------------------------------
10918: Bra
10919: Once
10920: CBra 1
10921: \1
10922: xxx
10923: Ket
10924: Ket
10925: Ket
10926: End
10927: ------------------------------------------------------------------
10928:
10929: /(a\1z)/BZ
10930: ------------------------------------------------------------------
10931: Bra
10932: Once
10933: CBra 1
10934: a
10935: \1
10936: z
10937: Ket
10938: Ket
10939: Ket
10940: End
10941: ------------------------------------------------------------------
10942:
10943: /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
10944: Failed: syntax error in subpattern name (missing terminator) at offset 29
10945:
10946: /(?P<abn>(?P=axn)xxx)/BZ
10947: Failed: reference to non-existent subpattern at offset 15
10948:
10949: /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
10950: ------------------------------------------------------------------
10951: Bra
10952: CBra 1
10953: \2
10954: xxx
10955: Ket
10956: CBra 2
10957: yy
10958: Ket
10959: Ket
10960: End
10961: ------------------------------------------------------------------
10962:
10963: /-- These tests are here because Perl gets the first one wrong. --/
10964:
10965: /(\R*)(.)/s
10966: \r\n
10967: 0: \x0d
10968: 1:
10969: 2: \x0d
10970: \r\r\n\n\r
10971: 0: \x0d\x0d\x0a\x0a\x0d
10972: 1: \x0d\x0d\x0a\x0a
10973: 2: \x0d
10974: \r\r\n\n\r\n
10975: 0: \x0d\x0d\x0a\x0a\x0d
10976: 1: \x0d\x0d\x0a\x0a
10977: 2: \x0d
10978:
10979: /(\R)*(.)/s
10980: \r\n
10981: 0: \x0d
10982: 1: <unset>
10983: 2: \x0d
10984: \r\r\n\n\r
10985: 0: \x0d\x0d\x0a\x0a\x0d
10986: 1: \x0a
10987: 2: \x0d
10988: \r\r\n\n\r\n
10989: 0: \x0d\x0d\x0a\x0a\x0d
10990: 1: \x0a
10991: 2: \x0d
10992:
10993: /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
10994: \r\n
10995: 0: \x0d
10996: 1:
10997: 2: \x0d
10998: \r\r\n\n\r
10999: 0: \x0d\x0d\x0a\x0a\x0d
11000: 1: \x0d\x0d\x0a\x0a
11001: 2: \x0d
11002: \r\r\n\n\r\n
11003: 0: \x0d\x0d\x0a\x0a\x0d
11004: 1: \x0d\x0d\x0a\x0a
11005: 2: \x0d
11006:
11007: /-- --/
11008:
11009: /^abc$/BZ
11010: ------------------------------------------------------------------
11011: Bra
11012: ^
11013: abc
11014: $
11015: Ket
11016: End
11017: ------------------------------------------------------------------
11018:
11019: /^abc$/BZm
11020: ------------------------------------------------------------------
11021: Bra
11022: /m ^
11023: abc
11024: /m $
11025: Ket
11026: End
11027: ------------------------------------------------------------------
11028:
11029: /^(a)*+(\w)/S
11030: aaaaX
11031: 0: aaaaX
11032: 1: a
11033: 2: X
11034: ** Failers
11035: No match
11036: aaaa
11037: No match
11038:
11039: /^(?:a)*+(\w)/S
11040: aaaaX
11041: 0: aaaaX
11042: 1: X
11043: ** Failers
11044: No match
11045: aaaa
11046: No match
11047:
11048: /(a)++1234/SDZ
11049: ------------------------------------------------------------------
11050: Bra
11051: CBraPos 1
11052: a
11053: KetRpos
11054: 1234
11055: Ket
11056: End
11057: ------------------------------------------------------------------
11058: Capturing subpattern count = 1
11059: No options
11060: First char = 'a'
11061: Need char = '4'
11062: Subject length lower bound = 5
11063: No set of starting bytes
11064:
11065: /([abc])++1234/SI
11066: Capturing subpattern count = 1
11067: No options
11068: No first char
11069: Need char = '4'
11070: Subject length lower bound = 5
11071: Starting byte set: a b c
11072:
11073: /(?<=(abc)+)X/
11074: Failed: lookbehind assertion is not fixed length at offset 10
11075:
11076: /(^ab)/I
11077: Capturing subpattern count = 1
11078: Options: anchored
11079: No first char
11080: No need char
11081:
11082: /(^ab)++/I
11083: Capturing subpattern count = 1
11084: Options: anchored
11085: No first char
11086: No need char
11087:
11088: /(^ab|^)+/I
11089: Capturing subpattern count = 1
11090: Options: anchored
11091: No first char
11092: No need char
11093:
11094: /(^ab|^)++/I
11095: Capturing subpattern count = 1
11096: Options: anchored
11097: No first char
11098: No need char
11099:
11100: /(?:^ab)/I
11101: Capturing subpattern count = 0
11102: Options: anchored
11103: No first char
11104: No need char
11105:
11106: /(?:^ab)++/I
11107: Capturing subpattern count = 0
11108: Options: anchored
11109: No first char
11110: No need char
11111:
11112: /(?:^ab|^)+/I
11113: Capturing subpattern count = 0
11114: Options: anchored
11115: No first char
11116: No need char
11117:
11118: /(?:^ab|^)++/I
11119: Capturing subpattern count = 0
11120: Options: anchored
11121: No first char
11122: No need char
11123:
11124: /(.*ab)/I
11125: Capturing subpattern count = 1
11126: No options
11127: First char at start or follows newline
11128: Need char = 'b'
11129:
11130: /(.*ab)++/I
11131: Capturing subpattern count = 1
11132: No options
11133: First char at start or follows newline
11134: Need char = 'b'
11135:
11136: /(.*ab|.*)+/I
11137: Capturing subpattern count = 1
11138: No options
11139: First char at start or follows newline
11140: No need char
11141:
11142: /(.*ab|.*)++/I
11143: Capturing subpattern count = 1
11144: No options
11145: First char at start or follows newline
11146: No need char
11147:
11148: /(?:.*ab)/I
11149: Capturing subpattern count = 0
11150: No options
11151: First char at start or follows newline
11152: Need char = 'b'
11153:
11154: /(?:.*ab)++/I
11155: Capturing subpattern count = 0
11156: No options
11157: First char at start or follows newline
11158: Need char = 'b'
11159:
11160: /(?:.*ab|.*)+/I
11161: Capturing subpattern count = 0
11162: No options
11163: First char at start or follows newline
11164: No need char
11165:
11166: /(?:.*ab|.*)++/I
11167: Capturing subpattern count = 0
11168: No options
11169: First char at start or follows newline
11170: No need char
11171:
11172: /(?=a)[bcd]/I
11173: Capturing subpattern count = 0
11174: No options
11175: First char = 'a'
11176: No need char
11177:
11178: /((?=a))[bcd]/I
11179: Capturing subpattern count = 1
11180: No options
11181: First char = 'a'
11182: No need char
11183:
11184: /((?=a))+[bcd]/I
11185: Capturing subpattern count = 1
11186: No options
11187: First char = 'a'
11188: No need char
11189:
11190: /((?=a))++[bcd]/I
11191: Capturing subpattern count = 1
11192: No options
11193: First char = 'a'
11194: No need char
11195:
11196: /(?=a+)[bcd]/iI
11197: Capturing subpattern count = 0
11198: Options: caseless
11199: First char = 'a' (caseless)
11200: No need char
11201:
11202: /(?=a+?)[bcd]/iI
11203: Capturing subpattern count = 0
11204: Options: caseless
11205: First char = 'a' (caseless)
11206: No need char
11207:
11208: /(?=a++)[bcd]/iI
11209: Capturing subpattern count = 0
11210: Options: caseless
11211: First char = 'a' (caseless)
11212: No need char
11213:
11214: /(?=a{3})[bcd]/iI
11215: Capturing subpattern count = 0
11216: Options: caseless
11217: First char = 'a' (caseless)
11218: Need char = 'a' (caseless)
11219:
11220: /(abc)\1+/S
11221:
11222: /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11223:
11224: /(?1)(?:(b(*ACCEPT))){0}/
11225: b
11226: 0: b
11227:
11228: /(?1)(?:(b(*ACCEPT))){0}c/
11229: bc
11230: 0: bc
11231: ** Failers
11232: No match
11233: b
11234: No match
11235:
11236: /(?1)(?:((*ACCEPT))){0}c/
11237: c
11238: 0: c
11239: c\N
11240: 0: c
11241:
11242: /^.*?(?(?=a)a|b(*THEN)c)/
11243: ba
11244: No match
11245:
11246: /^.*?(?(?=a)a|bc)/
11247: ba
11248: 0: ba
11249:
11250: /^.*?(?(?=a)a(*THEN)b|c)/
11251: ac
11252: No match
11253:
11254: /^.*?(?(?=a)a(*THEN)b)c/
11255: ac
11256: No match
11257:
11258: /^.*?(a(*THEN)b)c/
11259: aabc
11260: No match
11261:
11262: /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11263: aabc
11264: 0: aabc
11265:
11266: /^.*?(a(*THEN)b|z)c/
11267: aabc
11268: 0: aabc
11269: 1: ab
11270:
11271: /^.*?(z|a(*THEN)b)c/
11272: aabc
11273: 0: aabc
11274: 1: ab
11275:
11276: /-- --/
11277:
11278: /-- These studied versions are here because they are not Perl-compatible; the
11279: studying means the mark is not seen. --/
11280:
11281: /(*MARK:A)(*SKIP:B)(C|X)/KS
11282: C
11283: 0: C
11284: 1: C
11285: MK: A
11286: D
11287: No match, mark = A
11288:
11289: /(*:A)A+(*SKIP:A)(B|Z)/KS
11290: AAAC
11291: No match, mark = A
11292:
11293: /-- --/
11294:
11295: "(?=a*(*ACCEPT)b)c"
11296: c
11297: 0: c
11298: c\N
11299: 0: c
11300:
11301: /(?1)c(?(DEFINE)((*ACCEPT)b))/
11302: c
11303: 0: c
11304: c\N
11305: 0: c
11306:
11307: /(?>(*ACCEPT)b)c/
11308: c
11309: 0:
11310: c\N
11311: No match
11312:
11313: /(?:(?>(a)))+a%/++
11314: %aa%
11315: 0: aa%
11316: 0+
11317: 1: a
11318: 1+ a%
11319:
11320: /(a)b|ac/++SS
11321: ac\O3
11322: Matched, but too many substrings
11323: 0: ac
11324: 0+
11325:
11326: /(a)(b)x|abc/++
11327: abc\O6
11328: 0: abc
11329: 0+
11330:
11331: /(a)bc|(a)(b)\2/
11332: \O3abc
11333: Matched, but too many substrings
11334: 0: abc
11335: \O4abc
11336: Matched, but too many substrings
11337: 0: abc
11338:
11339: /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11340: Capturing subpattern count = 2
11341: No options
11342: No first char
11343: No need char
11344: Subject length lower bound = 1
11345: No set of starting bytes
11346:
11347: /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11348: Capturing subpattern count = 2
11349: No options
11350: No first char
11351: No need char
11352: Subject length lower bound = 3
11353: Starting byte set: a b
11354:
11355: /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11356: Capturing subpattern count = 2
11357: No options
11358: No first char
11359: No need char
11360: Subject length lower bound = 4
11361: Starting byte set: a b
11362:
11363: /(abc)(?1)/SI
11364: Capturing subpattern count = 1
11365: No options
11366: First char = 'a'
11367: Need char = 'c'
11368: Subject length lower bound = 6
11369: No set of starting bytes
11370:
11371: /^(?>a)++/
11372: aa\M
11373: Minimum match() limit = 5
11374: Minimum match() recursion limit = 2
11375: 0: aa
11376: aaaaaaaaa\M
11377: Minimum match() limit = 12
11378: Minimum match() recursion limit = 2
11379: 0: aaaaaaaaa
11380:
11381: /(a)(?1)++/
11382: aa\M
11383: Minimum match() limit = 7
11384: Minimum match() recursion limit = 4
11385: 0: aa
11386: 1: a
11387: aaaaaaaaa\M
11388: Minimum match() limit = 21
11389: Minimum match() recursion limit = 4
11390: 0: aaaaaaaaa
11391: 1: a
11392:
11393: /(?:(foo)|(bar)|(baz))X/SS=
11394: bazfooX
11395: 0: fooX
11396: 1: foo
11397: 2: <unset>
11398: 3: <unset>
11399: foobazbarX
11400: 0: barX
11401: 1: <unset>
11402: 2: bar
11403: 3: <unset>
11404: barfooX
11405: 0: fooX
11406: 1: foo
11407: 2: <unset>
11408: 3: <unset>
11409: bazX
11410: 0: bazX
11411: 1: <unset>
11412: 2: <unset>
11413: 3: baz
11414: foobarbazX
11415: 0: bazX
11416: 1: <unset>
11417: 2: <unset>
11418: 3: baz
11419: bazfooX\O0
11420: Matched, but too many substrings
11421: bazfooX\O2
11422: Matched, but too many substrings
11423: 0: fooX
11424: bazfooX\O4
11425: Matched, but too many substrings
11426: 0: fooX
11427: 1: <unset>
11428: bazfooX\O6
11429: Matched, but too many substrings
11430: 0: fooX
11431: 1: foo
11432: 2: <unset>
11433: bazfooX\O8
11434: Matched, but too many substrings
11435: 0: fooX
11436: 1: foo
11437: 2: <unset>
11438: 3: <unset>
11439: bazfooX\O10
11440: 0: fooX
11441: 1: foo
11442: 2: <unset>
11443: 3: <unset>
11444:
11445: /(?=abc){3}abc/BZ
11446: ------------------------------------------------------------------
11447: Bra
11448: Assert
11449: abc
11450: Ket
11451: abc
11452: Ket
11453: End
11454: ------------------------------------------------------------------
11455:
11456: /(?=abc)+abc/BZ
11457: ------------------------------------------------------------------
11458: Bra
11459: Assert
11460: abc
11461: Ket
11462: abc
11463: Ket
11464: End
11465: ------------------------------------------------------------------
11466:
11467: /(?=abc)++abc/BZ
11468: ------------------------------------------------------------------
11469: Bra
11470: Assert
11471: abc
11472: Ket
11473: abc
11474: Ket
11475: End
11476: ------------------------------------------------------------------
11477:
11478: /(?=abc){0}xyz/BZ
11479: ------------------------------------------------------------------
11480: Bra
11481: Skip zero
11482: Assert
11483: abc
11484: Ket
11485: xyz
11486: Ket
11487: End
11488: ------------------------------------------------------------------
11489:
11490: /(?=(a))?./BZ
11491: ------------------------------------------------------------------
11492: Bra
11493: Brazero
11494: Assert
11495: CBra 1
11496: a
11497: Ket
11498: Ket
11499: Any
11500: Ket
11501: End
11502: ------------------------------------------------------------------
11503:
11504: /(?=(a))??./BZ
11505: ------------------------------------------------------------------
11506: Bra
11507: Braminzero
11508: Assert
11509: CBra 1
11510: a
11511: Ket
11512: Ket
11513: Any
11514: Ket
11515: End
11516: ------------------------------------------------------------------
11517:
11518: /^(?=(a)){0}b(?1)/BZ
11519: ------------------------------------------------------------------
11520: Bra
11521: ^
11522: Skip zero
11523: Assert
11524: CBra 1
11525: a
11526: Ket
11527: Ket
11528: b
11529: Recurse
11530: Ket
11531: End
11532: ------------------------------------------------------------------
11533:
11534: /(?(DEFINE)(a))?b(?1)/BZ
11535: ------------------------------------------------------------------
11536: Bra
11537: Cond
11538: Cond def
11539: CBra 1
11540: a
11541: Ket
11542: Ket
11543: b
11544: Recurse
11545: Ket
11546: End
11547: ------------------------------------------------------------------
11548:
11549: /^(?=(?1))?[az]([abc])d/BZ
11550: ------------------------------------------------------------------
11551: Bra
11552: ^
11553: Brazero
11554: Assert
11555: Recurse
11556: Ket
11557: [az]
11558: CBra 1
11559: [a-c]
11560: Ket
11561: d
11562: Ket
11563: End
11564: ------------------------------------------------------------------
11565:
11566: /^(?!a){0}\w+/BZ
11567: ------------------------------------------------------------------
11568: Bra
11569: ^
11570: Skip zero
11571: Assert not
11572: a
11573: Ket
11574: \w+
11575: Ket
11576: End
11577: ------------------------------------------------------------------
11578:
11579: /(?<=(abc))?xyz/BZ
11580: ------------------------------------------------------------------
11581: Bra
11582: Brazero
11583: AssertB
11584: Reverse
11585: CBra 1
11586: abc
11587: Ket
11588: Ket
11589: xyz
11590: Ket
11591: End
11592: ------------------------------------------------------------------
11593:
11594: /[:a[:abc]b:]/BZ
11595: ------------------------------------------------------------------
11596: Bra
11597: [:[a-c]
11598: b:]
11599: Ket
11600: End
11601: ------------------------------------------------------------------
11602:
11603: /((?2))((?1))/SS
11604: abc
11605: Error -26 (nested recursion at the same subject position)
11606:
11607: /((?(R2)a+|(?1)b))/SS
11608: aaaabcde
11609: Error -26 (nested recursion at the same subject position)
11610:
11611: /(?(R)a*(?1)|((?R))b)/SS
11612: aaaabcde
11613: Error -26 (nested recursion at the same subject position)
11614:
11615: /(a+|(?R)b)/
11616: Failed: recursive call could loop indefinitely at offset 7
11617:
11618: /^(a(*:A)(d|e(*:B))z|aeq)/C
11619: adz
11620: --->adz
11621: +0 ^ ^
11622: +1 ^ (a(*:A)(d|e(*:B))z|aeq)
11623: +2 ^ a
11624: +3 ^^ (*:A)
11625: +8 ^^ (d|e(*:B))
11626: Latest Mark: A
11627: +9 ^^ d
11628: +10 ^ ^ |
11629: +18 ^ ^ z
11630: +19 ^ ^ |
11631: +24 ^ ^
11632: 0: adz
11633: 1: adz
11634: 2: d
11635: aez
11636: --->aez
11637: +0 ^ ^
11638: +1 ^ (a(*:A)(d|e(*:B))z|aeq)
11639: +2 ^ a
11640: +3 ^^ (*:A)
11641: +8 ^^ (d|e(*:B))
11642: Latest Mark: A
11643: +9 ^^ d
11644: +11 ^^ e
11645: +12 ^ ^ (*:B)
11646: +17 ^ ^ )
11647: Latest Mark: B
11648: +18 ^ ^ z
11649: +19 ^ ^ |
11650: +24 ^ ^
11651: 0: aez
11652: 1: aez
11653: 2: e
11654: aeqwerty
11655: --->aeqwerty
11656: +0 ^ ^
11657: +1 ^ (a(*:A)(d|e(*:B))z|aeq)
11658: +2 ^ a
11659: +3 ^^ (*:A)
11660: +8 ^^ (d|e(*:B))
11661: Latest Mark: A
11662: +9 ^^ d
11663: +11 ^^ e
11664: +12 ^ ^ (*:B)
11665: +17 ^ ^ )
11666: Latest Mark: B
11667: +18 ^ ^ z
11668: +20 ^ a
11669: +21 ^^ e
11670: +22 ^ ^ q
11671: +23 ^ ^ )
11672: +24 ^ ^
11673: 0: aeq
11674: 1: aeq
11675:
11676: /.(*F)/
11677: \P\Pabc
11678: No match
11679:
11680: /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11681: Capturing subpattern count = 0
11682: No options
11683: First char = 't'
11684: Need char = 't'
1.1.1.3 ! misho 11685: Max lookbehind = 1
1.1 misho 11686: Subject length lower bound = 18
11687: No set of starting bytes
11688:
11689: /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11690: Capturing subpattern count = 0
11691: No options
11692: No first char
11693: No need char
1.1.1.3 ! misho 11694: Max lookbehind = 1
1.1 misho 11695: Subject length lower bound = 8
11696: Starting byte set: < o t u
11697:
11698: /a(*SKIP)c|b(*ACCEPT)|/+SI
11699: Capturing subpattern count = 0
11700: No options
11701: No first char
11702: No need char
11703: Study returned NULL
11704: a
11705: 0:
11706: 0+
11707:
11708: /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11709: Capturing subpattern count = 0
11710: No options
11711: No first char
11712: No need char
11713: Subject length lower bound = -1
11714: Starting byte set: a b x
11715: ax
11716: 0: x
11717:
11718: 'a*(*ACCEPT)b'+
11719: \N\N
11720: No match
11721: abc\N\N
11722: 0: a
11723: 0+ bc
11724: bbb\N\N
11725: 0:
11726: 0+ bb
11727:
11728: /(*ACCEPT)a/+I
11729: Capturing subpattern count = 0
11730: No options
11731: No first char
11732: No need char
11733: bax
11734: 0:
11735: 0+ bax
11736:
11737: /z(*ACCEPT)a/+I
11738: Capturing subpattern count = 0
11739: No options
11740: First char = 'z'
11741: No need char
11742: baxzbx
11743: 0: z
11744: 0+ bx
11745:
11746: /a(?:.)*?a/ims
11747: \Mabbbbbbbbbbbbbbbbbbbbba
11748: Minimum match() limit = 65
11749: Minimum match() recursion limit = 2
11750: 0: abbbbbbbbbbbbbbbbbbbbba
11751:
11752: /a(?:.(*THEN))*?a/ims
11753: \Mabbbbbbbbbbbbbbbbbbbbba
11754: Minimum match() limit = 86
11755: Minimum match() recursion limit = 45
11756: 0: abbbbbbbbbbbbbbbbbbbbba
11757:
11758: /a(?:.(*THEN:ABC))*?a/ims
11759: \Mabbbbbbbbbbbbbbbbbbbbba
11760: Minimum match() limit = 86
11761: Minimum match() recursion limit = 45
11762: 0: abbbbbbbbbbbbbbbbbbbbba
11763:
11764: /-- These tests are in agreement with development Perl 5.015, which has fixed
11765: some things, but they don't all work with 5.012, so they aren't in the
11766: Perl-compatible tests. Those after the first come from Perl's own test
11767: files. --/
11768:
11769: /^((yes|no)(*THEN)(*F))?/
11770: yes
11771: No match
11772:
11773: /(A (.*) C? (*THEN) | A D) (*FAIL)/x
11774: AbcdCBefgBhiBqz
11775: No match
11776:
11777: /(A (.*) C? (*THEN) | A D) z/x
11778: AbcdCBefgBhiBqz
11779: No match
11780:
11781: /(A (.*) C? (*THEN) | A D) \s* (*FAIL)/x
11782: AbcdCBefgBhiBqz
11783: No match
11784:
11785: /(A (.*) C? (*THEN) | A D) \s* z/x
11786: AbcdCBefgBhiBqz
11787: No match
11788:
11789: /(A (.*) (?:C|) (*THEN) | A D) (*FAIL)/x
11790: AbcdCBefgBhiBqz
11791: No match
11792:
11793: /(A (.*) (?:C|) (*THEN) | A D) z/x
11794: AbcdCBefgBhiBqz
11795: No match
11796:
11797: /(A (.*) C{0,6} (*THEN) | A D) (*FAIL)/x
11798: AbcdCBefgBhiBqz
11799: No match
11800:
11801: /(A (.*) C{0,6} (*THEN) | A D) z/x
11802: AbcdCBefgBhiBqz
11803: No match
11804:
11805: /(A (.*) (CE){0,6} (*THEN) | A D) (*FAIL)/x
11806: AbcdCEBefgBhiBqz
11807: No match
11808:
11809: /(A (.*) (CE){0,6} (*THEN) | A D) z/x
11810: AbcdCEBefgBhiBqz
11811: No match
11812:
11813: /(A (.*) (CE*){0,6} (*THEN) | A D) (*FAIL)/x
11814: AbcdCBefgBhiBqz
11815: No match
11816:
11817: /(A (.*) (CE*){0,6} (*THEN) | A D) z/x
11818: AbcdCBefgBhiBqz
11819: No match
11820:
11821: /-----------------------------------------------/
11822:
11823: /^(?>a+)(?>(z+))\w/BZ
11824: ------------------------------------------------------------------
11825: Bra
11826: ^
11827: Once_NC
11828: a+
11829: Ket
11830: Once
11831: CBra 1
11832: z+
11833: Ket
11834: Ket
11835: \w
11836: Ket
11837: End
11838: ------------------------------------------------------------------
11839: aaaazzzzb
11840: 0: aaaazzzzb
11841: 1: zzzz
11842: ** Failers
11843: No match
11844: aazz
11845: No match
11846:
11847: /(.)(\1|a(?2))/
11848: bab
11849: 0: bab
11850: 1: b
11851: 2: ab
11852:
11853: /\1|(.)(?R)\1/
11854: cbbbc
11855: 0: cbbbc
11856: 1: c
11857:
11858: /(.)((?(1)c|a)|a(?2))/
11859: baa
11860: No match
11861:
11862: /(?P<abn>(?P=abn)xxx)/BZ
11863: ------------------------------------------------------------------
11864: Bra
11865: Once
11866: CBra 1
11867: \1
11868: xxx
11869: Ket
11870: Ket
11871: Ket
11872: End
11873: ------------------------------------------------------------------
11874:
11875: /(a\1z)/BZ
11876: ------------------------------------------------------------------
11877: Bra
11878: Once
11879: CBra 1
11880: a
11881: \1
11882: z
11883: Ket
11884: Ket
11885: Ket
11886: End
11887: ------------------------------------------------------------------
11888:
11889: /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11890: \Maabbccddee
11891: Minimum match() limit = 12
11892: Minimum match() recursion limit = 3
11893: 0: aabbccddee
11894:
11895: /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11896: \Maabbccddee
11897: Minimum match() limit = 22
11898: Minimum match() recursion limit = 21
11899: 0: aabbccddee
11900: 1: aa
11901: 2: bb
11902: 3: cc
11903: 4: dd
11904: 5: ee
11905:
11906: /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11907: \Maabbccddee
11908: Minimum match() limit = 18
11909: Minimum match() recursion limit = 13
11910: 0: aabbccddee
11911: 1: aa
11912: 2: cc
11913: 3: ee
11914:
11915: /^a\x41z/<JS>
11916: aAz
11917: 0: aAz
11918: *** Failers
11919: No match
11920: ax41z
11921: No match
11922:
11923: /^a[m\x41]z/<JS>
11924: aAz
11925: 0: aAz
11926:
11927: /^a\x1z/<JS>
11928: ax1z
11929: 0: ax1z
11930:
11931: /^a\u0041z/<JS>
11932: aAz
11933: 0: aAz
11934: *** Failers
11935: No match
11936: au0041z
11937: No match
11938:
11939: /^a[m\u0041]z/<JS>
11940: aAz
11941: 0: aAz
11942:
11943: /^a\u041z/<JS>
11944: au041z
11945: 0: au041z
11946: *** Failers
11947: No match
11948: aAz
11949: No match
11950:
11951: /^a\U0041z/<JS>
11952: aU0041z
11953: 0: aU0041z
11954: *** Failers
11955: No match
11956: aAz
11957: No match
11958:
11959: /(?(?=c)c|d)++Y/BZ
11960: ------------------------------------------------------------------
11961: Bra
11962: BraPos
11963: Cond
11964: Assert
11965: c
11966: Ket
11967: c
11968: Alt
11969: d
11970: Ket
11971: KetRpos
11972: Y
11973: Ket
11974: End
11975: ------------------------------------------------------------------
11976:
11977: /(?(?=c)c|d)*+Y/BZ
11978: ------------------------------------------------------------------
11979: Bra
11980: Braposzero
11981: BraPos
11982: Cond
11983: Assert
11984: c
11985: Ket
11986: c
11987: Alt
11988: d
11989: Ket
11990: KetRpos
11991: Y
11992: Ket
11993: End
11994: ------------------------------------------------------------------
11995:
11996: /a[\NB]c/
11997: Failed: \N is not supported in a class at offset 3
11998:
11999: /a[B-\Nc]/
12000: Failed: \N is not supported in a class at offset 5
12001:
12002: /(a)(?2){0,1999}?(b)/
12003:
12004: /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
12005:
12006: /--- This test, with something more complicated than individual letters, causes
12007: different behaviour in Perl. Perhaps it disables some optimization; no tag is
12008: passed back for the failures, whereas in PCRE there is a tag. ---/
12009:
12010: /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
12011: AABC
12012: 0: AB
12013: 1: A
12014: 2: B
12015: MK: A
12016: XXYZ
12017: 0: XXY
12018: 1: <unset>
12019: 2: <unset>
12020: 3: X
12021: 4: X
12022: 5: Y
12023: MK: B
12024: ** Failers
12025: No match
12026: XAQQ
12027: No match, mark = A
12028: XAQQXZZ
12029: No match, mark = A
12030: AXQQQ
12031: No match, mark = A
12032: AXXQQQ
12033: No match, mark = B
12034:
12035: /-- Perl doesn't give marks for these, though it does if the alternatives are
12036: replaced by single letters. --/
12037:
12038: /(b|q)(*:m)f|a(*:n)w/K
12039: aw
12040: 0: aw
12041: MK: n
12042: ** Failers
12043: No match, mark = n
12044: abc
12045: No match, mark = m
12046:
12047: /(q|b)(*:m)f|a(*:n)w/K
12048: aw
12049: 0: aw
12050: MK: n
12051: ** Failers
12052: No match, mark = n
12053: abc
12054: No match, mark = m
12055:
12056: /-- After a partial match, the behaviour is as for a failure. --/
12057:
12058: /^a(*:X)bcde/K
12059: abc\P
12060: Partial match, mark=X: abc
1.1.1.2 misho 12061:
12062: /-- These are here because Perl doesn't return a mark, except for the first --/
12063:
12064: /(?=(*:x))(q|)/K+
12065: abc
12066: 0:
12067: 0+ abc
12068: 1:
12069: MK: x
12070:
12071: /(?=(*:x))((*:y)q|)/K+
12072: abc
12073: 0:
12074: 0+ abc
12075: 1:
12076: MK: x
12077:
12078: /(?=(*:x))(?:(*:y)q|)/K+
12079: abc
12080: 0:
12081: 0+ abc
12082: MK: x
12083:
12084: /(?=(*:x))(?>(*:y)q|)/K+
12085: abc
12086: 0:
12087: 0+ abc
12088: MK: x
12089:
12090: /(?=a(*:x))(?!a(*:y)c)/K+
12091: ab
12092: 0:
12093: 0+ ab
12094: MK: x
12095:
12096: /(?=a(*:x))(?=a(*:y)c|)/K+
12097: ab
12098: 0:
12099: 0+ ab
12100: MK: x
1.1 misho 12101:
1.1.1.3 ! misho 12102: /(..)\1/
! 12103: ab\P
! 12104: Partial match: ab
! 12105: aba\P
! 12106: Partial match: aba
! 12107: abab\P
! 12108: 0: abab
! 12109: 1: ab
! 12110:
! 12111: /(..)\1/i
! 12112: ab\P
! 12113: Partial match: ab
! 12114: abA\P
! 12115: Partial match: abA
! 12116: aBAb\P
! 12117: 0: aBAb
! 12118: 1: aB
! 12119:
! 12120: /(..)\1{2,}/
! 12121: ab\P
! 12122: Partial match: ab
! 12123: aba\P
! 12124: Partial match: aba
! 12125: abab\P
! 12126: Partial match: abab
! 12127: ababa\P
! 12128: Partial match: ababa
! 12129: ababab\P
! 12130: 0: ababab
! 12131: 1: ab
! 12132: ababab\P\P
! 12133: Partial match: ababab
! 12134: abababa\P
! 12135: 0: ababab
! 12136: 1: ab
! 12137: abababa\P\P
! 12138: Partial match: abababa
! 12139:
! 12140: /(..)\1{2,}/i
! 12141: ab\P
! 12142: Partial match: ab
! 12143: aBa\P
! 12144: Partial match: aBa
! 12145: aBAb\P
! 12146: Partial match: aBAb
! 12147: AbaBA\P
! 12148: Partial match: AbaBA
! 12149: abABAb\P
! 12150: 0: abABAb
! 12151: 1: ab
! 12152: aBAbaB\P\P
! 12153: Partial match: aBAbaB
! 12154: abABabA\P
! 12155: 0: abABab
! 12156: 1: ab
! 12157: abaBABa\P\P
! 12158: Partial match: abaBABa
! 12159:
! 12160: /(..)\1{2,}?x/i
! 12161: ab\P
! 12162: Partial match: ab
! 12163: abA\P
! 12164: Partial match: abA
! 12165: aBAb\P
! 12166: Partial match: aBAb
! 12167: abaBA\P
! 12168: Partial match: abaBA
! 12169: abAbaB\P
! 12170: Partial match: abAbaB
! 12171: abaBabA\P
! 12172: Partial match: abaBabA
! 12173: abAbABaBx\P
! 12174: 0: abAbABaBx
! 12175: 1: ab
! 12176:
! 12177: /^(..)\1/
! 12178: aba\P
! 12179: Partial match: aba
! 12180:
! 12181: /^(..)\1{2,3}x/
! 12182: aba\P
! 12183: Partial match: aba
! 12184: ababa\P
! 12185: Partial match: ababa
! 12186: ababa\P\P
! 12187: Partial match: ababa
! 12188: abababx
! 12189: 0: abababx
! 12190: 1: ab
! 12191: ababababx
! 12192: 0: ababababx
! 12193: 1: ab
! 12194:
! 12195: /^(..)\1{2,3}?x/
! 12196: aba\P
! 12197: Partial match: aba
! 12198: ababa\P
! 12199: Partial match: ababa
! 12200: ababa\P\P
! 12201: Partial match: ababa
! 12202: abababx
! 12203: 0: abababx
! 12204: 1: ab
! 12205: ababababx
! 12206: 0: ababababx
! 12207: 1: ab
! 12208:
! 12209: /^(..)(\1{2,3})ab/
! 12210: abababab
! 12211: 0: abababab
! 12212: 1: ab
! 12213: 2: abab
! 12214:
! 12215: /^\R/
! 12216: \r\P
! 12217: 0: \x0d
! 12218: \r\P\P
! 12219: Partial match: \x0d
! 12220:
! 12221: /^\R{2,3}x/
! 12222: \r\P
! 12223: Partial match: \x0d
! 12224: \r\P\P
! 12225: Partial match: \x0d
! 12226: \r\r\P
! 12227: Partial match: \x0d\x0d
! 12228: \r\r\P\P
! 12229: Partial match: \x0d\x0d
! 12230: \r\r\r\P
! 12231: Partial match: \x0d\x0d\x0d
! 12232: \r\r\r\P\P
! 12233: Partial match: \x0d\x0d\x0d
! 12234: \r\rx
! 12235: 0: \x0d\x0dx
! 12236: \r\r\rx
! 12237: 0: \x0d\x0d\x0dx
! 12238:
! 12239: /^\R{2,3}?x/
! 12240: \r\P
! 12241: Partial match: \x0d
! 12242: \r\P\P
! 12243: Partial match: \x0d
! 12244: \r\r\P
! 12245: Partial match: \x0d\x0d
! 12246: \r\r\P\P
! 12247: Partial match: \x0d\x0d
! 12248: \r\r\r\P
! 12249: Partial match: \x0d\x0d\x0d
! 12250: \r\r\r\P\P
! 12251: Partial match: \x0d\x0d\x0d
! 12252: \r\rx
! 12253: 0: \x0d\x0dx
! 12254: \r\r\rx
! 12255: 0: \x0d\x0d\x0dx
! 12256:
! 12257: /^\R?x/
! 12258: \r\P
! 12259: Partial match: \x0d
! 12260: \r\P\P
! 12261: Partial match: \x0d
! 12262: x
! 12263: 0: x
! 12264: \rx
! 12265: 0: \x0dx
! 12266:
! 12267: /^\R+x/
! 12268: \r\P
! 12269: Partial match: \x0d
! 12270: \r\P\P
! 12271: Partial match: \x0d
! 12272: \r\n\P
! 12273: Partial match: \x0d\x0a
! 12274: \r\n\P\P
! 12275: Partial match: \x0d\x0a
! 12276: \rx
! 12277: 0: \x0dx
! 12278:
! 12279: /^a$/<CRLF>
! 12280: a\r\P
! 12281: Partial match: a\x0d
! 12282: a\r\P\P
! 12283: Partial match: a\x0d
! 12284:
! 12285: /^a$/m<CRLF>
! 12286: a\r\P
! 12287: Partial match: a\x0d
! 12288: a\r\P\P
! 12289: Partial match: a\x0d
! 12290:
! 12291: /^(a$|a\r)/<CRLF>
! 12292: a\r\P
! 12293: 0: a\x0d
! 12294: 1: a\x0d
! 12295: a\r\P\P
! 12296: Partial match: a\x0d
! 12297:
! 12298: /^(a$|a\r)/m<CRLF>
! 12299: a\r\P
! 12300: 0: a\x0d
! 12301: 1: a\x0d
! 12302: a\r\P\P
! 12303: Partial match: a\x0d
! 12304:
! 12305: /./<CRLF>
! 12306: \r\P
! 12307: 0: \x0d
! 12308: \r\P\P
! 12309: Partial match: \x0d
! 12310:
! 12311: /.{2,3}/<CRLF>
! 12312: \r\P
! 12313: Partial match: \x0d
! 12314: \r\P\P
! 12315: Partial match: \x0d
! 12316: \r\r\P
! 12317: 0: \x0d\x0d
! 12318: \r\r\P\P
! 12319: Partial match: \x0d\x0d
! 12320: \r\r\r\P
! 12321: 0: \x0d\x0d\x0d
! 12322: \r\r\r\P\P
! 12323: Partial match: \x0d\x0d\x0d
! 12324:
! 12325: /.{2,3}?/<CRLF>
! 12326: \r\P
! 12327: Partial match: \x0d
! 12328: \r\P\P
! 12329: Partial match: \x0d
! 12330: \r\r\P
! 12331: 0: \x0d\x0d
! 12332: \r\r\P\P
! 12333: Partial match: \x0d\x0d
! 12334: \r\r\r\P
! 12335: 0: \x0d\x0d
! 12336: \r\r\r\P\P
! 12337: 0: \x0d\x0d
! 12338:
! 12339: /-- These two are here because Perl does not match: it seems to allow the
! 12340: COMMIT to escape from the assertion. --/
! 12341:
! 12342: /(?=a(*COMMIT)b|ac)ac|ac/
! 12343: ac
! 12344: 0: ac
! 12345:
! 12346: /(?=a(*COMMIT)b|(ac)) ac | (a)c/x
! 12347: ac
! 12348: 0: ac
! 12349: 1: <unset>
! 12350: 2: a
! 12351:
! 12352: "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
! 12353: ABCDGHI\O03
! 12354: Matched, but too many substrings
! 12355: 0: ABCD
! 12356:
! 12357: /-- This one is here because Perl does not confine the *COMMIT to the
! 12358: assertion, and therefore fails the entire subroutine call. --/
! 12359:
! 12360: /((?=a(*COMMIT)b)ab|ac){0}(?:(?1)|a(c))/
! 12361: ac
! 12362: 0: ac
! 12363:
1.1 misho 12364: /-- End of testinput2 --/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>