Annotation of embedaddon/pcre/testdata/testoutput2, revision 1.1.1.4
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
1.1.1.4 ! misho 451: Max lookbehind = 6
1.1 misho 452: No options
453: First char = 'f'
454: Need char = 'o'
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
1.1.1.4 ! misho 634: Max lookbehind = 1
1.1 misho 635: Options: anchored multiline
636: No first char
637: No need char
638:
639: /^abc/Im
640: Capturing subpattern count = 0
641: Options: multiline
642: First char at start or follows newline
643: Need char = 'c'
644:
645: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
646: Capturing subpattern count = 5
647: Options: anchored
648: No first char
649: No need char
650: aaaaabbbbbcccccdef
651: 0: aaaaabbbbbcccccdef
652: 1: aaaaabbbbbcccccdef
653: 2: aaaaa
654: 3: b
655: 4: bbbbccccc
656: 5: def
657:
658: /(?<=foo)[ab]/IS
659: Capturing subpattern count = 0
1.1.1.4 ! misho 660: Max lookbehind = 3
1.1 misho 661: No options
662: No first char
663: No need char
664: Subject length lower bound = 1
665: Starting byte set: a b
666:
667: /(?<!foo)(alpha|omega)/IS
668: Capturing subpattern count = 1
1.1.1.4 ! misho 669: Max lookbehind = 3
1.1 misho 670: No options
671: No first char
672: Need char = 'a'
673: Subject length lower bound = 5
674: Starting byte set: a o
675:
676: /(?!alphabet)[ab]/IS
677: Capturing subpattern count = 0
678: No options
679: No first char
680: No need char
681: Subject length lower bound = 1
682: Starting byte set: a b
683:
684: /(?<=foo\n)^bar/Im
685: Capturing subpattern count = 0
1.1.1.4 ! misho 686: Max lookbehind = 4
1.1 misho 687: Contains explicit CR or LF match
688: Options: multiline
689: No first char
690: Need char = 'r'
691: foo\nbarbar
692: 0: bar
693: ***Failers
694: No match
695: rhubarb
696: No match
697: barbell
698: No match
699: abc\nbarton
700: No match
701:
702: /^(?<=foo\n)bar/Im
703: Capturing subpattern count = 0
1.1.1.4 ! misho 704: Max lookbehind = 4
1.1 misho 705: Contains explicit CR or LF match
706: Options: multiline
707: First char at start or follows newline
708: Need char = 'r'
709: foo\nbarbar
710: 0: bar
711: ***Failers
712: No match
713: rhubarb
714: No match
715: barbell
716: No match
717: abc\nbarton
718: No match
719:
720: /(?>^abc)/Im
721: Capturing subpattern count = 0
722: Options: multiline
723: First char at start or follows newline
724: Need char = 'c'
725: abc
726: 0: abc
727: def\nabc
728: 0: abc
729: *** Failers
730: No match
731: defabc
732: No match
733:
734: /(?<=ab(c+)d)ef/
735: Failed: lookbehind assertion is not fixed length at offset 11
736:
737: /(?<=ab(?<=c+)d)ef/
738: Failed: lookbehind assertion is not fixed length at offset 12
739:
740: /(?<=ab(c|de)f)g/
741: Failed: lookbehind assertion is not fixed length at offset 13
742:
743: /The next three are in testinput2 because they have variable length branches/
744:
745: /(?<=bullock|donkey)-cart/I
746: Capturing subpattern count = 0
1.1.1.4 ! misho 747: Max lookbehind = 7
1.1 misho 748: No options
749: First char = '-'
750: Need char = 't'
751: the bullock-cart
752: 0: -cart
753: a donkey-cart race
754: 0: -cart
755: *** Failers
756: No match
757: cart
758: No match
759: horse-and-cart
760: No match
761:
762: /(?<=ab(?i)x|y|z)/I
763: Capturing subpattern count = 0
1.1.1.4 ! misho 764: Max lookbehind = 3
1.1 misho 765: No options
766: No first char
767: No need char
768:
769: /(?>.*)(?<=(abcd)|(xyz))/I
770: Capturing subpattern count = 2
1.1.1.4 ! misho 771: Max lookbehind = 4
1.1 misho 772: No options
1.1.1.4 ! misho 773: No first char
1.1 misho 774: No need char
775: alphabetabcd
776: 0: alphabetabcd
777: 1: abcd
778: endingxyz
779: 0: endingxyz
780: 1: <unset>
781: 2: xyz
782:
783: /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
784: Capturing subpattern count = 0
1.1.1.4 ! misho 785: Max lookbehind = 4
1.1 misho 786: No options
787: First char = 'Z'
788: Need char = 'Z'
789: abxyZZ
790: 0: ZZ
791: abXyZZ
792: 0: ZZ
793: ZZZ
794: 0: ZZ
795: zZZ
796: 0: ZZ
797: bZZ
798: 0: ZZ
799: BZZ
800: 0: ZZ
801: *** Failers
802: No match
803: ZZ
804: No match
805: abXYZZ
806: No match
807: zzz
808: No match
809: bzz
810: No match
811:
812: /(?<!(foo)a)bar/I
813: Capturing subpattern count = 1
1.1.1.4 ! misho 814: Max lookbehind = 4
1.1 misho 815: No options
816: First char = 'b'
817: Need char = 'r'
818: bar
819: 0: bar
820: foobbar
821: 0: bar
822: *** Failers
823: No match
824: fooabar
825: No match
826:
827: /This one is here because Perl behaves differently; see also the following/I
828: Capturing subpattern count = 0
829: No options
830: First char = 'T'
831: Need char = 'g'
832:
833: /^(a\1?){4}$/I
834: Capturing subpattern count = 1
835: Max back reference = 1
836: Options: anchored
837: No first char
838: No need char
839: aaaa
840: No match
841: aaaaaa
842: No match
843:
844: /Perl does not fail these two for the final subjects. Neither did PCRE until/
845: /release 8.01. The problem is in backtracking into a subpattern that contains/
846: No match
847: /a recursive reference to itself. PCRE has now made these into atomic patterns./
848: No match
849:
850: /^(xa|=?\1a){2}$/
851: xa=xaa
852: 0: xa=xaa
853: 1: =xaa
854: ** Failers
855: No match
856: xa=xaaa
857: No match
858:
859: /^(xa|=?\1a)+$/
860: xa=xaa
861: 0: xa=xaa
862: 1: =xaa
863: ** Failers
864: No match
865: xa=xaaa
866: No match
867:
868: /These are syntax tests from Perl 5.005/I
869: Capturing subpattern count = 0
870: No options
871: First char = 'T'
872: Need char = '5'
873:
874: /a[b-a]/
875: Failed: range out of order in character class at offset 4
876:
877: /a[]b/
878: Failed: missing terminating ] for character class at offset 4
879:
880: /a[/
881: Failed: missing terminating ] for character class at offset 2
882:
883: /*a/
884: Failed: nothing to repeat at offset 0
885:
886: /(*)b/
887: Failed: nothing to repeat at offset 1
888:
889: /abc)/
890: Failed: unmatched parentheses at offset 3
891:
892: /(abc/
893: Failed: missing ) at offset 4
894:
895: /a**/
896: Failed: nothing to repeat at offset 2
897:
898: /)(/
899: Failed: unmatched parentheses at offset 0
900:
901: /\1/
902: Failed: reference to non-existent subpattern at offset 2
903:
904: /\2/
905: Failed: reference to non-existent subpattern at offset 2
906:
907: /(a)|\2/
908: Failed: reference to non-existent subpattern at offset 6
909:
910: /a[b-a]/Ii
911: Failed: range out of order in character class at offset 4
912:
913: /a[]b/Ii
914: Failed: missing terminating ] for character class at offset 4
915:
916: /a[/Ii
917: Failed: missing terminating ] for character class at offset 2
918:
919: /*a/Ii
920: Failed: nothing to repeat at offset 0
921:
922: /(*)b/Ii
923: Failed: nothing to repeat at offset 1
924:
925: /abc)/Ii
926: Failed: unmatched parentheses at offset 3
927:
928: /(abc/Ii
929: Failed: missing ) at offset 4
930:
931: /a**/Ii
932: Failed: nothing to repeat at offset 2
933:
934: /)(/Ii
935: Failed: unmatched parentheses at offset 0
936:
937: /:(?:/
938: Failed: missing ) at offset 4
939:
940: /(?<%)b/
941: Failed: unrecognized character after (?< at offset 3
942:
943: /a(?{)b/
944: Failed: unrecognized character after (? or (?- at offset 3
945:
946: /a(?{{})b/
947: Failed: unrecognized character after (? or (?- at offset 3
948:
949: /a(?{}})b/
950: Failed: unrecognized character after (? or (?- at offset 3
951:
952: /a(?{"{"})b/
953: Failed: unrecognized character after (? or (?- at offset 3
954:
955: /a(?{"{"}})b/
956: Failed: unrecognized character after (? or (?- at offset 3
957:
958: /(?(1?)a|b)/
959: Failed: malformed number or name after (?( at offset 4
960:
961: /[a[:xyz:/
962: Failed: missing terminating ] for character class at offset 8
963:
964: /(?<=x+)y/
965: Failed: lookbehind assertion is not fixed length at offset 6
966:
967: /a{37,17}/
968: Failed: numbers out of order in {} quantifier at offset 7
969:
970: /abc/\
971: Failed: \ at end of pattern at offset 4
972:
973: /abc/\i
974: Failed: \ at end of pattern at offset 4
975:
976: /(a)bc(d)/I
977: Capturing subpattern count = 2
978: No options
979: First char = 'a'
980: Need char = 'd'
981: abcd
982: 0: abcd
983: 1: a
984: 2: d
985: abcd\C2
986: 0: abcd
987: 1: a
988: 2: d
989: 2C d (1)
990: abcd\C5
991: 0: abcd
992: 1: a
993: 2: d
994: copy substring 5 failed -7
995:
996: /(.{20})/I
997: Capturing subpattern count = 1
998: No options
999: No first char
1000: No need char
1001: abcdefghijklmnopqrstuvwxyz
1002: 0: abcdefghijklmnopqrst
1003: 1: abcdefghijklmnopqrst
1004: abcdefghijklmnopqrstuvwxyz\C1
1005: 0: abcdefghijklmnopqrst
1006: 1: abcdefghijklmnopqrst
1007: 1C abcdefghijklmnopqrst (20)
1008: abcdefghijklmnopqrstuvwxyz\G1
1009: 0: abcdefghijklmnopqrst
1010: 1: abcdefghijklmnopqrst
1011: 1G abcdefghijklmnopqrst (20)
1012:
1013: /(.{15})/I
1014: Capturing subpattern count = 1
1015: No options
1016: No first char
1017: No need char
1018: abcdefghijklmnopqrstuvwxyz
1019: 0: abcdefghijklmno
1020: 1: abcdefghijklmno
1021: abcdefghijklmnopqrstuvwxyz\C1\G1
1022: 0: abcdefghijklmno
1023: 1: abcdefghijklmno
1024: 1C abcdefghijklmno (15)
1025: 1G abcdefghijklmno (15)
1026:
1027: /(.{16})/I
1028: Capturing subpattern count = 1
1029: No options
1030: No first char
1031: No need char
1032: abcdefghijklmnopqrstuvwxyz
1033: 0: abcdefghijklmnop
1034: 1: abcdefghijklmnop
1035: abcdefghijklmnopqrstuvwxyz\C1\G1\L
1036: 0: abcdefghijklmnop
1037: 1: abcdefghijklmnop
1038: 1C abcdefghijklmnop (16)
1039: 1G abcdefghijklmnop (16)
1040: 0L abcdefghijklmnop
1041: 1L abcdefghijklmnop
1042:
1043: /^(a|(bc))de(f)/I
1044: Capturing subpattern count = 3
1045: Options: anchored
1046: No first char
1047: No need char
1048: adef\G1\G2\G3\G4\L
1049: 0: adef
1050: 1: a
1051: 2: <unset>
1052: 3: f
1053: 1G a (1)
1054: 2G (0)
1055: 3G f (1)
1056: get substring 4 failed -7
1057: 0L adef
1058: 1L a
1059: 2L
1060: 3L f
1061: bcdef\G1\G2\G3\G4\L
1062: 0: bcdef
1063: 1: bc
1064: 2: bc
1065: 3: f
1066: 1G bc (2)
1067: 2G bc (2)
1068: 3G f (1)
1069: get substring 4 failed -7
1070: 0L bcdef
1071: 1L bc
1072: 2L bc
1073: 3L f
1074: adefghijk\C0
1075: 0: adef
1076: 1: a
1077: 2: <unset>
1078: 3: f
1079: 0C adef (4)
1080:
1081: /^abc\00def/I
1082: Capturing subpattern count = 0
1083: Options: anchored
1084: No first char
1085: No need char
1086: abc\00def\L\C0
1087: 0: abc\x00def
1.1.1.2 misho 1088: 0C abc\x00def (7)
1.1 misho 1089: 0L abc
1090:
1091: /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1092: )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1093: )?)?)?)?)?)?)?)?)?otherword/I
1094: Capturing subpattern count = 8
1095: Contains explicit CR or LF match
1096: No options
1097: First char = 'w'
1098: Need char = 'd'
1099:
1100: /.*X/IDZ
1101: ------------------------------------------------------------------
1102: Bra
1103: Any*
1104: X
1105: Ket
1106: End
1107: ------------------------------------------------------------------
1108: Capturing subpattern count = 0
1109: No options
1110: First char at start or follows newline
1111: Need char = 'X'
1112:
1113: /.*X/IDZs
1114: ------------------------------------------------------------------
1115: Bra
1116: AllAny*
1117: X
1118: Ket
1119: End
1120: ------------------------------------------------------------------
1121: Capturing subpattern count = 0
1122: Options: anchored dotall
1123: No first char
1124: Need char = 'X'
1125:
1126: /(.*X|^B)/IDZ
1127: ------------------------------------------------------------------
1128: Bra
1129: CBra 1
1130: Any*
1131: X
1132: Alt
1133: ^
1134: B
1135: Ket
1136: Ket
1137: End
1138: ------------------------------------------------------------------
1139: Capturing subpattern count = 1
1140: No options
1141: First char at start or follows newline
1142: No need char
1143:
1144: /(.*X|^B)/IDZs
1145: ------------------------------------------------------------------
1146: Bra
1147: CBra 1
1148: AllAny*
1149: X
1150: Alt
1151: ^
1152: B
1153: Ket
1154: Ket
1155: End
1156: ------------------------------------------------------------------
1157: Capturing subpattern count = 1
1158: Options: anchored dotall
1159: No first char
1160: No need char
1161:
1162: /(?s)(.*X|^B)/IDZ
1163: ------------------------------------------------------------------
1164: Bra
1165: CBra 1
1166: AllAny*
1167: X
1168: Alt
1169: ^
1170: B
1171: Ket
1172: Ket
1173: End
1174: ------------------------------------------------------------------
1175: Capturing subpattern count = 1
1176: Options: anchored dotall
1177: No first char
1178: No need char
1179:
1180: /(?s:.*X|^B)/IDZ
1181: ------------------------------------------------------------------
1182: Bra
1183: Bra
1184: AllAny*
1185: X
1186: Alt
1187: ^
1188: B
1189: Ket
1190: Ket
1191: End
1192: ------------------------------------------------------------------
1193: Capturing subpattern count = 0
1194: Options: anchored
1195: No first char
1196: No need char
1197:
1198: /\Biss\B/I+
1199: Capturing subpattern count = 0
1.1.1.4 ! misho 1200: Max lookbehind = 1
1.1 misho 1201: No options
1202: First char = 'i'
1203: Need char = 's'
1204: Mississippi
1205: 0: iss
1206: 0+ issippi
1207:
1208: /iss/IG+
1209: Capturing subpattern count = 0
1210: No options
1211: First char = 'i'
1212: Need char = 's'
1213: Mississippi
1214: 0: iss
1215: 0+ issippi
1216: 0: iss
1217: 0+ ippi
1218:
1219: /\Biss\B/IG+
1220: Capturing subpattern count = 0
1.1.1.4 ! misho 1221: Max lookbehind = 1
1.1 misho 1222: No options
1223: First char = 'i'
1224: Need char = 's'
1225: Mississippi
1226: 0: iss
1227: 0+ issippi
1228:
1229: /\Biss\B/Ig+
1230: Capturing subpattern count = 0
1.1.1.4 ! misho 1231: Max lookbehind = 1
1.1 misho 1232: No options
1233: First char = 'i'
1234: Need char = 's'
1235: Mississippi
1236: 0: iss
1237: 0+ issippi
1238: 0: iss
1239: 0+ ippi
1240: *** Failers
1241: No match
1242: Mississippi\A
1243: No match
1244:
1245: /(?<=[Ms])iss/Ig+
1246: Capturing subpattern count = 0
1.1.1.4 ! misho 1247: Max lookbehind = 1
1.1 misho 1248: No options
1249: First char = 'i'
1250: Need char = 's'
1251: Mississippi
1252: 0: iss
1253: 0+ issippi
1254: 0: iss
1255: 0+ ippi
1256:
1257: /(?<=[Ms])iss/IG+
1258: Capturing subpattern count = 0
1.1.1.4 ! misho 1259: Max lookbehind = 1
1.1 misho 1260: No options
1261: First char = 'i'
1262: Need char = 's'
1263: Mississippi
1264: 0: iss
1265: 0+ issippi
1266:
1267: /^iss/Ig+
1268: Capturing subpattern count = 0
1269: Options: anchored
1270: No first char
1271: No need char
1272: ississippi
1273: 0: iss
1274: 0+ issippi
1275:
1276: /.*iss/Ig+
1277: Capturing subpattern count = 0
1278: No options
1279: First char at start or follows newline
1280: Need char = 's'
1281: abciss\nxyzisspqr
1282: 0: abciss
1283: 0+ \x0axyzisspqr
1284: 0: xyziss
1285: 0+ pqr
1286:
1287: /.i./I+g
1288: Capturing subpattern count = 0
1289: No options
1290: No first char
1291: Need char = 'i'
1292: Mississippi
1293: 0: Mis
1294: 0+ sissippi
1295: 0: sis
1296: 0+ sippi
1297: 0: sip
1298: 0+ pi
1299: Mississippi\A
1300: 0: Mis
1301: 0+ sissippi
1302: 0: sis
1303: 0+ sippi
1304: 0: sip
1305: 0+ pi
1306: Missouri river
1307: 0: Mis
1308: 0+ souri river
1309: 0: ri
1310: 0+ river
1311: 0: riv
1312: 0+ er
1313: Missouri river\A
1314: 0: Mis
1315: 0+ souri river
1316:
1317: /^.is/I+g
1318: Capturing subpattern count = 0
1319: Options: anchored
1320: No first char
1321: No need char
1322: Mississippi
1323: 0: Mis
1324: 0+ sissippi
1325:
1326: /^ab\n/Ig+
1327: Capturing subpattern count = 0
1328: Contains explicit CR or LF match
1329: Options: anchored
1330: No first char
1331: No need char
1332: ab\nab\ncd
1333: 0: ab\x0a
1334: 0+ ab\x0acd
1335:
1336: /^ab\n/Img+
1337: Capturing subpattern count = 0
1338: Contains explicit CR or LF match
1339: Options: multiline
1340: First char at start or follows newline
1.1.1.2 misho 1341: Need char = \x0a
1.1 misho 1342: ab\nab\ncd
1343: 0: ab\x0a
1344: 0+ ab\x0acd
1345: 0: ab\x0a
1346: 0+ cd
1347:
1348: /abc/I
1349: Capturing subpattern count = 0
1350: No options
1351: First char = 'a'
1352: Need char = 'c'
1353:
1354: /abc|bac/I
1355: Capturing subpattern count = 0
1356: No options
1357: No first char
1358: Need char = 'c'
1359:
1360: /(abc|bac)/I
1361: Capturing subpattern count = 1
1362: No options
1363: No first char
1364: Need char = 'c'
1365:
1366: /(abc|(c|dc))/I
1367: Capturing subpattern count = 2
1368: No options
1369: No first char
1370: Need char = 'c'
1371:
1372: /(abc|(d|de)c)/I
1373: Capturing subpattern count = 2
1374: No options
1375: No first char
1376: Need char = 'c'
1377:
1378: /a*/I
1379: Capturing subpattern count = 0
1380: No options
1381: No first char
1382: No need char
1383:
1384: /a+/I
1385: Capturing subpattern count = 0
1386: No options
1387: First char = 'a'
1388: No need char
1389:
1390: /(baa|a+)/I
1391: Capturing subpattern count = 1
1392: No options
1393: No first char
1394: Need char = 'a'
1395:
1396: /a{0,3}/I
1397: Capturing subpattern count = 0
1398: No options
1399: No first char
1400: No need char
1401:
1402: /baa{3,}/I
1403: Capturing subpattern count = 0
1404: No options
1405: First char = 'b'
1406: Need char = 'a'
1407:
1408: /"([^\\"]+|\\.)*"/I
1409: Capturing subpattern count = 1
1410: No options
1411: First char = '"'
1412: Need char = '"'
1413:
1414: /(abc|ab[cd])/I
1415: Capturing subpattern count = 1
1416: No options
1417: First char = 'a'
1418: No need char
1419:
1420: /(a|.)/I
1421: Capturing subpattern count = 1
1422: No options
1423: No first char
1424: No need char
1425:
1426: /a|ba|\w/I
1427: Capturing subpattern count = 0
1428: No options
1429: No first char
1430: No need char
1431:
1432: /abc(?=pqr)/I
1433: Capturing subpattern count = 0
1434: No options
1435: First char = 'a'
1436: Need char = 'r'
1437:
1438: /...(?<=abc)/I
1439: Capturing subpattern count = 0
1.1.1.4 ! misho 1440: Max lookbehind = 3
1.1 misho 1441: No options
1442: No first char
1443: No need char
1444:
1445: /abc(?!pqr)/I
1446: Capturing subpattern count = 0
1447: No options
1448: First char = 'a'
1449: Need char = 'c'
1450:
1451: /ab./I
1452: Capturing subpattern count = 0
1453: No options
1454: First char = 'a'
1455: Need char = 'b'
1456:
1457: /ab[xyz]/I
1458: Capturing subpattern count = 0
1459: No options
1460: First char = 'a'
1461: Need char = 'b'
1462:
1463: /abc*/I
1464: Capturing subpattern count = 0
1465: No options
1466: First char = 'a'
1467: Need char = 'b'
1468:
1469: /ab.c*/I
1470: Capturing subpattern count = 0
1471: No options
1472: First char = 'a'
1473: Need char = 'b'
1474:
1475: /a.c*/I
1476: Capturing subpattern count = 0
1477: No options
1478: First char = 'a'
1479: No need char
1480:
1481: /.c*/I
1482: Capturing subpattern count = 0
1483: No options
1484: No first char
1485: No need char
1486:
1487: /ac*/I
1488: Capturing subpattern count = 0
1489: No options
1490: First char = 'a'
1491: No need char
1492:
1493: /(a.c*|b.c*)/I
1494: Capturing subpattern count = 1
1495: No options
1496: No first char
1497: No need char
1498:
1499: /a.c*|aba/I
1500: Capturing subpattern count = 0
1501: No options
1502: First char = 'a'
1503: No need char
1504:
1505: /.+a/I
1506: Capturing subpattern count = 0
1507: No options
1508: No first char
1509: Need char = 'a'
1510:
1511: /(?=abcda)a.*/I
1512: Capturing subpattern count = 0
1513: No options
1514: First char = 'a'
1515: Need char = 'a'
1516:
1517: /(?=a)a.*/I
1518: Capturing subpattern count = 0
1519: No options
1520: First char = 'a'
1521: No need char
1522:
1523: /a(b)*/I
1524: Capturing subpattern count = 1
1525: No options
1526: First char = 'a'
1527: No need char
1528:
1529: /a\d*/I
1530: Capturing subpattern count = 0
1531: No options
1532: First char = 'a'
1533: No need char
1534:
1535: /ab\d*/I
1536: Capturing subpattern count = 0
1537: No options
1538: First char = 'a'
1539: Need char = 'b'
1540:
1541: /a(\d)*/I
1542: Capturing subpattern count = 1
1543: No options
1544: First char = 'a'
1545: No need char
1546:
1547: /abcde{0,0}/I
1548: Capturing subpattern count = 0
1549: No options
1550: First char = 'a'
1551: Need char = 'd'
1552:
1553: /ab\d+/I
1554: Capturing subpattern count = 0
1555: No options
1556: First char = 'a'
1557: Need char = 'b'
1558:
1559: /a(?(1)b)(.)/I
1560: Capturing subpattern count = 1
1561: No options
1562: First char = 'a'
1563: No need char
1564:
1565: /a(?(1)bag|big)(.)/I
1566: Capturing subpattern count = 1
1567: No options
1568: First char = 'a'
1569: Need char = 'g'
1570:
1571: /a(?(1)bag|big)*(.)/I
1572: Capturing subpattern count = 1
1573: No options
1574: First char = 'a'
1575: No need char
1576:
1577: /a(?(1)bag|big)+(.)/I
1578: Capturing subpattern count = 1
1579: No options
1580: First char = 'a'
1581: Need char = 'g'
1582:
1583: /a(?(1)b..|b..)(.)/I
1584: Capturing subpattern count = 1
1585: No options
1586: First char = 'a'
1587: Need char = 'b'
1588:
1589: /ab\d{0}e/I
1590: Capturing subpattern count = 0
1591: No options
1592: First char = 'a'
1593: Need char = 'e'
1594:
1595: /a?b?/I
1596: Capturing subpattern count = 0
1597: No options
1598: No first char
1599: No need char
1600: a
1601: 0: a
1602: b
1603: 0: b
1604: ab
1605: 0: ab
1606: \
1607: 0:
1608: *** Failers
1609: 0:
1610: \N
1611: No match
1612:
1613: /|-/I
1614: Capturing subpattern count = 0
1615: No options
1616: No first char
1617: No need char
1618: abcd
1619: 0:
1620: -abc
1621: 0:
1622: \Nab-c
1623: 0: -
1624: *** Failers
1625: 0:
1626: \Nabc
1627: No match
1628:
1629: /^.?abcd/IS
1630: Capturing subpattern count = 0
1631: Options: anchored
1632: No first char
1633: Need char = 'd'
1634: Subject length lower bound = 4
1635: No set of starting bytes
1636:
1637: /\( # ( at start
1638: (?: # Non-capturing bracket
1639: (?>[^()]+) # Either a sequence of non-brackets (no backtracking)
1640: | # Or
1641: (?R) # Recurse - i.e. nested bracketed string
1642: )* # Zero or more contents
1643: \) # Closing )
1644: /Ix
1645: Capturing subpattern count = 0
1646: Options: extended
1647: First char = '('
1648: Need char = ')'
1649: (abcd)
1650: 0: (abcd)
1651: (abcd)xyz
1652: 0: (abcd)
1653: xyz(abcd)
1654: 0: (abcd)
1655: (ab(xy)cd)pqr
1656: 0: (ab(xy)cd)
1657: (ab(xycd)pqr
1658: 0: (xycd)
1659: () abc ()
1660: 0: ()
1661: 12(abcde(fsh)xyz(foo(bar))lmno)89
1662: 0: (abcde(fsh)xyz(foo(bar))lmno)
1663: *** Failers
1664: No match
1665: abcd
1666: No match
1667: abcd)
1668: No match
1669: (abcd
1670: No match
1671:
1672: /\( ( (?>[^()]+) | (?R) )* \) /Ixg
1673: Capturing subpattern count = 1
1674: Options: extended
1675: First char = '('
1676: Need char = ')'
1677: (ab(xy)cd)pqr
1678: 0: (ab(xy)cd)
1679: 1: cd
1680: 1(abcd)(x(y)z)pqr
1681: 0: (abcd)
1682: 1: abcd
1683: 0: (x(y)z)
1684: 1: z
1685:
1686: /\( (?: (?>[^()]+) | (?R) ) \) /Ix
1687: Capturing subpattern count = 0
1688: Options: extended
1689: First char = '('
1690: Need char = ')'
1691: (abcd)
1692: 0: (abcd)
1693: (ab(xy)cd)
1694: 0: (xy)
1695: (a(b(c)d)e)
1696: 0: (c)
1697: ((ab))
1698: 0: ((ab))
1699: *** Failers
1700: No match
1701: ()
1702: No match
1703:
1704: /\( (?: (?>[^()]+) | (?R) )? \) /Ix
1705: Capturing subpattern count = 0
1706: Options: extended
1707: First char = '('
1708: Need char = ')'
1709: ()
1710: 0: ()
1711: 12(abcde(fsh)xyz(foo(bar))lmno)89
1712: 0: (fsh)
1713:
1714: /\( ( (?>[^()]+) | (?R) )* \) /Ix
1715: Capturing subpattern count = 1
1716: Options: extended
1717: First char = '('
1718: Need char = ')'
1719: (ab(xy)cd)
1720: 0: (ab(xy)cd)
1721: 1: cd
1722:
1723: /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1724: Capturing subpattern count = 2
1725: Options: extended
1726: First char = '('
1727: Need char = ')'
1728: (ab(xy)cd)
1729: 0: (ab(xy)cd)
1730: 1: ab(xy)cd
1731: 2: cd
1732:
1733: /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1734: Capturing subpattern count = 3
1735: Options: extended
1736: First char = '('
1737: Need char = ')'
1738: (ab(xy)cd)
1739: 0: (ab(xy)cd)
1740: 1: <unset>
1741: 2: ab(xy)cd
1742: 3: cd
1743: (123ab(xy)cd)
1744: 0: (123ab(xy)cd)
1745: 1: 123
1746: 2: ab(xy)cd
1747: 3: cd
1748:
1749: /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1750: Capturing subpattern count = 3
1751: Options: extended
1752: First char = '('
1753: Need char = ')'
1754: (ab(xy)cd)
1755: 0: (ab(xy)cd)
1756: 1: ab(xy)cd
1757: 2: <unset>
1758: 3: cd
1759: (123ab(xy)cd)
1760: 0: (123ab(xy)cd)
1761: 1: 123ab(xy)cd
1762: 2: 123
1763: 3: cd
1764:
1765: /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1766: Capturing subpattern count = 11
1767: Options: extended
1768: First char = '('
1769: Need char = ')'
1770: (ab(xy)cd)
1771: 0: (ab(xy)cd)
1772: 1: ab(xy)cd
1773: 2: ab(xy)cd
1774: 3: ab(xy)cd
1775: 4: ab(xy)cd
1776: 5: ab(xy)cd
1777: 6: ab(xy)cd
1778: 7: ab(xy)cd
1779: 8: ab(xy)cd
1780: 9: ab(xy)cd
1781: 10: ab(xy)cd
1782: 11: cd
1783:
1784: /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1785: Capturing subpattern count = 3
1786: Options: extended
1787: First char = '('
1788: Need char = ')'
1789: (abcd(xyz<p>qrs)123)
1790: 0: (abcd(xyz<p>qrs)123)
1791: 1: abcd(xyz<p>qrs)123
1792: 2: 123
1793:
1794: /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1795: Capturing subpattern count = 3
1796: Options: extended
1797: First char = '('
1798: Need char = ')'
1799: (ab(cd)ef)
1800: 0: (ab(cd)ef)
1801: 1: ab(cd)ef
1802: 2: ef
1803: 3: (cd)
1804: (ab(cd(ef)gh)ij)
1805: 0: (ab(cd(ef)gh)ij)
1806: 1: ab(cd(ef)gh)ij
1807: 2: ij
1808: 3: (cd(ef)gh)
1809:
1810: /^[[:alnum:]]/DZ
1811: ------------------------------------------------------------------
1812: Bra
1813: ^
1814: [0-9A-Za-z]
1815: Ket
1816: End
1817: ------------------------------------------------------------------
1818: Capturing subpattern count = 0
1819: Options: anchored
1820: No first char
1821: No need char
1822:
1823: /^[[:^alnum:]]/DZ
1824: ------------------------------------------------------------------
1825: Bra
1826: ^
1827: [\x00-/:-@[-`{-\xff] (neg)
1828: Ket
1829: End
1830: ------------------------------------------------------------------
1831: Capturing subpattern count = 0
1832: Options: anchored
1833: No first char
1834: No need char
1835:
1836: /^[[:alpha:]]/DZ
1837: ------------------------------------------------------------------
1838: Bra
1839: ^
1840: [A-Za-z]
1841: Ket
1842: End
1843: ------------------------------------------------------------------
1844: Capturing subpattern count = 0
1845: Options: anchored
1846: No first char
1847: No need char
1848:
1849: /^[[:^alpha:]]/DZ
1850: ------------------------------------------------------------------
1851: Bra
1852: ^
1853: [\x00-@[-`{-\xff] (neg)
1854: Ket
1855: End
1856: ------------------------------------------------------------------
1857: Capturing subpattern count = 0
1858: Options: anchored
1859: No first char
1860: No need char
1861:
1862: /[_[:alpha:]]/IS
1863: Capturing subpattern count = 0
1864: No options
1865: No first char
1866: No need char
1867: Subject length lower bound = 1
1868: 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
1869: _ 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
1870:
1871: /^[[:ascii:]]/DZ
1872: ------------------------------------------------------------------
1873: Bra
1874: ^
1875: [\x00-\x7f]
1876: Ket
1877: End
1878: ------------------------------------------------------------------
1879: Capturing subpattern count = 0
1880: Options: anchored
1881: No first char
1882: No need char
1883:
1884: /^[[:^ascii:]]/DZ
1885: ------------------------------------------------------------------
1886: Bra
1887: ^
1888: [\x80-\xff] (neg)
1889: Ket
1890: End
1891: ------------------------------------------------------------------
1892: Capturing subpattern count = 0
1893: Options: anchored
1894: No first char
1895: No need char
1896:
1897: /^[[:blank:]]/DZ
1898: ------------------------------------------------------------------
1899: Bra
1900: ^
1901: [\x09 ]
1902: Ket
1903: End
1904: ------------------------------------------------------------------
1905: Capturing subpattern count = 0
1906: Options: anchored
1907: No first char
1908: No need char
1909:
1910: /^[[:^blank:]]/DZ
1911: ------------------------------------------------------------------
1912: Bra
1913: ^
1914: [\x00-\x08\x0a-\x1f!-\xff] (neg)
1915: Ket
1916: End
1917: ------------------------------------------------------------------
1918: Capturing subpattern count = 0
1919: Options: anchored
1920: No first char
1921: No need char
1922:
1923: /[\n\x0b\x0c\x0d[:blank:]]/IS
1924: Capturing subpattern count = 0
1925: Contains explicit CR or LF match
1926: No options
1927: No first char
1928: No need char
1929: Subject length lower bound = 1
1930: Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1931:
1932: /^[[:cntrl:]]/DZ
1933: ------------------------------------------------------------------
1934: Bra
1935: ^
1936: [\x00-\x1f\x7f]
1937: Ket
1938: End
1939: ------------------------------------------------------------------
1940: Capturing subpattern count = 0
1941: Options: anchored
1942: No first char
1943: No need char
1944:
1945: /^[[:digit:]]/DZ
1946: ------------------------------------------------------------------
1947: Bra
1948: ^
1949: [0-9]
1950: Ket
1951: End
1952: ------------------------------------------------------------------
1953: Capturing subpattern count = 0
1954: Options: anchored
1955: No first char
1956: No need char
1957:
1958: /^[[:graph:]]/DZ
1959: ------------------------------------------------------------------
1960: Bra
1961: ^
1962: [!-~]
1963: Ket
1964: End
1965: ------------------------------------------------------------------
1966: Capturing subpattern count = 0
1967: Options: anchored
1968: No first char
1969: No need char
1970:
1971: /^[[:lower:]]/DZ
1972: ------------------------------------------------------------------
1973: Bra
1974: ^
1975: [a-z]
1976: Ket
1977: End
1978: ------------------------------------------------------------------
1979: Capturing subpattern count = 0
1980: Options: anchored
1981: No first char
1982: No need char
1983:
1984: /^[[:print:]]/DZ
1985: ------------------------------------------------------------------
1986: Bra
1987: ^
1988: [ -~]
1989: Ket
1990: End
1991: ------------------------------------------------------------------
1992: Capturing subpattern count = 0
1993: Options: anchored
1994: No first char
1995: No need char
1996:
1997: /^[[:punct:]]/DZ
1998: ------------------------------------------------------------------
1999: Bra
2000: ^
2001: [!-/:-@[-`{-~]
2002: Ket
2003: End
2004: ------------------------------------------------------------------
2005: Capturing subpattern count = 0
2006: Options: anchored
2007: No first char
2008: No need char
2009:
2010: /^[[:space:]]/DZ
2011: ------------------------------------------------------------------
2012: Bra
2013: ^
2014: [\x09-\x0d ]
2015: Ket
2016: End
2017: ------------------------------------------------------------------
2018: Capturing subpattern count = 0
2019: Options: anchored
2020: No first char
2021: No need char
2022:
2023: /^[[:upper:]]/DZ
2024: ------------------------------------------------------------------
2025: Bra
2026: ^
2027: [A-Z]
2028: Ket
2029: End
2030: ------------------------------------------------------------------
2031: Capturing subpattern count = 0
2032: Options: anchored
2033: No first char
2034: No need char
2035:
2036: /^[[:xdigit:]]/DZ
2037: ------------------------------------------------------------------
2038: Bra
2039: ^
2040: [0-9A-Fa-f]
2041: Ket
2042: End
2043: ------------------------------------------------------------------
2044: Capturing subpattern count = 0
2045: Options: anchored
2046: No first char
2047: No need char
2048:
2049: /^[[:word:]]/DZ
2050: ------------------------------------------------------------------
2051: Bra
2052: ^
2053: [0-9A-Z_a-z]
2054: Ket
2055: End
2056: ------------------------------------------------------------------
2057: Capturing subpattern count = 0
2058: Options: anchored
2059: No first char
2060: No need char
2061:
2062: /^[[:^cntrl:]]/DZ
2063: ------------------------------------------------------------------
2064: Bra
2065: ^
2066: [ -~\x80-\xff] (neg)
2067: Ket
2068: End
2069: ------------------------------------------------------------------
2070: Capturing subpattern count = 0
2071: Options: anchored
2072: No first char
2073: No need char
2074:
2075: /^[12[:^digit:]]/DZ
2076: ------------------------------------------------------------------
2077: Bra
2078: ^
2079: [\x00-/12:-\xff] (neg)
2080: Ket
2081: End
2082: ------------------------------------------------------------------
2083: Capturing subpattern count = 0
2084: Options: anchored
2085: No first char
2086: No need char
2087:
2088: /^[[:^blank:]]/DZ
2089: ------------------------------------------------------------------
2090: Bra
2091: ^
2092: [\x00-\x08\x0a-\x1f!-\xff] (neg)
2093: Ket
2094: End
2095: ------------------------------------------------------------------
2096: Capturing subpattern count = 0
2097: Options: anchored
2098: No first char
2099: No need char
2100:
2101: /[01[:alpha:]%]/DZ
2102: ------------------------------------------------------------------
2103: Bra
2104: [%01A-Za-z]
2105: Ket
2106: End
2107: ------------------------------------------------------------------
2108: Capturing subpattern count = 0
2109: No options
2110: No first char
2111: No need char
2112:
2113: /[[.ch.]]/I
2114: Failed: POSIX collating elements are not supported at offset 1
2115:
2116: /[[=ch=]]/I
2117: Failed: POSIX collating elements are not supported at offset 1
2118:
2119: /[[:rhubarb:]]/I
2120: Failed: unknown POSIX class name at offset 3
2121:
2122: /[[:upper:]]/Ii
2123: Capturing subpattern count = 0
2124: Options: caseless
2125: No first char
2126: No need char
2127: A
2128: 0: A
2129: a
2130: 0: a
2131:
2132: /[[:lower:]]/Ii
2133: Capturing subpattern count = 0
2134: Options: caseless
2135: No first char
2136: No need char
2137: A
2138: 0: A
2139: a
2140: 0: a
2141:
2142: /((?-i)[[:lower:]])[[:lower:]]/Ii
2143: Capturing subpattern count = 1
2144: Options: caseless
2145: No first char
2146: No need char
2147: ab
2148: 0: ab
2149: 1: a
2150: aB
2151: 0: aB
2152: 1: a
2153: *** Failers
2154: 0: ai
2155: 1: a
2156: Ab
2157: No match
2158: AB
2159: No match
2160:
2161: /[\200-\110]/I
2162: Failed: range out of order in character class at offset 9
2163:
2164: /^(?(0)f|b)oo/I
2165: Failed: invalid condition (?(0) at offset 6
2166:
2167: /This one's here because of the large output vector needed/I
2168: Capturing subpattern count = 0
2169: No options
2170: First char = 'T'
2171: Need char = 'd'
2172:
2173: /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2174: Capturing subpattern count = 271
2175: Max back reference = 270
2176: No options
2177: No first char
2178: No need char
2179: \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
2180: 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
2181: 1: 1
2182: 2: 2
2183: 3: 3
2184: 4: 4
2185: 5: 5
2186: 6: 6
2187: 7: 7
2188: 8: 8
2189: 9: 9
2190: 10: 10
2191: 11: 11
2192: 12: 12
2193: 13: 13
2194: 14: 14
2195: 15: 15
2196: 16: 16
2197: 17: 17
2198: 18: 18
2199: 19: 19
2200: 20: 20
2201: 21: 21
2202: 22: 22
2203: 23: 23
2204: 24: 24
2205: 25: 25
2206: 26: 26
2207: 27: 27
2208: 28: 28
2209: 29: 29
2210: 30: 30
2211: 31: 31
2212: 32: 32
2213: 33: 33
2214: 34: 34
2215: 35: 35
2216: 36: 36
2217: 37: 37
2218: 38: 38
2219: 39: 39
2220: 40: 40
2221: 41: 41
2222: 42: 42
2223: 43: 43
2224: 44: 44
2225: 45: 45
2226: 46: 46
2227: 47: 47
2228: 48: 48
2229: 49: 49
2230: 50: 50
2231: 51: 51
2232: 52: 52
2233: 53: 53
2234: 54: 54
2235: 55: 55
2236: 56: 56
2237: 57: 57
2238: 58: 58
2239: 59: 59
2240: 60: 60
2241: 61: 61
2242: 62: 62
2243: 63: 63
2244: 64: 64
2245: 65: 65
2246: 66: 66
2247: 67: 67
2248: 68: 68
2249: 69: 69
2250: 70: 70
2251: 71: 71
2252: 72: 72
2253: 73: 73
2254: 74: 74
2255: 75: 75
2256: 76: 76
2257: 77: 77
2258: 78: 78
2259: 79: 79
2260: 80: 80
2261: 81: 81
2262: 82: 82
2263: 83: 83
2264: 84: 84
2265: 85: 85
2266: 86: 86
2267: 87: 87
2268: 88: 88
2269: 89: 89
2270: 90: 90
2271: 91: 91
2272: 92: 92
2273: 93: 93
2274: 94: 94
2275: 95: 95
2276: 96: 96
2277: 97: 97
2278: 98: 98
2279: 99: 99
2280: 100: 100
2281: 101: 101
2282: 102: 102
2283: 103: 103
2284: 104: 104
2285: 105: 105
2286: 106: 106
2287: 107: 107
2288: 108: 108
2289: 109: 109
2290: 110: 110
2291: 111: 111
2292: 112: 112
2293: 113: 113
2294: 114: 114
2295: 115: 115
2296: 116: 116
2297: 117: 117
2298: 118: 118
2299: 119: 119
2300: 120: 120
2301: 121: 121
2302: 122: 122
2303: 123: 123
2304: 124: 124
2305: 125: 125
2306: 126: 126
2307: 127: 127
2308: 128: 128
2309: 129: 129
2310: 130: 130
2311: 131: 131
2312: 132: 132
2313: 133: 133
2314: 134: 134
2315: 135: 135
2316: 136: 136
2317: 137: 137
2318: 138: 138
2319: 139: 139
2320: 140: 140
2321: 141: 141
2322: 142: 142
2323: 143: 143
2324: 144: 144
2325: 145: 145
2326: 146: 146
2327: 147: 147
2328: 148: 148
2329: 149: 149
2330: 150: 150
2331: 151: 151
2332: 152: 152
2333: 153: 153
2334: 154: 154
2335: 155: 155
2336: 156: 156
2337: 157: 157
2338: 158: 158
2339: 159: 159
2340: 160: 160
2341: 161: 161
2342: 162: 162
2343: 163: 163
2344: 164: 164
2345: 165: 165
2346: 166: 166
2347: 167: 167
2348: 168: 168
2349: 169: 169
2350: 170: 170
2351: 171: 171
2352: 172: 172
2353: 173: 173
2354: 174: 174
2355: 175: 175
2356: 176: 176
2357: 177: 177
2358: 178: 178
2359: 179: 179
2360: 180: 180
2361: 181: 181
2362: 182: 182
2363: 183: 183
2364: 184: 184
2365: 185: 185
2366: 186: 186
2367: 187: 187
2368: 188: 188
2369: 189: 189
2370: 190: 190
2371: 191: 191
2372: 192: 192
2373: 193: 193
2374: 194: 194
2375: 195: 195
2376: 196: 196
2377: 197: 197
2378: 198: 198
2379: 199: 199
2380: 200: 200
2381: 201: 201
2382: 202: 202
2383: 203: 203
2384: 204: 204
2385: 205: 205
2386: 206: 206
2387: 207: 207
2388: 208: 208
2389: 209: 209
2390: 210: 210
2391: 211: 211
2392: 212: 212
2393: 213: 213
2394: 214: 214
2395: 215: 215
2396: 216: 216
2397: 217: 217
2398: 218: 218
2399: 219: 219
2400: 220: 220
2401: 221: 221
2402: 222: 222
2403: 223: 223
2404: 224: 224
2405: 225: 225
2406: 226: 226
2407: 227: 227
2408: 228: 228
2409: 229: 229
2410: 230: 230
2411: 231: 231
2412: 232: 232
2413: 233: 233
2414: 234: 234
2415: 235: 235
2416: 236: 236
2417: 237: 237
2418: 238: 238
2419: 239: 239
2420: 240: 240
2421: 241: 241
2422: 242: 242
2423: 243: 243
2424: 244: 244
2425: 245: 245
2426: 246: 246
2427: 247: 247
2428: 248: 248
2429: 249: 249
2430: 250: 250
2431: 251: 251
2432: 252: 252
2433: 253: 253
2434: 254: 254
2435: 255: 255
2436: 256: 256
2437: 257: 257
2438: 258: 258
2439: 259: 259
2440: 260: 260
2441: 261: 261
2442: 262: 262
2443: 263: 263
2444: 264: 264
2445: 265: 265
2446: 266: 266
2447: 267: 267
2448: 268: 268
2449: 269: 269
2450: 270: ABC
2451: 271: ABC
2452:
2453: /This one's here because Perl does this differently and PCRE can't at present/I
2454: Capturing subpattern count = 0
2455: No options
2456: First char = 'T'
2457: Need char = 't'
2458:
2459: /(main(O)?)+/I
2460: Capturing subpattern count = 2
2461: No options
2462: First char = 'm'
2463: Need char = 'n'
2464: mainmain
2465: 0: mainmain
2466: 1: main
2467: mainOmain
2468: 0: mainOmain
2469: 1: main
2470: 2: O
2471:
2472: /These are all cases where Perl does it differently (nested captures)/I
2473: Capturing subpattern count = 1
2474: No options
2475: First char = 'T'
2476: Need char = 's'
2477:
2478: /^(a(b)?)+$/I
2479: Capturing subpattern count = 2
2480: Options: anchored
2481: No first char
2482: No need char
2483: aba
2484: 0: aba
2485: 1: a
2486: 2: b
2487:
2488: /^(aa(bb)?)+$/I
2489: Capturing subpattern count = 2
2490: Options: anchored
2491: No first char
2492: No need char
2493: aabbaa
2494: 0: aabbaa
2495: 1: aa
2496: 2: bb
2497:
2498: /^(aa|aa(bb))+$/I
2499: Capturing subpattern count = 2
2500: Options: anchored
2501: No first char
2502: No need char
2503: aabbaa
2504: 0: aabbaa
2505: 1: aa
2506: 2: bb
2507:
2508: /^(aa(bb)??)+$/I
2509: Capturing subpattern count = 2
2510: Options: anchored
2511: No first char
2512: No need char
2513: aabbaa
2514: 0: aabbaa
2515: 1: aa
2516: 2: bb
2517:
2518: /^(?:aa(bb)?)+$/I
2519: Capturing subpattern count = 1
2520: Options: anchored
2521: No first char
2522: No need char
2523: aabbaa
2524: 0: aabbaa
2525: 1: bb
2526:
2527: /^(aa(b(b))?)+$/I
2528: Capturing subpattern count = 3
2529: Options: anchored
2530: No first char
2531: No need char
2532: aabbaa
2533: 0: aabbaa
2534: 1: aa
2535: 2: bb
2536: 3: b
2537:
2538: /^(?:aa(b(b))?)+$/I
2539: Capturing subpattern count = 2
2540: Options: anchored
2541: No first char
2542: No need char
2543: aabbaa
2544: 0: aabbaa
2545: 1: bb
2546: 2: b
2547:
2548: /^(?:aa(b(?:b))?)+$/I
2549: Capturing subpattern count = 1
2550: Options: anchored
2551: No first char
2552: No need char
2553: aabbaa
2554: 0: aabbaa
2555: 1: bb
2556:
2557: /^(?:aa(bb(?:b))?)+$/I
2558: Capturing subpattern count = 1
2559: Options: anchored
2560: No first char
2561: No need char
2562: aabbbaa
2563: 0: aabbbaa
2564: 1: bbb
2565:
2566: /^(?:aa(b(?:bb))?)+$/I
2567: Capturing subpattern count = 1
2568: Options: anchored
2569: No first char
2570: No need char
2571: aabbbaa
2572: 0: aabbbaa
2573: 1: bbb
2574:
2575: /^(?:aa(?:b(b))?)+$/I
2576: Capturing subpattern count = 1
2577: Options: anchored
2578: No first char
2579: No need char
2580: aabbaa
2581: 0: aabbaa
2582: 1: b
2583:
2584: /^(?:aa(?:b(bb))?)+$/I
2585: Capturing subpattern count = 1
2586: Options: anchored
2587: No first char
2588: No need char
2589: aabbbaa
2590: 0: aabbbaa
2591: 1: bb
2592:
2593: /^(aa(b(bb))?)+$/I
2594: Capturing subpattern count = 3
2595: Options: anchored
2596: No first char
2597: No need char
2598: aabbbaa
2599: 0: aabbbaa
2600: 1: aa
2601: 2: bbb
2602: 3: bb
2603:
2604: /^(aa(bb(bb))?)+$/I
2605: Capturing subpattern count = 3
2606: Options: anchored
2607: No first char
2608: No need char
2609: aabbbbaa
2610: 0: aabbbbaa
2611: 1: aa
2612: 2: bbbb
2613: 3: bb
2614:
2615: /--------------------------------------------------------------------/I
2616: Capturing subpattern count = 0
2617: No options
2618: First char = '-'
2619: Need char = '-'
2620:
2621: /#/IxDZ
2622: ------------------------------------------------------------------
2623: Bra
2624: Ket
2625: End
2626: ------------------------------------------------------------------
2627: Capturing subpattern count = 0
2628: Options: extended
2629: No first char
2630: No need char
2631:
2632: /a#/IxDZ
2633: ------------------------------------------------------------------
2634: Bra
2635: a
2636: Ket
2637: End
2638: ------------------------------------------------------------------
2639: Capturing subpattern count = 0
2640: Options: extended
2641: First char = 'a'
2642: No need char
2643:
2644: /[\s]/DZ
2645: ------------------------------------------------------------------
2646: Bra
2647: [\x09\x0a\x0c\x0d ]
2648: Ket
2649: End
2650: ------------------------------------------------------------------
2651: Capturing subpattern count = 0
2652: No options
2653: No first char
2654: No need char
2655:
2656: /[\S]/DZ
2657: ------------------------------------------------------------------
2658: Bra
2659: [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2660: Ket
2661: End
2662: ------------------------------------------------------------------
2663: Capturing subpattern count = 0
2664: No options
2665: No first char
2666: No need char
2667:
2668: /a(?i)b/DZ
2669: ------------------------------------------------------------------
2670: Bra
2671: a
2672: /i b
2673: Ket
2674: End
2675: ------------------------------------------------------------------
2676: Capturing subpattern count = 0
2677: No options
2678: First char = 'a'
2679: Need char = 'b' (caseless)
2680: ab
2681: 0: ab
2682: aB
2683: 0: aB
2684: *** Failers
2685: No match
2686: AB
2687: No match
2688:
2689: /(a(?i)b)/DZ
2690: ------------------------------------------------------------------
2691: Bra
2692: CBra 1
2693: a
2694: /i b
2695: Ket
2696: Ket
2697: End
2698: ------------------------------------------------------------------
2699: Capturing subpattern count = 1
2700: No options
2701: First char = 'a'
2702: Need char = 'b' (caseless)
2703: ab
2704: 0: ab
2705: 1: ab
2706: aB
2707: 0: aB
2708: 1: aB
2709: *** Failers
2710: No match
2711: AB
2712: No match
2713:
2714: / (?i)abc/IxDZ
2715: ------------------------------------------------------------------
2716: Bra
2717: /i abc
2718: Ket
2719: End
2720: ------------------------------------------------------------------
2721: Capturing subpattern count = 0
2722: Options: caseless extended
2723: First char = 'a' (caseless)
2724: Need char = 'c' (caseless)
2725:
2726: /#this is a comment
2727: (?i)abc/IxDZ
2728: ------------------------------------------------------------------
2729: Bra
2730: /i abc
2731: Ket
2732: End
2733: ------------------------------------------------------------------
2734: Capturing subpattern count = 0
2735: Options: caseless extended
2736: First char = 'a' (caseless)
2737: Need char = 'c' (caseless)
2738:
2739: /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2740: ------------------------------------------------------------------
2741: Bra
2742: 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2743: Ket
2744: End
2745: ------------------------------------------------------------------
2746: Capturing subpattern count = 0
2747: No options
2748: First char = '1'
2749: Need char = '0'
2750:
2751: /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2752: ------------------------------------------------------------------
2753: Bra
2754: 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2755: Ket
2756: End
2757: ------------------------------------------------------------------
2758: Capturing subpattern count = 0
2759: No options
2760: First char = '1'
2761: Need char = '0'
2762:
2763: /\Q\E/DZ
2764: ------------------------------------------------------------------
2765: Bra
2766: Ket
2767: End
2768: ------------------------------------------------------------------
2769: Capturing subpattern count = 0
2770: No options
2771: No first char
2772: No need char
2773: \
2774: 0:
2775:
2776: /\Q\Ex/DZ
2777: ------------------------------------------------------------------
2778: Bra
2779: x
2780: Ket
2781: End
2782: ------------------------------------------------------------------
2783: Capturing subpattern count = 0
2784: No options
2785: First char = 'x'
2786: No need char
2787:
2788: / \Q\E/DZ
2789: ------------------------------------------------------------------
2790: Bra
2791:
2792: Ket
2793: End
2794: ------------------------------------------------------------------
2795: Capturing subpattern count = 0
2796: No options
2797: First char = ' '
2798: No need char
2799:
2800: /a\Q\E/DZ
2801: ------------------------------------------------------------------
2802: Bra
2803: a
2804: Ket
2805: End
2806: ------------------------------------------------------------------
2807: Capturing subpattern count = 0
2808: No options
2809: First char = 'a'
2810: No need char
2811: abc
2812: 0: a
2813: bca
2814: 0: a
2815: bac
2816: 0: a
2817:
2818: /a\Q\Eb/DZ
2819: ------------------------------------------------------------------
2820: Bra
2821: ab
2822: Ket
2823: End
2824: ------------------------------------------------------------------
2825: Capturing subpattern count = 0
2826: No options
2827: First char = 'a'
2828: Need char = 'b'
2829: abc
2830: 0: ab
2831:
2832: /\Q\Eabc/DZ
2833: ------------------------------------------------------------------
2834: Bra
2835: abc
2836: Ket
2837: End
2838: ------------------------------------------------------------------
2839: Capturing subpattern count = 0
2840: No options
2841: First char = 'a'
2842: Need char = 'c'
2843:
2844: /x*+\w/DZ
2845: ------------------------------------------------------------------
2846: Bra
2847: x*+
2848: \w
2849: Ket
2850: End
2851: ------------------------------------------------------------------
2852: Capturing subpattern count = 0
2853: No options
2854: No first char
2855: No need char
2856: *** Failers
2857: 0: F
2858: xxxxx
2859: No match
2860:
2861: /x?+/DZ
2862: ------------------------------------------------------------------
2863: Bra
2864: x?+
2865: Ket
2866: End
2867: ------------------------------------------------------------------
2868: Capturing subpattern count = 0
2869: No options
2870: No first char
2871: No need char
2872:
2873: /x++/DZ
2874: ------------------------------------------------------------------
2875: Bra
2876: x++
2877: Ket
2878: End
2879: ------------------------------------------------------------------
2880: Capturing subpattern count = 0
2881: No options
2882: First char = 'x'
2883: No need char
2884:
2885: /x{1,3}+/DZ
2886: ------------------------------------------------------------------
2887: Bra
2888: Once
2889: x
2890: x{0,2}
2891: Ket
2892: Ket
2893: End
2894: ------------------------------------------------------------------
2895: Capturing subpattern count = 0
2896: No options
2897: First char = 'x'
2898: No need char
2899:
2900: /(x)*+/DZ
2901: ------------------------------------------------------------------
2902: Bra
2903: Braposzero
2904: CBraPos 1
2905: x
2906: KetRpos
2907: Ket
2908: End
2909: ------------------------------------------------------------------
2910: Capturing subpattern count = 1
2911: No options
2912: No first char
2913: No need char
2914:
2915: /^(\w++|\s++)*$/I
2916: Capturing subpattern count = 1
2917: Options: anchored
2918: No first char
2919: No need char
2920: now is the time for all good men to come to the aid of the party
2921: 0: now is the time for all good men to come to the aid of the party
2922: 1: party
2923: *** Failers
2924: No match
2925: this is not a line with only words and spaces!
2926: No match
2927:
2928: /(\d++)(\w)/I
2929: Capturing subpattern count = 2
2930: No options
2931: No first char
2932: No need char
2933: 12345a
2934: 0: 12345a
2935: 1: 12345
2936: 2: a
2937: *** Failers
2938: No match
2939: 12345+
2940: No match
2941:
2942: /a++b/I
2943: Capturing subpattern count = 0
2944: No options
2945: First char = 'a'
2946: Need char = 'b'
2947: aaab
2948: 0: aaab
2949:
2950: /(a++b)/I
2951: Capturing subpattern count = 1
2952: No options
2953: First char = 'a'
2954: Need char = 'b'
2955: aaab
2956: 0: aaab
2957: 1: aaab
2958:
2959: /(a++)b/I
2960: Capturing subpattern count = 1
2961: No options
2962: First char = 'a'
2963: Need char = 'b'
2964: aaab
2965: 0: aaab
2966: 1: aaa
2967:
2968: /([^()]++|\([^()]*\))+/I
2969: Capturing subpattern count = 1
2970: No options
2971: No first char
2972: No need char
2973: ((abc(ade)ufh()()x
2974: 0: abc(ade)ufh()()x
2975: 1: x
2976:
2977: /\(([^()]++|\([^()]+\))+\)/I
2978: Capturing subpattern count = 1
2979: No options
2980: First char = '('
2981: Need char = ')'
2982: (abc)
2983: 0: (abc)
2984: 1: abc
2985: (abc(def)xyz)
2986: 0: (abc(def)xyz)
2987: 1: xyz
2988: *** Failers
2989: No match
2990: ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
2991: No match
2992:
2993: /(abc){1,3}+/DZ
2994: ------------------------------------------------------------------
2995: Bra
2996: Once
2997: CBra 1
2998: abc
2999: Ket
3000: Brazero
3001: Bra
3002: CBra 1
3003: abc
3004: Ket
3005: Brazero
3006: CBra 1
3007: abc
3008: Ket
3009: Ket
3010: Ket
3011: Ket
3012: End
3013: ------------------------------------------------------------------
3014: Capturing subpattern count = 1
3015: No options
3016: First char = 'a'
3017: Need char = 'c'
3018:
3019: /a+?+/I
3020: Failed: nothing to repeat at offset 3
3021:
3022: /a{2,3}?+b/I
3023: Failed: nothing to repeat at offset 7
3024:
3025: /(?U)a+?+/I
3026: Failed: nothing to repeat at offset 7
3027:
3028: /a{2,3}?+b/IU
3029: Failed: nothing to repeat at offset 7
3030:
3031: /x(?U)a++b/DZ
3032: ------------------------------------------------------------------
3033: Bra
3034: x
3035: a++
3036: b
3037: Ket
3038: End
3039: ------------------------------------------------------------------
3040: Capturing subpattern count = 0
3041: No options
3042: First char = 'x'
3043: Need char = 'b'
3044: xaaaab
3045: 0: xaaaab
3046:
3047: /(?U)xa++b/DZ
3048: ------------------------------------------------------------------
3049: Bra
3050: x
3051: a++
3052: b
3053: Ket
3054: End
3055: ------------------------------------------------------------------
3056: Capturing subpattern count = 0
3057: Options: ungreedy
3058: First char = 'x'
3059: Need char = 'b'
3060: xaaaab
3061: 0: xaaaab
3062:
3063: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3064: ------------------------------------------------------------------
3065: Bra
3066: ^
3067: CBra 1
3068: CBra 2
3069: a+
3070: Ket
3071: CBra 3
3072: [ab]+?
3073: Ket
3074: CBra 4
3075: [bc]+
3076: Ket
3077: CBra 5
3078: \w*
3079: Ket
3080: Ket
3081: Ket
3082: End
3083: ------------------------------------------------------------------
3084: Capturing subpattern count = 5
3085: Options: anchored
3086: No first char
3087: No need char
3088:
3089: /^x(?U)a+b/DZ
3090: ------------------------------------------------------------------
3091: Bra
3092: ^
3093: x
3094: a++
3095: b
3096: Ket
3097: End
3098: ------------------------------------------------------------------
3099: Capturing subpattern count = 0
3100: Options: anchored
3101: No first char
3102: Need char = 'b'
3103:
3104: /^x(?U)(a+)b/DZ
3105: ------------------------------------------------------------------
3106: Bra
3107: ^
3108: x
3109: CBra 1
3110: a+?
3111: Ket
3112: b
3113: Ket
3114: End
3115: ------------------------------------------------------------------
3116: Capturing subpattern count = 1
3117: Options: anchored
3118: No first char
3119: Need char = 'b'
3120:
3121: /[.x.]/I
3122: Failed: POSIX collating elements are not supported at offset 0
3123:
3124: /[=x=]/I
3125: Failed: POSIX collating elements are not supported at offset 0
3126:
3127: /[:x:]/I
3128: Failed: POSIX named classes are supported only within a class at offset 0
3129:
3130: /\l/I
3131: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3132:
3133: /\L/I
3134: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3135:
3136: /\N{name}/I
3137: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3138:
3139: /\u/I
3140: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3141:
3142: /\U/I
3143: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3144:
3145: /[/I
3146: Failed: missing terminating ] for character class at offset 1
3147:
3148: /[a-/I
3149: Failed: missing terminating ] for character class at offset 3
3150:
3151: /[[:space:]/I
3152: Failed: missing terminating ] for character class at offset 10
3153:
3154: /[\s]/IDZ
3155: ------------------------------------------------------------------
3156: Bra
3157: [\x09\x0a\x0c\x0d ]
3158: Ket
3159: End
3160: ------------------------------------------------------------------
3161: Capturing subpattern count = 0
3162: No options
3163: No first char
3164: No need char
3165:
3166: /[[:space:]]/IDZ
3167: ------------------------------------------------------------------
3168: Bra
3169: [\x09-\x0d ]
3170: Ket
3171: End
3172: ------------------------------------------------------------------
3173: Capturing subpattern count = 0
3174: No options
3175: No first char
3176: No need char
3177:
3178: /[[:space:]abcde]/IDZ
3179: ------------------------------------------------------------------
3180: Bra
3181: [\x09-\x0d a-e]
3182: Ket
3183: End
3184: ------------------------------------------------------------------
3185: Capturing subpattern count = 0
3186: No options
3187: No first char
3188: No need char
3189:
3190: /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix
3191: Capturing subpattern count = 0
3192: Options: extended
3193: First char = '<'
3194: Need char = '>'
3195: <>
3196: 0: <>
3197: <abcd>
3198: 0: <abcd>
3199: <abc <123> hij>
3200: 0: <abc <123> hij>
3201: <abc <def> hij>
3202: 0: <def>
3203: <abc<>def>
3204: 0: <abc<>def>
3205: <abc<>
3206: 0: <>
3207: *** Failers
3208: No match
3209: <abc
3210: No match
3211:
3212: |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
3213: ------------------------------------------------------------------
3214: Bra
3215: 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
3216: \b
3217: Ket
3218: End
3219: ------------------------------------------------------------------
3220: Capturing subpattern count = 0
1.1.1.4 ! misho 3221: Max lookbehind = 1
1.1 misho 3222: No options
3223: First char = '8'
3224: Need char = 'X'
3225:
3226: |\$\<\.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
3227: ------------------------------------------------------------------
3228: Bra
3229: $<.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
3230: \b
3231: Ket
3232: End
3233: ------------------------------------------------------------------
3234: Capturing subpattern count = 0
1.1.1.4 ! misho 3235: Max lookbehind = 1
1.1 misho 3236: No options
3237: First char = '$'
3238: Need char = 'X'
3239:
3240: /(.*)\d+\1/I
3241: Capturing subpattern count = 1
3242: Max back reference = 1
3243: No options
3244: No first char
3245: No need char
3246:
3247: /(.*)\d+/I
3248: Capturing subpattern count = 1
3249: No options
3250: First char at start or follows newline
3251: No need char
3252:
3253: /(.*)\d+\1/Is
3254: Capturing subpattern count = 1
3255: Max back reference = 1
3256: Options: dotall
3257: No first char
3258: No need char
3259:
3260: /(.*)\d+/Is
3261: Capturing subpattern count = 1
3262: Options: anchored dotall
3263: No first char
3264: No need char
3265:
3266: /(.*(xyz))\d+\2/I
3267: Capturing subpattern count = 2
3268: Max back reference = 2
3269: No options
3270: First char at start or follows newline
3271: Need char = 'z'
3272:
3273: /((.*))\d+\1/I
3274: Capturing subpattern count = 2
3275: Max back reference = 1
3276: No options
3277: No first char
3278: No need char
3279: abc123bc
3280: 0: bc123bc
3281: 1: bc
3282: 2: bc
3283:
3284: /a[b]/I
3285: Capturing subpattern count = 0
3286: No options
3287: First char = 'a'
3288: Need char = 'b'
3289:
3290: /(?=a).*/I
3291: Capturing subpattern count = 0
3292: No options
3293: First char = 'a'
3294: No need char
3295:
3296: /(?=abc).xyz/IiI
3297: Capturing subpattern count = 0
3298: Options: caseless
3299: First char = 'a' (caseless)
3300: Need char = 'z' (caseless)
3301:
3302: /(?=abc)(?i).xyz/I
3303: Capturing subpattern count = 0
3304: No options
3305: First char = 'a'
3306: Need char = 'z' (caseless)
3307:
3308: /(?=a)(?=b)/I
3309: Capturing subpattern count = 0
3310: No options
3311: First char = 'a'
3312: No need char
3313:
3314: /(?=.)a/I
3315: Capturing subpattern count = 0
3316: No options
3317: First char = 'a'
3318: No need char
3319:
3320: /((?=abcda)a)/I
3321: Capturing subpattern count = 1
3322: No options
3323: First char = 'a'
3324: Need char = 'a'
3325:
3326: /((?=abcda)ab)/I
3327: Capturing subpattern count = 1
3328: No options
3329: First char = 'a'
3330: Need char = 'b'
3331:
3332: /()a/I
3333: Capturing subpattern count = 1
3334: No options
3335: No first char
3336: Need char = 'a'
3337:
3338: /(?(1)ab|ac)(.)/I
3339: Capturing subpattern count = 1
3340: No options
3341: First char = 'a'
3342: No need char
3343:
3344: /(?(1)abz|acz)(.)/I
3345: Capturing subpattern count = 1
3346: No options
3347: First char = 'a'
3348: Need char = 'z'
3349:
3350: /(?(1)abz)(.)/I
3351: Capturing subpattern count = 1
3352: No options
3353: No first char
3354: No need char
3355:
3356: /(?(1)abz)(1)23/I
3357: Capturing subpattern count = 1
3358: No options
3359: No first char
3360: Need char = '3'
3361:
3362: /(a)+/I
3363: Capturing subpattern count = 1
3364: No options
3365: First char = 'a'
3366: No need char
3367:
3368: /(a){2,3}/I
3369: Capturing subpattern count = 1
3370: No options
3371: First char = 'a'
3372: Need char = 'a'
3373:
3374: /(a)*/I
3375: Capturing subpattern count = 1
3376: No options
3377: No first char
3378: No need char
3379:
3380: /[a]/I
3381: Capturing subpattern count = 0
3382: No options
3383: First char = 'a'
3384: No need char
3385:
3386: /[ab]/I
3387: Capturing subpattern count = 0
3388: No options
3389: No first char
3390: No need char
3391:
3392: /[ab]/IS
3393: Capturing subpattern count = 0
3394: No options
3395: No first char
3396: No need char
3397: Subject length lower bound = 1
3398: Starting byte set: a b
3399:
3400: /[^a]/I
3401: Capturing subpattern count = 0
3402: No options
3403: No first char
3404: No need char
3405:
3406: /\d456/I
3407: Capturing subpattern count = 0
3408: No options
3409: No first char
3410: Need char = '6'
3411:
3412: /\d456/IS
3413: Capturing subpattern count = 0
3414: No options
3415: No first char
3416: Need char = '6'
3417: Subject length lower bound = 4
3418: Starting byte set: 0 1 2 3 4 5 6 7 8 9
3419:
3420: /a^b/I
3421: Capturing subpattern count = 0
3422: No options
3423: First char = 'a'
3424: Need char = 'b'
3425:
3426: /^a/Im
3427: Capturing subpattern count = 0
3428: Options: multiline
3429: First char at start or follows newline
3430: Need char = 'a'
3431: abcde
3432: 0: a
3433: xy\nabc
3434: 0: a
3435: *** Failers
3436: No match
3437: xyabc
3438: No match
3439:
3440: /c|abc/I
3441: Capturing subpattern count = 0
3442: No options
3443: No first char
3444: Need char = 'c'
3445:
3446: /(?i)[ab]/IS
3447: Capturing subpattern count = 0
3448: Options: caseless
3449: No first char
3450: No need char
3451: Subject length lower bound = 1
3452: Starting byte set: A B a b
3453:
3454: /[ab](?i)cd/IS
3455: Capturing subpattern count = 0
3456: No options
3457: No first char
3458: Need char = 'd' (caseless)
3459: Subject length lower bound = 3
3460: Starting byte set: a b
3461:
3462: /abc(?C)def/I
3463: Capturing subpattern count = 0
3464: No options
3465: First char = 'a'
3466: Need char = 'f'
3467: abcdef
3468: --->abcdef
3469: 0 ^ ^ d
3470: 0: abcdef
3471: 1234abcdef
3472: --->1234abcdef
3473: 0 ^ ^ d
3474: 0: abcdef
3475: *** Failers
3476: No match
3477: abcxyz
3478: No match
3479: abcxyzf
3480: --->abcxyzf
3481: 0 ^ ^ d
3482: No match
3483:
3484: /abc(?C)de(?C1)f/I
3485: Capturing subpattern count = 0
3486: No options
3487: First char = 'a'
3488: Need char = 'f'
3489: 123abcdef
3490: --->123abcdef
3491: 0 ^ ^ d
3492: 1 ^ ^ f
3493: 0: abcdef
3494:
3495: /(?C1)\dabc(?C2)def/IS
3496: Capturing subpattern count = 0
3497: No options
3498: No first char
3499: Need char = 'f'
3500: Subject length lower bound = 7
3501: Starting byte set: 0 1 2 3 4 5 6 7 8 9
3502: 1234abcdef
3503: --->1234abcdef
3504: 1 ^ \d
3505: 1 ^ \d
3506: 1 ^ \d
3507: 1 ^ \d
3508: 2 ^ ^ d
3509: 0: 4abcdef
3510: *** Failers
3511: No match
3512: abcdef
3513: No match
3514:
3515: /(?C1)\dabc(?C2)def/ISS
3516: Capturing subpattern count = 0
3517: No options
3518: No first char
3519: Need char = 'f'
3520: 1234abcdef
3521: --->1234abcdef
3522: 1 ^ \d
3523: 1 ^ \d
3524: 1 ^ \d
3525: 1 ^ \d
3526: 2 ^ ^ d
3527: 0: 4abcdef
3528: *** Failers
3529: No match
3530: abcdef
3531: --->abcdef
3532: 1 ^ \d
3533: 1 ^ \d
3534: 1 ^ \d
3535: 1 ^ \d
3536: 1 ^ \d
3537: 1 ^ \d
3538: No match
3539:
3540: /(?C255)ab/I
3541: Capturing subpattern count = 0
3542: No options
3543: First char = 'a'
3544: Need char = 'b'
3545:
3546: /(?C256)ab/I
3547: Failed: number after (?C is > 255 at offset 6
3548:
3549: /(?Cab)xx/I
3550: Failed: closing ) for (?C expected at offset 3
3551:
3552: /(?C12vr)x/I
3553: Failed: closing ) for (?C expected at offset 5
3554:
3555: /abc(?C)def/I
3556: Capturing subpattern count = 0
3557: No options
3558: First char = 'a'
3559: Need char = 'f'
3560: *** Failers
3561: No match
3562: \x83\x0\x61bcdef
3563: --->\x83\x00abcdef
3564: 0 ^ ^ d
3565: 0: abcdef
3566:
3567: /(abc)(?C)de(?C1)f/I
3568: Capturing subpattern count = 1
3569: No options
3570: First char = 'a'
3571: Need char = 'f'
3572: 123abcdef
3573: --->123abcdef
3574: 0 ^ ^ d
3575: 1 ^ ^ f
3576: 0: abcdef
3577: 1: abc
3578: 123abcdef\C+
3579: Callout 0: last capture = 1
3580: 0: <unset>
3581: 1: abc
3582: --->123abcdef
3583: ^ ^ d
3584: Callout 1: last capture = 1
3585: 0: <unset>
3586: 1: abc
3587: --->123abcdef
3588: ^ ^ f
3589: 0: abcdef
3590: 1: abc
3591: 123abcdef\C-
3592: 0: abcdef
3593: 1: abc
3594: *** Failers
3595: No match
3596: 123abcdef\C!1
3597: --->123abcdef
3598: 0 ^ ^ d
3599: 1 ^ ^ f
3600: No match
3601:
3602: /(?C0)(abc(?C1))*/I
3603: Capturing subpattern count = 1
3604: No options
3605: No first char
3606: No need char
3607: abcabcabc
3608: --->abcabcabc
3609: 0 ^ (abc(?C1))*
3610: 1 ^ ^ )
3611: 1 ^ ^ )
3612: 1 ^ ^ )
3613: 0: abcabcabc
3614: 1: abc
3615: abcabc\C!1!3
3616: --->abcabc
3617: 0 ^ (abc(?C1))*
3618: 1 ^ ^ )
3619: 1 ^ ^ )
3620: 0: abcabc
3621: 1: abc
3622: *** Failers
3623: --->*** Failers
3624: 0 ^ (abc(?C1))*
3625: 0:
3626: abcabcabc\C!1!3
3627: --->abcabcabc
3628: 0 ^ (abc(?C1))*
3629: 1 ^ ^ )
3630: 1 ^ ^ )
3631: 1 ^ ^ )
3632: 0: abcabc
3633: 1: abc
3634:
3635: /(\d{3}(?C))*/I
3636: Capturing subpattern count = 1
3637: No options
3638: No first char
3639: No need char
3640: 123\C+
3641: Callout 0: last capture = -1
3642: 0: <unset>
3643: --->123
3644: ^ ^ )
3645: 0: 123
3646: 1: 123
3647: 123456\C+
3648: Callout 0: last capture = -1
3649: 0: <unset>
3650: --->123456
3651: ^ ^ )
3652: Callout 0: last capture = 1
3653: 0: <unset>
3654: 1: 123
3655: --->123456
3656: ^ ^ )
3657: 0: 123456
3658: 1: 456
3659: 123456789\C+
3660: Callout 0: last capture = -1
3661: 0: <unset>
3662: --->123456789
3663: ^ ^ )
3664: Callout 0: last capture = 1
3665: 0: <unset>
3666: 1: 123
3667: --->123456789
3668: ^ ^ )
3669: Callout 0: last capture = 1
3670: 0: <unset>
3671: 1: 456
3672: --->123456789
3673: ^ ^ )
3674: 0: 123456789
3675: 1: 789
3676:
3677: /((xyz)(?C)p|(?C1)xyzabc)/I
3678: Capturing subpattern count = 2
3679: No options
3680: First char = 'x'
3681: No need char
3682: xyzabc\C+
3683: Callout 0: last capture = 2
3684: 0: <unset>
3685: 1: <unset>
3686: 2: xyz
3687: --->xyzabc
3688: ^ ^ p
3689: Callout 1: last capture = -1
3690: 0: <unset>
3691: --->xyzabc
3692: ^ x
3693: 0: xyzabc
3694: 1: xyzabc
3695:
3696: /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3697: Capturing subpattern count = 3
3698: No options
3699: First char = 'X'
3700: Need char = 'x'
3701: Xxyzabc\C+
3702: Callout 0: last capture = 3
3703: 0: <unset>
3704: 1: X
3705: 2: <unset>
3706: 3: xyz
3707: --->Xxyzabc
3708: ^ ^ p
3709: Callout 1: last capture = 1
3710: 0: <unset>
3711: 1: X
3712: --->Xxyzabc
3713: ^^ x
3714: 0: Xxyzabc
3715: 1: X
3716: 2: xyzabc
3717:
3718: /(?=(abc))(?C)abcdef/I
3719: Capturing subpattern count = 1
3720: No options
3721: First char = 'a'
3722: Need char = 'f'
3723: abcdef\C+
3724: Callout 0: last capture = 1
3725: 0: <unset>
3726: 1: abc
3727: --->abcdef
3728: ^ a
3729: 0: abcdef
3730: 1: abc
3731:
3732: /(?!(abc)(?C1)d)(?C2)abcxyz/I
3733: Capturing subpattern count = 1
3734: No options
3735: First char = 'a'
3736: Need char = 'z'
3737: abcxyz\C+
3738: Callout 1: last capture = 1
3739: 0: <unset>
3740: 1: abc
3741: --->abcxyz
3742: ^ ^ d
3743: Callout 2: last capture = -1
3744: 0: <unset>
3745: --->abcxyz
3746: ^ a
3747: 0: abcxyz
3748:
3749: /(?<=(abc)(?C))xyz/I
3750: Capturing subpattern count = 1
1.1.1.4 ! misho 3751: Max lookbehind = 3
1.1 misho 3752: No options
3753: First char = 'x'
3754: Need char = 'z'
3755: abcxyz\C+
3756: Callout 0: last capture = 1
3757: 0: <unset>
3758: 1: abc
3759: --->abcxyz
3760: ^ )
3761: 0: xyz
3762: 1: abc
3763:
3764: /a(b+)(c*)(?C1)/I
3765: Capturing subpattern count = 2
3766: No options
3767: First char = 'a'
3768: Need char = 'b'
3769: abbbbbccc\C*1
3770: --->abbbbbccc
3771: 1 ^ ^
3772: Callout data = 1
3773: 1 ^ ^
3774: Callout data = 1
3775: 1 ^ ^
3776: Callout data = 1
3777: 1 ^ ^
3778: Callout data = 1
3779: 1 ^ ^
3780: Callout data = 1
3781: 1 ^ ^
3782: Callout data = 1
3783: 1 ^ ^
3784: Callout data = 1
3785: 1 ^ ^
3786: Callout data = 1
3787: No match
3788:
3789: /a(b+?)(c*?)(?C1)/I
3790: Capturing subpattern count = 2
3791: No options
3792: First char = 'a'
3793: Need char = 'b'
3794: abbbbbccc\C*1
3795: --->abbbbbccc
3796: 1 ^ ^
3797: Callout data = 1
3798: 1 ^ ^
3799: Callout data = 1
3800: 1 ^ ^
3801: Callout data = 1
3802: 1 ^ ^
3803: Callout data = 1
3804: 1 ^ ^
3805: Callout data = 1
3806: 1 ^ ^
3807: Callout data = 1
3808: 1 ^ ^
3809: Callout data = 1
3810: 1 ^ ^
3811: Callout data = 1
3812: No match
3813:
3814: /(?C)abc/I
3815: Capturing subpattern count = 0
3816: No options
3817: First char = 'a'
3818: Need char = 'c'
3819:
3820: /(?C)^abc/I
3821: Capturing subpattern count = 0
3822: Options: anchored
3823: No first char
3824: No need char
3825:
3826: /(?C)a|b/IS
3827: Capturing subpattern count = 0
3828: No options
3829: No first char
3830: No need char
3831: Subject length lower bound = 1
3832: Starting byte set: a b
3833:
3834: /(?R)/I
3835: Failed: recursive call could loop indefinitely at offset 3
3836:
3837: /(a|(?R))/I
3838: Failed: recursive call could loop indefinitely at offset 6
3839:
3840: /(ab|(bc|(de|(?R))))/I
3841: Failed: recursive call could loop indefinitely at offset 15
3842:
3843: /x(ab|(bc|(de|(?R))))/I
3844: Capturing subpattern count = 3
3845: No options
3846: First char = 'x'
3847: No need char
3848: xab
3849: 0: xab
3850: 1: ab
3851: xbc
3852: 0: xbc
3853: 1: bc
3854: 2: bc
3855: xde
3856: 0: xde
3857: 1: de
3858: 2: de
3859: 3: de
3860: xxab
3861: 0: xxab
3862: 1: xab
3863: 2: xab
3864: 3: xab
3865: xxxab
3866: 0: xxxab
3867: 1: xxab
3868: 2: xxab
3869: 3: xxab
3870: *** Failers
3871: No match
3872: xyab
3873: No match
3874:
3875: /(ab|(bc|(de|(?1))))/I
3876: Failed: recursive call could loop indefinitely at offset 15
3877:
3878: /x(ab|(bc|(de|(?1)x)x)x)/I
3879: Failed: recursive call could loop indefinitely at offset 16
3880:
3881: /^([^()]|\((?1)*\))*$/I
3882: Capturing subpattern count = 1
3883: Options: anchored
3884: No first char
3885: No need char
3886: abc
3887: 0: abc
3888: 1: c
3889: a(b)c
3890: 0: a(b)c
3891: 1: c
3892: a(b(c))d
3893: 0: a(b(c))d
3894: 1: d
3895: *** Failers)
3896: No match
3897: a(b(c)d
3898: No match
3899:
3900: /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3901: Capturing subpattern count = 1
3902: Options: anchored
3903: No first char
3904: Need char = '<'
3905: >abc>123<xyz<
3906: 0: >abc>123<xyz<
3907: 1: 3
3908: >abc>1(2)3<xyz<
3909: 0: >abc>1(2)3<xyz<
3910: 1: 3
3911: >abc>(1(2)3)<xyz<
3912: 0: >abc>(1(2)3)<xyz<
3913: 1: (1(2)3)
3914:
3915: /(a(?1)b)/DZ
3916: ------------------------------------------------------------------
3917: Bra
3918: CBra 1
3919: a
3920: Recurse
3921: b
3922: Ket
3923: Ket
3924: End
3925: ------------------------------------------------------------------
3926: Capturing subpattern count = 1
3927: No options
3928: First char = 'a'
3929: Need char = 'b'
3930:
3931: /(a(?1)+b)/DZ
3932: ------------------------------------------------------------------
3933: Bra
3934: CBra 1
3935: a
3936: Once
3937: Recurse
3938: KetRmax
3939: b
3940: Ket
3941: Ket
3942: End
3943: ------------------------------------------------------------------
3944: Capturing subpattern count = 1
3945: No options
3946: First char = 'a'
3947: Need char = 'b'
3948:
3949: /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3950: Capturing subpattern count = 2
3951: Options: anchored
3952: No first char
3953: No need char
3954: 12
3955: 0: 12
3956: 1: 12
3957: (((2+2)*-3)-7)
3958: 0: (((2+2)*-3)-7)
3959: 1: (((2+2)*-3)-7)
3960: 2: -
3961: -12
3962: 0: -12
3963: 1: -12
3964: *** Failers
3965: No match
3966: ((2+2)*-3)-7)
3967: No match
3968:
3969: /^(x(y|(?1){2})z)/I
3970: Capturing subpattern count = 2
3971: Options: anchored
3972: No first char
3973: No need char
3974: xyz
3975: 0: xyz
3976: 1: xyz
3977: 2: y
3978: xxyzxyzz
3979: 0: xxyzxyzz
3980: 1: xxyzxyzz
3981: 2: xyzxyz
3982: *** Failers
3983: No match
3984: xxyzz
3985: No match
3986: xxyzxyzxyzz
3987: No match
3988:
3989: /((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix
3990: Capturing subpattern count = 2
3991: Options: extended
3992: First char = '<'
3993: Need char = '>'
3994: <>
3995: 0: <>
3996: 1: <>
3997: 2: <>
3998: <abcd>
3999: 0: <abcd>
4000: 1: <abcd>
4001: 2: <abcd>
4002: <abc <123> hij>
4003: 0: <abc <123> hij>
4004: 1: <abc <123> hij>
4005: 2: <abc <123> hij>
4006: <abc <def> hij>
4007: 0: <def>
4008: 1: <def>
4009: 2: <def>
4010: <abc<>def>
4011: 0: <abc<>def>
4012: 1: <abc<>def>
4013: 2: <abc<>def>
4014: <abc<>
4015: 0: <>
4016: 1: <>
4017: 2: <>
4018: *** Failers
4019: No match
4020: <abc
4021: No match
4022:
4023: /(?1)/I
4024: Failed: reference to non-existent subpattern at offset 3
4025:
4026: /((?2)(abc)/I
4027: Failed: missing ) at offset 10
4028:
4029: /^(abc)def(?1)/I
4030: Capturing subpattern count = 1
4031: Options: anchored
4032: No first char
4033: No need char
4034: abcdefabc
4035: 0: abcdefabc
4036: 1: abc
4037:
4038: /^(a|b|c)=(?1)+/I
4039: Capturing subpattern count = 1
4040: Options: anchored
4041: No first char
4042: No need char
4043: a=a
4044: 0: a=a
4045: 1: a
4046: a=b
4047: 0: a=b
4048: 1: a
4049: a=bc
4050: 0: a=bc
4051: 1: a
4052:
4053: /^(a|b|c)=((?1))+/I
4054: Capturing subpattern count = 2
4055: Options: anchored
4056: No first char
4057: No need char
4058: a=a
4059: 0: a=a
4060: 1: a
4061: 2: a
4062: a=b
4063: 0: a=b
4064: 1: a
4065: 2: b
4066: a=bc
4067: 0: a=bc
4068: 1: a
4069: 2: c
4070:
4071: /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4072: ------------------------------------------------------------------
4073: Bra
4074: a
4075: CBra 1
4076: b
4077: Alt
4078: c
4079: Ket
4080: d
4081: CBra 2
4082: e
4083: Ket
4084: Ket
4085: End
4086: ------------------------------------------------------------------
4087: Capturing subpattern count = 2
4088: Named capturing subpatterns:
4089: longername2 2
4090: name1 1
4091: No options
4092: First char = 'a'
4093: Need char = 'e'
4094: abde
4095: 0: abde
4096: 1: b
4097: 2: e
4098: acde
4099: 0: acde
4100: 1: c
4101: 2: e
4102:
4103: /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4104: ------------------------------------------------------------------
4105: Bra
4106: Bra
4107: a
4108: CBra 1
4109: c
4110: CBra 2
4111: d
4112: Ket
4113: Ket
4114: Ket
4115: CBra 3
4116: a
4117: Ket
4118: Ket
4119: End
4120: ------------------------------------------------------------------
4121: Capturing subpattern count = 3
4122: Named capturing subpatterns:
4123: a 3
4124: c 1
4125: d 2
4126: No options
4127: First char = 'a'
4128: Need char = 'a'
4129:
4130: /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4131: ------------------------------------------------------------------
4132: Bra
4133: CBra 1
4134: a
4135: Ket
4136: Any
4137: Any
4138: Any
4139: \1
4140: bbb
4141: Recurse
4142: d
4143: Ket
4144: End
4145: ------------------------------------------------------------------
4146: Capturing subpattern count = 1
4147: Max back reference = 1
4148: Named capturing subpatterns:
4149: a 1
4150: No options
4151: First char = 'a'
4152: Need char = 'd'
4153:
4154: /^\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
4155: Capturing subpattern count = 4
4156: Max back reference = 4
4157: Named capturing subpatterns:
4158: four 4
4159: one 1
4160: three 3
4161: two 2
4162: Options: anchored caseless
4163: No first char
4164: No need char
4165: 1221
4166: 0: 1221
4167: 1: 1221
4168: 2: 1
4169: Satan, oscillate my metallic sonatas!
4170: 0: Satan, oscillate my metallic sonatas!
4171: 1: <unset>
4172: 2: <unset>
4173: 3: Satan, oscillate my metallic sonatas
4174: 4: S
4175: A man, a plan, a canal: Panama!
4176: 0: A man, a plan, a canal: Panama!
4177: 1: <unset>
4178: 2: <unset>
4179: 3: A man, a plan, a canal: Panama
4180: 4: A
4181: Able was I ere I saw Elba.
4182: 0: Able was I ere I saw Elba.
4183: 1: <unset>
4184: 2: <unset>
4185: 3: Able was I ere I saw Elba
4186: 4: A
4187: *** Failers
4188: No match
4189: The quick brown fox
4190: No match
4191:
4192: /((?(R)a|b))\1(?1)?/I
4193: Capturing subpattern count = 1
4194: Max back reference = 1
4195: No options
4196: No first char
4197: No need char
4198: bb
4199: 0: bb
4200: 1: b
4201: bbaa
4202: 0: bba
4203: 1: b
4204:
4205: /(.*)a/Is
4206: Capturing subpattern count = 1
4207: Options: anchored dotall
4208: No first char
4209: Need char = 'a'
4210:
4211: /(.*)a\1/Is
4212: Capturing subpattern count = 1
4213: Max back reference = 1
4214: Options: dotall
4215: No first char
4216: Need char = 'a'
4217:
4218: /(.*)a(b)\2/Is
4219: Capturing subpattern count = 2
4220: Max back reference = 2
4221: Options: anchored dotall
4222: No first char
4223: Need char = 'b'
4224:
4225: /((.*)a|(.*)b)z/Is
4226: Capturing subpattern count = 3
4227: Options: anchored dotall
4228: No first char
4229: Need char = 'z'
4230:
4231: /((.*)a|(.*)b)z\1/Is
4232: Capturing subpattern count = 3
4233: Max back reference = 1
4234: Options: dotall
4235: No first char
4236: Need char = 'z'
4237:
4238: /((.*)a|(.*)b)z\2/Is
4239: Capturing subpattern count = 3
4240: Max back reference = 2
4241: Options: dotall
4242: No first char
4243: Need char = 'z'
4244:
4245: /((.*)a|(.*)b)z\3/Is
4246: Capturing subpattern count = 3
4247: Max back reference = 3
4248: Options: dotall
4249: No first char
4250: Need char = 'z'
4251:
4252: /((.*)a|^(.*)b)z\3/Is
4253: Capturing subpattern count = 3
4254: Max back reference = 3
4255: Options: anchored dotall
4256: No first char
4257: Need char = 'z'
4258:
4259: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4260: Capturing subpattern count = 31
4261: Options: anchored dotall
4262: No first char
4263: No need char
4264:
4265: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4266: Capturing subpattern count = 31
4267: Max back reference = 31
4268: Options: dotall
4269: No first char
4270: No need char
4271:
4272: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4273: Capturing subpattern count = 32
4274: Max back reference = 32
4275: Options: dotall
4276: No first char
4277: No need char
4278:
4279: /(a)(bc)/INDZ
4280: ------------------------------------------------------------------
4281: Bra
4282: Bra
4283: a
4284: Ket
4285: Bra
4286: bc
4287: Ket
4288: Ket
4289: End
4290: ------------------------------------------------------------------
4291: Capturing subpattern count = 0
4292: Options: no_auto_capture
4293: First char = 'a'
4294: Need char = 'c'
4295: abc
4296: 0: abc
4297:
4298: /(?P<one>a)(bc)/INDZ
4299: ------------------------------------------------------------------
4300: Bra
4301: CBra 1
4302: a
4303: Ket
4304: Bra
4305: bc
4306: Ket
4307: Ket
4308: End
4309: ------------------------------------------------------------------
4310: Capturing subpattern count = 1
4311: Named capturing subpatterns:
4312: one 1
4313: Options: no_auto_capture
4314: First char = 'a'
4315: Need char = 'c'
4316: abc
4317: 0: abc
4318: 1: a
4319:
4320: /(a)(?P<named>bc)/INDZ
4321: ------------------------------------------------------------------
4322: Bra
4323: Bra
4324: a
4325: Ket
4326: CBra 1
4327: bc
4328: Ket
4329: Ket
4330: End
4331: ------------------------------------------------------------------
4332: Capturing subpattern count = 1
4333: Named capturing subpatterns:
4334: named 1
4335: Options: no_auto_capture
4336: First char = 'a'
4337: Need char = 'c'
4338:
4339: /(a+)*zz/I
4340: Capturing subpattern count = 1
4341: No options
4342: No first char
4343: Need char = 'z'
4344: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4345: Minimum match() limit = 8
4346: Minimum match() recursion limit = 6
4347: 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4348: 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4349: aaaaaaaaaaaaaz\M
4350: Minimum match() limit = 32768
1.1.1.4 ! misho 4351: Minimum match() recursion limit = 29
1.1 misho 4352: No match
4353:
4354: /(aaa(?C1)bbb|ab)/I
4355: Capturing subpattern count = 1
4356: No options
4357: First char = 'a'
4358: Need char = 'b'
4359: aaabbb
4360: --->aaabbb
4361: 1 ^ ^ b
4362: 0: aaabbb
4363: 1: aaabbb
4364: aaabbb\C*0
4365: --->aaabbb
4366: 1 ^ ^ b
4367: 0: aaabbb
4368: 1: aaabbb
4369: aaabbb\C*1
4370: --->aaabbb
4371: 1 ^ ^ b
4372: Callout data = 1
4373: 0: ab
4374: 1: ab
4375: aaabbb\C*-1
4376: --->aaabbb
4377: 1 ^ ^ b
4378: Callout data = -1
4379: No match
4380:
4381: /ab(?P<one>cd)ef(?P<two>gh)/I
4382: Capturing subpattern count = 2
4383: Named capturing subpatterns:
4384: one 1
4385: two 2
4386: No options
4387: First char = 'a'
4388: Need char = 'h'
4389: abcdefgh
4390: 0: abcdefgh
4391: 1: cd
4392: 2: gh
4393: abcdefgh\C1\Gtwo
4394: 0: abcdefgh
4395: 1: cd
4396: 2: gh
4397: 1C cd (2)
4398: G gh (2) two
4399: abcdefgh\Cone\Ctwo
4400: 0: abcdefgh
4401: 1: cd
4402: 2: gh
4403: C cd (2) one
4404: C gh (2) two
4405: abcdefgh\Cthree
4406: no parentheses with name "three"
4407: 0: abcdefgh
4408: 1: cd
4409: 2: gh
4410: copy substring three failed -7
4411:
4412: /(?P<Tes>)(?P<Test>)/DZ
4413: ------------------------------------------------------------------
4414: Bra
4415: CBra 1
4416: Ket
4417: CBra 2
4418: Ket
4419: Ket
4420: End
4421: ------------------------------------------------------------------
4422: Capturing subpattern count = 2
4423: Named capturing subpatterns:
4424: Tes 1
4425: Test 2
4426: No options
4427: No first char
4428: No need char
4429:
4430: /(?P<Test>)(?P<Tes>)/DZ
4431: ------------------------------------------------------------------
4432: Bra
4433: CBra 1
4434: Ket
4435: CBra 2
4436: Ket
4437: Ket
4438: End
4439: ------------------------------------------------------------------
4440: Capturing subpattern count = 2
4441: Named capturing subpatterns:
4442: Tes 2
4443: Test 1
4444: No options
4445: No first char
4446: No need char
4447:
4448: /(?P<Z>zz)(?P<A>aa)/I
4449: Capturing subpattern count = 2
4450: Named capturing subpatterns:
4451: A 2
4452: Z 1
4453: No options
4454: First char = 'z'
4455: Need char = 'a'
4456: zzaa\CZ
4457: 0: zzaa
4458: 1: zz
4459: 2: aa
4460: C zz (2) Z
4461: zzaa\CA
4462: 0: zzaa
4463: 1: zz
4464: 2: aa
4465: C aa (2) A
4466:
4467: /(?P<x>eks)(?P<x>eccs)/I
4468: Failed: two named subpatterns have the same name at offset 15
4469:
4470: /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
4471: Failed: two named subpatterns have the same name at offset 30
4472:
4473: "\[((?P<elem>\d+)(,(?P>elem))*)\]"I
4474: Capturing subpattern count = 3
4475: Named capturing subpatterns:
4476: elem 2
4477: No options
4478: First char = '['
4479: Need char = ']'
4480: [10,20,30,5,5,4,4,2,43,23,4234]
4481: 0: [10,20,30,5,5,4,4,2,43,23,4234]
4482: 1: 10,20,30,5,5,4,4,2,43,23,4234
4483: 2: 10
4484: 3: ,4234
4485: *** Failers
4486: No match
4487: []
4488: No match
4489:
4490: "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
4491: Capturing subpattern count = 3
4492: Named capturing subpatterns:
4493: elem 2
4494: No options
4495: First char = '['
4496: Need char = ']'
4497: [10,20,30,5,5,4,4,2,43,23,4234]
4498: 0: [10,20,30,5,5,4,4,2,43,23,4234]
4499: 1: 10,20,30,5,5,4,4,2,43,23,4234
4500: 2: 10
4501: 3: ,4234
4502: []
4503: 0: []
4504:
4505: /(a(b(?2)c))?/DZ
4506: ------------------------------------------------------------------
4507: Bra
4508: Brazero
4509: CBra 1
4510: a
4511: CBra 2
4512: b
4513: Recurse
4514: c
4515: Ket
4516: Ket
4517: Ket
4518: End
4519: ------------------------------------------------------------------
4520: Capturing subpattern count = 2
4521: No options
4522: No first char
4523: No need char
4524:
4525: /(a(b(?2)c))*/DZ
4526: ------------------------------------------------------------------
4527: Bra
4528: Brazero
4529: CBra 1
4530: a
4531: CBra 2
4532: b
4533: Recurse
4534: c
4535: Ket
4536: KetRmax
4537: Ket
4538: End
4539: ------------------------------------------------------------------
4540: Capturing subpattern count = 2
4541: No options
4542: No first char
4543: No need char
4544:
4545: /(a(b(?2)c)){0,2}/DZ
4546: ------------------------------------------------------------------
4547: Bra
4548: Brazero
4549: Bra
4550: CBra 1
4551: a
4552: CBra 2
4553: b
4554: Recurse
4555: c
4556: Ket
4557: Ket
4558: Brazero
4559: CBra 1
4560: a
4561: CBra 2
4562: b
4563: Recurse
4564: c
4565: Ket
4566: Ket
4567: Ket
4568: Ket
4569: End
4570: ------------------------------------------------------------------
4571: Capturing subpattern count = 2
4572: No options
4573: No first char
4574: No need char
4575:
4576: /[ab]{1}+/DZ
4577: ------------------------------------------------------------------
4578: Bra
4579: Once
4580: [ab]{1,1}
4581: Ket
4582: Ket
4583: End
4584: ------------------------------------------------------------------
4585: Capturing subpattern count = 0
4586: No options
4587: No first char
4588: No need char
4589:
4590: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4591: Capturing subpattern count = 3
4592: Options: caseless
4593: No first char
4594: Need char = 'g' (caseless)
4595: Baby Bjorn Active Carrier - With free SHIPPING!!
4596: 0: Baby Bjorn Active Carrier - With free SHIPPING!!
4597: 1: Baby Bjorn Active Carrier - With free SHIPPING!!
4598:
4599: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4600: Capturing subpattern count = 3
4601: Options: caseless
4602: No first char
4603: Need char = 'g' (caseless)
4604: Subject length lower bound = 8
4605: No set of starting bytes
4606: Baby Bjorn Active Carrier - With free SHIPPING!!
4607: 0: Baby Bjorn Active Carrier - With free SHIPPING!!
4608: 1: Baby Bjorn Active Carrier - With free SHIPPING!!
4609:
4610: /a*.*b/ISDZ
4611: ------------------------------------------------------------------
4612: Bra
4613: a*
4614: Any*
4615: b
4616: Ket
4617: End
4618: ------------------------------------------------------------------
4619: Capturing subpattern count = 0
4620: No options
4621: No first char
4622: Need char = 'b'
4623: Subject length lower bound = 1
4624: No set of starting bytes
4625:
4626: /(a|b)*.?c/ISDZ
4627: ------------------------------------------------------------------
4628: Bra
4629: Brazero
4630: CBra 1
4631: a
4632: Alt
4633: b
4634: KetRmax
4635: Any?
4636: c
4637: Ket
4638: End
4639: ------------------------------------------------------------------
4640: Capturing subpattern count = 1
4641: No options
4642: No first char
4643: Need char = 'c'
4644: Subject length lower bound = 1
4645: No set of starting bytes
4646:
4647: /abc(?C255)de(?C)f/DZ
4648: ------------------------------------------------------------------
4649: Bra
4650: abc
4651: Callout 255 10 1
4652: de
4653: Callout 0 16 1
4654: f
4655: Ket
4656: End
4657: ------------------------------------------------------------------
4658: Capturing subpattern count = 0
4659: No options
4660: First char = 'a'
4661: Need char = 'f'
4662:
4663: /abcde/ICDZ
4664: ------------------------------------------------------------------
4665: Bra
4666: Callout 255 0 1
4667: a
4668: Callout 255 1 1
4669: b
4670: Callout 255 2 1
4671: c
4672: Callout 255 3 1
4673: d
4674: Callout 255 4 1
4675: e
4676: Callout 255 5 0
4677: Ket
4678: End
4679: ------------------------------------------------------------------
4680: Capturing subpattern count = 0
4681: Options:
4682: First char = 'a'
4683: Need char = 'e'
4684: abcde
4685: --->abcde
4686: +0 ^ a
4687: +1 ^^ b
4688: +2 ^ ^ c
4689: +3 ^ ^ d
4690: +4 ^ ^ e
4691: +5 ^ ^
4692: 0: abcde
4693: abcdfe
4694: --->abcdfe
4695: +0 ^ a
4696: +1 ^^ b
4697: +2 ^ ^ c
4698: +3 ^ ^ d
4699: +4 ^ ^ e
4700: No match
4701:
4702: /a*b/ICDZS
4703: ------------------------------------------------------------------
4704: Bra
4705: Callout 255 0 2
4706: a*+
4707: Callout 255 2 1
4708: b
4709: Callout 255 3 0
4710: Ket
4711: End
4712: ------------------------------------------------------------------
4713: Capturing subpattern count = 0
4714: Options:
4715: No first char
4716: Need char = 'b'
4717: Subject length lower bound = 1
4718: Starting byte set: a b
4719: ab
4720: --->ab
4721: +0 ^ a*
4722: +2 ^^ b
4723: +3 ^ ^
4724: 0: ab
4725: aaaab
4726: --->aaaab
4727: +0 ^ a*
4728: +2 ^ ^ b
4729: +3 ^ ^
4730: 0: aaaab
4731: aaaacb
4732: --->aaaacb
4733: +0 ^ a*
4734: +2 ^ ^ b
4735: +0 ^ a*
4736: +2 ^ ^ b
4737: +0 ^ a*
4738: +2 ^ ^ b
4739: +0 ^ a*
4740: +2 ^^ b
4741: +0 ^ a*
4742: +2 ^ b
4743: +3 ^^
4744: 0: b
4745:
4746: /a*b/ICDZSS
4747: ------------------------------------------------------------------
4748: Bra
4749: Callout 255 0 2
4750: a*+
4751: Callout 255 2 1
4752: b
4753: Callout 255 3 0
4754: Ket
4755: End
4756: ------------------------------------------------------------------
4757: Capturing subpattern count = 0
4758: Options:
4759: No first char
4760: Need char = 'b'
4761: ab
4762: --->ab
4763: +0 ^ a*
4764: +2 ^^ b
4765: +3 ^ ^
4766: 0: ab
4767: aaaab
4768: --->aaaab
4769: +0 ^ a*
4770: +2 ^ ^ b
4771: +3 ^ ^
4772: 0: aaaab
4773: aaaacb
4774: --->aaaacb
4775: +0 ^ a*
4776: +2 ^ ^ b
4777: +0 ^ a*
4778: +2 ^ ^ b
4779: +0 ^ a*
4780: +2 ^ ^ b
4781: +0 ^ a*
4782: +2 ^^ b
4783: +0 ^ a*
4784: +2 ^ b
4785: +0 ^ a*
4786: +2 ^ b
4787: +3 ^^
4788: 0: b
4789:
4790: /a+b/ICDZ
4791: ------------------------------------------------------------------
4792: Bra
4793: Callout 255 0 2
4794: a++
4795: Callout 255 2 1
4796: b
4797: Callout 255 3 0
4798: Ket
4799: End
4800: ------------------------------------------------------------------
4801: Capturing subpattern count = 0
4802: Options:
4803: First char = 'a'
4804: Need char = 'b'
4805: ab
4806: --->ab
4807: +0 ^ a+
4808: +2 ^^ b
4809: +3 ^ ^
4810: 0: ab
4811: aaaab
4812: --->aaaab
4813: +0 ^ a+
4814: +2 ^ ^ b
4815: +3 ^ ^
4816: 0: aaaab
4817: aaaacb
4818: --->aaaacb
4819: +0 ^ a+
4820: +2 ^ ^ b
4821: +0 ^ a+
4822: +2 ^ ^ b
4823: +0 ^ a+
4824: +2 ^ ^ b
4825: +0 ^ a+
4826: +2 ^^ b
4827: No match
4828:
4829: /(abc|def)x/ICDZS
4830: ------------------------------------------------------------------
4831: Bra
4832: Callout 255 0 9
4833: CBra 1
4834: Callout 255 1 1
4835: a
4836: Callout 255 2 1
4837: b
4838: Callout 255 3 1
4839: c
4840: Callout 255 4 0
4841: Alt
4842: Callout 255 5 1
4843: d
4844: Callout 255 6 1
4845: e
4846: Callout 255 7 1
4847: f
4848: Callout 255 8 0
4849: Ket
4850: Callout 255 9 1
4851: x
4852: Callout 255 10 0
4853: Ket
4854: End
4855: ------------------------------------------------------------------
4856: Capturing subpattern count = 1
4857: Options:
4858: No first char
4859: Need char = 'x'
4860: Subject length lower bound = 4
4861: Starting byte set: a d
4862: abcx
4863: --->abcx
4864: +0 ^ (abc|def)
4865: +1 ^ a
4866: +2 ^^ b
4867: +3 ^ ^ c
4868: +4 ^ ^ |
4869: +9 ^ ^ x
4870: +10 ^ ^
4871: 0: abcx
4872: 1: abc
4873: defx
4874: --->defx
4875: +0 ^ (abc|def)
4876: +1 ^ a
4877: +5 ^ d
4878: +6 ^^ e
4879: +7 ^ ^ f
4880: +8 ^ ^ )
4881: +9 ^ ^ x
4882: +10 ^ ^
4883: 0: defx
4884: 1: def
4885: ** Failers
4886: No match
4887: abcdefzx
4888: --->abcdefzx
4889: +0 ^ (abc|def)
4890: +1 ^ a
4891: +2 ^^ b
4892: +3 ^ ^ c
4893: +4 ^ ^ |
4894: +9 ^ ^ x
4895: +5 ^ d
4896: +0 ^ (abc|def)
4897: +1 ^ a
4898: +5 ^ d
4899: +6 ^^ e
4900: +7 ^ ^ f
4901: +8 ^ ^ )
4902: +9 ^ ^ x
4903: No match
4904:
4905: /(abc|def)x/ICDZSS
4906: ------------------------------------------------------------------
4907: Bra
4908: Callout 255 0 9
4909: CBra 1
4910: Callout 255 1 1
4911: a
4912: Callout 255 2 1
4913: b
4914: Callout 255 3 1
4915: c
4916: Callout 255 4 0
4917: Alt
4918: Callout 255 5 1
4919: d
4920: Callout 255 6 1
4921: e
4922: Callout 255 7 1
4923: f
4924: Callout 255 8 0
4925: Ket
4926: Callout 255 9 1
4927: x
4928: Callout 255 10 0
4929: Ket
4930: End
4931: ------------------------------------------------------------------
4932: Capturing subpattern count = 1
4933: Options:
4934: No first char
4935: Need char = 'x'
4936: abcx
4937: --->abcx
4938: +0 ^ (abc|def)
4939: +1 ^ a
4940: +2 ^^ b
4941: +3 ^ ^ c
4942: +4 ^ ^ |
4943: +9 ^ ^ x
4944: +10 ^ ^
4945: 0: abcx
4946: 1: abc
4947: defx
4948: --->defx
4949: +0 ^ (abc|def)
4950: +1 ^ a
4951: +5 ^ d
4952: +6 ^^ e
4953: +7 ^ ^ f
4954: +8 ^ ^ )
4955: +9 ^ ^ x
4956: +10 ^ ^
4957: 0: defx
4958: 1: def
4959: ** Failers
4960: No match
4961: abcdefzx
4962: --->abcdefzx
4963: +0 ^ (abc|def)
4964: +1 ^ a
4965: +2 ^^ b
4966: +3 ^ ^ c
4967: +4 ^ ^ |
4968: +9 ^ ^ x
4969: +5 ^ d
4970: +0 ^ (abc|def)
4971: +1 ^ a
4972: +5 ^ d
4973: +0 ^ (abc|def)
4974: +1 ^ a
4975: +5 ^ d
4976: +0 ^ (abc|def)
4977: +1 ^ a
4978: +5 ^ d
4979: +6 ^^ e
4980: +7 ^ ^ f
4981: +8 ^ ^ )
4982: +9 ^ ^ x
4983: +0 ^ (abc|def)
4984: +1 ^ a
4985: +5 ^ d
4986: +0 ^ (abc|def)
4987: +1 ^ a
4988: +5 ^ d
4989: +0 ^ (abc|def)
4990: +1 ^ a
4991: +5 ^ d
4992: +0 ^ (abc|def)
4993: +1 ^ a
4994: +5 ^ d
4995: No match
4996:
4997: /(ab|cd){3,4}/IC
4998: Capturing subpattern count = 1
4999: Options:
5000: No first char
5001: No need char
5002: ababab
5003: --->ababab
5004: +0 ^ (ab|cd){3,4}
5005: +1 ^ a
5006: +2 ^^ b
5007: +3 ^ ^ |
5008: +1 ^ ^ a
5009: +2 ^ ^ b
5010: +3 ^ ^ |
5011: +1 ^ ^ a
5012: +2 ^ ^ b
5013: +3 ^ ^ |
5014: +1 ^ ^ a
5015: +4 ^ ^ c
5016: +12 ^ ^
5017: 0: ababab
5018: 1: ab
5019: abcdabcd
5020: --->abcdabcd
5021: +0 ^ (ab|cd){3,4}
5022: +1 ^ a
5023: +2 ^^ b
5024: +3 ^ ^ |
5025: +1 ^ ^ a
5026: +4 ^ ^ c
5027: +5 ^ ^ d
5028: +6 ^ ^ )
5029: +1 ^ ^ a
5030: +2 ^ ^ b
5031: +3 ^ ^ |
5032: +1 ^ ^ a
5033: +4 ^ ^ c
5034: +5 ^ ^ d
5035: +6 ^ ^ )
5036: +12 ^ ^
5037: 0: abcdabcd
5038: 1: cd
5039: abcdcdcdcdcd
5040: --->abcdcdcdcdcd
5041: +0 ^ (ab|cd){3,4}
5042: +1 ^ a
5043: +2 ^^ b
5044: +3 ^ ^ |
5045: +1 ^ ^ a
5046: +4 ^ ^ c
5047: +5 ^ ^ d
5048: +6 ^ ^ )
5049: +1 ^ ^ a
5050: +4 ^ ^ c
5051: +5 ^ ^ d
5052: +6 ^ ^ )
5053: +1 ^ ^ a
5054: +4 ^ ^ c
5055: +5 ^ ^ d
5056: +6 ^ ^ )
5057: +12 ^ ^
5058: 0: abcdcdcd
5059: 1: cd
5060:
5061: /([ab]{,4}c|xy)/ICDZS
5062: ------------------------------------------------------------------
5063: Bra
5064: Callout 255 0 14
5065: CBra 1
5066: Callout 255 1 4
5067: [ab]
5068: Callout 255 5 1
5069: {
5070: Callout 255 6 1
5071: ,
5072: Callout 255 7 1
5073: 4
5074: Callout 255 8 1
5075: }
5076: Callout 255 9 1
5077: c
5078: Callout 255 10 0
5079: Alt
5080: Callout 255 11 1
5081: x
5082: Callout 255 12 1
5083: y
5084: Callout 255 13 0
5085: Ket
5086: Callout 255 14 0
5087: Ket
5088: End
5089: ------------------------------------------------------------------
5090: Capturing subpattern count = 1
5091: Options:
5092: No first char
5093: No need char
5094: Subject length lower bound = 2
5095: Starting byte set: a b x
5096: Note: that { does NOT introduce a quantifier
5097: --->Note: that { does NOT introduce a quantifier
5098: +0 ^ ([ab]{,4}c|xy)
5099: +1 ^ [ab]
5100: +5 ^^ {
5101: +11 ^ x
5102: +0 ^ ([ab]{,4}c|xy)
5103: +1 ^ [ab]
5104: +5 ^^ {
5105: +11 ^ x
5106: +0 ^ ([ab]{,4}c|xy)
5107: +1 ^ [ab]
5108: +5 ^^ {
5109: +11 ^ x
5110: No match
5111:
5112: /([ab]{,4}c|xy)/ICDZSS
5113: ------------------------------------------------------------------
5114: Bra
5115: Callout 255 0 14
5116: CBra 1
5117: Callout 255 1 4
5118: [ab]
5119: Callout 255 5 1
5120: {
5121: Callout 255 6 1
5122: ,
5123: Callout 255 7 1
5124: 4
5125: Callout 255 8 1
5126: }
5127: Callout 255 9 1
5128: c
5129: Callout 255 10 0
5130: Alt
5131: Callout 255 11 1
5132: x
5133: Callout 255 12 1
5134: y
5135: Callout 255 13 0
5136: Ket
5137: Callout 255 14 0
5138: Ket
5139: End
5140: ------------------------------------------------------------------
5141: Capturing subpattern count = 1
5142: Options:
5143: No first char
5144: No need char
5145: Note: that { does NOT introduce a quantifier
5146: --->Note: that { does NOT introduce a quantifier
5147: +0 ^ ([ab]{,4}c|xy)
5148: +1 ^ [ab]
5149: +11 ^ x
5150: +0 ^ ([ab]{,4}c|xy)
5151: +1 ^ [ab]
5152: +11 ^ x
5153: +0 ^ ([ab]{,4}c|xy)
5154: +1 ^ [ab]
5155: +11 ^ x
5156: +0 ^ ([ab]{,4}c|xy)
5157: +1 ^ [ab]
5158: +11 ^ x
5159: +0 ^ ([ab]{,4}c|xy)
5160: +1 ^ [ab]
5161: +11 ^ x
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: +5 ^^ {
5174: +11 ^ x
5175: +0 ^ ([ab]{,4}c|xy)
5176: +1 ^ [ab]
5177: +11 ^ x
5178: +0 ^ ([ab]{,4}c|xy)
5179: +1 ^ [ab]
5180: +11 ^ x
5181: +0 ^ ([ab]{,4}c|xy)
5182: +1 ^ [ab]
5183: +11 ^ x
5184: +0 ^ ([ab]{,4}c|xy)
5185: +1 ^ [ab]
5186: +11 ^ x
5187: +0 ^ ([ab]{,4}c|xy)
5188: +1 ^ [ab]
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: +5 ^^ {
5247: +11 ^ x
5248: +0 ^ ([ab]{,4}c|xy)
5249: +1 ^ [ab]
5250: +11 ^ x
5251: +0 ^ ([ab]{,4}c|xy)
5252: +1 ^ [ab]
5253: +11 ^ x
5254: +0 ^ ([ab]{,4}c|xy)
5255: +1 ^ [ab]
5256: +11 ^ x
5257: +0 ^ ([ab]{,4}c|xy)
5258: +1 ^ [ab]
5259: +5 ^^ {
5260: +11 ^ x
5261: +0 ^ ([ab]{,4}c|xy)
5262: +1 ^ [ab]
5263: +11 ^ x
5264: +0 ^ ([ab]{,4}c|xy)
5265: +1 ^ [ab]
5266: +11 ^ x
5267: +0 ^ ([ab]{,4}c|xy)
5268: +1 ^ [ab]
5269: +11 ^ x
5270: +0 ^ ([ab]{,4}c|xy)
5271: +1 ^ [ab]
5272: +11 ^ x
5273: +0 ^ ([ab]{,4}c|xy)
5274: +1 ^ [ab]
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: No match
5286:
5287: /([ab]{1,4}c|xy){4,5}?123/ICDZ
5288: ------------------------------------------------------------------
5289: Bra
5290: Callout 255 0 21
5291: CBra 1
5292: Callout 255 1 9
5293: [ab]{1,4}
5294: Callout 255 10 1
5295: c
5296: Callout 255 11 0
5297: Alt
5298: Callout 255 12 1
5299: x
5300: Callout 255 13 1
5301: y
5302: Callout 255 14 0
5303: Ket
5304: CBra 1
5305: Callout 255 1 9
5306: [ab]{1,4}
5307: Callout 255 10 1
5308: c
5309: Callout 255 11 0
5310: Alt
5311: Callout 255 12 1
5312: x
5313: Callout 255 13 1
5314: y
5315: Callout 255 14 0
5316: Ket
5317: CBra 1
5318: Callout 255 1 9
5319: [ab]{1,4}
5320: Callout 255 10 1
5321: c
5322: Callout 255 11 0
5323: Alt
5324: Callout 255 12 1
5325: x
5326: Callout 255 13 1
5327: y
5328: Callout 255 14 0
5329: Ket
5330: CBra 1
5331: Callout 255 1 9
5332: [ab]{1,4}
5333: Callout 255 10 1
5334: c
5335: Callout 255 11 0
5336: Alt
5337: Callout 255 12 1
5338: x
5339: Callout 255 13 1
5340: y
5341: Callout 255 14 0
5342: Ket
5343: Braminzero
5344: CBra 1
5345: Callout 255 1 9
5346: [ab]{1,4}
5347: Callout 255 10 1
5348: c
5349: Callout 255 11 0
5350: Alt
5351: Callout 255 12 1
5352: x
5353: Callout 255 13 1
5354: y
5355: Callout 255 14 0
5356: Ket
5357: Callout 255 21 1
5358: 1
5359: Callout 255 22 1
5360: 2
5361: Callout 255 23 1
5362: 3
5363: Callout 255 24 0
5364: Ket
5365: End
5366: ------------------------------------------------------------------
5367: Capturing subpattern count = 1
5368: Options:
5369: No first char
5370: Need char = '3'
5371: aacaacaacaacaac123
5372: --->aacaacaacaacaac123
5373: +0 ^ ([ab]{1,4}c|xy){4,5}?
5374: +1 ^ [ab]{1,4}
5375: +10 ^ ^ c
5376: +11 ^ ^ |
5377: +1 ^ ^ [ab]{1,4}
5378: +10 ^ ^ c
5379: +11 ^ ^ |
5380: +1 ^ ^ [ab]{1,4}
5381: +10 ^ ^ c
5382: +11 ^ ^ |
5383: +1 ^ ^ [ab]{1,4}
5384: +10 ^ ^ c
5385: +11 ^ ^ |
5386: +21 ^ ^ 1
5387: +1 ^ ^ [ab]{1,4}
5388: +10 ^ ^ c
5389: +11 ^ ^ |
5390: +21 ^ ^ 1
5391: +22 ^ ^ 2
5392: +23 ^ ^ 3
5393: +24 ^ ^
5394: 0: aacaacaacaacaac123
5395: 1: aac
5396:
5397: /\b.*/I
5398: Capturing subpattern count = 0
1.1.1.4 ! misho 5399: Max lookbehind = 1
1.1 misho 5400: No options
5401: No first char
5402: No need char
5403: ab cd\>1
5404: 0: cd
5405:
5406: /\b.*/Is
5407: Capturing subpattern count = 0
1.1.1.4 ! misho 5408: Max lookbehind = 1
1.1 misho 5409: Options: dotall
5410: No first char
5411: No need char
5412: ab cd\>1
5413: 0: cd
5414:
5415: /(?!.bcd).*/I
5416: Capturing subpattern count = 0
5417: No options
5418: No first char
5419: No need char
5420: Xbcd12345
5421: 0: bcd12345
5422:
5423: /abcde/I
5424: Capturing subpattern count = 0
5425: No options
5426: First char = 'a'
5427: Need char = 'e'
5428: ab\P
5429: Partial match: ab
5430: abc\P
5431: Partial match: abc
5432: abcd\P
5433: Partial match: abcd
5434: abcde\P
5435: 0: abcde
5436: the quick brown abc\P
5437: Partial match: abc
5438: ** Failers\P
5439: No match
5440: the quick brown abxyz fox\P
5441: No match
5442:
5443: "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
5444: Capturing subpattern count = 3
5445: Options: anchored
5446: No first char
5447: Need char = '/'
5448: 13/05/04\P
5449: 0: 13/05/04
5450: 1: 13
5451: 2: 05
5452: 13/5/2004\P
5453: 0: 13/5/2004
5454: 1: 13
5455: 2: 5
5456: 3: 20
5457: 02/05/09\P
5458: 0: 02/05/09
5459: 1: 02
5460: 2: 05
5461: 1\P
5462: Partial match: 1
5463: 1/2\P
5464: Partial match: 1/2
5465: 1/2/0\P
5466: Partial match: 1/2/0
5467: 1/2/04\P
5468: 0: 1/2/04
5469: 1: 1
5470: 2: 2
5471: 0\P
5472: Partial match: 0
5473: 02/\P
5474: Partial match: 02/
5475: 02/0\P
5476: Partial match: 02/0
5477: 02/1\P
5478: Partial match: 02/1
5479: ** Failers\P
5480: No match
5481: \P
5482: No match
5483: 123\P
5484: No match
5485: 33/4/04\P
5486: No match
5487: 3/13/04\P
5488: No match
5489: 0/1/2003\P
5490: No match
5491: 0/\P
5492: No match
5493: 02/0/\P
5494: No match
5495: 02/13\P
5496: No match
5497:
5498: /0{0,2}ABC/I
5499: Capturing subpattern count = 0
5500: No options
5501: No first char
5502: Need char = 'C'
5503:
5504: /\d{3,}ABC/I
5505: Capturing subpattern count = 0
5506: No options
5507: No first char
5508: Need char = 'C'
5509:
5510: /\d*ABC/I
5511: Capturing subpattern count = 0
5512: No options
5513: No first char
5514: Need char = 'C'
5515:
5516: /[abc]+DE/I
5517: Capturing subpattern count = 0
5518: No options
5519: No first char
5520: Need char = 'E'
5521:
5522: /[abc]?123/I
5523: Capturing subpattern count = 0
5524: No options
5525: No first char
5526: Need char = '3'
5527: 123\P
5528: 0: 123
5529: a\P
5530: Partial match: a
5531: b\P
5532: Partial match: b
5533: c\P
5534: Partial match: c
5535: c12\P
5536: Partial match: c12
5537: c123\P
5538: 0: c123
5539:
5540: /^(?:\d){3,5}X/I
5541: Capturing subpattern count = 0
5542: Options: anchored
5543: No first char
5544: Need char = 'X'
5545: 1\P
5546: Partial match: 1
5547: 123\P
5548: Partial match: 123
5549: 123X
5550: 0: 123X
5551: 1234\P
5552: Partial match: 1234
5553: 1234X
5554: 0: 1234X
5555: 12345\P
5556: Partial match: 12345
5557: 12345X
5558: 0: 12345X
5559: *** Failers
5560: No match
5561: 1X
5562: No match
5563: 123456\P
5564: No match
5565:
5566: /abc/IS>testsavedregex
5567: Capturing subpattern count = 0
5568: No options
5569: First char = 'a'
5570: Need char = 'c'
5571: Subject length lower bound = 3
5572: No set of starting bytes
5573: Compiled pattern written to testsavedregex
5574: Study data written to testsavedregex
5575: <testsavedregex
5576: Compiled pattern loaded from testsavedregex
5577: Study data loaded from testsavedregex
5578: abc
5579: 0: abc
5580: ** Failers
5581: No match
5582: bca
5583: No match
5584:
5585: /abc/ISS>testsavedregex
5586: Capturing subpattern count = 0
5587: No options
5588: First char = 'a'
5589: Need char = 'c'
5590: Compiled pattern written to testsavedregex
5591: <testsavedregex
5592: Compiled pattern loaded from testsavedregex
5593: No study data
5594: abc
5595: 0: abc
5596: ** Failers
5597: No match
5598: bca
5599: No match
5600:
5601: /abc/IFS>testsavedregex
5602: Capturing subpattern count = 0
5603: No options
5604: First char = 'a'
5605: Need char = 'c'
5606: Subject length lower bound = 3
5607: No set of starting bytes
5608: Compiled pattern written to testsavedregex
5609: Study data written to testsavedregex
5610: <testsavedregex
5611: Compiled pattern (byte-inverted) loaded from testsavedregex
5612: Study data loaded from testsavedregex
5613: abc
5614: 0: abc
5615: ** Failers
5616: No match
5617: bca
5618: No match
5619:
5620: /abc/IFSS>testsavedregex
5621: Capturing subpattern count = 0
5622: No options
5623: First char = 'a'
5624: Need char = 'c'
5625: Compiled pattern written to testsavedregex
5626: <testsavedregex
5627: Compiled pattern (byte-inverted) loaded from testsavedregex
5628: No study data
5629: abc
5630: 0: abc
5631: ** Failers
5632: No match
5633: bca
5634: No match
5635:
5636: /(a|b)/IS>testsavedregex
5637: Capturing subpattern count = 1
5638: No options
5639: No first char
5640: No need char
5641: Subject length lower bound = 1
5642: Starting byte set: a b
5643: Compiled pattern written to testsavedregex
5644: Study data written to testsavedregex
5645: <testsavedregex
5646: Compiled pattern loaded from testsavedregex
5647: Study data loaded from testsavedregex
5648: abc
5649: 0: a
5650: 1: a
5651: ** Failers
5652: 0: a
5653: 1: a
5654: def
5655: No match
5656:
5657: /(a|b)/ISS>testsavedregex
5658: Capturing subpattern count = 1
5659: No options
5660: No first char
5661: No need char
5662: Compiled pattern written to testsavedregex
5663: <testsavedregex
5664: Compiled pattern loaded from testsavedregex
5665: No study data
5666: abc
5667: 0: a
5668: 1: a
5669: ** Failers
5670: 0: a
5671: 1: a
5672: def
5673: No match
5674:
5675: /(a|b)/ISF>testsavedregex
5676: Capturing subpattern count = 1
5677: No options
5678: No first char
5679: No need char
5680: Subject length lower bound = 1
5681: Starting byte set: a b
5682: Compiled pattern written to testsavedregex
5683: Study data written to testsavedregex
5684: <testsavedregex
5685: Compiled pattern (byte-inverted) loaded from testsavedregex
5686: Study data loaded from testsavedregex
5687: abc
5688: 0: a
5689: 1: a
5690: ** Failers
5691: 0: a
5692: 1: a
5693: def
5694: No match
5695:
5696: /(a|b)/ISSF>testsavedregex
5697: Capturing subpattern count = 1
5698: No options
5699: No first char
5700: No need char
5701: Compiled pattern written to testsavedregex
5702: <testsavedregex
5703: Compiled pattern (byte-inverted) loaded from testsavedregex
5704: No study data
5705: abc
5706: 0: a
5707: 1: a
5708: ** Failers
5709: 0: a
5710: 1: a
5711: def
5712: No match
5713:
5714: ~<(\w+)/?>(.)*</(\1)>~smgI
5715: Capturing subpattern count = 3
5716: Max back reference = 1
5717: Options: multiline dotall
5718: First char = '<'
5719: Need char = '>'
5720: \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>
5721: 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>
5722: 1: seite
5723: 2: \x0a
5724: 3: seite
5725:
5726: /^a/IF
5727: Capturing subpattern count = 0
5728: Options: anchored
5729: No first char
5730: No need char
5731:
5732: /line\nbreak/I
5733: Capturing subpattern count = 0
5734: Contains explicit CR or LF match
5735: No options
5736: First char = 'l'
5737: Need char = 'k'
5738: this is a line\nbreak
5739: 0: line\x0abreak
5740: line one\nthis is a line\nbreak in the second line
5741: 0: line\x0abreak
5742:
5743: /line\nbreak/If
5744: Capturing subpattern count = 0
5745: Contains explicit CR or LF match
5746: Options: firstline
5747: First char = 'l'
5748: Need char = 'k'
5749: this is a line\nbreak
5750: 0: line\x0abreak
5751: ** Failers
5752: No match
5753: line one\nthis is a line\nbreak in the second line
5754: No match
5755:
5756: /line\nbreak/Imf
5757: Capturing subpattern count = 0
5758: Contains explicit CR or LF match
5759: Options: multiline firstline
5760: First char = 'l'
5761: Need char = 'k'
5762: this is a line\nbreak
5763: 0: line\x0abreak
5764: ** Failers
5765: No match
5766: line one\nthis is a line\nbreak in the second line
5767: No match
5768:
5769: /(?i)(?-i)AbCd/I
5770: Capturing subpattern count = 0
5771: No options
5772: First char = 'A'
5773: Need char = 'd'
5774: AbCd
5775: 0: AbCd
5776: ** Failers
5777: No match
5778: abcd
5779: No match
5780:
5781: /a{11111111111111111111}/I
5782: Failed: number too big in {} quantifier at offset 22
5783:
5784: /(){64294967295}/I
5785: Failed: number too big in {} quantifier at offset 14
5786:
5787: /(){2,4294967295}/I
5788: Failed: number too big in {} quantifier at offset 15
5789:
5790: "(?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
5791: Capturing subpattern count = 1
5792: Max back reference = 1
5793: No options
5794: First char = 'a' (caseless)
5795: Need char = 'B'
5796: abcdefghijklAkB
5797: 0: abcdefghijklAkB
5798: 1: k
5799:
5800: "(?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
5801: Capturing subpattern count = 12
5802: Max back reference = 11
5803: Named capturing subpatterns:
5804: n0 1
5805: n1 2
5806: n10 11
5807: n11 12
5808: n2 3
5809: n3 4
5810: n4 5
5811: n5 6
5812: n6 7
5813: n7 8
5814: n8 9
5815: n9 10
5816: No options
5817: First char = 'a'
5818: Need char = 'B'
5819: abcdefghijklAkB
5820: 0: abcdefghijklAkB
5821: 1: a
5822: 2: b
5823: 3: c
5824: 4: d
5825: 5: e
5826: 6: f
5827: 7: g
5828: 8: h
5829: 9: i
5830: 10: j
5831: 11: k
5832: 12: l
5833:
5834: "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
5835: Capturing subpattern count = 12
5836: Max back reference = 11
5837: No options
5838: First char = 'a'
5839: Need char = 'B'
5840: abcdefghijklAkB
5841: 0: abcdefghijklAkB
5842: 1: a
5843: 2: b
5844: 3: c
5845: 4: d
5846: 5: e
5847: 6: f
5848: 7: g
5849: 8: h
5850: 9: i
5851: 10: j
5852: 11: k
5853: 12: l
5854:
5855: "(?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
5856: Capturing subpattern count = 101
5857: Named capturing subpatterns:
5858: name0 1
5859: name1 2
5860: name10 11
5861: name100 101
5862: name11 12
5863: name12 13
5864: name13 14
5865: name14 15
5866: name15 16
5867: name16 17
5868: name17 18
5869: name18 19
5870: name19 20
5871: name2 3
5872: name20 21
5873: name21 22
5874: name22 23
5875: name23 24
5876: name24 25
5877: name25 26
5878: name26 27
5879: name27 28
5880: name28 29
5881: name29 30
5882: name3 4
5883: name30 31
5884: name31 32
5885: name32 33
5886: name33 34
5887: name34 35
5888: name35 36
5889: name36 37
5890: name37 38
5891: name38 39
5892: name39 40
5893: name4 5
5894: name40 41
5895: name41 42
5896: name42 43
5897: name43 44
5898: name44 45
5899: name45 46
5900: name46 47
5901: name47 48
5902: name48 49
5903: name49 50
5904: name5 6
5905: name50 51
5906: name51 52
5907: name52 53
5908: name53 54
5909: name54 55
5910: name55 56
5911: name56 57
5912: name57 58
5913: name58 59
5914: name59 60
5915: name6 7
5916: name60 61
5917: name61 62
5918: name62 63
5919: name63 64
5920: name64 65
5921: name65 66
5922: name66 67
5923: name67 68
5924: name68 69
5925: name69 70
5926: name7 8
5927: name70 71
5928: name71 72
5929: name72 73
5930: name73 74
5931: name74 75
5932: name75 76
5933: name76 77
5934: name77 78
5935: name78 79
5936: name79 80
5937: name8 9
5938: name80 81
5939: name81 82
5940: name82 83
5941: name83 84
5942: name84 85
5943: name85 86
5944: name86 87
5945: name87 88
5946: name88 89
5947: name89 90
5948: name9 10
5949: name90 91
5950: name91 92
5951: name92 93
5952: name93 94
5953: name94 95
5954: name95 96
5955: name96 97
5956: name97 98
5957: name98 99
5958: name99 100
5959: No options
5960: First char = 'a'
5961: Need char = 'a'
5962: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
5963: Matched, but too many substrings
5964: 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
5965: 1: a
5966: 2: a
5967: 3: a
5968: 4: a
5969: 5: a
5970: 6: a
5971: 7: a
5972: 8: a
5973: 9: a
5974: 10: a
5975: 11: a
5976: 12: a
5977: 13: a
5978: 14: a
5979:
5980: "(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
5981: Capturing subpattern count = 101
5982: No options
5983: First char = 'a'
5984: Need char = 'a'
5985: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
5986: Matched, but too many substrings
5987: 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
5988: 1: a
5989: 2: a
5990: 3: a
5991: 4: a
5992: 5: a
5993: 6: a
5994: 7: a
5995: 8: a
5996: 9: a
5997: 10: a
5998: 11: a
5999: 12: a
6000: 13: a
6001: 14: a
6002:
6003: /[^()]*(?:\((?R)\)[^()]*)*/I
6004: Capturing subpattern count = 0
6005: No options
6006: No first char
6007: No need char
6008: (this(and)that
6009: 0:
6010: (this(and)that)
6011: 0: (this(and)that)
6012: (this(and)that)stuff
6013: 0: (this(and)that)stuff
6014:
6015: /[^()]*(?:\((?>(?R))\)[^()]*)*/I
6016: Capturing subpattern count = 0
6017: No options
6018: No first char
6019: No need char
6020: (this(and)that
6021: 0:
6022: (this(and)that)
6023: 0: (this(and)that)
6024:
6025: /[^()]*(?:\((?R)\))*[^()]*/I
6026: Capturing subpattern count = 0
6027: No options
6028: No first char
6029: No need char
6030: (this(and)that
6031: 0:
6032: (this(and)that)
6033: 0: (this(and)that)
6034:
6035: /(?:\((?R)\))*[^()]*/I
6036: Capturing subpattern count = 0
6037: No options
6038: No first char
6039: No need char
6040: (this(and)that
6041: 0:
6042: (this(and)that)
6043: 0:
6044: ((this))
6045: 0: ((this))
6046:
6047: /(?:\((?R)\))|[^()]*/I
6048: Capturing subpattern count = 0
6049: No options
6050: No first char
6051: No need char
6052: (this(and)that
6053: 0:
6054: (this(and)that)
6055: 0:
6056: (this)
6057: 0: (this)
6058: ((this))
6059: 0: ((this))
6060:
6061: /\x{0000ff}/I
6062: Capturing subpattern count = 0
6063: No options
1.1.1.2 misho 6064: First char = \xff
1.1 misho 6065: No need char
6066:
6067: /^((?P<A>a1)|(?P<A>a2)b)/I
6068: Failed: two named subpatterns have the same name at offset 17
6069:
6070: /^((?P<A>a1)|(?P<A>a2)b)/IJ
6071: Capturing subpattern count = 3
6072: Named capturing subpatterns:
6073: A 2
6074: A 3
6075: Options: anchored dupnames
6076: No first char
6077: No need char
6078: a1b\CA
6079: 0: a1
6080: 1: a1
6081: 2: a1
6082: C a1 (2) A
6083: a2b\CA
6084: 0: a2b
6085: 1: a2b
6086: 2: <unset>
6087: 3: a2
6088: C a2 (2) A
6089: ** Failers
6090: No match
6091: a1b\CZ\CA
6092: no parentheses with name "Z"
6093: 0: a1
6094: 1: a1
6095: 2: a1
6096: copy substring Z failed -7
6097: C a1 (2) A
6098:
6099: /^(?P<A>a)(?P<A>b)/IJ
6100: Capturing subpattern count = 2
6101: Named capturing subpatterns:
6102: A 1
6103: A 2
6104: Options: anchored dupnames
6105: No first char
6106: No need char
6107: ab\CA
6108: 0: ab
6109: 1: a
6110: 2: b
6111: C a (1) A
6112:
6113: /^(?P<A>a)(?P<A>b)|cd/IJ
6114: Capturing subpattern count = 2
6115: Named capturing subpatterns:
6116: A 1
6117: A 2
6118: Options: dupnames
6119: No first char
6120: No need char
6121: ab\CA
6122: 0: ab
6123: 1: a
6124: 2: b
6125: C a (1) A
6126: cd\CA
6127: 0: cd
6128: copy substring A failed -7
6129:
6130: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6131: Capturing subpattern count = 4
6132: Named capturing subpatterns:
6133: A 1
6134: A 2
6135: A 3
6136: A 4
6137: Options: dupnames
6138: No first char
6139: No need char
6140: cdefgh\CA
6141: 0: cdefgh
6142: 1: <unset>
6143: 2: <unset>
6144: 3: ef
6145: 4: gh
6146: C ef (2) A
6147:
6148: /^((?P<A>a1)|(?P<A>a2)b)/IJ
6149: Capturing subpattern count = 3
6150: Named capturing subpatterns:
6151: A 2
6152: A 3
6153: Options: anchored dupnames
6154: No first char
6155: No need char
6156: a1b\GA
6157: 0: a1
6158: 1: a1
6159: 2: a1
6160: G a1 (2) A
6161: a2b\GA
6162: 0: a2b
6163: 1: a2b
6164: 2: <unset>
6165: 3: a2
6166: G a2 (2) A
6167: ** Failers
6168: No match
6169: a1b\GZ\GA
6170: no parentheses with name "Z"
6171: 0: a1
6172: 1: a1
6173: 2: a1
1.1.1.2 misho 6174: get substring Z failed -7
1.1 misho 6175: G a1 (2) A
6176:
6177: /^(?P<A>a)(?P<A>b)/IJ
6178: Capturing subpattern count = 2
6179: Named capturing subpatterns:
6180: A 1
6181: A 2
6182: Options: anchored dupnames
6183: No first char
6184: No need char
6185: ab\GA
6186: 0: ab
6187: 1: a
6188: 2: b
6189: G a (1) A
6190:
6191: /^(?P<A>a)(?P<A>b)|cd/IJ
6192: Capturing subpattern count = 2
6193: Named capturing subpatterns:
6194: A 1
6195: A 2
6196: Options: dupnames
6197: No first char
6198: No need char
6199: ab\GA
6200: 0: ab
6201: 1: a
6202: 2: b
6203: G a (1) A
6204: cd\GA
6205: 0: cd
1.1.1.2 misho 6206: get substring A failed -7
1.1 misho 6207:
6208: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6209: Capturing subpattern count = 4
6210: Named capturing subpatterns:
6211: A 1
6212: A 2
6213: A 3
6214: A 4
6215: Options: dupnames
6216: No first char
6217: No need char
6218: cdefgh\GA
6219: 0: cdefgh
6220: 1: <unset>
6221: 2: <unset>
6222: 3: ef
6223: 4: gh
6224: G ef (2) A
6225:
6226: /(?J)^((?P<A>a1)|(?P<A>a2)b)/I
6227: Capturing subpattern count = 3
6228: Named capturing subpatterns:
6229: A 2
6230: A 3
6231: Options: anchored dupnames
6232: Duplicate name status changes
6233: No first char
6234: No need char
6235: a1b\CA
6236: 0: a1
6237: 1: a1
6238: 2: a1
6239: C a1 (2) A
6240: a2b\CA
6241: 0: a2b
6242: 1: a2b
6243: 2: <unset>
6244: 3: a2
6245: C a2 (2) A
6246:
6247: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
6248: Failed: two named subpatterns have the same name at offset 37
6249:
6250: / In this next test, J is not set at the outer level; consequently it isn't
6251: set in the pattern's options; consequently pcre_get_named_substring() produces
6252: a random value. /Ix
6253: Capturing subpattern count = 1
6254: Options: extended
6255: First char = 'I'
6256: Need char = 'e'
6257:
6258: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
6259: Capturing subpattern count = 4
6260: Named capturing subpatterns:
6261: A 1
6262: B 2
6263: B 3
6264: C 4
6265: Options: anchored
6266: Duplicate name status changes
6267: No first char
6268: No need char
6269: a bc d\CA\CB\CC
6270: 0: a bc d
6271: 1: a
6272: 2: b
6273: 3: c
6274: 4: d
6275: C a (1) A
6276: C b (1) B
6277: C d (1) C
6278:
6279: /^(?P<A>a)?(?(A)a|b)/I
6280: Capturing subpattern count = 1
6281: Named capturing subpatterns:
6282: A 1
6283: Options: anchored
6284: No first char
6285: No need char
6286: aabc
6287: 0: aa
6288: 1: a
6289: bc
6290: 0: b
6291: ** Failers
6292: No match
6293: abc
6294: No match
6295:
6296: /(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
6297: Capturing subpattern count = 1
6298: Named capturing subpatterns:
6299: ZZ 1
6300: No options
6301: No first char
6302: Need char = 'X'
6303: bXaX
6304: 0: bXaX
6305: 1: X
6306:
6307: /(?:(?(2y)a|b)(X))+/I
6308: Failed: reference to non-existent subpattern at offset 9
6309:
6310: /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
6311: Failed: reference to non-existent subpattern at offset 9
6312:
6313: /(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
6314: Capturing subpattern count = 1
6315: Named capturing subpatterns:
6316: ZZ 1
6317: No options
6318: No first char
6319: Need char = 'X'
6320: bbXaaX
6321: 0: bbXaaX
6322: 1: X
6323:
6324: /(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
6325: Capturing subpattern count = 1
6326: Named capturing subpatterns:
6327: ZZ 1
6328: No options
6329: No first char
6330: Need char = 'X'
6331: (b)\\Xa\\X
6332: 0: (b)\Xa\X
6333: 1: X
6334:
6335: /(?P<ABC/I
6336: Failed: syntax error in subpattern name (missing terminator) at offset 7
6337:
6338: /(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6339: Capturing subpattern count = 1
6340: Max back reference = 1
6341: Named capturing subpatterns:
6342: A 1
6343: No options
6344: No first char
6345: No need char
6346: bXXaYYaY
6347: 0: bXXaYYaY
6348: 1: Y
6349: bXYaXXaX
6350: 0: bX
6351: 1: X
6352:
6353: /()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6354: Capturing subpattern count = 10
6355: Max back reference = 10
6356: Named capturing subpatterns:
6357: A 10
6358: No options
6359: No first char
6360: No need char
6361: bXXaYYaY
6362: 0: bXXaYYaY
6363: 1:
6364: 2:
6365: 3:
6366: 4:
6367: 5:
6368: 6:
6369: 7:
6370: 8:
6371: 9:
6372: 10: Y
6373:
6374: /\s*,\s*/IS
6375: Capturing subpattern count = 0
6376: No options
6377: No first char
6378: Need char = ','
6379: Subject length lower bound = 1
6380: Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6381: \x0b,\x0b
6382: 0: ,
6383: \x0c,\x0d
6384: 0: \x0c,\x0d
6385:
6386: /^abc/Im
6387: Capturing subpattern count = 0
6388: Options: multiline
6389: First char at start or follows newline
6390: Need char = 'c'
6391: xyz\nabc
6392: 0: abc
6393: xyz\nabc\<lf>
6394: 0: abc
6395: xyz\r\nabc\<lf>
6396: 0: abc
6397: xyz\rabc\<cr>
6398: 0: abc
6399: xyz\r\nabc\<crlf>
6400: 0: abc
6401: ** Failers
6402: No match
6403: xyz\nabc\<cr>
6404: No match
6405: xyz\r\nabc\<cr>
6406: No match
6407: xyz\nabc\<crlf>
6408: No match
6409: xyz\rabc\<crlf>
6410: No match
6411: xyz\rabc\<lf>
6412: No match
6413:
6414: /abc$/Im<lf>
6415: Capturing subpattern count = 0
6416: Options: multiline
6417: Forced newline sequence: LF
6418: First char = 'a'
6419: Need char = 'c'
6420: xyzabc
6421: 0: abc
6422: xyzabc\n
6423: 0: abc
6424: xyzabc\npqr
6425: 0: abc
6426: xyzabc\r\<cr>
6427: 0: abc
6428: xyzabc\rpqr\<cr>
6429: 0: abc
6430: xyzabc\r\n\<crlf>
6431: 0: abc
6432: xyzabc\r\npqr\<crlf>
6433: 0: abc
6434: ** Failers
6435: No match
6436: xyzabc\r
6437: No match
6438: xyzabc\rpqr
6439: No match
6440: xyzabc\r\n
6441: No match
6442: xyzabc\r\npqr
6443: No match
6444:
6445: /^abc/Im<cr>
6446: Capturing subpattern count = 0
6447: Options: multiline
6448: Forced newline sequence: CR
6449: First char at start or follows newline
6450: Need char = 'c'
6451: xyz\rabcdef
6452: 0: abc
6453: xyz\nabcdef\<lf>
6454: 0: abc
6455: ** Failers
6456: No match
6457: xyz\nabcdef
6458: No match
6459:
6460: /^abc/Im<lf>
6461: Capturing subpattern count = 0
6462: Options: multiline
6463: Forced newline sequence: LF
6464: First char at start or follows newline
6465: Need char = 'c'
6466: xyz\nabcdef
6467: 0: abc
6468: xyz\rabcdef\<cr>
6469: 0: abc
6470: ** Failers
6471: No match
6472: xyz\rabcdef
6473: No match
6474:
6475: /^abc/Im<crlf>
6476: Capturing subpattern count = 0
6477: Options: multiline
6478: Forced newline sequence: CRLF
6479: First char at start or follows newline
6480: Need char = 'c'
6481: xyz\r\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<bad>
6491: Unknown newline type at: <bad>
6492:
6493:
6494: /abc/I
6495: Capturing subpattern count = 0
6496: No options
6497: First char = 'a'
6498: Need char = 'c'
6499: xyz\rabc\<bad>
6500: Unknown newline type at: <bad>
6501: abc
6502: 0: abc
6503:
6504: /.*/I<lf>
6505: Capturing subpattern count = 0
6506: Options:
6507: Forced newline sequence: LF
6508: First char at start or follows newline
6509: No need char
6510: abc\ndef
6511: 0: abc
6512: abc\rdef
6513: 0: abc\x0ddef
6514: abc\r\ndef
6515: 0: abc\x0d
6516: \<cr>abc\ndef
6517: 0: abc\x0adef
6518: \<cr>abc\rdef
6519: 0: abc
6520: \<cr>abc\r\ndef
6521: 0: abc
6522: \<crlf>abc\ndef
6523: 0: abc\x0adef
6524: \<crlf>abc\rdef
6525: 0: abc\x0ddef
6526: \<crlf>abc\r\ndef
6527: 0: abc
6528:
6529: /\w+(.)(.)?def/Is
6530: Capturing subpattern count = 2
6531: Options: dotall
6532: No first char
6533: Need char = 'f'
6534: abc\ndef
6535: 0: abc\x0adef
6536: 1: \x0a
6537: abc\rdef
6538: 0: abc\x0ddef
6539: 1: \x0d
6540: abc\r\ndef
6541: 0: abc\x0d\x0adef
6542: 1: \x0d
6543: 2: \x0a
6544:
6545: +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6546: Capturing subpattern count = 1
6547: No options
6548: No first char
6549: No need char
6550: /* this is a C style comment */\M
6551: Minimum match() limit = 120
6552: Minimum match() recursion limit = 6
6553: 0: /* this is a C style comment */
6554: 1: /* this is a C style comment */
6555:
6556: /(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
6557: Capturing subpattern count = 1
6558: Named capturing subpatterns:
6559: B 1
6560: No options
6561: No first char
6562: Need char = '.'
6563:
6564: /()()()()()()()()()()()()()()()()()()()()
6565: ()()()()()()()()()()()()()()()()()()()()
6566: ()()()()()()()()()()()()()()()()()()()()
6567: ()()()()()()()()()()()()()()()()()()()()
6568: ()()()()()()()()()()()()()()()()()()()()
6569: (.(.))/Ix
6570: Capturing subpattern count = 102
6571: Options: extended
6572: No first char
6573: No need char
6574: XY\O400
6575: 0: XY
6576: 1:
6577: 2:
6578: 3:
6579: 4:
6580: 5:
6581: 6:
6582: 7:
6583: 8:
6584: 9:
6585: 10:
6586: 11:
6587: 12:
6588: 13:
6589: 14:
6590: 15:
6591: 16:
6592: 17:
6593: 18:
6594: 19:
6595: 20:
6596: 21:
6597: 22:
6598: 23:
6599: 24:
6600: 25:
6601: 26:
6602: 27:
6603: 28:
6604: 29:
6605: 30:
6606: 31:
6607: 32:
6608: 33:
6609: 34:
6610: 35:
6611: 36:
6612: 37:
6613: 38:
6614: 39:
6615: 40:
6616: 41:
6617: 42:
6618: 43:
6619: 44:
6620: 45:
6621: 46:
6622: 47:
6623: 48:
6624: 49:
6625: 50:
6626: 51:
6627: 52:
6628: 53:
6629: 54:
6630: 55:
6631: 56:
6632: 57:
6633: 58:
6634: 59:
6635: 60:
6636: 61:
6637: 62:
6638: 63:
6639: 64:
6640: 65:
6641: 66:
6642: 67:
6643: 68:
6644: 69:
6645: 70:
6646: 71:
6647: 72:
6648: 73:
6649: 74:
6650: 75:
6651: 76:
6652: 77:
6653: 78:
6654: 79:
6655: 80:
6656: 81:
6657: 82:
6658: 83:
6659: 84:
6660: 85:
6661: 86:
6662: 87:
6663: 88:
6664: 89:
6665: 90:
6666: 91:
6667: 92:
6668: 93:
6669: 94:
6670: 95:
6671: 96:
6672: 97:
6673: 98:
6674: 99:
6675: 100:
6676: 101: XY
6677: 102: Y
6678:
6679: /(a*b|(?i:c*(?-i)d))/IS
6680: Capturing subpattern count = 1
6681: No options
6682: No first char
6683: No need char
6684: Subject length lower bound = 1
6685: Starting byte set: C a b c d
6686:
6687: /()[ab]xyz/IS
6688: Capturing subpattern count = 1
6689: No options
6690: No first char
6691: Need char = 'z'
6692: Subject length lower bound = 4
6693: Starting byte set: a b
6694:
6695: /(|)[ab]xyz/IS
6696: Capturing subpattern count = 1
6697: No options
6698: No first char
6699: Need char = 'z'
6700: Subject length lower bound = 4
6701: Starting byte set: a b
6702:
6703: /(|c)[ab]xyz/IS
6704: Capturing subpattern count = 1
6705: No options
6706: No first char
6707: Need char = 'z'
6708: Subject length lower bound = 4
6709: Starting byte set: a b c
6710:
6711: /(|c?)[ab]xyz/IS
6712: Capturing subpattern count = 1
6713: No options
6714: No first char
6715: Need char = 'z'
6716: Subject length lower bound = 4
6717: Starting byte set: a b c
6718:
6719: /(d?|c?)[ab]xyz/IS
6720: Capturing subpattern count = 1
6721: No options
6722: No first char
6723: Need char = 'z'
6724: Subject length lower bound = 4
6725: Starting byte set: a b c d
6726:
6727: /(d?|c)[ab]xyz/IS
6728: Capturing subpattern count = 1
6729: No options
6730: No first char
6731: Need char = 'z'
6732: Subject length lower bound = 4
6733: Starting byte set: a b c d
6734:
6735: /^a*b\d/DZ
6736: ------------------------------------------------------------------
6737: Bra
6738: ^
6739: a*+
6740: b
6741: \d
6742: Ket
6743: End
6744: ------------------------------------------------------------------
6745: Capturing subpattern count = 0
6746: Options: anchored
6747: No first char
6748: Need char = 'b'
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+A\d/DZ
6781: ------------------------------------------------------------------
6782: Bra
6783: ^
6784: a++
6785: A
6786: \d
6787: Ket
6788: End
6789: ------------------------------------------------------------------
6790: Capturing subpattern count = 0
6791: Options: anchored
6792: No first char
6793: Need char = 'A'
6794: aaaA5
6795: 0: aaaA5
6796: ** Failers
6797: No match
6798: aaaa5
6799: No match
6800:
6801: /^a*A\d/IiDZ
6802: ------------------------------------------------------------------
6803: Bra
6804: ^
6805: /i a*
6806: /i A
6807: \d
6808: Ket
6809: End
6810: ------------------------------------------------------------------
6811: Capturing subpattern count = 0
6812: Options: anchored caseless
6813: No first char
6814: Need char = 'A' (caseless)
6815: aaaA5
6816: 0: aaaA5
6817: aaaa5
6818: 0: aaaa5
6819:
6820: /(a*|b*)[cd]/IS
6821: Capturing subpattern count = 1
6822: No options
6823: No first char
6824: No need char
6825: Subject length lower bound = 1
6826: Starting byte set: a b c d
6827:
6828: /(a+|b*)[cd]/IS
6829: Capturing subpattern count = 1
6830: No options
6831: No first char
6832: No need char
6833: Subject length lower bound = 1
6834: Starting byte set: a b c d
6835:
6836: /(a*|b+)[cd]/IS
6837: Capturing subpattern count = 1
6838: No options
6839: No first char
6840: No need char
6841: Subject length lower bound = 1
6842: Starting byte set: a b c d
6843:
6844: /(a+|b+)[cd]/IS
6845: Capturing subpattern count = 1
6846: No options
6847: No first char
6848: No need char
6849: Subject length lower bound = 2
6850: Starting byte set: a b
6851:
6852: /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6853: ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6854: (((
6855: a
6856: ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6857: ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6858: )))
6859: /Ix
6860: Capturing subpattern count = 203
6861: Options: extended
6862: First char = 'a'
6863: No need char
6864: large nest
6865: Matched, but too many substrings
6866: 0: a
6867: 1: a
6868: 2: a
6869: 3: a
6870: 4: a
6871: 5: a
6872: 6: a
6873: 7: a
6874: 8: a
6875: 9: a
6876: 10: a
6877: 11: a
6878: 12: a
6879: 13: a
6880: 14: a
6881:
6882: /a*\d/BZ
6883: ------------------------------------------------------------------
6884: Bra
6885: a*+
6886: \d
6887: Ket
6888: End
6889: ------------------------------------------------------------------
6890:
6891: /a*\D/BZ
6892: ------------------------------------------------------------------
6893: Bra
6894: a*
6895: \D
6896: Ket
6897: End
6898: ------------------------------------------------------------------
6899:
6900: /0*\d/BZ
6901: ------------------------------------------------------------------
6902: Bra
6903: 0*
6904: \d
6905: Ket
6906: End
6907: ------------------------------------------------------------------
6908:
6909: /0*\D/BZ
6910: ------------------------------------------------------------------
6911: Bra
6912: 0*+
6913: \D
6914: Ket
6915: End
6916: ------------------------------------------------------------------
6917:
6918: /a*\s/BZ
6919: ------------------------------------------------------------------
6920: Bra
6921: a*+
6922: \s
6923: Ket
6924: End
6925: ------------------------------------------------------------------
6926:
6927: /a*\S/BZ
6928: ------------------------------------------------------------------
6929: Bra
6930: a*
6931: \S
6932: Ket
6933: End
6934: ------------------------------------------------------------------
6935:
6936: / *\s/BZ
6937: ------------------------------------------------------------------
6938: Bra
6939: *
6940: \s
6941: Ket
6942: End
6943: ------------------------------------------------------------------
6944:
6945: / *\S/BZ
6946: ------------------------------------------------------------------
6947: Bra
6948: *+
6949: \S
6950: Ket
6951: End
6952: ------------------------------------------------------------------
6953:
6954: /a*\w/BZ
6955: ------------------------------------------------------------------
6956: Bra
6957: a*
6958: \w
6959: Ket
6960: End
6961: ------------------------------------------------------------------
6962:
6963: /a*\W/BZ
6964: ------------------------------------------------------------------
6965: Bra
6966: a*+
6967: \W
6968: Ket
6969: End
6970: ------------------------------------------------------------------
6971:
6972: /=*\w/BZ
6973: ------------------------------------------------------------------
6974: Bra
6975: =*+
6976: \w
6977: Ket
6978: End
6979: ------------------------------------------------------------------
6980:
6981: /=*\W/BZ
6982: ------------------------------------------------------------------
6983: Bra
6984: =*
6985: \W
6986: Ket
6987: End
6988: ------------------------------------------------------------------
6989:
6990: /\d*a/BZ
6991: ------------------------------------------------------------------
6992: Bra
6993: \d*+
6994: a
6995: Ket
6996: End
6997: ------------------------------------------------------------------
6998:
6999: /\d*2/BZ
7000: ------------------------------------------------------------------
7001: Bra
7002: \d*
7003: 2
7004: Ket
7005: End
7006: ------------------------------------------------------------------
7007:
7008: /\d*\d/BZ
7009: ------------------------------------------------------------------
7010: Bra
7011: \d*
7012: \d
7013: Ket
7014: End
7015: ------------------------------------------------------------------
7016:
7017: /\d*\D/BZ
7018: ------------------------------------------------------------------
7019: Bra
7020: \d*+
7021: \D
7022: Ket
7023: End
7024: ------------------------------------------------------------------
7025:
7026: /\d*\s/BZ
7027: ------------------------------------------------------------------
7028: Bra
7029: \d*+
7030: \s
7031: Ket
7032: End
7033: ------------------------------------------------------------------
7034:
7035: /\d*\S/BZ
7036: ------------------------------------------------------------------
7037: Bra
7038: \d*
7039: \S
7040: Ket
7041: End
7042: ------------------------------------------------------------------
7043:
7044: /\d*\w/BZ
7045: ------------------------------------------------------------------
7046: Bra
7047: \d*
7048: \w
7049: Ket
7050: End
7051: ------------------------------------------------------------------
7052:
7053: /\d*\W/BZ
7054: ------------------------------------------------------------------
7055: Bra
7056: \d*+
7057: \W
7058: Ket
7059: End
7060: ------------------------------------------------------------------
7061:
7062: /\D*a/BZ
7063: ------------------------------------------------------------------
7064: Bra
7065: \D*
7066: a
7067: Ket
7068: End
7069: ------------------------------------------------------------------
7070:
7071: /\D*2/BZ
7072: ------------------------------------------------------------------
7073: Bra
7074: \D*+
7075: 2
7076: Ket
7077: End
7078: ------------------------------------------------------------------
7079:
7080: /\D*\d/BZ
7081: ------------------------------------------------------------------
7082: Bra
7083: \D*+
7084: \d
7085: Ket
7086: End
7087: ------------------------------------------------------------------
7088:
7089: /\D*\D/BZ
7090: ------------------------------------------------------------------
7091: Bra
7092: \D*
7093: \D
7094: Ket
7095: End
7096: ------------------------------------------------------------------
7097:
7098: /\D*\s/BZ
7099: ------------------------------------------------------------------
7100: Bra
7101: \D*
7102: \s
7103: Ket
7104: End
7105: ------------------------------------------------------------------
7106:
7107: /\D*\S/BZ
7108: ------------------------------------------------------------------
7109: Bra
7110: \D*
7111: \S
7112: Ket
7113: End
7114: ------------------------------------------------------------------
7115:
7116: /\D*\w/BZ
7117: ------------------------------------------------------------------
7118: Bra
7119: \D*
7120: \w
7121: Ket
7122: End
7123: ------------------------------------------------------------------
7124:
7125: /\D*\W/BZ
7126: ------------------------------------------------------------------
7127: Bra
7128: \D*
7129: \W
7130: Ket
7131: End
7132: ------------------------------------------------------------------
7133:
7134: /\s*a/BZ
7135: ------------------------------------------------------------------
7136: Bra
7137: \s*+
7138: a
7139: Ket
7140: End
7141: ------------------------------------------------------------------
7142:
7143: /\s*2/BZ
7144: ------------------------------------------------------------------
7145: Bra
7146: \s*+
7147: 2
7148: Ket
7149: End
7150: ------------------------------------------------------------------
7151:
7152: /\s*\d/BZ
7153: ------------------------------------------------------------------
7154: Bra
7155: \s*+
7156: \d
7157: Ket
7158: End
7159: ------------------------------------------------------------------
7160:
7161: /\s*\D/BZ
7162: ------------------------------------------------------------------
7163: Bra
7164: \s*
7165: \D
7166: Ket
7167: End
7168: ------------------------------------------------------------------
7169:
7170: /\s*\s/BZ
7171: ------------------------------------------------------------------
7172: Bra
7173: \s*
7174: \s
7175: Ket
7176: End
7177: ------------------------------------------------------------------
7178:
7179: /\s*\S/BZ
7180: ------------------------------------------------------------------
7181: Bra
7182: \s*+
7183: \S
7184: Ket
7185: End
7186: ------------------------------------------------------------------
7187:
7188: /\s*\w/BZ
7189: ------------------------------------------------------------------
7190: Bra
7191: \s*+
7192: \w
7193: Ket
7194: End
7195: ------------------------------------------------------------------
7196:
7197: /\s*\W/BZ
7198: ------------------------------------------------------------------
7199: Bra
7200: \s*
7201: \W
7202: Ket
7203: End
7204: ------------------------------------------------------------------
7205:
7206: /\S*a/BZ
7207: ------------------------------------------------------------------
7208: Bra
7209: \S*
7210: a
7211: Ket
7212: End
7213: ------------------------------------------------------------------
7214:
7215: /\S*2/BZ
7216: ------------------------------------------------------------------
7217: Bra
7218: \S*
7219: 2
7220: Ket
7221: End
7222: ------------------------------------------------------------------
7223:
7224: /\S*\d/BZ
7225: ------------------------------------------------------------------
7226: Bra
7227: \S*
7228: \d
7229: Ket
7230: End
7231: ------------------------------------------------------------------
7232:
7233: /\S*\D/BZ
7234: ------------------------------------------------------------------
7235: Bra
7236: \S*
7237: \D
7238: Ket
7239: End
7240: ------------------------------------------------------------------
7241:
7242: /\S*\s/BZ
7243: ------------------------------------------------------------------
7244: Bra
7245: \S*+
7246: \s
7247: Ket
7248: End
7249: ------------------------------------------------------------------
7250:
7251: /\S*\S/BZ
7252: ------------------------------------------------------------------
7253: Bra
7254: \S*
7255: \S
7256: Ket
7257: End
7258: ------------------------------------------------------------------
7259:
7260: /\S*\w/BZ
7261: ------------------------------------------------------------------
7262: Bra
7263: \S*
7264: \w
7265: Ket
7266: End
7267: ------------------------------------------------------------------
7268:
7269: /\S*\W/BZ
7270: ------------------------------------------------------------------
7271: Bra
7272: \S*
7273: \W
7274: Ket
7275: End
7276: ------------------------------------------------------------------
7277:
7278: /\w*a/BZ
7279: ------------------------------------------------------------------
7280: Bra
7281: \w*
7282: a
7283: Ket
7284: End
7285: ------------------------------------------------------------------
7286:
7287: /\w*2/BZ
7288: ------------------------------------------------------------------
7289: Bra
7290: \w*
7291: 2
7292: Ket
7293: End
7294: ------------------------------------------------------------------
7295:
7296: /\w*\d/BZ
7297: ------------------------------------------------------------------
7298: Bra
7299: \w*
7300: \d
7301: Ket
7302: End
7303: ------------------------------------------------------------------
7304:
7305: /\w*\D/BZ
7306: ------------------------------------------------------------------
7307: Bra
7308: \w*
7309: \D
7310: Ket
7311: End
7312: ------------------------------------------------------------------
7313:
7314: /\w*\s/BZ
7315: ------------------------------------------------------------------
7316: Bra
7317: \w*+
7318: \s
7319: Ket
7320: End
7321: ------------------------------------------------------------------
7322:
7323: /\w*\S/BZ
7324: ------------------------------------------------------------------
7325: Bra
7326: \w*
7327: \S
7328: Ket
7329: End
7330: ------------------------------------------------------------------
7331:
7332: /\w*\w/BZ
7333: ------------------------------------------------------------------
7334: Bra
7335: \w*
7336: \w
7337: Ket
7338: End
7339: ------------------------------------------------------------------
7340:
7341: /\w*\W/BZ
7342: ------------------------------------------------------------------
7343: Bra
7344: \w*+
7345: \W
7346: Ket
7347: End
7348: ------------------------------------------------------------------
7349:
7350: /\W*a/BZ
7351: ------------------------------------------------------------------
7352: Bra
7353: \W*+
7354: a
7355: Ket
7356: End
7357: ------------------------------------------------------------------
7358:
7359: /\W*2/BZ
7360: ------------------------------------------------------------------
7361: Bra
7362: \W*+
7363: 2
7364: Ket
7365: End
7366: ------------------------------------------------------------------
7367:
7368: /\W*\d/BZ
7369: ------------------------------------------------------------------
7370: Bra
7371: \W*+
7372: \d
7373: Ket
7374: End
7375: ------------------------------------------------------------------
7376:
7377: /\W*\D/BZ
7378: ------------------------------------------------------------------
7379: Bra
7380: \W*
7381: \D
7382: Ket
7383: End
7384: ------------------------------------------------------------------
7385:
7386: /\W*\s/BZ
7387: ------------------------------------------------------------------
7388: Bra
7389: \W*
7390: \s
7391: Ket
7392: End
7393: ------------------------------------------------------------------
7394:
7395: /\W*\S/BZ
7396: ------------------------------------------------------------------
7397: Bra
7398: \W*
7399: \S
7400: Ket
7401: End
7402: ------------------------------------------------------------------
7403:
7404: /\W*\w/BZ
7405: ------------------------------------------------------------------
7406: Bra
7407: \W*+
7408: \w
7409: Ket
7410: End
7411: ------------------------------------------------------------------
7412:
7413: /\W*\W/BZ
7414: ------------------------------------------------------------------
7415: Bra
7416: \W*
7417: \W
7418: Ket
7419: End
7420: ------------------------------------------------------------------
7421:
7422: /[^a]+a/BZ
7423: ------------------------------------------------------------------
7424: Bra
7425: [^a]++
7426: a
7427: Ket
7428: End
7429: ------------------------------------------------------------------
7430:
7431: /[^a]+a/BZi
7432: ------------------------------------------------------------------
7433: Bra
1.1.1.2 misho 7434: /i [^a]++
1.1 misho 7435: /i a
7436: Ket
7437: End
7438: ------------------------------------------------------------------
7439:
7440: /[^a]+A/BZi
7441: ------------------------------------------------------------------
7442: Bra
1.1.1.2 misho 7443: /i [^a]++
1.1 misho 7444: /i A
7445: Ket
7446: End
7447: ------------------------------------------------------------------
7448:
7449: /[^a]+b/BZ
7450: ------------------------------------------------------------------
7451: Bra
7452: [^a]+
7453: b
7454: Ket
7455: End
7456: ------------------------------------------------------------------
7457:
7458: /[^a]+\d/BZ
7459: ------------------------------------------------------------------
7460: Bra
7461: [^a]+
7462: \d
7463: Ket
7464: End
7465: ------------------------------------------------------------------
7466:
7467: /a*[^a]/BZ
7468: ------------------------------------------------------------------
7469: Bra
7470: a*
7471: [^a]
7472: Ket
7473: End
7474: ------------------------------------------------------------------
7475:
7476: /(?P<abc>x)(?P<xyz>y)/I
7477: Capturing subpattern count = 2
7478: Named capturing subpatterns:
7479: abc 1
7480: xyz 2
7481: No options
7482: First char = 'x'
7483: Need char = 'y'
7484: xy\Cabc\Cxyz
7485: 0: xy
7486: 1: x
7487: 2: y
7488: C x (1) abc
7489: C y (1) xyz
7490:
7491: /(?<abc>x)(?'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: Failed: syntax error in subpattern name (missing terminator) at offset 6
7508:
7509: /(?<abc>x)(?'xyz>y)/I
7510: Failed: syntax error in subpattern name (missing terminator) at offset 15
7511:
7512: /(?P'abc'x)(?P<xyz>y)/I
7513: Failed: unrecognized character after (?P at offset 3
7514:
7515: /^(?:(?(ZZ)a|b)(?<ZZ>X))+/
7516: bXaX
7517: 0: bXaX
7518: 1: X
7519: bXbX
7520: 0: bX
7521: 1: X
7522: ** Failers
7523: No match
7524: aXaX
7525: No match
7526: aXbX
7527: No match
7528:
7529: /^(?P>abc)(?<abcd>xxx)/
7530: Failed: reference to non-existent subpattern at offset 8
7531:
7532: /^(?P>abc)(?<abc>x|y)/
7533: xx
7534: 0: xx
7535: 1: x
7536: xy
7537: 0: xy
7538: 1: y
7539: yy
7540: 0: yy
7541: 1: y
7542: yx
7543: 0: yx
7544: 1: x
7545:
7546: /^(?P>abc)(?P<abc>x|y)/
7547: xx
7548: 0: xx
7549: 1: x
7550: xy
7551: 0: xy
7552: 1: y
7553: yy
7554: 0: yy
7555: 1: y
7556: yx
7557: 0: yx
7558: 1: x
7559:
7560: /^((?(abc)a|b)(?<abc>x|y))+/
7561: bxay
7562: 0: bxay
7563: 1: ay
7564: 2: y
7565: bxby
7566: 0: bx
7567: 1: bx
7568: 2: x
7569: ** Failers
7570: No match
7571: axby
7572: No match
7573:
7574: /^(((?P=abc)|X)(?<abc>x|y))+/
7575: XxXxxx
7576: 0: XxXxxx
7577: 1: xx
7578: 2: x
7579: 3: x
7580: XxXyyx
7581: 0: XxXyyx
7582: 1: yx
7583: 2: y
7584: 3: x
7585: XxXyxx
7586: 0: XxXy
7587: 1: Xy
7588: 2: X
7589: 3: y
7590: ** Failers
7591: No match
7592: x
7593: No match
7594:
7595: /^(?1)(abc)/
7596: abcabc
7597: 0: abcabc
7598: 1: abc
7599:
7600: /^(?:(?:\1|X)(a|b))+/
7601: Xaaa
7602: 0: Xaaa
7603: 1: a
7604: Xaba
7605: 0: Xa
7606: 1: a
7607:
7608: /^[\E\Qa\E-\Qz\E]+/BZ
7609: ------------------------------------------------------------------
7610: Bra
7611: ^
7612: [a-z]+
7613: Ket
7614: End
7615: ------------------------------------------------------------------
7616:
7617: /^[a\Q]bc\E]/BZ
7618: ------------------------------------------------------------------
7619: Bra
7620: ^
7621: [\]a-c]
7622: Ket
7623: End
7624: ------------------------------------------------------------------
7625:
7626: /^[a-\Q\E]/BZ
7627: ------------------------------------------------------------------
7628: Bra
7629: ^
7630: [\-a]
7631: Ket
7632: End
7633: ------------------------------------------------------------------
7634:
7635: /^(?P>abc)[()](?<abc>)/BZ
7636: ------------------------------------------------------------------
7637: Bra
7638: ^
7639: Recurse
7640: [()]
7641: CBra 1
7642: Ket
7643: Ket
7644: End
7645: ------------------------------------------------------------------
7646:
7647: /^((?(abc)y)[()](?P<abc>x))+/BZ
7648: ------------------------------------------------------------------
7649: Bra
7650: ^
7651: CBra 1
7652: Cond
7653: 2 Cond nref
7654: y
7655: Ket
7656: [()]
7657: CBra 2
7658: x
7659: Ket
7660: KetRmax
7661: Ket
7662: End
7663: ------------------------------------------------------------------
7664: (xy)x
7665: 0: (xy)x
7666: 1: y)x
7667: 2: x
7668:
7669: /^(?P>abc)\Q()\E(?<abc>)/BZ
7670: ------------------------------------------------------------------
7671: Bra
7672: ^
7673: Recurse
7674: ()
7675: CBra 1
7676: Ket
7677: Ket
7678: End
7679: ------------------------------------------------------------------
7680:
7681: /^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
7682: ------------------------------------------------------------------
7683: Bra
7684: ^
7685: Recurse
7686: [(\]a]
7687: CBra 1
7688: Ket
7689: Ket
7690: End
7691: ------------------------------------------------------------------
7692:
7693: /^(?P>abc) # this is (a comment)
7694: (?<abc>)/BZx
7695: ------------------------------------------------------------------
7696: Bra
7697: ^
7698: Recurse
7699: CBra 1
7700: Ket
7701: Ket
7702: End
7703: ------------------------------------------------------------------
7704:
7705: /^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
7706: Capturing subpattern count = 4
7707: Max back reference = 4
7708: Named capturing subpatterns:
7709: four 4
7710: one 1
7711: three 3
7712: two 2
7713: Options: anchored caseless
7714: No first char
7715: No need char
7716: 1221
7717: 0: 1221
7718: 1: 1221
7719: 2: 1
7720: Satan, oscillate my metallic sonatas!
7721: 0: Satan, oscillate my metallic sonatas!
7722: 1: <unset>
7723: 2: <unset>
7724: 3: Satan, oscillate my metallic sonatas
7725: 4: S
7726: A man, a plan, a canal: Panama!
7727: 0: A man, a plan, a canal: Panama!
7728: 1: <unset>
7729: 2: <unset>
7730: 3: A man, a plan, a canal: Panama
7731: 4: A
7732: Able was I ere I saw Elba.
7733: 0: Able was I ere I saw Elba.
7734: 1: <unset>
7735: 2: <unset>
7736: 3: Able was I ere I saw Elba
7737: 4: A
7738: *** Failers
7739: No match
7740: The quick brown fox
7741: No match
7742:
7743: /(?=(\w+))\1:/I
7744: Capturing subpattern count = 1
7745: Max back reference = 1
7746: No options
7747: No first char
7748: Need char = ':'
7749: abcd:
7750: 0: abcd:
7751: 1: abcd
7752:
7753: /(?=(?'abc'\w+))\k<abc>:/I
7754: Capturing subpattern count = 1
7755: Max back reference = 1
7756: Named capturing subpatterns:
7757: abc 1
7758: No options
7759: No first char
7760: Need char = ':'
7761: abcd:
7762: 0: abcd:
7763: 1: abcd
7764:
7765: /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7766: adaa
7767: 0: adaa
7768: 1: a
7769: 2: d
7770: ** Failers
7771: No match
7772: addd
7773: No match
7774: adbb
7775: No match
7776:
7777: /(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
7778: bdaa
7779: 0: bdaa
7780: 1: b
7781: 2: d
7782: bdab
7783: 0: bdab
7784: 1: b
7785: 2: d
7786: ** Failers
7787: No match
7788: bddd
7789: No match
7790:
7791: /(?(<bc))/
7792: Failed: malformed number or name after (?( at offset 6
7793:
7794: /(?(''))/
7795: Failed: assertion expected after (?( at offset 4
7796:
7797: /(?('R')stuff)/
7798: Failed: reference to non-existent subpattern at offset 7
7799:
7800: /((abc (?(R) (?(R1)1) (?(R2)2) X | (?1) (?2) (?R) ))) /x
7801: abcabc1Xabc2XabcXabcabc
7802: 0: abcabc1Xabc2XabcX
7803: 1: abcabc1Xabc2XabcX
7804: 2: abcabc1Xabc2XabcX
7805:
7806: /(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
7807: abcabc1Xabc2XabcXabcabc
7808: 0: abcabc1Xabc2XabcX
7809: 1: abcabc1Xabc2XabcX
7810: 2: abcabc1Xabc2XabcX
7811:
7812: /(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
7813: Failed: reference to non-existent subpattern at offset 29
7814:
7815: /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
7816: abcabc1Xabc2XabcXabcabc
7817: 0: abcabc1Xabc2XabcX
7818: 1: abcabc1Xabc2XabcX
7819: 2: abcabc1Xabc2XabcX
7820:
7821: /^(?(DEFINE) abc | xyz ) /x
7822: Failed: DEFINE group contains more than one branch at offset 22
7823:
7824: /(?(DEFINE) abc) xyz/xI
7825: Capturing subpattern count = 0
7826: Options: extended
7827: First char = 'x'
7828: Need char = 'z'
7829:
7830: /(a|)*\d/
7831: \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7832: No match
7833: \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
7834: Matched, but too many substrings
7835:
7836: /^a.b/<lf>
7837: a\rb
7838: 0: a\x0db
7839: a\nb\<cr>
7840: 0: a\x0ab
7841: a\x85b\<anycrlf>
7842: 0: a\x85b
7843: ** Failers
7844: No match
7845: a\nb
7846: No match
7847: a\nb\<any>
7848: No match
7849: a\rb\<cr>
7850: No match
7851: a\rb\<any>
7852: No match
7853: a\x85b\<any>
7854: No match
7855: a\rb\<anycrlf>
7856: No match
7857:
7858: /^abc./mgx<any>
7859: abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7860: 0: abc1
7861: 0: abc2
7862: 0: abc3
7863: 0: abc4
7864: 0: abc5
7865: 0: abc6
7866: 0: abc7
7867:
7868: /abc.$/mgx<any>
7869: abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
7870: 0: abc1
7871: 0: abc2
7872: 0: abc3
7873: 0: abc4
7874: 0: abc5
7875: 0: abc6
7876: 0: abc9
7877:
7878: /a/<cr><any>
7879:
7880: /a/<any><crlf>
7881: Failed: inconsistent NEWLINE options at offset 0
7882:
7883: /^a\Rb/<bsr_unicode>
7884: a\nb
7885: 0: a\x0ab
7886: a\rb
7887: 0: a\x0db
7888: a\r\nb
7889: 0: a\x0d\x0ab
7890: a\x0bb
7891: 0: a\x0bb
7892: a\x0cb
7893: 0: a\x0cb
7894: a\x85b
7895: 0: a\x85b
7896: ** Failers
7897: No match
7898: a\n\rb
7899: No match
7900:
7901: /^a\R*b/<bsr_unicode>
7902: ab
7903: 0: ab
7904: a\nb
7905: 0: a\x0ab
7906: a\rb
7907: 0: a\x0db
7908: a\r\nb
7909: 0: a\x0d\x0ab
7910: a\x0bb
7911: 0: a\x0bb
7912: a\x0cb
7913: 0: a\x0cb
7914: a\x85b
7915: 0: a\x85b
7916: a\n\rb
7917: 0: a\x0a\x0db
7918: a\n\r\x85\x0cb
7919: 0: a\x0a\x0d\x85\x0cb
7920:
7921: /^a\R+b/<bsr_unicode>
7922: a\nb
7923: 0: a\x0ab
7924: a\rb
7925: 0: a\x0db
7926: a\r\nb
7927: 0: a\x0d\x0ab
7928: a\x0bb
7929: 0: a\x0bb
7930: a\x0cb
7931: 0: a\x0cb
7932: a\x85b
7933: 0: a\x85b
7934: a\n\rb
7935: 0: a\x0a\x0db
7936: a\n\r\x85\x0cb
7937: 0: a\x0a\x0d\x85\x0cb
7938: ** Failers
7939: No match
7940: ab
7941: No match
7942:
7943: /^a\R{1,3}b/<bsr_unicode>
7944: a\nb
7945: 0: a\x0ab
7946: a\n\rb
7947: 0: a\x0a\x0db
7948: a\n\r\x85b
7949: 0: a\x0a\x0d\x85b
7950: a\r\n\r\nb
7951: 0: a\x0d\x0a\x0d\x0ab
7952: a\r\n\r\n\r\nb
7953: 0: a\x0d\x0a\x0d\x0a\x0d\x0ab
7954: a\n\r\n\rb
7955: 0: a\x0a\x0d\x0a\x0db
7956: a\n\n\r\nb
7957: 0: a\x0a\x0a\x0d\x0ab
7958: ** Failers
7959: No match
7960: a\n\n\n\rb
7961: No match
7962: a\r
7963: No match
7964:
7965: /^a[\R]b/<bsr_unicode>
7966: aRb
7967: 0: aRb
7968: ** Failers
7969: No match
7970: a\nb
7971: No match
7972:
7973: /(?&abc)X(?<abc>P)/I
7974: Capturing subpattern count = 1
7975: Named capturing subpatterns:
7976: abc 1
7977: No options
7978: No first char
7979: Need char = 'P'
7980: abcPXP123
7981: 0: PXP
7982: 1: P
7983:
7984: /(?1)X(?<abc>P)/I
7985: Capturing subpattern count = 1
7986: Named capturing subpatterns:
7987: abc 1
7988: No options
7989: No first char
7990: Need char = 'P'
7991: abcPXP123
7992: 0: PXP
7993: 1: P
7994:
7995: /(?:a(?&abc)b)*(?<abc>x)/
7996: 123axbaxbaxbx456
7997: 0: axbaxbaxbx
7998: 1: x
7999: 123axbaxbaxb456
8000: 0: x
8001: 1: x
8002:
8003: /(?:a(?&abc)b){1,5}(?<abc>x)/
8004: 123axbaxbaxbx456
8005: 0: axbaxbaxbx
8006: 1: x
8007:
8008: /(?:a(?&abc)b){2,5}(?<abc>x)/
8009: 123axbaxbaxbx456
8010: 0: axbaxbaxbx
8011: 1: x
8012:
8013: /(?:a(?&abc)b){2,}(?<abc>x)/
8014: 123axbaxbaxbx456
8015: 0: axbaxbaxbx
8016: 1: x
8017:
8018: /(abc)(?i:(?1))/
8019: defabcabcxyz
8020: 0: abcabc
8021: 1: abc
8022: DEFabcABCXYZ
8023: No match
8024:
8025: /(abc)(?:(?i)(?1))/
8026: defabcabcxyz
8027: 0: abcabc
8028: 1: abc
8029: DEFabcABCXYZ
8030: No match
8031:
8032: /^(a)\g-2/
8033: Failed: reference to non-existent subpattern at offset 7
8034:
8035: /^(a)\g/
8036: Failed: a numbered reference must not be zero at offset 5
8037:
8038: /^(a)\g{0}/
8039: Failed: a numbered reference must not be zero at offset 8
8040:
8041: /^(a)\g{3/
8042: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
8043:
8044: /^(a)\g{4a}/
8045: Failed: reference to non-existent subpattern at offset 9
8046:
8047: /^a.b/<lf>
8048: a\rb
8049: 0: a\x0db
8050: *** Failers
8051: No match
8052: a\nb
8053: No match
8054:
8055: /.+foo/
8056: afoo
8057: 0: afoo
8058: ** Failers
8059: No match
8060: \r\nfoo
8061: No match
8062: \nfoo
8063: No match
8064:
8065: /.+foo/<crlf>
8066: afoo
8067: 0: afoo
8068: \nfoo
8069: 0: \x0afoo
8070: ** Failers
8071: No match
8072: \r\nfoo
8073: No match
8074:
8075: /.+foo/<any>
8076: afoo
8077: 0: afoo
8078: ** Failers
8079: No match
8080: \nfoo
8081: No match
8082: \r\nfoo
8083: No match
8084:
8085: /.+foo/s
8086: afoo
8087: 0: afoo
8088: \r\nfoo
8089: 0: \x0d\x0afoo
8090: \nfoo
8091: 0: \x0afoo
8092:
8093: /^$/mg<any>
8094: abc\r\rxyz
8095: 0:
8096: abc\n\rxyz
8097: 0:
8098: ** Failers
8099: No match
8100: abc\r\nxyz
8101: No match
8102:
8103: /(?m)^$/<any>g+
8104: abc\r\n\r\n
8105: 0:
8106: 0+ \x0d\x0a
8107:
8108: /(?m)^$|^\r\n/<any>g+
8109: abc\r\n\r\n
8110: 0:
8111: 0+ \x0d\x0a
8112: 0: \x0d\x0a
8113: 0+
8114:
8115: /(?m)$/<any>g+
8116: abc\r\n\r\n
8117: 0:
8118: 0+ \x0d\x0a\x0d\x0a
8119: 0:
8120: 0+ \x0d\x0a
8121: 0:
8122: 0+
8123:
8124: /abc.$/mgx<anycrlf>
8125: abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
8126: 0: abc1
8127: 0: abc4
8128: 0: abc5
8129: 0: abc9
8130:
8131: /^X/m
8132: XABC
8133: 0: X
8134: ** Failers
8135: No match
8136: XABC\B
8137: No match
8138:
8139: /(ab|c)(?-1)/BZ
8140: ------------------------------------------------------------------
8141: Bra
8142: CBra 1
8143: ab
8144: Alt
8145: c
8146: Ket
8147: Recurse
8148: Ket
8149: End
8150: ------------------------------------------------------------------
8151: abc
8152: 0: abc
8153: 1: ab
8154:
8155: /xy(?+1)(abc)/BZ
8156: ------------------------------------------------------------------
8157: Bra
8158: xy
8159: Recurse
8160: CBra 1
8161: abc
8162: Ket
8163: Ket
8164: End
8165: ------------------------------------------------------------------
8166: xyabcabc
8167: 0: xyabcabc
8168: 1: abc
8169: ** Failers
8170: No match
8171: xyabc
8172: No match
8173:
8174: /x(?-0)y/
8175: Failed: a numbered reference must not be zero at offset 5
8176:
8177: /x(?-1)y/
8178: Failed: reference to non-existent subpattern at offset 5
8179:
8180: /x(?+0)y/
8181: Failed: a numbered reference must not be zero at offset 5
8182:
8183: /x(?+1)y/
8184: Failed: reference to non-existent subpattern at offset 5
8185:
8186: /^(abc)?(?(-1)X|Y)/BZ
8187: ------------------------------------------------------------------
8188: Bra
8189: ^
8190: Brazero
8191: CBra 1
8192: abc
8193: Ket
8194: Cond
8195: 1 Cond ref
8196: X
8197: Alt
8198: Y
8199: Ket
8200: Ket
8201: End
8202: ------------------------------------------------------------------
8203: abcX
8204: 0: abcX
8205: 1: abc
8206: Y
8207: 0: Y
8208: ** Failers
8209: No match
8210: abcY
8211: No match
8212:
8213: /^((?(+1)X|Y)(abc))+/BZ
8214: ------------------------------------------------------------------
8215: Bra
8216: ^
8217: CBra 1
8218: Cond
8219: 2 Cond ref
8220: X
8221: Alt
8222: Y
8223: Ket
8224: CBra 2
8225: abc
8226: Ket
8227: KetRmax
8228: Ket
8229: End
8230: ------------------------------------------------------------------
8231: YabcXabc
8232: 0: YabcXabc
8233: 1: Xabc
8234: 2: abc
8235: YabcXabcXabc
8236: 0: YabcXabcXabc
8237: 1: Xabc
8238: 2: abc
8239: ** Failers
8240: No match
8241: XabcXabc
8242: No match
8243:
8244: /(?(-1)a)/BZ
8245: Failed: reference to non-existent subpattern at offset 6
8246:
8247: /((?(-1)a))/BZ
8248: ------------------------------------------------------------------
8249: Bra
8250: CBra 1
8251: Cond
8252: 1 Cond ref
8253: a
8254: Ket
8255: Ket
8256: Ket
8257: End
8258: ------------------------------------------------------------------
8259:
8260: /((?(-2)a))/BZ
8261: Failed: reference to non-existent subpattern at offset 7
8262:
8263: /^(?(+1)X|Y)(.)/BZ
8264: ------------------------------------------------------------------
8265: Bra
8266: ^
8267: Cond
8268: 1 Cond ref
8269: X
8270: Alt
8271: Y
8272: Ket
8273: CBra 1
8274: Any
8275: Ket
8276: Ket
8277: End
8278: ------------------------------------------------------------------
8279: Y!
8280: 0: Y!
8281: 1: !
8282:
8283: /(?<A>tom|bon)-\k{A}/
8284: tom-tom
8285: 0: tom-tom
8286: 1: tom
8287: bon-bon
8288: 0: bon-bon
8289: 1: bon
8290: ** Failers
8291: No match
8292: tom-bon
8293: No match
8294:
8295: /\g{A/
8296: Failed: syntax error in subpattern name (missing terminator) at offset 4
8297:
8298: /(?|(abc)|(xyz))/BZ
8299: ------------------------------------------------------------------
8300: Bra
8301: Bra
8302: CBra 1
8303: abc
8304: Ket
8305: Alt
8306: CBra 1
8307: xyz
8308: Ket
8309: Ket
8310: Ket
8311: End
8312: ------------------------------------------------------------------
8313: >abc<
8314: 0: abc
8315: 1: abc
8316: >xyz<
8317: 0: xyz
8318: 1: xyz
8319:
8320: /(x)(?|(abc)|(xyz))(x)/BZ
8321: ------------------------------------------------------------------
8322: Bra
8323: CBra 1
8324: x
8325: Ket
8326: Bra
8327: CBra 2
8328: abc
8329: Ket
8330: Alt
8331: CBra 2
8332: xyz
8333: Ket
8334: Ket
8335: CBra 3
8336: x
8337: Ket
8338: Ket
8339: End
8340: ------------------------------------------------------------------
8341: xabcx
8342: 0: xabcx
8343: 1: x
8344: 2: abc
8345: 3: x
8346: xxyzx
8347: 0: xxyzx
8348: 1: x
8349: 2: xyz
8350: 3: x
8351:
8352: /(x)(?|(abc)(pqr)|(xyz))(x)/BZ
8353: ------------------------------------------------------------------
8354: Bra
8355: CBra 1
8356: x
8357: Ket
8358: Bra
8359: CBra 2
8360: abc
8361: Ket
8362: CBra 3
8363: pqr
8364: Ket
8365: Alt
8366: CBra 2
8367: xyz
8368: Ket
8369: Ket
8370: CBra 4
8371: x
8372: Ket
8373: Ket
8374: End
8375: ------------------------------------------------------------------
8376: xabcpqrx
8377: 0: xabcpqrx
8378: 1: x
8379: 2: abc
8380: 3: pqr
8381: 4: x
8382: xxyzx
8383: 0: xxyzx
8384: 1: x
8385: 2: xyz
8386: 3: <unset>
8387: 4: x
8388:
8389: /\H++X/BZ
8390: ------------------------------------------------------------------
8391: Bra
8392: \H++
8393: X
8394: Ket
8395: End
8396: ------------------------------------------------------------------
8397: ** Failers
8398: No match
8399: XXXX
8400: No match
8401:
8402: /\H+\hY/BZ
8403: ------------------------------------------------------------------
8404: Bra
8405: \H++
8406: \h
8407: Y
8408: Ket
8409: End
8410: ------------------------------------------------------------------
8411: XXXX Y
8412: 0: XXXX Y
8413:
8414: /\H+ Y/BZ
8415: ------------------------------------------------------------------
8416: Bra
8417: \H++
8418: Y
8419: Ket
8420: End
8421: ------------------------------------------------------------------
8422:
8423: /\h+A/BZ
8424: ------------------------------------------------------------------
8425: Bra
8426: \h++
8427: A
8428: Ket
8429: End
8430: ------------------------------------------------------------------
8431:
8432: /\v*B/BZ
8433: ------------------------------------------------------------------
8434: Bra
8435: \v*+
8436: B
8437: Ket
8438: End
8439: ------------------------------------------------------------------
8440:
8441: /\V+\x0a/BZ
8442: ------------------------------------------------------------------
8443: Bra
8444: \V++
8445: \x0a
8446: Ket
8447: End
8448: ------------------------------------------------------------------
8449:
8450: /A+\h/BZ
8451: ------------------------------------------------------------------
8452: Bra
8453: A++
8454: \h
8455: Ket
8456: End
8457: ------------------------------------------------------------------
8458:
8459: / *\H/BZ
8460: ------------------------------------------------------------------
8461: Bra
8462: *+
8463: \H
8464: Ket
8465: End
8466: ------------------------------------------------------------------
8467:
8468: /A*\v/BZ
8469: ------------------------------------------------------------------
8470: Bra
8471: A*+
8472: \v
8473: Ket
8474: End
8475: ------------------------------------------------------------------
8476:
8477: /\x0b*\V/BZ
8478: ------------------------------------------------------------------
8479: Bra
8480: \x0b*+
8481: \V
8482: Ket
8483: End
8484: ------------------------------------------------------------------
8485:
8486: /\d+\h/BZ
8487: ------------------------------------------------------------------
8488: Bra
8489: \d++
8490: \h
8491: Ket
8492: End
8493: ------------------------------------------------------------------
8494:
8495: /\d*\v/BZ
8496: ------------------------------------------------------------------
8497: Bra
8498: \d*+
8499: \v
8500: Ket
8501: End
8502: ------------------------------------------------------------------
8503:
8504: /S+\h\S+\v/BZ
8505: ------------------------------------------------------------------
8506: Bra
8507: S++
8508: \h
8509: \S++
8510: \v
8511: Ket
8512: End
8513: ------------------------------------------------------------------
8514:
8515: /\w{3,}\h\w+\v/BZ
8516: ------------------------------------------------------------------
8517: Bra
8518: \w{3}
8519: \w*+
8520: \h
8521: \w++
8522: \v
8523: Ket
8524: End
8525: ------------------------------------------------------------------
8526:
8527: /\h+\d\h+\w\h+\S\h+\H/BZ
8528: ------------------------------------------------------------------
8529: Bra
8530: \h++
8531: \d
8532: \h++
8533: \w
8534: \h++
8535: \S
8536: \h++
8537: \H
8538: Ket
8539: End
8540: ------------------------------------------------------------------
8541:
8542: /\v+\d\v+\w\v+\S\v+\V/BZ
8543: ------------------------------------------------------------------
8544: Bra
8545: \v++
8546: \d
8547: \v++
8548: \w
8549: \v+
8550: \S
8551: \v++
8552: \V
8553: Ket
8554: End
8555: ------------------------------------------------------------------
8556:
8557: /\H+\h\H+\d/BZ
8558: ------------------------------------------------------------------
8559: Bra
8560: \H++
8561: \h
8562: \H+
8563: \d
8564: Ket
8565: End
8566: ------------------------------------------------------------------
8567:
8568: /\V+\v\V+\w/BZ
8569: ------------------------------------------------------------------
8570: Bra
8571: \V++
8572: \v
8573: \V+
8574: \w
8575: Ket
8576: End
8577: ------------------------------------------------------------------
8578:
8579: /\( (?: [^()]* | (?R) )* \)/x
8580: \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)
8581: 0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8582:
8583: /[\E]AAA/
8584: Failed: missing terminating ] for character class at offset 7
8585:
8586: /[\Q\E]AAA/
8587: Failed: missing terminating ] for character class at offset 9
8588:
8589: /[^\E]AAA/
8590: Failed: missing terminating ] for character class at offset 8
8591:
8592: /[^\Q\E]AAA/
8593: Failed: missing terminating ] for character class at offset 10
8594:
8595: /[\E^]AAA/
8596: Failed: missing terminating ] for character class at offset 8
8597:
8598: /[\Q\E^]AAA/
8599: Failed: missing terminating ] for character class at offset 10
8600:
8601: /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
8602: ------------------------------------------------------------------
8603: Bra
8604: A
8605: *PRUNE
8606: B
8607: *SKIP
8608: C
8609: *THEN
8610: D
8611: *COMMIT
8612: E
8613: *FAIL
8614: F
8615: *FAIL
8616: G
8617: *FAIL
8618: H
8619: *ACCEPT
8620: I
8621: Ket
8622: End
8623: ------------------------------------------------------------------
8624:
8625: /^a+(*FAIL)/C
8626: aaaaaa
8627: --->aaaaaa
8628: +0 ^ ^
8629: +1 ^ a+
8630: +3 ^ ^ (*FAIL)
8631: +3 ^ ^ (*FAIL)
8632: +3 ^ ^ (*FAIL)
8633: +3 ^ ^ (*FAIL)
8634: +3 ^ ^ (*FAIL)
8635: +3 ^^ (*FAIL)
8636: No match
8637:
8638: /a+b?c+(*FAIL)/C
8639: aaabccc
8640: --->aaabccc
8641: +0 ^ a+
8642: +2 ^ ^ b?
8643: +4 ^ ^ c+
8644: +6 ^ ^ (*FAIL)
8645: +6 ^ ^ (*FAIL)
8646: +6 ^ ^ (*FAIL)
8647: +4 ^ ^ c+
8648: +2 ^ ^ b?
8649: +4 ^ ^ c+
8650: +2 ^^ b?
8651: +4 ^^ c+
8652: +0 ^ a+
8653: +2 ^ ^ b?
8654: +4 ^ ^ c+
8655: +6 ^ ^ (*FAIL)
8656: +6 ^ ^ (*FAIL)
8657: +6 ^ ^ (*FAIL)
8658: +4 ^ ^ c+
8659: +2 ^^ b?
8660: +4 ^^ c+
8661: +0 ^ a+
8662: +2 ^^ b?
8663: +4 ^ ^ c+
8664: +6 ^ ^ (*FAIL)
8665: +6 ^ ^ (*FAIL)
8666: +6 ^ ^ (*FAIL)
8667: +4 ^^ c+
8668: No match
8669:
8670: /a+b?(*PRUNE)c+(*FAIL)/C
8671: aaabccc
8672: --->aaabccc
8673: +0 ^ a+
8674: +2 ^ ^ b?
8675: +4 ^ ^ (*PRUNE)
8676: +12 ^ ^ c+
8677: +14 ^ ^ (*FAIL)
8678: +14 ^ ^ (*FAIL)
8679: +14 ^ ^ (*FAIL)
8680: +0 ^ a+
8681: +2 ^ ^ b?
8682: +4 ^ ^ (*PRUNE)
8683: +12 ^ ^ c+
8684: +14 ^ ^ (*FAIL)
8685: +14 ^ ^ (*FAIL)
8686: +14 ^ ^ (*FAIL)
8687: +0 ^ a+
8688: +2 ^^ b?
8689: +4 ^ ^ (*PRUNE)
8690: +12 ^ ^ c+
8691: +14 ^ ^ (*FAIL)
8692: +14 ^ ^ (*FAIL)
8693: +14 ^ ^ (*FAIL)
8694: No match
8695:
8696: /a+b?(*COMMIT)c+(*FAIL)/C
8697: aaabccc
8698: --->aaabccc
8699: +0 ^ a+
8700: +2 ^ ^ b?
8701: +4 ^ ^ (*COMMIT)
8702: +13 ^ ^ c+
8703: +15 ^ ^ (*FAIL)
8704: +15 ^ ^ (*FAIL)
8705: +15 ^ ^ (*FAIL)
8706: No match
8707:
8708: /a+b?(*SKIP)c+(*FAIL)/C
8709: aaabcccaaabccc
8710: --->aaabcccaaabccc
8711: +0 ^ a+
8712: +2 ^ ^ b?
8713: +4 ^ ^ (*SKIP)
8714: +11 ^ ^ c+
8715: +13 ^ ^ (*FAIL)
8716: +13 ^ ^ (*FAIL)
8717: +13 ^ ^ (*FAIL)
8718: +0 ^ a+
8719: +2 ^ ^ b?
8720: +4 ^ ^ (*SKIP)
8721: +11 ^ ^ c+
8722: +13 ^ ^ (*FAIL)
8723: +13 ^ ^ (*FAIL)
8724: +13 ^ ^ (*FAIL)
8725: No match
8726:
8727: /a+b?(*THEN)c+(*FAIL)/C
8728: aaabccc
8729: --->aaabccc
8730: +0 ^ a+
8731: +2 ^ ^ b?
8732: +4 ^ ^ (*THEN)
8733: +11 ^ ^ c+
8734: +13 ^ ^ (*FAIL)
8735: +13 ^ ^ (*FAIL)
8736: +13 ^ ^ (*FAIL)
8737: +0 ^ a+
8738: +2 ^ ^ b?
8739: +4 ^ ^ (*THEN)
8740: +11 ^ ^ c+
8741: +13 ^ ^ (*FAIL)
8742: +13 ^ ^ (*FAIL)
8743: +13 ^ ^ (*FAIL)
8744: +0 ^ a+
8745: +2 ^^ b?
8746: +4 ^ ^ (*THEN)
8747: +11 ^ ^ c+
8748: +13 ^ ^ (*FAIL)
8749: +13 ^ ^ (*FAIL)
8750: +13 ^ ^ (*FAIL)
8751: No match
8752:
8753: /a(*MARK)b/
8754: Failed: (*MARK) must have an argument at offset 7
8755:
8756: /(?i:A{1,}\6666666666)/
8757: Failed: number is too big at offset 19
8758:
8759: /\g6666666666/
8760: Failed: number is too big at offset 11
8761:
8762: /[\g6666666666]/BZ
8763: ------------------------------------------------------------------
8764: Bra
8765: [6g]
8766: Ket
8767: End
8768: ------------------------------------------------------------------
8769:
8770: /(?1)\c[/
8771: Failed: reference to non-existent subpattern at offset 3
8772:
8773: /.+A/<crlf>
8774: \r\nA
8775: No match
8776:
8777: /\nA/<crlf>
8778: \r\nA
8779: 0: \x0aA
8780:
8781: /[\r\n]A/<crlf>
8782: \r\nA
8783: 0: \x0aA
8784:
8785: /(\r|\n)A/<crlf>
8786: \r\nA
8787: 0: \x0aA
8788: 1: \x0a
8789:
8790: /a(*CR)b/
1.1.1.4 ! misho 8791: Failed: (*VERB) not recognized or malformed at offset 5
1.1 misho 8792:
8793: /(*CR)a.b/
8794: a\nb
8795: 0: a\x0ab
8796: ** Failers
8797: No match
8798: a\rb
8799: No match
8800:
8801: /(*CR)a.b/<lf>
8802: a\nb
8803: 0: a\x0ab
8804: ** Failers
8805: No match
8806: a\rb
8807: No match
8808:
8809: /(*LF)a.b/<CRLF>
8810: a\rb
8811: 0: a\x0db
8812: ** Failers
8813: No match
8814: a\nb
8815: No match
8816:
8817: /(*CRLF)a.b/
8818: a\rb
8819: 0: a\x0db
8820: a\nb
8821: 0: a\x0ab
8822: ** Failers
8823: No match
8824: a\r\nb
8825: No match
8826:
8827: /(*ANYCRLF)a.b/<CR>
8828: ** Failers
8829: No match
8830: a\rb
8831: No match
8832: a\nb
8833: No match
8834: a\r\nb
8835: No match
8836:
8837: /(*ANY)a.b/<cr>
8838: ** Failers
8839: No match
8840: a\rb
8841: No match
8842: a\nb
8843: No match
8844: a\r\nb
8845: No match
8846: a\x85b
8847: No match
8848:
8849: /(*ANY).*/g
8850: abc\r\ndef
8851: 0: abc
8852: 0:
8853: 0: def
8854: 0:
8855:
8856: /(*ANYCRLF).*/g
8857: abc\r\ndef
8858: 0: abc
8859: 0:
8860: 0: def
8861: 0:
8862:
8863: /(*CRLF).*/g
8864: abc\r\ndef
8865: 0: abc
8866: 0:
8867: 0: def
8868: 0:
8869:
8870: /a\Rb/I<bsr_anycrlf>
8871: Capturing subpattern count = 0
8872: Options: bsr_anycrlf
8873: First char = 'a'
8874: Need char = 'b'
8875: a\rb
8876: 0: a\x0db
8877: a\nb
8878: 0: a\x0ab
8879: a\r\nb
8880: 0: a\x0d\x0ab
8881: ** Failers
8882: No match
8883: a\x85b
8884: No match
8885: a\x0bb
8886: No match
8887:
8888: /a\Rb/I<bsr_unicode>
8889: Capturing subpattern count = 0
8890: Options: bsr_unicode
8891: First char = 'a'
8892: Need char = 'b'
8893: a\rb
8894: 0: a\x0db
8895: a\nb
8896: 0: a\x0ab
8897: a\r\nb
8898: 0: a\x0d\x0ab
8899: a\x85b
8900: 0: a\x85b
8901: a\x0bb
8902: 0: a\x0bb
8903: ** Failers
8904: No match
8905: a\x85b\<bsr_anycrlf>
8906: No match
8907: a\x0bb\<bsr_anycrlf>
8908: No match
8909:
8910: /a\R?b/I<bsr_anycrlf>
8911: Capturing subpattern count = 0
8912: Options: bsr_anycrlf
8913: First char = 'a'
8914: Need char = 'b'
8915: a\rb
8916: 0: a\x0db
8917: a\nb
8918: 0: a\x0ab
8919: a\r\nb
8920: 0: a\x0d\x0ab
8921: ** Failers
8922: No match
8923: a\x85b
8924: No match
8925: a\x0bb
8926: No match
8927:
8928: /a\R?b/I<bsr_unicode>
8929: Capturing subpattern count = 0
8930: Options: bsr_unicode
8931: First char = 'a'
8932: Need char = 'b'
8933: a\rb
8934: 0: a\x0db
8935: a\nb
8936: 0: a\x0ab
8937: a\r\nb
8938: 0: a\x0d\x0ab
8939: a\x85b
8940: 0: a\x85b
8941: a\x0bb
8942: 0: a\x0bb
8943: ** Failers
8944: No match
8945: a\x85b\<bsr_anycrlf>
8946: No match
8947: a\x0bb\<bsr_anycrlf>
8948: No match
8949:
8950: /a\R{2,4}b/I<bsr_anycrlf>
8951: Capturing subpattern count = 0
8952: Options: bsr_anycrlf
8953: First char = 'a'
8954: Need char = 'b'
8955: a\r\n\nb
8956: 0: a\x0d\x0a\x0ab
8957: a\n\r\rb
8958: 0: a\x0a\x0d\x0db
8959: a\r\n\r\n\r\n\r\nb
8960: 0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
8961: ** Failers
8962: No match
8963: a\x85\85b
8964: No match
8965: a\x0b\0bb
8966: No match
8967:
8968: /a\R{2,4}b/I<bsr_unicode>
8969: Capturing subpattern count = 0
8970: Options: bsr_unicode
8971: First char = 'a'
8972: Need char = 'b'
8973: a\r\rb
8974: 0: a\x0d\x0db
8975: a\n\n\nb
8976: 0: a\x0a\x0a\x0ab
8977: a\r\n\n\r\rb
8978: 0: a\x0d\x0a\x0a\x0d\x0db
8979: a\x85\85b
8980: No match
8981: a\x0b\0bb
8982: No match
8983: ** Failers
8984: No match
8985: a\r\r\r\r\rb
8986: No match
8987: a\x85\85b\<bsr_anycrlf>
8988: No match
8989: a\x0b\0bb\<bsr_anycrlf>
8990: No match
8991:
8992: /(*BSR_ANYCRLF)a\Rb/I
8993: Capturing subpattern count = 0
8994: Options: bsr_anycrlf
8995: First char = 'a'
8996: Need char = 'b'
8997: a\nb
8998: 0: a\x0ab
8999: a\rb
9000: 0: a\x0db
9001:
9002: /(*BSR_UNICODE)a\Rb/I
9003: Capturing subpattern count = 0
9004: Options: bsr_unicode
9005: First char = 'a'
9006: Need char = 'b'
9007: a\x85b
9008: 0: a\x85b
9009:
9010: /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
9011: Capturing subpattern count = 0
9012: Options: bsr_anycrlf
9013: Forced newline sequence: CRLF
9014: First char = 'a'
9015: Need char = 'b'
9016: a\nb
9017: 0: a\x0ab
9018: a\rb
9019: 0: a\x0db
9020:
9021: /(*CRLF)(*BSR_UNICODE)a\Rb/I
9022: Capturing subpattern count = 0
9023: Options: bsr_unicode
9024: Forced newline sequence: CRLF
9025: First char = 'a'
9026: Need char = 'b'
9027: a\x85b
9028: 0: a\x85b
9029:
9030: /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
9031: Capturing subpattern count = 0
9032: Options: bsr_anycrlf
9033: Forced newline sequence: CR
9034: First char = 'a'
9035: Need char = 'b'
9036:
9037: /(?<a>)(?&)/
9038: Failed: subpattern name expected at offset 9
9039:
9040: /(?<abc>)(?&a)/
9041: Failed: reference to non-existent subpattern at offset 12
9042:
9043: /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
9044: Failed: reference to non-existent subpattern at offset 32
9045:
9046: /(?+-a)/
9047: Failed: digit expected after (?+ at offset 3
9048:
9049: /(?-+a)/
9050: Failed: unrecognized character after (? or (?- at offset 3
9051:
9052: /(?(-1))/
9053: Failed: reference to non-existent subpattern at offset 6
9054:
9055: /(?(+10))/
9056: Failed: reference to non-existent subpattern at offset 7
9057:
9058: /(?(10))/
9059: Failed: reference to non-existent subpattern at offset 6
9060:
9061: /(?(+2))()()/
9062:
9063: /(?(2))()()/
9064:
9065: /\k''/
9066: Failed: subpattern name expected at offset 3
9067:
9068: /\k<>/
9069: Failed: subpattern name expected at offset 3
9070:
9071: /\k{}/
9072: Failed: subpattern name expected at offset 3
9073:
9074: /\k/
9075: Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9076:
9077: /\kabc/
9078: Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9079:
9080: /(?P=)/
9081: Failed: subpattern name expected at offset 4
9082:
9083: /(?P>)/
9084: Failed: subpattern name expected at offset 4
9085:
9086: /(?!\w)(?R)/
9087: Failed: recursive call could loop indefinitely at offset 9
9088:
9089: /(?=\w)(?R)/
9090: Failed: recursive call could loop indefinitely at offset 9
9091:
9092: /(?<!\w)(?R)/
9093: Failed: recursive call could loop indefinitely at offset 10
9094:
9095: /(?<=\w)(?R)/
9096: Failed: recursive call could loop indefinitely at offset 10
9097:
9098: /[[:foo:]]/
9099: Failed: unknown POSIX class name at offset 3
9100:
9101: /[[:1234:]]/
9102: Failed: unknown POSIX class name at offset 3
9103:
9104: /[[:f\oo:]]/
9105: Failed: unknown POSIX class name at offset 3
9106:
9107: /[[: :]]/
9108: Failed: unknown POSIX class name at offset 3
9109:
9110: /[[:...:]]/
9111: Failed: unknown POSIX class name at offset 3
9112:
9113: /[[:l\ower:]]/
9114: Failed: unknown POSIX class name at offset 3
9115:
9116: /[[:abc\:]]/
9117: Failed: unknown POSIX class name at offset 3
9118:
9119: /[abc[:x\]pqr:]]/
9120: Failed: unknown POSIX class name at offset 6
9121:
9122: /[[:a\dz:]]/
9123: Failed: unknown POSIX class name at offset 3
9124:
9125: /(^(a|b\g<-1'c))/
9126: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
9127:
9128: /^(?+1)(?<a>x|y){0}z/
9129: xzxx
9130: 0: xz
9131: yzyy
9132: 0: yz
9133: ** Failers
9134: No match
9135: xxz
9136: No match
9137:
9138: /(\3)(\1)(a)/
9139: cat
9140: No match
9141:
9142: /(\3)(\1)(a)/<JS>
9143: cat
9144: 0: a
9145: 1:
9146: 2:
9147: 3: a
9148:
9149: /TA]/
9150: The ACTA] comes
9151: 0: TA]
9152:
9153: /TA]/<JS>
9154: Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
9155:
9156: /(?2)[]a()b](abc)/
9157: Failed: reference to non-existent subpattern at offset 3
9158:
9159: /(?2)[^]a()b](abc)/
9160: Failed: reference to non-existent subpattern at offset 3
9161:
9162: /(?1)[]a()b](abc)/
9163: abcbabc
9164: 0: abcbabc
9165: 1: abc
9166: ** Failers
9167: No match
9168: abcXabc
9169: No match
9170:
9171: /(?1)[^]a()b](abc)/
9172: abcXabc
9173: 0: abcXabc
9174: 1: abc
9175: ** Failers
9176: No match
9177: abcbabc
9178: No match
9179:
9180: /(?2)[]a()b](abc)(xyz)/
9181: xyzbabcxyz
9182: 0: xyzbabcxyz
9183: 1: abc
9184: 2: xyz
9185:
9186: /(?&N)[]a(?<N>)](?<M>abc)/
9187: Failed: reference to non-existent subpattern at offset 4
9188:
9189: /(?&N)[]a(?<N>)](abc)/
9190: Failed: reference to non-existent subpattern at offset 4
9191:
9192: /a[]b/
9193: Failed: missing terminating ] for character class at offset 4
9194:
9195: /a[^]b/
9196: Failed: missing terminating ] for character class at offset 5
9197:
9198: /a[]b/<JS>
9199: ** Failers
9200: No match
9201: ab
9202: No match
9203:
9204: /a[]+b/<JS>
9205: ** Failers
9206: No match
9207: ab
9208: No match
9209:
9210: /a[]*+b/<JS>
9211: ** Failers
9212: No match
9213: ab
9214: No match
9215:
9216: /a[^]b/<JS>
9217: aXb
9218: 0: aXb
9219: a\nb
9220: 0: a\x0ab
9221: ** Failers
9222: No match
9223: ab
9224: No match
9225:
9226: /a[^]+b/<JS>
9227: aXb
9228: 0: aXb
9229: a\nX\nXb
9230: 0: a\x0aX\x0aXb
9231: ** Failers
9232: No match
9233: ab
9234: No match
9235:
9236: /a(?!)+b/
9237: Failed: nothing to repeat at offset 5
9238:
9239: /a(*FAIL)+b/
9240: Failed: nothing to repeat at offset 8
9241:
9242: /(abc|pqr|123){0}[xyz]/SI
9243: Capturing subpattern count = 1
9244: No options
9245: No first char
9246: No need char
9247: Subject length lower bound = 1
9248: Starting byte set: x y z
9249:
9250: /(?(?=.*b)b|^)/CI
9251: Capturing subpattern count = 0
9252: Options:
9253: No first char
9254: No need char
9255: adc
9256: --->adc
9257: +0 ^ (?(?=.*b)b|^)
9258: +2 ^ (?=.*b)
9259: +5 ^ .*
9260: +7 ^ ^ b
9261: +7 ^ ^ b
9262: +7 ^^ b
9263: +7 ^ b
1.1.1.4 ! misho 9264: +11 ^ ^
1.1 misho 9265: +12 ^ )
9266: +13 ^
9267: 0:
9268: abc
9269: --->abc
9270: +0 ^ (?(?=.*b)b|^)
9271: +2 ^ (?=.*b)
9272: +5 ^ .*
9273: +7 ^ ^ b
9274: +7 ^ ^ b
9275: +7 ^^ b
9276: +8 ^ ^ )
9277: +9 ^ b
9278: +0 ^ (?(?=.*b)b|^)
9279: +2 ^ (?=.*b)
9280: +5 ^ .*
9281: +7 ^ ^ b
9282: +7 ^^ b
9283: +7 ^ b
9284: +8 ^^ )
9285: +9 ^ b
9286: +10 ^^ |
9287: +13 ^^
9288: 0: b
9289:
9290: /(?(?=b).*b|^d)/I
9291: Capturing subpattern count = 0
9292: No options
9293: No first char
9294: No need char
9295:
9296: /(?(?=.*b).*b|^d)/I
9297: Capturing subpattern count = 0
9298: No options
9299: First char at start or follows newline
9300: No need char
9301:
9302: /xyz/C
9303: xyz
9304: --->xyz
9305: +0 ^ x
9306: +1 ^^ y
9307: +2 ^ ^ z
9308: +3 ^ ^
9309: 0: xyz
9310: abcxyz
9311: --->abcxyz
9312: +0 ^ x
9313: +1 ^^ y
9314: +2 ^ ^ z
9315: +3 ^ ^
9316: 0: xyz
9317: abcxyz\Y
9318: --->abcxyz
9319: +0 ^ x
9320: +0 ^ x
9321: +0 ^ x
9322: +0 ^ x
9323: +1 ^^ y
9324: +2 ^ ^ z
9325: +3 ^ ^
9326: 0: xyz
9327: ** Failers
9328: No match
9329: abc
9330: No match
9331: abc\Y
9332: --->abc
9333: +0 ^ x
9334: +0 ^ x
9335: +0 ^ x
9336: +0 ^ x
9337: No match
9338: abcxypqr
9339: No match
9340: abcxypqr\Y
9341: --->abcxypqr
9342: +0 ^ x
9343: +0 ^ x
9344: +0 ^ x
9345: +0 ^ x
9346: +1 ^^ y
9347: +2 ^ ^ z
9348: +0 ^ x
9349: +0 ^ x
9350: +0 ^ x
9351: +0 ^ x
9352: +0 ^ x
9353: No match
9354:
9355: /(*NO_START_OPT)xyz/C
9356: abcxyz
9357: --->abcxyz
9358: +15 ^ x
9359: +15 ^ x
9360: +15 ^ x
9361: +15 ^ x
9362: +16 ^^ y
9363: +17 ^ ^ z
9364: +18 ^ ^
9365: 0: xyz
9366:
9367: /xyz/CY
9368: abcxyz
9369: --->abcxyz
9370: +0 ^ x
9371: +0 ^ x
9372: +0 ^ x
9373: +0 ^ x
9374: +1 ^^ y
9375: +2 ^ ^ z
9376: +3 ^ ^
9377: 0: xyz
9378:
9379: /^"((?(?=[a])[^"])|b)*"$/C
9380: "ab"
9381: --->"ab"
9382: +0 ^ ^
9383: +1 ^ "
9384: +2 ^^ ((?(?=[a])[^"])|b)*
9385: +3 ^^ (?(?=[a])[^"])
9386: +5 ^^ (?=[a])
9387: +8 ^^ [a]
9388: +11 ^ ^ )
9389: +12 ^^ [^"]
9390: +16 ^ ^ )
9391: +17 ^ ^ |
9392: +3 ^ ^ (?(?=[a])[^"])
9393: +5 ^ ^ (?=[a])
9394: +8 ^ ^ [a]
1.1.1.4 ! misho 9395: +17 ^ ^ |
1.1 misho 9396: +21 ^ ^ "
9397: +18 ^ ^ b
9398: +19 ^ ^ )
9399: +3 ^ ^ (?(?=[a])[^"])
9400: +5 ^ ^ (?=[a])
9401: +8 ^ ^ [a]
1.1.1.4 ! misho 9402: +17 ^ ^ |
1.1 misho 9403: +21 ^ ^ "
9404: +22 ^ ^ $
9405: +23 ^ ^
9406: 0: "ab"
9407: 1:
9408:
9409: /^"((?(?=[a])[^"])|b)*"$/
9410: "ab"
9411: 0: "ab"
9412: 1:
9413:
9414: /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9415: Failed: reference to non-existent subpattern at offset 5
9416:
9417: /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9418: XYabcdY
9419: 0: XYabcdY
9420: 1: a
9421: 2: b
9422: 3: c
9423: 4: d
9424: 5: Y
9425:
9426: /Xa{2,4}b/
9427: X\P
9428: Partial match: X
9429: Xa\P
9430: Partial match: Xa
9431: Xaa\P
9432: Partial match: Xaa
9433: Xaaa\P
9434: Partial match: Xaaa
9435: Xaaaa\P
9436: Partial match: Xaaaa
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: /X\d{2,4}b/
9463: X\P
9464: Partial match: X
9465: X3\P
9466: Partial match: X3
9467: X33\P
9468: Partial match: X33
9469: X333\P
9470: Partial match: X333
9471: X3333\P
9472: Partial match: X3333
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: Xa\P
9502: Partial match: Xa
9503: Xaa\P
9504: Partial match: Xaa
9505: Xaaa\P
9506: Partial match: Xaaa
9507: Xaaaa\P
9508: Partial match: Xaaaa
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[abc]{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[^a]{2,4}b/
9571: X\P
9572: Partial match: X
9573: Xz\P
9574: Partial match: Xz
9575: Xzz\P
9576: Partial match: Xzz
9577: Xzzz\P
9578: Partial match: Xzzz
9579: Xzzzz\P
9580: Partial match: Xzzzz
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: /(Y)X\1{2,4}b/
9607: YX\P
9608: Partial match: YX
9609: YXY\P
9610: Partial match: YXY
9611: YXYY\P
9612: Partial match: YXYY
9613: YXYYY\P
9614: Partial match: YXYYY
9615: YXYYYY\P
9616: Partial match: YXYYYY
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: /\++\KZ|\d+X|9+Y/
9643: ++++123999\P
9644: Partial match: 123999
9645: ++++123999Y\P
9646: 0: 999Y
9647: ++++Z1234\P
9648: 0: Z
9649:
9650: /Z(*F)/
9651: Z\P
9652: No match
9653: ZA\P
9654: No match
9655:
9656: /Z(?!)/
9657: Z\P
9658: No match
9659: ZA\P
9660: No match
9661:
9662: /dog(sbody)?/
9663: dogs\P
9664: 0: dog
9665: dogs\P\P
9666: Partial match: dogs
9667:
9668: /dog(sbody)??/
9669: dogs\P
9670: 0: dog
9671: dogs\P\P
9672: 0: dog
9673:
9674: /dog|dogsbody/
9675: dogs\P
9676: 0: dog
9677: dogs\P\P
9678: 0: dog
9679:
9680: /dogsbody|dog/
9681: dogs\P
9682: 0: dog
9683: dogs\P\P
9684: Partial match: dogs
9685:
9686: /\bthe cat\b/
9687: the cat\P
9688: 0: the cat
9689: the cat\P\P
9690: Partial match: the cat
9691:
9692: /abc/
9693: abc\P
9694: 0: abc
9695: abc\P\P
9696: 0: abc
9697:
9698: /abc\K123/
9699: xyzabc123pqr
9700: 0: 123
9701: xyzabc12\P
9702: Partial match: abc12
9703: xyzabc12\P\P
9704: Partial match: abc12
9705:
9706: /(?<=abc)123/
9707: xyzabc123pqr
9708: 0: 123
9709: xyzabc12\P
1.1.1.4 ! misho 9710: Partial match at offset 6: abc12
1.1 misho 9711: xyzabc12\P\P
1.1.1.4 ! misho 9712: Partial match at offset 6: abc12
1.1 misho 9713:
9714: /\babc\b/
9715: +++abc+++
9716: 0: abc
9717: +++ab\P
1.1.1.4 ! misho 9718: Partial match at offset 3: +ab
1.1 misho 9719: +++ab\P\P
1.1.1.4 ! misho 9720: Partial match at offset 3: +ab
1.1 misho 9721:
9722: /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9723: ------------------------------------------------------------------
9724: Bra
9725: Recurse
9726: Recurse
9727: Cond
9728: Cond def
9729: CBra 1
9730: <
9731: [^m]
9732: [^>]
9733: >
9734: [^<]
9735: Ket
9736: CBra 2
9737: \w*+
9738: Ket
9739: Ket
9740: Ket
9741: End
9742: ------------------------------------------------------------------
9743:
9744: /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9745: ------------------------------------------------------------------
9746: Bra
9747: Recurse
9748: Recurse
9749: Cond
9750: Cond def
9751: CBra 1
9752: <
9753: [\x00-/:-\xff] (neg)
9754: [^>]
9755: >
9756: [^<]
9757: Ket
9758: CBra 2
9759: \w*+
9760: Ket
9761: Ket
9762: Ket
9763: End
9764: ------------------------------------------------------------------
9765:
9766: /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9767: ------------------------------------------------------------------
9768: Bra
9769: CBra 1
9770: ab
9771: Ket
9772: CBra 2
9773: x
9774: CBra 3
9775: y
9776: Ket
9777: z
9778: CBra 4
9779: cd
9780: Close 4
9781: Close 2
9782: *ACCEPT
9783: Ket
9784: Ket
9785: pq
9786: Ket
9787: End
9788: ------------------------------------------------------------------
9789:
9790: /abc\K/+
9791: abcdef
9792: 0:
9793: 0+ def
9794: abcdef\N\N
9795: 0:
9796: 0+ def
9797: xyzabcdef\N\N
9798: 0:
9799: 0+ def
9800: ** Failers
9801: No match
9802: abcdef\N
9803: No match
9804: xyzabcdef\N
9805: No match
9806:
9807: /^(?:(?=abc)|abc\K)/+
9808: abcdef
9809: 0:
9810: 0+ abcdef
9811: abcdef\N\N
9812: 0:
9813: 0+ def
9814: ** Failers
9815: No match
9816: abcdef\N
9817: No match
9818:
9819: /a?b?/+
9820: xyz
9821: 0:
9822: 0+ xyz
9823: xyzabc
9824: 0:
9825: 0+ xyzabc
9826: xyzabc\N
9827: 0: ab
9828: 0+ c
9829: xyzabc\N\N
9830: 0:
9831: 0+ yzabc
9832: xyz\N\N
9833: 0:
9834: 0+ yz
9835: ** Failers
9836: 0:
9837: 0+ ** Failers
9838: xyz\N
9839: No match
9840:
9841: /^a?b?/+
9842: xyz
9843: 0:
9844: 0+ xyz
9845: xyzabc
9846: 0:
9847: 0+ xyzabc
9848: ** Failers
9849: 0:
9850: 0+ ** Failers
9851: xyzabc\N
9852: No match
9853: xyzabc\N\N
9854: No match
9855: xyz\N\N
9856: No match
9857: xyz\N
9858: No match
9859:
9860: /^(?<name>a|b\g<name>c)/
9861: aaaa
9862: 0: a
9863: 1: a
9864: bacxxx
9865: 0: bac
9866: 1: bac
9867: bbaccxxx
9868: 0: bbacc
9869: 1: bbacc
9870: bbbacccxx
9871: 0: bbbaccc
9872: 1: bbbaccc
9873:
9874: /^(?<name>a|b\g'name'c)/
9875: aaaa
9876: 0: a
9877: 1: a
9878: bacxxx
9879: 0: bac
9880: 1: bac
9881: bbaccxxx
9882: 0: bbacc
9883: 1: bbacc
9884: bbbacccxx
9885: 0: bbbaccc
9886: 1: bbbaccc
9887:
9888: /^(a|b\g<1>c)/
9889: aaaa
9890: 0: a
9891: 1: a
9892: bacxxx
9893: 0: bac
9894: 1: bac
9895: bbaccxxx
9896: 0: bbacc
9897: 1: bbacc
9898: bbbacccxx
9899: 0: bbbaccc
9900: 1: bbbaccc
9901:
9902: /^(a|b\g'1'c)/
9903: aaaa
9904: 0: a
9905: 1: a
9906: bacxxx
9907: 0: bac
9908: 1: bac
9909: bbaccxxx
9910: 0: bbacc
9911: 1: bbacc
9912: bbbacccxx
9913: 0: bbbaccc
9914: 1: bbbaccc
9915:
9916: /^(a|b\g'-1'c)/
9917: aaaa
9918: 0: a
9919: 1: a
9920: bacxxx
9921: 0: bac
9922: 1: bac
9923: bbaccxxx
9924: 0: bbacc
9925: 1: bbacc
9926: bbbacccxx
9927: 0: bbbaccc
9928: 1: bbbaccc
9929:
9930: /(^(a|b\g<-1>c))/
9931: aaaa
9932: 0: a
9933: 1: a
9934: 2: a
9935: bacxxx
9936: 0: bac
9937: 1: bac
9938: 2: bac
9939: bbaccxxx
9940: 0: bbacc
9941: 1: bbacc
9942: 2: bbacc
9943: bbbacccxx
9944: 0: bbbaccc
9945: 1: bbbaccc
9946: 2: bbbaccc
9947:
9948: /(?-i:\g<name>)(?i:(?<name>a))/
9949: XaaX
9950: 0: aa
9951: 1: a
9952: XAAX
9953: 0: AA
9954: 1: A
9955:
9956: /(?i:\g<name>)(?-i:(?<name>a))/
9957: XaaX
9958: 0: aa
9959: 1: a
9960: ** Failers
9961: No match
9962: XAAX
9963: No match
9964:
9965: /(?-i:\g<+1>)(?i:(a))/
9966: XaaX
9967: 0: aa
9968: 1: a
9969: XAAX
9970: 0: AA
9971: 1: A
9972:
9973: /(?=(?<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>\})\}))\{/
9974:
9975: /(?<n>a|b|c)\g<n>*/
9976: abc
9977: 0: abc
9978: 1: a
9979: accccbbb
9980: 0: accccbbb
9981: 1: a
9982:
9983: /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
9984: XYabcdY
9985: 0: XYabcdY
9986: 1: a
9987: 2: b
9988: 3: <unset>
9989: 4: <unset>
9990: 5: c
9991: 6: d
9992: 7: Y
9993:
9994: /(?<=b(?1)|zzz)(a)/
9995: xbaax
9996: 0: a
9997: 1: a
9998: xzzzax
9999: 0: a
10000: 1: a
10001:
10002: /(a)(?<=b\1)/
10003: Failed: lookbehind assertion is not fixed length at offset 10
10004:
10005: /(a)(?<=b+(?1))/
10006: Failed: lookbehind assertion is not fixed length at offset 13
10007:
10008: /(a+)(?<=b(?1))/
10009: Failed: lookbehind assertion is not fixed length at offset 14
10010:
10011: /(a(?<=b(?1)))/
10012: Failed: lookbehind assertion is not fixed length at offset 13
10013:
10014: /(?<=b(?1))xyz/
10015: Failed: reference to non-existent subpattern at offset 8
10016:
10017: /(?<=b(?1))xyz(b+)pqrstuvew/
10018: Failed: lookbehind assertion is not fixed length at offset 26
10019:
10020: /(a|bc)\1/SI
10021: Capturing subpattern count = 1
10022: Max back reference = 1
10023: No options
10024: No first char
10025: No need char
10026: Subject length lower bound = 2
10027: Starting byte set: a b
10028:
10029: /(a|bc)\1{2,3}/SI
10030: Capturing subpattern count = 1
10031: Max back reference = 1
10032: No options
10033: No first char
10034: No need char
10035: Subject length lower bound = 3
10036: Starting byte set: a b
10037:
10038: /(a|bc)(?1)/SI
10039: Capturing subpattern count = 1
10040: No options
10041: No first char
10042: No need char
10043: Subject length lower bound = 2
10044: Starting byte set: a b
10045:
10046: /(a|b\1)(a|b\1)/SI
10047: Capturing subpattern count = 2
10048: Max back reference = 1
10049: No options
10050: No first char
10051: No need char
10052: Subject length lower bound = 2
10053: Starting byte set: a b
10054:
10055: /(a|b\1){2}/SI
10056: Capturing subpattern count = 1
10057: Max back reference = 1
10058: No options
10059: No first char
10060: No need char
10061: Subject length lower bound = 2
10062: Starting byte set: a b
10063:
10064: /(a|bbbb\1)(a|bbbb\1)/SI
10065: Capturing subpattern count = 2
10066: Max back reference = 1
10067: No options
10068: No first char
10069: No need char
10070: Subject length lower bound = 2
10071: Starting byte set: a b
10072:
10073: /(a|bbbb\1){2}/SI
10074: Capturing subpattern count = 1
10075: Max back reference = 1
10076: No options
10077: No first char
10078: No need char
10079: Subject length lower bound = 2
10080: Starting byte set: a b
10081:
10082: /^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
10083: Capturing subpattern count = 1
10084: Options: anchored
10085: No first char
10086: Need char = ':'
10087: Subject length lower bound = 22
10088: No set of starting bytes
10089:
10090: /<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
10091: Capturing subpattern count = 11
10092: Options: caseless dotall
10093: First char = '<'
10094: Need char = '>'
10095: Subject length lower bound = 47
10096: No set of starting bytes
10097:
10098: "(?>.*/)foo"SI
10099: Capturing subpattern count = 0
10100: No options
1.1.1.4 ! misho 10101: No first char
1.1 misho 10102: Need char = 'o'
10103: Subject length lower bound = 4
10104: No set of starting bytes
10105:
10106: /(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /xSI
10107: Capturing subpattern count = 0
10108: Options: extended
10109: No first char
10110: Need char = '-'
10111: Subject length lower bound = 8
10112: No set of starting bytes
10113:
10114: /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10115: Capturing subpattern count = 1
10116: Options: caseless
10117: No first char
10118: No need char
10119: Subject length lower bound = 1
10120: Starting byte set: A B C a b c
10121:
10122: /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10123: Capturing subpattern count = 0
10124: No options
10125: No first char
10126: Need char = 'b'
10127: Subject length lower bound = 41
10128: Starting byte set: c d
10129:
10130: /<a[\s]+href[\s]*=[\s]* # find <a href=
10131: ([\"\'])? # find single or double quote
10132: (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching
10133: # quote, otherwise match up to next space
10134: /isxSI
10135: Capturing subpattern count = 3
10136: Max back reference = 1
10137: Options: caseless extended dotall
10138: First char = '<'
10139: Need char = '='
10140: Subject length lower bound = 9
10141: No set of starting bytes
10142:
10143: /^(?!:) # colon disallowed at start
10144: (?: # start of item
10145: (?: [0-9a-f]{1,4} | # 1-4 hex digits or
10146: (?(1)0 | () ) ) # if null previously matched, fail; else null
10147: : # followed by colon
10148: ){1,7} # end item; 1-7 of them required
10149: [0-9a-f]{1,4} $ # final hex number at end of string
10150: (?(1)|.) # check that there was an empty component
10151: /xiIS
10152: Capturing subpattern count = 1
10153: Options: anchored caseless extended
10154: No first char
10155: Need char = ':'
10156: Subject length lower bound = 2
10157: No set of starting bytes
10158:
10159: /(?|(?<a>A)|(?<a>B))/I
10160: Capturing subpattern count = 1
10161: Named capturing subpatterns:
10162: a 1
10163: a 1
10164: No options
10165: No first char
10166: No need char
10167: AB\Ca
10168: 0: A
10169: 1: A
10170: C A (1) a
10171: BA\Ca
10172: 0: B
10173: 1: B
10174: C B (1) a
10175:
10176: /(?|(?<a>A)|(?<b>B))/
10177: Failed: different names for subpatterns of the same number are not allowed at offset 15
10178:
10179: /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10180: b(?<quote> (?<apostrophe>')|(?<realquote>")) )
10181: (?('quote')[a-z]+|[0-9]+)/JIx
10182: Capturing subpattern count = 6
10183: Named capturing subpatterns:
10184: apostrophe 2
10185: apostrophe 5
10186: quote 1
10187: quote 4
10188: realquote 3
10189: realquote 6
10190: Options: extended dupnames
10191: No first char
10192: No need char
10193: a"aaaaa
10194: 0: a"aaaaa
10195: 1: "
10196: 2: <unset>
10197: 3: "
10198: b"aaaaa
10199: 0: b"aaaaa
10200: 1: <unset>
10201: 2: <unset>
10202: 3: <unset>
10203: 4: "
10204: 5: <unset>
10205: 6: "
10206: ** Failers
10207: No match
10208: b"11111
10209: No match
10210: a"11111
10211: No match
10212:
10213: /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10214: ------------------------------------------------------------------
10215: Bra
10216: ^
10217: Bra
10218: CBra 1
10219: a
10220: Ket
10221: CBra 2
10222: b
10223: Ket
10224: CBra 3
10225: c
10226: Ket
10227: CBra 4
10228: d
10229: Ket
10230: Alt
10231: CBra 1
10232: e
10233: Ket
10234: Ket
10235: Cond
10236: 4 Cond nref
10237: X
10238: Alt
10239: Y
10240: Ket
10241: Ket
10242: End
10243: ------------------------------------------------------------------
10244: Capturing subpattern count = 4
10245: Named capturing subpatterns:
10246: D 4
10247: D 1
10248: Options: anchored extended dupnames
10249: No first char
10250: No need char
10251: abcdX
10252: 0: abcdX
10253: 1: a
10254: 2: b
10255: 3: c
10256: 4: d
10257: eX
10258: 0: eX
10259: 1: e
10260: ** Failers
10261: No match
10262: abcdY
10263: No match
10264: ey
10265: No match
10266:
10267: /(?<A>a) (b)(c) (?<A>d (?(R&A)$ | (?4)) )/JDZx
10268: ------------------------------------------------------------------
10269: Bra
10270: CBra 1
10271: a
10272: Ket
10273: CBra 2
10274: b
10275: Ket
10276: CBra 3
10277: c
10278: Ket
10279: CBra 4
10280: d
10281: Cond
10282: Cond nrecurse 1
10283: $
10284: Alt
10285: Recurse
10286: Ket
10287: Ket
10288: Ket
10289: End
10290: ------------------------------------------------------------------
10291: Capturing subpattern count = 4
10292: Named capturing subpatterns:
10293: A 1
10294: A 4
10295: Options: extended dupnames
10296: First char = 'a'
10297: Need char = 'd'
10298: abcdd
10299: 0: abcdd
10300: 1: a
10301: 2: b
10302: 3: c
10303: 4: dd
10304: ** Failers
10305: No match
10306: abcdde
10307: No match
10308:
10309: /abcd*/
10310: xxxxabcd\P
10311: 0: abcd
10312: xxxxabcd\P\P
10313: Partial match: abcd
10314:
10315: /abcd*/i
10316: xxxxabcd\P
10317: 0: abcd
10318: xxxxabcd\P\P
10319: Partial match: abcd
10320: XXXXABCD\P
10321: 0: ABCD
10322: XXXXABCD\P\P
10323: Partial match: ABCD
10324:
10325: /abc\d*/
10326: xxxxabc1\P
10327: 0: abc1
10328: xxxxabc1\P\P
10329: Partial match: abc1
10330:
10331: /(a)bc\1*/
10332: xxxxabca\P
10333: 0: abca
10334: 1: a
10335: xxxxabca\P\P
10336: Partial match: abca
10337:
10338: /abc[de]*/
10339: xxxxabcde\P
10340: 0: abcde
10341: xxxxabcde\P\P
10342: Partial match: abcde
10343:
1.1.1.4 ! misho 10344: /-- This is not in the Perl-compatible test because Perl seems currently to be
1.1 misho 10345: broken and not behaving as specified in that it *does* bumpalong after
10346: hitting (*COMMIT). --/
10347:
10348: /(?1)(A(*COMMIT)|B)D/
10349: ABD
10350: 0: ABD
10351: 1: B
10352: XABD
10353: 0: ABD
10354: 1: B
10355: BAD
10356: 0: BAD
10357: 1: A
10358: ABXABD
10359: 0: ABD
10360: 1: B
10361: ** Failers
10362: No match
10363: ABX
10364: No match
10365: BAXBAD
10366: No match
10367:
10368: /(\3)(\1)(a)/<JS>
10369: cat
10370: 0: a
10371: 1:
10372: 2:
10373: 3: a
10374:
10375: /(\3)(\1)(a)/SI<JS>
10376: Capturing subpattern count = 3
10377: Max back reference = 3
10378: Options:
10379: No first char
10380: Need char = 'a'
10381: Subject length lower bound = 1
10382: No set of starting bytes
10383: cat
10384: 0: a
10385: 1:
10386: 2:
10387: 3: a
10388:
10389: /(\3)(\1)(a)/SI
10390: Capturing subpattern count = 3
10391: Max back reference = 3
10392: No options
10393: No first char
10394: Need char = 'a'
10395: Subject length lower bound = 3
10396: No set of starting bytes
10397: cat
10398: No match
10399:
10400: /i(?(DEFINE)(?<s>a))/SI
10401: Capturing subpattern count = 1
10402: Named capturing subpatterns:
10403: s 1
10404: No options
10405: First char = 'i'
10406: No need char
10407: Subject length lower bound = 1
10408: No set of starting bytes
10409: i
10410: 0: i
10411:
10412: /()i(?(1)a)/SI
10413: Capturing subpattern count = 1
10414: No options
10415: No first char
10416: Need char = 'i'
10417: Subject length lower bound = 1
10418: Starting byte set: i
10419: ia
10420: 0: ia
10421: 1:
10422:
10423: /(?i)a(?-i)b|c/BZ
10424: ------------------------------------------------------------------
10425: Bra
10426: /i a
10427: b
10428: Alt
10429: c
10430: Ket
10431: End
10432: ------------------------------------------------------------------
10433: XabX
10434: 0: ab
10435: XAbX
10436: 0: Ab
10437: CcC
10438: 0: c
10439: ** Failers
10440: No match
10441: XABX
10442: No match
10443:
10444: /(?i)a(?s)b|c/BZ
10445: ------------------------------------------------------------------
10446: Bra
10447: /i ab
10448: Alt
10449: /i c
10450: Ket
10451: End
10452: ------------------------------------------------------------------
10453:
10454: /(?i)a(?s-i)b|c/BZ
10455: ------------------------------------------------------------------
10456: Bra
10457: /i a
10458: b
10459: Alt
10460: c
10461: Ket
10462: End
10463: ------------------------------------------------------------------
10464:
10465: /^(ab(c\1)d|x){2}$/BZ
10466: ------------------------------------------------------------------
10467: Bra
10468: ^
10469: Once
10470: CBra 1
10471: ab
10472: CBra 2
10473: c
10474: \1
10475: Ket
10476: d
10477: Alt
10478: x
10479: Ket
10480: Ket
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: $
10494: Ket
10495: End
10496: ------------------------------------------------------------------
10497: xabcxd
10498: 0: xabcxd
10499: 1: abcxd
10500: 2: cx
10501:
10502: /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10503: ------------------------------------------------------------------
10504: Bra
10505: ^
10506: Braposzero
10507: SBraPos
10508: Recurse
10509: KetRpos
10510: Cond
10511: Cond def
10512: CBra 1
10513: Any
10514: Ket
10515: Ket
10516: $
10517: Ket
10518: End
10519: ------------------------------------------------------------------
10520:
10521: /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10522: ------------------------------------------------------------------
10523: Bra
10524: ^
10525: Brazero
10526: Once
10527: Recurse
10528: KetRmax
10529: Cond
10530: Cond def
10531: CBra 1
10532: Any
10533: Ket
10534: Ket
10535: $
10536: Ket
10537: End
10538: ------------------------------------------------------------------
10539:
1.1.1.4 ! misho 10540: / -- This one is here because Perl gives the match as "b" rather than "ab". I
1.1 misho 10541: believe this to be a Perl bug. --/
10542:
10543: /(?>a\Kb)z|(ab)/
10544: ab
10545: 0: ab
10546: 1: ab
10547:
10548: /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10549: Failed: recursive call could loop indefinitely at offset 31
10550:
10551: /abc(*MARK:)pqr/
10552: Failed: (*MARK) must have an argument at offset 10
10553:
10554: /abc(*:)pqr/
10555: Failed: (*MARK) must have an argument at offset 6
10556:
10557: /abc(*FAIL:123)xyz/
10558: Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10559:
10560: /--- This should, and does, fail. In Perl, it does not, which I think is a
10561: bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10562:
10563: /A(*COMMIT)B/+K
10564: ACABX
10565: No match
10566:
1.1.1.4 ! misho 10567: /--- These should be different, but in Perl they are not, which I think
1.1 misho 10568: is a bug in Perl. ---/
10569:
10570: /A(*THEN)B|A(*THEN)C/K
10571: AC
10572: 0: AC
10573:
10574: /A(*PRUNE)B|A(*PRUNE)C/K
10575: AC
10576: No match
10577:
10578: /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10579: though PCRE does. ---/
10580:
10581: /^A(*:A)B|^X(*:A)Y/K
10582: ** Failers
10583: No match
10584: XAQQ
10585: No match, mark = A
10586:
10587: /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10588: optimizations defeat this. So does the PCRE optimization unless we disable it
10589: with \Y. ---/
10590:
10591: /(*COMMIT)ABC/
10592: ABCDEFG
10593: 0: ABC
10594: ** Failers
10595: No match
10596: DEFGABC\Y
10597: No match
10598:
10599: /^(ab (c+(*THEN)cd) | xyz)/x
10600: abcccd
10601: No match
10602:
10603: /^(ab (c+(*PRUNE)cd) | xyz)/x
10604: abcccd
10605: No match
10606:
10607: /^(ab (c+(*FAIL)cd) | xyz)/x
10608: abcccd
10609: No match
10610:
1.1.1.4 ! misho 10611: /--- Perl gets some of these wrong ---/
1.1 misho 10612:
10613: /(?>.(*ACCEPT))*?5/
10614: abcde
10615: 0: a
10616:
10617: /(.(*ACCEPT))*?5/
10618: abcde
10619: 0: a
10620: 1: a
10621:
10622: /(.(*ACCEPT))5/
10623: abcde
10624: 0: a
10625: 1: a
10626:
10627: /(.(*ACCEPT))*5/
10628: abcde
10629: 0: a
10630: 1: a
10631:
10632: /A\NB./BZ
10633: ------------------------------------------------------------------
10634: Bra
10635: A
10636: Any
10637: B
10638: Any
10639: Ket
10640: End
10641: ------------------------------------------------------------------
10642: ACBD
10643: 0: ACBD
10644: *** Failers
10645: No match
10646: A\nB
10647: No match
10648: ACB\n
10649: No match
10650:
10651: /A\NB./sBZ
10652: ------------------------------------------------------------------
10653: Bra
10654: A
10655: Any
10656: B
10657: AllAny
10658: Ket
10659: End
10660: ------------------------------------------------------------------
10661: ACBD
10662: 0: ACBD
10663: ACB\n
10664: 0: ACB\x0a
10665: *** Failers
10666: No match
10667: A\nB
10668: No match
10669:
10670: /A\NB/<crlf>
10671: A\nB
10672: 0: A\x0aB
10673: A\rB
10674: 0: A\x0dB
10675: ** Failers
10676: No match
10677: A\r\nB
10678: No match
10679:
10680: /\R+b/BZ
10681: ------------------------------------------------------------------
10682: Bra
10683: \R++
10684: b
10685: Ket
10686: End
10687: ------------------------------------------------------------------
10688:
10689: /\R+\n/BZ
10690: ------------------------------------------------------------------
10691: Bra
10692: \R+
10693: \x0a
10694: Ket
10695: End
10696: ------------------------------------------------------------------
10697:
10698: /\R+\d/BZ
10699: ------------------------------------------------------------------
10700: Bra
10701: \R++
10702: \d
10703: Ket
10704: End
10705: ------------------------------------------------------------------
10706:
10707: /\d*\R/BZ
10708: ------------------------------------------------------------------
10709: Bra
10710: \d*+
10711: \R
10712: Ket
10713: End
10714: ------------------------------------------------------------------
10715:
10716: /\s*\R/BZ
10717: ------------------------------------------------------------------
10718: Bra
1.1.1.3 misho 10719: \s*
10720: \R
10721: Ket
10722: End
10723: ------------------------------------------------------------------
10724: \x20\x0a
10725: 0: \x0a
10726: \x20\x0d
10727: 0: \x0d
10728: \x20\x0d\x0a
10729: 0: \x0d\x0a
10730:
10731: /\S*\R/BZ
10732: ------------------------------------------------------------------
10733: Bra
10734: \S*+
10735: \R
10736: Ket
10737: End
10738: ------------------------------------------------------------------
10739: a\x0a
10740: 0: a\x0a
10741:
10742: /X\h*\R/BZ
10743: ------------------------------------------------------------------
10744: Bra
10745: X
10746: \h*+
10747: \R
10748: Ket
10749: End
10750: ------------------------------------------------------------------
10751: X\x20\x0a
10752: 0: X \x0a
10753:
10754: /X\H*\R/BZ
10755: ------------------------------------------------------------------
10756: Bra
10757: X
10758: \H*
1.1 misho 10759: \R
10760: Ket
10761: End
10762: ------------------------------------------------------------------
1.1.1.3 misho 10763: X\x0d\x0a
10764: 0: X\x0d\x0a
10765:
10766: /X\H+\R/BZ
10767: ------------------------------------------------------------------
10768: Bra
10769: X
10770: \H+
10771: \R
10772: Ket
10773: End
10774: ------------------------------------------------------------------
10775: X\x0d\x0a
10776: 0: X\x0d\x0a
10777:
10778: /X\H++\R/BZ
10779: ------------------------------------------------------------------
10780: Bra
10781: X
10782: \H++
10783: \R
10784: Ket
10785: End
10786: ------------------------------------------------------------------
10787: X\x0d\x0a
10788: No match
1.1 misho 10789:
10790: /(?<=abc)def/
10791: abc\P\P
1.1.1.4 ! misho 10792: Partial match at offset 3: abc
1.1 misho 10793:
10794: /abc$/
10795: abc
10796: 0: abc
10797: abc\P
10798: 0: abc
10799: abc\P\P
10800: Partial match: abc
10801:
10802: /abc$/m
10803: abc
10804: 0: abc
10805: abc\n
10806: 0: abc
10807: abc\P\P
10808: Partial match: abc
10809: abc\n\P\P
10810: 0: abc
10811: abc\P
10812: 0: abc
10813: abc\n\P
10814: 0: abc
10815:
10816: /abc\z/
10817: abc
10818: 0: abc
10819: abc\P
10820: 0: abc
10821: abc\P\P
10822: Partial match: abc
10823:
10824: /abc\Z/
10825: abc
10826: 0: abc
10827: abc\P
10828: 0: abc
10829: abc\P\P
10830: Partial match: abc
10831:
10832: /abc\b/
10833: abc
10834: 0: abc
10835: abc\P
10836: 0: abc
10837: abc\P\P
10838: Partial match: abc
10839:
10840: /abc\B/
10841: abc
10842: No match
10843: abc\P
10844: Partial match: abc
10845: abc\P\P
10846: Partial match: abc
10847:
10848: /.+/
10849: abc\>0
10850: 0: abc
10851: abc\>1
10852: 0: bc
10853: abc\>2
10854: 0: c
10855: abc\>3
10856: No match
10857: abc\>4
10858: Error -24 (bad offset value)
10859: abc\>-4
10860: Error -24 (bad offset value)
10861:
10862: /^\cģ/
10863: Failed: \c must be followed by an ASCII character at offset 3
10864:
10865: /(?P<abn>(?P=abn)xxx)/BZ
10866: ------------------------------------------------------------------
10867: Bra
10868: Once
10869: CBra 1
10870: \1
10871: xxx
10872: Ket
10873: Ket
10874: Ket
10875: End
10876: ------------------------------------------------------------------
10877:
10878: /(a\1z)/BZ
10879: ------------------------------------------------------------------
10880: Bra
10881: Once
10882: CBra 1
10883: a
10884: \1
10885: z
10886: Ket
10887: Ket
10888: Ket
10889: End
10890: ------------------------------------------------------------------
10891:
10892: /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
10893: Failed: syntax error in subpattern name (missing terminator) at offset 29
10894:
10895: /(?P<abn>(?P=axn)xxx)/BZ
10896: Failed: reference to non-existent subpattern at offset 15
10897:
10898: /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
10899: ------------------------------------------------------------------
10900: Bra
10901: CBra 1
10902: \2
10903: xxx
10904: Ket
10905: CBra 2
10906: yy
10907: Ket
10908: Ket
10909: End
10910: ------------------------------------------------------------------
10911:
10912: /-- These tests are here because Perl gets the first one wrong. --/
10913:
10914: /(\R*)(.)/s
10915: \r\n
10916: 0: \x0d
10917: 1:
10918: 2: \x0d
10919: \r\r\n\n\r
10920: 0: \x0d\x0d\x0a\x0a\x0d
10921: 1: \x0d\x0d\x0a\x0a
10922: 2: \x0d
10923: \r\r\n\n\r\n
10924: 0: \x0d\x0d\x0a\x0a\x0d
10925: 1: \x0d\x0d\x0a\x0a
10926: 2: \x0d
10927:
10928: /(\R)*(.)/s
10929: \r\n
10930: 0: \x0d
10931: 1: <unset>
10932: 2: \x0d
10933: \r\r\n\n\r
10934: 0: \x0d\x0d\x0a\x0a\x0d
10935: 1: \x0a
10936: 2: \x0d
10937: \r\r\n\n\r\n
10938: 0: \x0d\x0d\x0a\x0a\x0d
10939: 1: \x0a
10940: 2: \x0d
10941:
10942: /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
10943: \r\n
10944: 0: \x0d
10945: 1:
10946: 2: \x0d
10947: \r\r\n\n\r
10948: 0: \x0d\x0d\x0a\x0a\x0d
10949: 1: \x0d\x0d\x0a\x0a
10950: 2: \x0d
10951: \r\r\n\n\r\n
10952: 0: \x0d\x0d\x0a\x0a\x0d
10953: 1: \x0d\x0d\x0a\x0a
10954: 2: \x0d
10955:
10956: /-- --/
10957:
10958: /^abc$/BZ
10959: ------------------------------------------------------------------
10960: Bra
10961: ^
10962: abc
10963: $
10964: Ket
10965: End
10966: ------------------------------------------------------------------
10967:
10968: /^abc$/BZm
10969: ------------------------------------------------------------------
10970: Bra
10971: /m ^
10972: abc
10973: /m $
10974: Ket
10975: End
10976: ------------------------------------------------------------------
10977:
10978: /^(a)*+(\w)/S
10979: aaaaX
10980: 0: aaaaX
10981: 1: a
10982: 2: X
10983: ** Failers
10984: No match
10985: aaaa
10986: No match
10987:
10988: /^(?:a)*+(\w)/S
10989: aaaaX
10990: 0: aaaaX
10991: 1: X
10992: ** Failers
10993: No match
10994: aaaa
10995: No match
10996:
10997: /(a)++1234/SDZ
10998: ------------------------------------------------------------------
10999: Bra
11000: CBraPos 1
11001: a
11002: KetRpos
11003: 1234
11004: Ket
11005: End
11006: ------------------------------------------------------------------
11007: Capturing subpattern count = 1
11008: No options
11009: First char = 'a'
11010: Need char = '4'
11011: Subject length lower bound = 5
11012: No set of starting bytes
11013:
11014: /([abc])++1234/SI
11015: Capturing subpattern count = 1
11016: No options
11017: No first char
11018: Need char = '4'
11019: Subject length lower bound = 5
11020: Starting byte set: a b c
11021:
11022: /(?<=(abc)+)X/
11023: Failed: lookbehind assertion is not fixed length at offset 10
11024:
11025: /(^ab)/I
11026: Capturing subpattern count = 1
11027: Options: anchored
11028: No first char
11029: No need char
11030:
11031: /(^ab)++/I
11032: Capturing subpattern count = 1
11033: Options: anchored
11034: No first char
11035: No need char
11036:
11037: /(^ab|^)+/I
11038: Capturing subpattern count = 1
11039: Options: anchored
11040: No first char
11041: No need char
11042:
11043: /(^ab|^)++/I
11044: Capturing subpattern count = 1
11045: Options: anchored
11046: No first char
11047: No need char
11048:
11049: /(?:^ab)/I
11050: Capturing subpattern count = 0
11051: Options: anchored
11052: No first char
11053: No need char
11054:
11055: /(?:^ab)++/I
11056: Capturing subpattern count = 0
11057: Options: anchored
11058: No first char
11059: No need char
11060:
11061: /(?:^ab|^)+/I
11062: Capturing subpattern count = 0
11063: Options: anchored
11064: No first char
11065: No need char
11066:
11067: /(?:^ab|^)++/I
11068: Capturing subpattern count = 0
11069: Options: anchored
11070: No first char
11071: No need char
11072:
11073: /(.*ab)/I
11074: Capturing subpattern count = 1
11075: No options
11076: First char at start or follows newline
11077: Need char = 'b'
11078:
11079: /(.*ab)++/I
11080: Capturing subpattern count = 1
11081: No options
11082: First char at start or follows newline
11083: Need char = 'b'
11084:
11085: /(.*ab|.*)+/I
11086: Capturing subpattern count = 1
11087: No options
11088: First char at start or follows newline
11089: No need char
11090:
11091: /(.*ab|.*)++/I
11092: Capturing subpattern count = 1
11093: No options
11094: First char at start or follows newline
11095: No need char
11096:
11097: /(?:.*ab)/I
11098: Capturing subpattern count = 0
11099: No options
11100: First char at start or follows newline
11101: Need char = 'b'
11102:
11103: /(?:.*ab)++/I
11104: Capturing subpattern count = 0
11105: No options
11106: First char at start or follows newline
11107: Need char = 'b'
11108:
11109: /(?:.*ab|.*)+/I
11110: Capturing subpattern count = 0
11111: No options
11112: First char at start or follows newline
11113: No need char
11114:
11115: /(?:.*ab|.*)++/I
11116: Capturing subpattern count = 0
11117: No options
11118: First char at start or follows newline
11119: No need char
11120:
11121: /(?=a)[bcd]/I
11122: Capturing subpattern count = 0
11123: No options
11124: First char = 'a'
11125: No need char
11126:
11127: /((?=a))[bcd]/I
11128: Capturing subpattern count = 1
11129: No options
11130: First char = 'a'
11131: No need char
11132:
11133: /((?=a))+[bcd]/I
11134: Capturing subpattern count = 1
11135: No options
11136: First char = 'a'
11137: No need char
11138:
11139: /((?=a))++[bcd]/I
11140: Capturing subpattern count = 1
11141: No options
11142: First char = 'a'
11143: No need char
11144:
11145: /(?=a+)[bcd]/iI
11146: Capturing subpattern count = 0
11147: Options: caseless
11148: First char = 'a' (caseless)
11149: No need char
11150:
11151: /(?=a+?)[bcd]/iI
11152: Capturing subpattern count = 0
11153: Options: caseless
11154: First char = 'a' (caseless)
11155: No need char
11156:
11157: /(?=a++)[bcd]/iI
11158: Capturing subpattern count = 0
11159: Options: caseless
11160: First char = 'a' (caseless)
11161: No need char
11162:
11163: /(?=a{3})[bcd]/iI
11164: Capturing subpattern count = 0
11165: Options: caseless
11166: First char = 'a' (caseless)
11167: Need char = 'a' (caseless)
11168:
11169: /(abc)\1+/S
11170:
11171: /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11172:
11173: /(?1)(?:(b(*ACCEPT))){0}/
11174: b
11175: 0: b
11176:
11177: /(?1)(?:(b(*ACCEPT))){0}c/
11178: bc
11179: 0: bc
11180: ** Failers
11181: No match
11182: b
11183: No match
11184:
11185: /(?1)(?:((*ACCEPT))){0}c/
11186: c
11187: 0: c
11188: c\N
11189: 0: c
11190:
11191: /^.*?(?(?=a)a|b(*THEN)c)/
11192: ba
11193: No match
11194:
11195: /^.*?(?(?=a)a|bc)/
11196: ba
11197: 0: ba
11198:
11199: /^.*?(?(?=a)a(*THEN)b|c)/
11200: ac
11201: No match
11202:
11203: /^.*?(?(?=a)a(*THEN)b)c/
11204: ac
11205: No match
11206:
11207: /^.*?(a(*THEN)b)c/
11208: aabc
11209: No match
11210:
11211: /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11212: aabc
11213: 0: aabc
11214:
11215: /^.*?(a(*THEN)b|z)c/
11216: aabc
11217: 0: aabc
11218: 1: ab
11219:
11220: /^.*?(z|a(*THEN)b)c/
11221: aabc
11222: 0: aabc
11223: 1: ab
11224:
11225: /-- --/
11226:
11227: /-- These studied versions are here because they are not Perl-compatible; the
11228: studying means the mark is not seen. --/
11229:
11230: /(*MARK:A)(*SKIP:B)(C|X)/KS
11231: C
11232: 0: C
11233: 1: C
11234: MK: A
11235: D
11236: No match, mark = A
11237:
11238: /(*:A)A+(*SKIP:A)(B|Z)/KS
11239: AAAC
11240: No match, mark = A
11241:
11242: /-- --/
11243:
11244: "(?=a*(*ACCEPT)b)c"
11245: c
11246: 0: c
11247: c\N
11248: 0: c
11249:
11250: /(?1)c(?(DEFINE)((*ACCEPT)b))/
11251: c
11252: 0: c
11253: c\N
11254: 0: c
11255:
11256: /(?>(*ACCEPT)b)c/
11257: c
11258: 0:
11259: c\N
11260: No match
11261:
11262: /(?:(?>(a)))+a%/++
11263: %aa%
11264: 0: aa%
11265: 0+
11266: 1: a
11267: 1+ a%
11268:
11269: /(a)b|ac/++SS
11270: ac\O3
11271: 0: ac
11272: 0+
11273:
11274: /(a)(b)x|abc/++
11275: abc\O6
11276: 0: abc
11277: 0+
11278:
11279: /(a)bc|(a)(b)\2/
11280: \O3abc
11281: Matched, but too many substrings
11282: 0: abc
11283: \O4abc
11284: Matched, but too many substrings
11285: 0: abc
11286:
11287: /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11288: Capturing subpattern count = 2
11289: No options
11290: No first char
11291: No need char
11292: Subject length lower bound = 1
11293: No set of starting bytes
11294:
11295: /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11296: Capturing subpattern count = 2
11297: No options
11298: No first char
11299: No need char
11300: Subject length lower bound = 3
11301: Starting byte set: a b
11302:
11303: /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11304: Capturing subpattern count = 2
11305: No options
11306: No first char
11307: No need char
11308: Subject length lower bound = 4
11309: Starting byte set: a b
11310:
11311: /(abc)(?1)/SI
11312: Capturing subpattern count = 1
11313: No options
11314: First char = 'a'
11315: Need char = 'c'
11316: Subject length lower bound = 6
11317: No set of starting bytes
11318:
11319: /^(?>a)++/
11320: aa\M
11321: Minimum match() limit = 5
11322: Minimum match() recursion limit = 2
11323: 0: aa
11324: aaaaaaaaa\M
11325: Minimum match() limit = 12
11326: Minimum match() recursion limit = 2
11327: 0: aaaaaaaaa
11328:
11329: /(a)(?1)++/
11330: aa\M
11331: Minimum match() limit = 7
11332: Minimum match() recursion limit = 4
11333: 0: aa
11334: 1: a
11335: aaaaaaaaa\M
11336: Minimum match() limit = 21
11337: Minimum match() recursion limit = 4
11338: 0: aaaaaaaaa
11339: 1: a
11340:
11341: /(?:(foo)|(bar)|(baz))X/SS=
11342: bazfooX
11343: 0: fooX
11344: 1: foo
11345: 2: <unset>
11346: 3: <unset>
11347: foobazbarX
11348: 0: barX
11349: 1: <unset>
11350: 2: bar
11351: 3: <unset>
11352: barfooX
11353: 0: fooX
11354: 1: foo
11355: 2: <unset>
11356: 3: <unset>
11357: bazX
11358: 0: bazX
11359: 1: <unset>
11360: 2: <unset>
11361: 3: baz
11362: foobarbazX
11363: 0: bazX
11364: 1: <unset>
11365: 2: <unset>
11366: 3: baz
11367: bazfooX\O0
11368: Matched, but too many substrings
11369: bazfooX\O2
11370: Matched, but too many substrings
11371: 0: fooX
11372: bazfooX\O4
11373: Matched, but too many substrings
11374: 0: fooX
11375: 1: <unset>
11376: bazfooX\O6
11377: Matched, but too many substrings
11378: 0: fooX
11379: 1: foo
11380: 2: <unset>
11381: bazfooX\O8
11382: Matched, but too many substrings
11383: 0: fooX
11384: 1: foo
11385: 2: <unset>
11386: 3: <unset>
11387: bazfooX\O10
11388: 0: fooX
11389: 1: foo
11390: 2: <unset>
11391: 3: <unset>
11392:
11393: /(?=abc){3}abc/BZ
11394: ------------------------------------------------------------------
11395: Bra
11396: Assert
11397: abc
11398: Ket
11399: abc
11400: Ket
11401: End
11402: ------------------------------------------------------------------
11403:
11404: /(?=abc)+abc/BZ
11405: ------------------------------------------------------------------
11406: Bra
11407: Assert
11408: abc
11409: Ket
11410: abc
11411: Ket
11412: End
11413: ------------------------------------------------------------------
11414:
11415: /(?=abc)++abc/BZ
11416: ------------------------------------------------------------------
11417: Bra
11418: Assert
11419: abc
11420: Ket
11421: abc
11422: Ket
11423: End
11424: ------------------------------------------------------------------
11425:
11426: /(?=abc){0}xyz/BZ
11427: ------------------------------------------------------------------
11428: Bra
11429: Skip zero
11430: Assert
11431: abc
11432: Ket
11433: xyz
11434: Ket
11435: End
11436: ------------------------------------------------------------------
11437:
11438: /(?=(a))?./BZ
11439: ------------------------------------------------------------------
11440: Bra
11441: Brazero
11442: Assert
11443: CBra 1
11444: a
11445: Ket
11446: Ket
11447: Any
11448: Ket
11449: End
11450: ------------------------------------------------------------------
11451:
11452: /(?=(a))??./BZ
11453: ------------------------------------------------------------------
11454: Bra
11455: Braminzero
11456: Assert
11457: CBra 1
11458: a
11459: Ket
11460: Ket
11461: Any
11462: Ket
11463: End
11464: ------------------------------------------------------------------
11465:
11466: /^(?=(a)){0}b(?1)/BZ
11467: ------------------------------------------------------------------
11468: Bra
11469: ^
11470: Skip zero
11471: Assert
11472: CBra 1
11473: a
11474: Ket
11475: Ket
11476: b
11477: Recurse
11478: Ket
11479: End
11480: ------------------------------------------------------------------
11481:
11482: /(?(DEFINE)(a))?b(?1)/BZ
11483: ------------------------------------------------------------------
11484: Bra
11485: Cond
11486: Cond def
11487: CBra 1
11488: a
11489: Ket
11490: Ket
11491: b
11492: Recurse
11493: Ket
11494: End
11495: ------------------------------------------------------------------
11496:
11497: /^(?=(?1))?[az]([abc])d/BZ
11498: ------------------------------------------------------------------
11499: Bra
11500: ^
11501: Brazero
11502: Assert
11503: Recurse
11504: Ket
11505: [az]
11506: CBra 1
11507: [a-c]
11508: Ket
11509: d
11510: Ket
11511: End
11512: ------------------------------------------------------------------
11513:
11514: /^(?!a){0}\w+/BZ
11515: ------------------------------------------------------------------
11516: Bra
11517: ^
11518: Skip zero
11519: Assert not
11520: a
11521: Ket
11522: \w+
11523: Ket
11524: End
11525: ------------------------------------------------------------------
11526:
11527: /(?<=(abc))?xyz/BZ
11528: ------------------------------------------------------------------
11529: Bra
11530: Brazero
11531: AssertB
11532: Reverse
11533: CBra 1
11534: abc
11535: Ket
11536: Ket
11537: xyz
11538: Ket
11539: End
11540: ------------------------------------------------------------------
11541:
11542: /[:a[:abc]b:]/BZ
11543: ------------------------------------------------------------------
11544: Bra
11545: [:[a-c]
11546: b:]
11547: Ket
11548: End
11549: ------------------------------------------------------------------
11550:
11551: /((?2))((?1))/SS
11552: abc
11553: Error -26 (nested recursion at the same subject position)
11554:
11555: /((?(R2)a+|(?1)b))/SS
11556: aaaabcde
11557: Error -26 (nested recursion at the same subject position)
11558:
11559: /(?(R)a*(?1)|((?R))b)/SS
11560: aaaabcde
11561: Error -26 (nested recursion at the same subject position)
11562:
11563: /(a+|(?R)b)/
11564: Failed: recursive call could loop indefinitely at offset 7
11565:
11566: /^(a(*:A)(d|e(*:B))z|aeq)/C
11567: adz
11568: --->adz
11569: +0 ^ ^
11570: +1 ^ (a(*:A)(d|e(*:B))z|aeq)
11571: +2 ^ a
11572: +3 ^^ (*:A)
11573: +8 ^^ (d|e(*:B))
11574: Latest Mark: A
11575: +9 ^^ d
11576: +10 ^ ^ |
11577: +18 ^ ^ z
11578: +19 ^ ^ |
11579: +24 ^ ^
11580: 0: adz
11581: 1: adz
11582: 2: d
11583: aez
11584: --->aez
11585: +0 ^ ^
11586: +1 ^ (a(*:A)(d|e(*:B))z|aeq)
11587: +2 ^ a
11588: +3 ^^ (*:A)
11589: +8 ^^ (d|e(*:B))
11590: Latest Mark: A
11591: +9 ^^ d
11592: +11 ^^ e
11593: +12 ^ ^ (*:B)
11594: +17 ^ ^ )
11595: Latest Mark: B
11596: +18 ^ ^ z
11597: +19 ^ ^ |
11598: +24 ^ ^
11599: 0: aez
11600: 1: aez
11601: 2: e
11602: aeqwerty
11603: --->aeqwerty
11604: +0 ^ ^
11605: +1 ^ (a(*:A)(d|e(*:B))z|aeq)
11606: +2 ^ a
11607: +3 ^^ (*:A)
11608: +8 ^^ (d|e(*:B))
11609: Latest Mark: A
11610: +9 ^^ d
11611: +11 ^^ e
11612: +12 ^ ^ (*:B)
11613: +17 ^ ^ )
11614: Latest Mark: B
11615: +18 ^ ^ z
11616: +20 ^ a
11617: +21 ^^ e
11618: +22 ^ ^ q
11619: +23 ^ ^ )
11620: +24 ^ ^
11621: 0: aeq
11622: 1: aeq
11623:
11624: /.(*F)/
11625: \P\Pabc
11626: No match
11627:
11628: /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11629: Capturing subpattern count = 0
1.1.1.4 ! misho 11630: Max lookbehind = 1
1.1 misho 11631: No options
11632: First char = 't'
11633: Need char = 't'
11634: Subject length lower bound = 18
11635: No set of starting bytes
11636:
11637: /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11638: Capturing subpattern count = 0
1.1.1.4 ! misho 11639: Max lookbehind = 1
1.1 misho 11640: No options
11641: No first char
11642: No need char
11643: Subject length lower bound = 8
11644: Starting byte set: < o t u
11645:
1.1.1.4 ! misho 11646: /a(*SKIP)c|b(*ACCEPT)|/+S!I
1.1 misho 11647: Capturing subpattern count = 0
11648: No options
11649: No first char
11650: No need char
1.1.1.4 ! misho 11651: Subject length lower bound = -1
! 11652: No set of starting bytes
1.1 misho 11653: a
11654: 0:
11655: 0+
11656:
11657: /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11658: Capturing subpattern count = 0
11659: No options
11660: No first char
11661: No need char
11662: Subject length lower bound = -1
11663: Starting byte set: a b x
11664: ax
11665: 0: x
11666:
11667: 'a*(*ACCEPT)b'+
11668: \N\N
11669: No match
11670: abc\N\N
11671: 0: a
11672: 0+ bc
11673: bbb\N\N
11674: 0:
11675: 0+ bb
11676:
11677: /(*ACCEPT)a/+I
11678: Capturing subpattern count = 0
11679: No options
11680: No first char
11681: No need char
11682: bax
11683: 0:
11684: 0+ bax
11685:
11686: /z(*ACCEPT)a/+I
11687: Capturing subpattern count = 0
11688: No options
11689: First char = 'z'
11690: No need char
11691: baxzbx
11692: 0: z
11693: 0+ bx
11694:
11695: /a(?:.)*?a/ims
11696: \Mabbbbbbbbbbbbbbbbbbbbba
11697: Minimum match() limit = 65
11698: Minimum match() recursion limit = 2
11699: 0: abbbbbbbbbbbbbbbbbbbbba
11700:
11701: /a(?:.(*THEN))*?a/ims
11702: \Mabbbbbbbbbbbbbbbbbbbbba
11703: Minimum match() limit = 86
11704: Minimum match() recursion limit = 45
11705: 0: abbbbbbbbbbbbbbbbbbbbba
11706:
11707: /a(?:.(*THEN:ABC))*?a/ims
11708: \Mabbbbbbbbbbbbbbbbbbbbba
11709: Minimum match() limit = 86
11710: Minimum match() recursion limit = 45
11711: 0: abbbbbbbbbbbbbbbbbbbbba
11712:
11713: /^(?>a+)(?>(z+))\w/BZ
11714: ------------------------------------------------------------------
11715: Bra
11716: ^
11717: Once_NC
11718: a+
11719: Ket
11720: Once
11721: CBra 1
11722: z+
11723: Ket
11724: Ket
11725: \w
11726: Ket
11727: End
11728: ------------------------------------------------------------------
11729: aaaazzzzb
11730: 0: aaaazzzzb
11731: 1: zzzz
11732: ** Failers
11733: No match
11734: aazz
11735: No match
11736:
11737: /(.)(\1|a(?2))/
11738: bab
11739: 0: bab
11740: 1: b
11741: 2: ab
11742:
11743: /\1|(.)(?R)\1/
11744: cbbbc
11745: 0: cbbbc
11746: 1: c
11747:
11748: /(.)((?(1)c|a)|a(?2))/
11749: baa
11750: No match
11751:
11752: /(?P<abn>(?P=abn)xxx)/BZ
11753: ------------------------------------------------------------------
11754: Bra
11755: Once
11756: CBra 1
11757: \1
11758: xxx
11759: Ket
11760: Ket
11761: Ket
11762: End
11763: ------------------------------------------------------------------
11764:
11765: /(a\1z)/BZ
11766: ------------------------------------------------------------------
11767: Bra
11768: Once
11769: CBra 1
11770: a
11771: \1
11772: z
11773: Ket
11774: Ket
11775: Ket
11776: End
11777: ------------------------------------------------------------------
11778:
11779: /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11780: \Maabbccddee
11781: Minimum match() limit = 12
11782: Minimum match() recursion limit = 3
11783: 0: aabbccddee
11784:
11785: /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11786: \Maabbccddee
11787: Minimum match() limit = 22
11788: Minimum match() recursion limit = 21
11789: 0: aabbccddee
11790: 1: aa
11791: 2: bb
11792: 3: cc
11793: 4: dd
11794: 5: ee
11795:
11796: /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11797: \Maabbccddee
11798: Minimum match() limit = 18
11799: Minimum match() recursion limit = 13
11800: 0: aabbccddee
11801: 1: aa
11802: 2: cc
11803: 3: ee
11804:
11805: /^a\x41z/<JS>
11806: aAz
11807: 0: aAz
11808: *** Failers
11809: No match
11810: ax41z
11811: No match
11812:
11813: /^a[m\x41]z/<JS>
11814: aAz
11815: 0: aAz
11816:
11817: /^a\x1z/<JS>
11818: ax1z
11819: 0: ax1z
11820:
11821: /^a\u0041z/<JS>
11822: aAz
11823: 0: aAz
11824: *** Failers
11825: No match
11826: au0041z
11827: No match
11828:
11829: /^a[m\u0041]z/<JS>
11830: aAz
11831: 0: aAz
11832:
11833: /^a\u041z/<JS>
11834: au041z
11835: 0: au041z
11836: *** Failers
11837: No match
11838: aAz
11839: No match
11840:
11841: /^a\U0041z/<JS>
11842: aU0041z
11843: 0: aU0041z
11844: *** Failers
11845: No match
11846: aAz
11847: No match
11848:
11849: /(?(?=c)c|d)++Y/BZ
11850: ------------------------------------------------------------------
11851: Bra
11852: BraPos
11853: Cond
11854: Assert
11855: c
11856: Ket
11857: c
11858: Alt
11859: d
11860: Ket
11861: KetRpos
11862: Y
11863: Ket
11864: End
11865: ------------------------------------------------------------------
11866:
11867: /(?(?=c)c|d)*+Y/BZ
11868: ------------------------------------------------------------------
11869: Bra
11870: Braposzero
11871: BraPos
11872: Cond
11873: Assert
11874: c
11875: Ket
11876: c
11877: Alt
11878: d
11879: Ket
11880: KetRpos
11881: Y
11882: Ket
11883: End
11884: ------------------------------------------------------------------
11885:
11886: /a[\NB]c/
11887: Failed: \N is not supported in a class at offset 3
11888:
11889: /a[B-\Nc]/
11890: Failed: \N is not supported in a class at offset 5
11891:
11892: /(a)(?2){0,1999}?(b)/
11893:
11894: /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
11895:
11896: /--- This test, with something more complicated than individual letters, causes
11897: different behaviour in Perl. Perhaps it disables some optimization; no tag is
11898: passed back for the failures, whereas in PCRE there is a tag. ---/
11899:
11900: /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
11901: AABC
11902: 0: AB
11903: 1: A
11904: 2: B
11905: MK: A
11906: XXYZ
11907: 0: XXY
11908: 1: <unset>
11909: 2: <unset>
11910: 3: X
11911: 4: X
11912: 5: Y
11913: MK: B
11914: ** Failers
11915: No match
11916: XAQQ
11917: No match, mark = A
11918: XAQQXZZ
11919: No match, mark = A
11920: AXQQQ
11921: No match, mark = A
11922: AXXQQQ
11923: No match, mark = B
11924:
11925: /-- Perl doesn't give marks for these, though it does if the alternatives are
11926: replaced by single letters. --/
11927:
11928: /(b|q)(*:m)f|a(*:n)w/K
11929: aw
11930: 0: aw
11931: MK: n
11932: ** Failers
11933: No match, mark = n
11934: abc
11935: No match, mark = m
11936:
11937: /(q|b)(*:m)f|a(*:n)w/K
11938: aw
11939: 0: aw
11940: MK: n
11941: ** Failers
11942: No match, mark = n
11943: abc
11944: No match, mark = m
11945:
11946: /-- After a partial match, the behaviour is as for a failure. --/
11947:
11948: /^a(*:X)bcde/K
11949: abc\P
11950: Partial match, mark=X: abc
1.1.1.2 misho 11951:
11952: /-- These are here because Perl doesn't return a mark, except for the first --/
11953:
11954: /(?=(*:x))(q|)/K+
11955: abc
11956: 0:
11957: 0+ abc
11958: 1:
11959: MK: x
11960:
11961: /(?=(*:x))((*:y)q|)/K+
11962: abc
11963: 0:
11964: 0+ abc
11965: 1:
11966: MK: x
11967:
11968: /(?=(*:x))(?:(*:y)q|)/K+
11969: abc
11970: 0:
11971: 0+ abc
11972: MK: x
11973:
11974: /(?=(*:x))(?>(*:y)q|)/K+
11975: abc
11976: 0:
11977: 0+ abc
11978: MK: x
11979:
11980: /(?=a(*:x))(?!a(*:y)c)/K+
11981: ab
11982: 0:
11983: 0+ ab
11984: MK: x
11985:
11986: /(?=a(*:x))(?=a(*:y)c|)/K+
11987: ab
11988: 0:
11989: 0+ ab
11990: MK: x
1.1 misho 11991:
1.1.1.3 misho 11992: /(..)\1/
11993: ab\P
11994: Partial match: ab
11995: aba\P
11996: Partial match: aba
11997: abab\P
11998: 0: abab
11999: 1: ab
12000:
12001: /(..)\1/i
12002: ab\P
12003: Partial match: ab
12004: abA\P
12005: Partial match: abA
12006: aBAb\P
12007: 0: aBAb
12008: 1: aB
12009:
12010: /(..)\1{2,}/
12011: ab\P
12012: Partial match: ab
12013: aba\P
12014: Partial match: aba
12015: abab\P
12016: Partial match: abab
12017: ababa\P
12018: Partial match: ababa
12019: ababab\P
12020: 0: ababab
12021: 1: ab
12022: ababab\P\P
12023: Partial match: ababab
12024: abababa\P
12025: 0: ababab
12026: 1: ab
12027: abababa\P\P
12028: Partial match: abababa
12029:
12030: /(..)\1{2,}/i
12031: ab\P
12032: Partial match: ab
12033: aBa\P
12034: Partial match: aBa
12035: aBAb\P
12036: Partial match: aBAb
12037: AbaBA\P
12038: Partial match: AbaBA
12039: abABAb\P
12040: 0: abABAb
12041: 1: ab
12042: aBAbaB\P\P
12043: Partial match: aBAbaB
12044: abABabA\P
12045: 0: abABab
12046: 1: ab
12047: abaBABa\P\P
12048: Partial match: abaBABa
12049:
12050: /(..)\1{2,}?x/i
12051: ab\P
12052: Partial match: ab
12053: abA\P
12054: Partial match: abA
12055: aBAb\P
12056: Partial match: aBAb
12057: abaBA\P
12058: Partial match: abaBA
12059: abAbaB\P
12060: Partial match: abAbaB
12061: abaBabA\P
12062: Partial match: abaBabA
12063: abAbABaBx\P
12064: 0: abAbABaBx
12065: 1: ab
12066:
12067: /^(..)\1/
12068: aba\P
12069: Partial match: aba
12070:
12071: /^(..)\1{2,3}x/
12072: aba\P
12073: Partial match: aba
12074: ababa\P
12075: Partial match: ababa
12076: ababa\P\P
12077: Partial match: ababa
12078: abababx
12079: 0: abababx
12080: 1: ab
12081: ababababx
12082: 0: ababababx
12083: 1: ab
12084:
12085: /^(..)\1{2,3}?x/
12086: aba\P
12087: Partial match: aba
12088: ababa\P
12089: Partial match: ababa
12090: ababa\P\P
12091: Partial match: ababa
12092: abababx
12093: 0: abababx
12094: 1: ab
12095: ababababx
12096: 0: ababababx
12097: 1: ab
12098:
12099: /^(..)(\1{2,3})ab/
12100: abababab
12101: 0: abababab
12102: 1: ab
12103: 2: abab
12104:
12105: /^\R/
12106: \r\P
12107: 0: \x0d
12108: \r\P\P
12109: Partial match: \x0d
12110:
12111: /^\R{2,3}x/
12112: \r\P
12113: Partial match: \x0d
12114: \r\P\P
12115: Partial match: \x0d
12116: \r\r\P
12117: Partial match: \x0d\x0d
12118: \r\r\P\P
12119: Partial match: \x0d\x0d
12120: \r\r\r\P
12121: Partial match: \x0d\x0d\x0d
12122: \r\r\r\P\P
12123: Partial match: \x0d\x0d\x0d
12124: \r\rx
12125: 0: \x0d\x0dx
12126: \r\r\rx
12127: 0: \x0d\x0d\x0dx
12128:
12129: /^\R{2,3}?x/
12130: \r\P
12131: Partial match: \x0d
12132: \r\P\P
12133: Partial match: \x0d
12134: \r\r\P
12135: Partial match: \x0d\x0d
12136: \r\r\P\P
12137: Partial match: \x0d\x0d
12138: \r\r\r\P
12139: Partial match: \x0d\x0d\x0d
12140: \r\r\r\P\P
12141: Partial match: \x0d\x0d\x0d
12142: \r\rx
12143: 0: \x0d\x0dx
12144: \r\r\rx
12145: 0: \x0d\x0d\x0dx
12146:
12147: /^\R?x/
12148: \r\P
12149: Partial match: \x0d
12150: \r\P\P
12151: Partial match: \x0d
12152: x
12153: 0: x
12154: \rx
12155: 0: \x0dx
12156:
12157: /^\R+x/
12158: \r\P
12159: Partial match: \x0d
12160: \r\P\P
12161: Partial match: \x0d
12162: \r\n\P
12163: Partial match: \x0d\x0a
12164: \r\n\P\P
12165: Partial match: \x0d\x0a
12166: \rx
12167: 0: \x0dx
12168:
12169: /^a$/<CRLF>
12170: a\r\P
12171: Partial match: a\x0d
12172: a\r\P\P
12173: Partial match: a\x0d
12174:
12175: /^a$/m<CRLF>
12176: a\r\P
12177: Partial match: a\x0d
12178: a\r\P\P
12179: Partial match: a\x0d
12180:
12181: /^(a$|a\r)/<CRLF>
12182: a\r\P
12183: 0: a\x0d
12184: 1: a\x0d
12185: a\r\P\P
12186: Partial match: a\x0d
12187:
12188: /^(a$|a\r)/m<CRLF>
12189: a\r\P
12190: 0: a\x0d
12191: 1: a\x0d
12192: a\r\P\P
12193: Partial match: a\x0d
12194:
12195: /./<CRLF>
12196: \r\P
12197: 0: \x0d
12198: \r\P\P
12199: Partial match: \x0d
12200:
12201: /.{2,3}/<CRLF>
12202: \r\P
12203: Partial match: \x0d
12204: \r\P\P
12205: Partial match: \x0d
12206: \r\r\P
12207: 0: \x0d\x0d
12208: \r\r\P\P
12209: Partial match: \x0d\x0d
12210: \r\r\r\P
12211: 0: \x0d\x0d\x0d
12212: \r\r\r\P\P
12213: Partial match: \x0d\x0d\x0d
12214:
12215: /.{2,3}?/<CRLF>
12216: \r\P
12217: Partial match: \x0d
12218: \r\P\P
12219: Partial match: \x0d
12220: \r\r\P
12221: 0: \x0d\x0d
12222: \r\r\P\P
12223: Partial match: \x0d\x0d
12224: \r\r\r\P
12225: 0: \x0d\x0d
12226: \r\r\r\P\P
12227: 0: \x0d\x0d
12228:
1.1.1.4 ! misho 12229: "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
! 12230: ABCDGHI\O03
! 12231: Matched, but too many substrings
! 12232: 0: ABCD
! 12233:
! 12234: /-- These are all run as real matches in test 1; here we are just checking the
! 12235: settings of the anchored and startline bits. --/
1.1.1.3 misho 12236:
1.1.1.4 ! misho 12237: /(?>.*?a)(?<=ba)/I
! 12238: Capturing subpattern count = 0
! 12239: Max lookbehind = 2
! 12240: No options
! 12241: No first char
! 12242: Need char = 'a'
1.1.1.3 misho 12243:
1.1.1.4 ! misho 12244: /(?:.*?a)(?<=ba)/I
! 12245: Capturing subpattern count = 0
! 12246: Max lookbehind = 2
! 12247: No options
! 12248: First char at start or follows newline
! 12249: Need char = 'a'
! 12250:
! 12251: /.*?a(*PRUNE)b/I
! 12252: Capturing subpattern count = 0
! 12253: No options
! 12254: No first char
! 12255: Need char = 'b'
! 12256:
! 12257: /.*?a(*PRUNE)b/sI
! 12258: Capturing subpattern count = 0
! 12259: Options: dotall
! 12260: No first char
! 12261: Need char = 'b'
! 12262:
! 12263: /^a(*PRUNE)b/sI
! 12264: Capturing subpattern count = 0
! 12265: Options: anchored dotall
! 12266: No first char
! 12267: No need char
! 12268:
! 12269: /.*?a(*SKIP)b/I
! 12270: Capturing subpattern count = 0
! 12271: No options
! 12272: No first char
! 12273: Need char = 'b'
! 12274:
! 12275: /(?>.*?a)b/sI
! 12276: Capturing subpattern count = 0
! 12277: Options: dotall
! 12278: No first char
! 12279: Need char = 'b'
! 12280:
! 12281: /(?>.*?a)b/I
! 12282: Capturing subpattern count = 0
! 12283: No options
! 12284: No first char
! 12285: Need char = 'b'
! 12286:
! 12287: /(?>^a)b/sI
! 12288: Capturing subpattern count = 0
! 12289: Options: anchored dotall
! 12290: No first char
! 12291: No need char
! 12292:
! 12293: /(?>.*?)(?<=(abcd)|(wxyz))/I
! 12294: Capturing subpattern count = 2
! 12295: Max lookbehind = 4
! 12296: No options
! 12297: No first char
! 12298: No need char
! 12299:
! 12300: /(?>.*)(?<=(abcd)|(wxyz))/I
! 12301: Capturing subpattern count = 2
! 12302: Max lookbehind = 4
! 12303: No options
! 12304: No first char
! 12305: No need char
! 12306:
! 12307: "(?>.*)foo"I
! 12308: Capturing subpattern count = 0
! 12309: No options
! 12310: No first char
! 12311: Need char = 'o'
! 12312:
! 12313: "(?>.*?)foo"I
! 12314: Capturing subpattern count = 0
! 12315: No options
! 12316: No first char
! 12317: Need char = 'o'
! 12318:
! 12319: /(?>^abc)/mI
! 12320: Capturing subpattern count = 0
! 12321: Options: multiline
! 12322: First char at start or follows newline
! 12323: Need char = 'c'
! 12324:
! 12325: /(?>.*abc)/mI
! 12326: Capturing subpattern count = 0
! 12327: Options: multiline
! 12328: No first char
! 12329: Need char = 'c'
! 12330:
! 12331: /(?:.*abc)/mI
! 12332: Capturing subpattern count = 0
! 12333: Options: multiline
! 12334: First char at start or follows newline
! 12335: Need char = 'c'
! 12336:
! 12337: /-- Check PCRE_STUDY_EXTRA_NEEDED --/
! 12338:
! 12339: /.?/S-I
! 12340: Capturing subpattern count = 0
! 12341: No options
! 12342: No first char
! 12343: No need char
! 12344: Study returned NULL
! 12345:
! 12346: /.?/S!I
! 12347: Capturing subpattern count = 0
! 12348: No options
! 12349: No first char
! 12350: No need char
! 12351: Subject length lower bound = -1
! 12352: No set of starting bytes
! 12353:
! 12354: /(?:(a)+(?C1)bb|aa(?C2)b)/
! 12355: aab\C+
! 12356: Callout 1: last capture = 1
! 12357: 0: <unset>
! 12358: 1: a
! 12359: --->aab
! 12360: ^ ^ b
! 12361: Callout 1: last capture = 1
! 12362: 0: <unset>
! 12363: 1: a
! 12364: --->aab
! 12365: ^^ b
! 12366: Callout 2: last capture = -1
! 12367: 0: <unset>
! 12368: --->aab
! 12369: ^ ^ b
! 12370: 0: aab
! 12371:
! 12372: /(?:(a)++(?C1)bb|aa(?C2)b)/
! 12373: aab\C+
! 12374: Callout 1: last capture = 1
! 12375: 0: <unset>
! 12376: 1: a
! 12377: --->aab
! 12378: ^ ^ b
! 12379: Callout 2: last capture = -1
! 12380: 0: <unset>
! 12381: --->aab
! 12382: ^ ^ b
! 12383: 0: aab
! 12384:
! 12385: /(?:(?>(a))(?C1)bb|aa(?C2)b)/
! 12386: aab\C+
! 12387: Callout 1: last capture = 1
! 12388: 0: <unset>
! 12389: 1: a
! 12390: --->aab
! 12391: ^^ b
! 12392: Callout 2: last capture = -1
! 12393: 0: <unset>
! 12394: --->aab
! 12395: ^ ^ b
! 12396: 0: aab
! 12397:
! 12398: /(?:(?1)(?C1)x|ab(?C2))((a)){0}/
! 12399: aab\C+
! 12400: Callout 1: last capture = -1
! 12401: 0: <unset>
! 12402: --->aab
! 12403: ^^ x
! 12404: Callout 1: last capture = -1
! 12405: 0: <unset>
! 12406: --->aab
! 12407: ^^ x
! 12408: Callout 2: last capture = -1
! 12409: 0: <unset>
! 12410: --->aab
! 12411: ^ ^ )
! 12412: 0: ab
! 12413:
! 12414: /(?1)(?C1)((a)(?C2)){0}/
! 12415: aab\C+
! 12416: Callout 2: last capture = 2
! 12417: 0: <unset>
1.1.1.3 misho 12418: 1: <unset>
12419: 2: a
1.1.1.4 ! misho 12420: --->aab
! 12421: ^^ )
! 12422: Callout 1: last capture = -1
! 12423: 0: <unset>
! 12424: --->aab
! 12425: ^^ ((a)(?C2)){0}
! 12426: 0: a
1.1.1.3 misho 12427:
1.1.1.4 ! misho 12428: /(?:(a)+(?C1)bb|aa(?C2)b)++/
! 12429: aab\C+
! 12430: Callout 1: last capture = 1
! 12431: 0: <unset>
! 12432: 1: a
! 12433: --->aab
! 12434: ^ ^ b
! 12435: Callout 1: last capture = 1
! 12436: 0: <unset>
! 12437: 1: a
! 12438: --->aab
! 12439: ^^ b
! 12440: Callout 2: last capture = -1
! 12441: 0: <unset>
! 12442: --->aab
! 12443: ^ ^ b
! 12444: 0: aab
! 12445: aab\C+\O2
! 12446: Callout 1: last capture = 1
! 12447: 0: <unset>
! 12448: --->aab
! 12449: ^ ^ b
! 12450: Callout 1: last capture = 1
! 12451: 0: <unset>
! 12452: --->aab
! 12453: ^^ b
! 12454: Callout 2: last capture = -1
! 12455: 0: <unset>
! 12456: --->aab
! 12457: ^ ^ b
! 12458: 0: aab
! 12459:
! 12460: /(ab)x|ab/
! 12461: ab\O3
! 12462: 0: ab
! 12463: ab\O2
! 12464: 0: ab
! 12465:
! 12466: /(ab)/
! 12467: ab\O3
1.1.1.3 misho 12468: Matched, but too many substrings
1.1.1.4 ! misho 12469: 0: ab
! 12470: ab\O2
! 12471: Matched, but too many substrings
! 12472: 0: ab
1.1.1.3 misho 12473:
1.1.1.4 ! misho 12474: /(?<=123)(*MARK:xx)abc/K
! 12475: xxxx123a\P\P
! 12476: Partial match at offset 7, mark=xx: 123a
! 12477: xxxx123a\P
! 12478: Partial match at offset 7, mark=xx: 123a
! 12479:
! 12480: /123\Kabc/
! 12481: xxxx123a\P\P
! 12482: Partial match: 123a
! 12483: xxxx123a\P
! 12484: Partial match: 123a
! 12485:
! 12486: /^(?(?=a)aa|bb)/C
! 12487: bb
! 12488: --->bb
! 12489: +0 ^ ^
! 12490: +1 ^ (?(?=a)aa|bb)
! 12491: +3 ^ (?=a)
! 12492: +6 ^ a
! 12493: +11 ^ b
! 12494: +12 ^^ b
! 12495: +13 ^ ^ )
! 12496: +14 ^ ^
! 12497: 0: bb
! 12498:
! 12499: /(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
! 12500: bb
! 12501: --->bb
! 12502: 1 ^ ^
! 12503: 2 ^ (?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))
! 12504: 99 ^ (?=(?C3)a(?C4))
! 12505: 3 ^ a
! 12506: 8 ^ b
! 12507: 9 ^^ b
! 12508: 10 ^ ^ )
! 12509: 11 ^ ^
! 12510: 0: bb
! 12511:
! 12512: /-- Perl seems to have a bug with this one --/
! 12513:
! 12514: /aaaaa(*COMMIT)(*PRUNE)b|a+c/
! 12515: aaaaaac
! 12516: 0: aaaac
1.1.1.3 misho 12517:
1.1.1.4 ! misho 12518: /-- Here are some that Perl treats differently because of the way it handles
! 12519: backtracking verbs. --/
! 12520:
! 12521: /(?!a(*COMMIT)b)ac|ad/
! 12522: ac
1.1.1.3 misho 12523: 0: ac
1.1.1.4 ! misho 12524: ad
! 12525: 0: ad
! 12526:
! 12527: /^(?!a(*THEN)b|ac)../
! 12528: ac
! 12529: No match
! 12530: ad
! 12531: 0: ad
! 12532:
! 12533: /^(?=a(*THEN)b|ac)/
! 12534: ac
! 12535: 0:
! 12536:
! 12537: /\A.*?(?:a|b(*THEN)c)/
! 12538: ba
! 12539: 0: ba
! 12540:
! 12541: /\A.*?(?:a|b(*THEN)c)++/
! 12542: ba
! 12543: 0: ba
! 12544:
! 12545: /\A.*?(?:a|b(*THEN)c|d)/
! 12546: ba
! 12547: 0: ba
! 12548:
! 12549: /(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
! 12550: aac
! 12551: 0: aac
! 12552:
! 12553: /\A.*?(a|b(*THEN)c)/
! 12554: ba
! 12555: 0: ba
! 12556: 1: a
! 12557:
! 12558: /^(A(*THEN)B|A(*THEN)D)/
! 12559: AD
! 12560: 0: AD
! 12561: 1: AD
! 12562:
! 12563: /(?!b(*THEN)a)bn|bnn/
! 12564: bnn
! 12565: 0: bn
! 12566:
! 12567: /(?(?=b(*SKIP)a)bn|bnn)/
! 12568: bnn
! 12569: No match
! 12570:
! 12571: /(?=b(*THEN)a|)bn|bnn/
! 12572: bnn
! 12573: 0: bn
! 12574:
! 12575: /-------------------------/
! 12576:
! 12577: /(*LIMIT_MATCH=12bc)abc/
! 12578: Failed: (*VERB) not recognized or malformed at offset 7
! 12579:
! 12580: /(*LIMIT_MATCH=4294967290)abc/
! 12581: Failed: (*VERB) not recognized or malformed at offset 7
! 12582:
! 12583: /(*LIMIT_RECURSION=4294967280)abc/I
! 12584: Capturing subpattern count = 0
! 12585: Recursion limit = 4294967280
! 12586: No options
! 12587: First char = 'a'
! 12588: Need char = 'c'
! 12589:
! 12590: /(a+)*zz/
! 12591: aaaaaaaaaaaaaz
! 12592: No match
! 12593: aaaaaaaaaaaaaz\q3000
! 12594: Error -8 (match limit exceeded)
! 12595:
! 12596: /(a+)*zz/S-
! 12597: aaaaaaaaaaaaaz\Q10
! 12598: Error -21 (recursion limit exceeded)
! 12599:
! 12600: /(*LIMIT_MATCH=3000)(a+)*zz/I
! 12601: Capturing subpattern count = 1
! 12602: Match limit = 3000
! 12603: No options
! 12604: No first char
! 12605: Need char = 'z'
! 12606: aaaaaaaaaaaaaz
! 12607: Error -8 (match limit exceeded)
! 12608: aaaaaaaaaaaaaz\q60000
! 12609: Error -8 (match limit exceeded)
! 12610:
! 12611: /(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
! 12612: Capturing subpattern count = 1
! 12613: Match limit = 3000
! 12614: No options
! 12615: No first char
! 12616: Need char = 'z'
! 12617: aaaaaaaaaaaaaz
! 12618: Error -8 (match limit exceeded)
! 12619:
! 12620: /(*LIMIT_MATCH=60000)(a+)*zz/I
! 12621: Capturing subpattern count = 1
! 12622: Match limit = 60000
! 12623: No options
! 12624: No first char
! 12625: Need char = 'z'
! 12626: aaaaaaaaaaaaaz
! 12627: No match
! 12628: aaaaaaaaaaaaaz\q3000
! 12629: Error -8 (match limit exceeded)
! 12630:
! 12631: /(*LIMIT_RECURSION=10)(a+)*zz/IS-
! 12632: Capturing subpattern count = 1
! 12633: Recursion limit = 10
! 12634: No options
! 12635: No first char
! 12636: Need char = 'z'
! 12637: Subject length lower bound = 2
! 12638: Starting byte set: a z
! 12639: aaaaaaaaaaaaaz
! 12640: Error -21 (recursion limit exceeded)
! 12641: aaaaaaaaaaaaaz\Q1000
! 12642: Error -21 (recursion limit exceeded)
! 12643:
! 12644: /(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS-
! 12645: Capturing subpattern count = 1
! 12646: Recursion limit = 10
! 12647: No options
! 12648: No first char
! 12649: Need char = 'z'
! 12650: Subject length lower bound = 2
! 12651: Starting byte set: a z
! 12652: aaaaaaaaaaaaaz
! 12653: Error -21 (recursion limit exceeded)
! 12654:
! 12655: /(*LIMIT_RECURSION=1000)(a+)*zz/IS-
! 12656: Capturing subpattern count = 1
! 12657: Recursion limit = 1000
! 12658: No options
! 12659: No first char
! 12660: Need char = 'z'
! 12661: Subject length lower bound = 2
! 12662: Starting byte set: a z
! 12663: aaaaaaaaaaaaaz
! 12664: No match
! 12665: aaaaaaaaaaaaaz\Q10
! 12666: Error -21 (recursion limit exceeded)
1.1.1.3 misho 12667:
1.1 misho 12668: /-- End of testinput2 --/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>