Annotation of embedaddon/pcre/testdata/testoutput2, revision 1.1.1.1
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:
8: NOTE: This is a non-UTF-8 set of tests. When UTF-8 is needed, use test
9: 5, and if Unicode Property Support is needed, use test 13. --/
10:
11: /-- Originally, the Perl >= 5.10 things were in here too, but now I have
12: separated many (most?) of them out into test 11. However, there may still
13: be some that were overlooked. --/
14:
15: /(a)b|/I
16: Capturing subpattern count = 1
17: No options
18: No first char
19: No need char
20:
21: /abc/I
22: Capturing subpattern count = 0
23: No options
24: First char = 'a'
25: Need char = 'c'
26: abc
27: 0: abc
28: defabc
29: 0: abc
30: \Aabc
31: 0: abc
32: *** Failers
33: No match
34: \Adefabc
35: No match
36: ABC
37: No match
38:
39: /^abc/I
40: Capturing subpattern count = 0
41: Options: anchored
42: No first char
43: No need char
44: abc
45: 0: abc
46: \Aabc
47: 0: abc
48: *** Failers
49: No match
50: defabc
51: No match
52: \Adefabc
53: No match
54:
55: /a+bc/I
56: Capturing subpattern count = 0
57: No options
58: First char = 'a'
59: Need char = 'c'
60:
61: /a*bc/I
62: Capturing subpattern count = 0
63: No options
64: No first char
65: Need char = 'c'
66:
67: /a{3}bc/I
68: Capturing subpattern count = 0
69: No options
70: First char = 'a'
71: Need char = 'c'
72:
73: /(abc|a+z)/I
74: Capturing subpattern count = 1
75: No options
76: First char = 'a'
77: No need char
78:
79: /^abc$/I
80: Capturing subpattern count = 0
81: Options: anchored
82: No first char
83: No need char
84: abc
85: 0: abc
86: *** Failers
87: No match
88: def\nabc
89: No match
90:
91: /ab\idef/X
92: Failed: unrecognized character follows \ at offset 3
93:
94: /(?X)ab\idef/X
95: Failed: unrecognized character follows \ at offset 7
96:
97: /x{5,4}/
98: Failed: numbers out of order in {} quantifier at offset 5
99:
100: /z{65536}/
101: Failed: number too big in {} quantifier at offset 7
102:
103: /[abcd/
104: Failed: missing terminating ] for character class at offset 5
105:
106: /(?X)[\B]/
107: Failed: invalid escape sequence in character class at offset 6
108:
109: /(?X)[\R]/
110: Failed: invalid escape sequence in character class at offset 6
111:
112: /(?X)[\X]/
113: Failed: invalid escape sequence in character class at offset 6
114:
115: /[\B]/BZ
116: ------------------------------------------------------------------
117: Bra
118: B
119: Ket
120: End
121: ------------------------------------------------------------------
122:
123: /[\R]/BZ
124: ------------------------------------------------------------------
125: Bra
126: R
127: Ket
128: End
129: ------------------------------------------------------------------
130:
131: /[\X]/BZ
132: ------------------------------------------------------------------
133: Bra
134: X
135: Ket
136: End
137: ------------------------------------------------------------------
138:
139: /[z-a]/
140: Failed: range out of order in character class at offset 3
141:
142: /^*/
143: Failed: nothing to repeat at offset 1
144:
145: /(abc/
146: Failed: missing ) at offset 4
147:
148: /(?# abc/
149: Failed: missing ) after comment at offset 7
150:
151: /(?z)abc/
152: Failed: unrecognized character after (? or (?- at offset 2
153:
154: /.*b/I
155: Capturing subpattern count = 0
156: No options
157: First char at start or follows newline
158: Need char = 'b'
159:
160: /.*?b/I
161: Capturing subpattern count = 0
162: No options
163: First char at start or follows newline
164: Need char = 'b'
165:
166: /cat|dog|elephant/I
167: Capturing subpattern count = 0
168: No options
169: No first char
170: No need char
171: this sentence eventually mentions a cat
172: 0: cat
173: this sentences rambles on and on for a while and then reaches elephant
174: 0: elephant
175:
176: /cat|dog|elephant/IS
177: Capturing subpattern count = 0
178: No options
179: No first char
180: No need char
181: Subject length lower bound = 3
182: Starting byte set: c d e
183: this sentence eventually mentions a cat
184: 0: cat
185: this sentences rambles on and on for a while and then reaches elephant
186: 0: elephant
187:
188: /cat|dog|elephant/IiS
189: Capturing subpattern count = 0
190: Options: caseless
191: No first char
192: No need char
193: Subject length lower bound = 3
194: Starting byte set: C D E c d e
195: this sentence eventually mentions a CAT cat
196: 0: CAT
197: this sentences rambles on and on for a while to elephant ElePhant
198: 0: elephant
199:
200: /a|[bcd]/IS
201: Capturing subpattern count = 0
202: No options
203: No first char
204: No need char
205: Subject length lower bound = 1
206: Starting byte set: a b c d
207:
208: /(a|[^\dZ])/IS
209: Capturing subpattern count = 1
210: No options
211: No first char
212: No need char
213: Subject length lower bound = 1
214: Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
215: \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
216: \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
217: ? @ 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
218: 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
219: \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92
220: \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1
221: \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0
222: \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf
223: \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce
224: \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd
225: \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec
226: \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb
227: \xfc \xfd \xfe \xff
228:
229: /(a|b)*[\s]/IS
230: Capturing subpattern count = 1
231: No options
232: No first char
233: No need char
234: Subject length lower bound = 1
235: Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
236:
237: /(ab\2)/
238: Failed: reference to non-existent subpattern at offset 6
239:
240: /{4,5}abc/
241: Failed: nothing to repeat at offset 4
242:
243: /(a)(b)(c)\2/I
244: Capturing subpattern count = 3
245: Max back reference = 2
246: No options
247: First char = 'a'
248: Need char = 'c'
249: abcb
250: 0: abcb
251: 1: a
252: 2: b
253: 3: c
254: \O0abcb
255: Matched, but too many substrings
256: \O3abcb
257: Matched, but too many substrings
258: 0: abcb
259: \O6abcb
260: Matched, but too many substrings
261: 0: abcb
262: 1: a
263: \O9abcb
264: Matched, but too many substrings
265: 0: abcb
266: 1: a
267: 2: b
268: \O12abcb
269: 0: abcb
270: 1: a
271: 2: b
272: 3: c
273:
274: /(a)bc|(a)(b)\2/I
275: Capturing subpattern count = 3
276: Max back reference = 2
277: No options
278: First char = 'a'
279: No need char
280: abc
281: 0: abc
282: 1: a
283: \O0abc
284: Matched, but too many substrings
285: \O3abc
286: Matched, but too many substrings
287: 0: abc
288: \O6abc
289: 0: abc
290: 1: a
291: aba
292: 0: aba
293: 1: <unset>
294: 2: a
295: 3: b
296: \O0aba
297: Matched, but too many substrings
298: \O3aba
299: Matched, but too many substrings
300: 0: aba
301: \O6aba
302: Matched, but too many substrings
303: 0: aba
304: 1: <unset>
305: \O9aba
306: Matched, but too many substrings
307: 0: aba
308: 1: <unset>
309: 2: a
310: \O12aba
311: 0: aba
312: 1: <unset>
313: 2: a
314: 3: b
315:
316: /abc$/IE
317: Capturing subpattern count = 0
318: Options: dollar_endonly
319: First char = 'a'
320: Need char = 'c'
321: abc
322: 0: abc
323: *** Failers
324: No match
325: abc\n
326: No match
327: abc\ndef
328: No match
329:
330: /(a)(b)(c)(d)(e)\6/
331: Failed: reference to non-existent subpattern at offset 17
332:
333: /the quick brown fox/I
334: Capturing subpattern count = 0
335: No options
336: First char = 't'
337: Need char = 'x'
338: the quick brown fox
339: 0: the quick brown fox
340: this is a line with the quick brown fox
341: 0: the quick brown fox
342:
343: /the quick brown fox/IA
344: Capturing subpattern count = 0
345: Options: anchored
346: No first char
347: No need char
348: the quick brown fox
349: 0: the quick brown fox
350: *** Failers
351: No match
352: this is a line with the quick brown fox
353: No match
354:
355: /ab(?z)cd/
356: Failed: unrecognized character after (? or (?- at offset 4
357:
358: /^abc|def/I
359: Capturing subpattern count = 0
360: No options
361: No first char
362: No need char
363: abcdef
364: 0: abc
365: abcdef\B
366: 0: def
367:
368: /.*((abc)$|(def))/I
369: Capturing subpattern count = 3
370: No options
371: First char at start or follows newline
372: No need char
373: defabc
374: 0: defabc
375: 1: abc
376: 2: abc
377: \Zdefabc
378: 0: def
379: 1: def
380: 2: <unset>
381: 3: def
382:
383: /abc/P
384: abc
385: 0: abc
386: *** Failers
387: No match: POSIX code 17: match failed
388:
389: /^abc|def/P
390: abcdef
391: 0: abc
392: abcdef\B
393: 0: def
394:
395: /.*((abc)$|(def))/P
396: defabc
397: 0: defabc
398: 1: abc
399: 2: abc
400: \Zdefabc
401: 0: def
402: 1: def
403: 3: def
404:
405: /the quick brown fox/P
406: the quick brown fox
407: 0: the quick brown fox
408: *** Failers
409: No match: POSIX code 17: match failed
410: The Quick Brown Fox
411: No match: POSIX code 17: match failed
412:
413: /the quick brown fox/Pi
414: the quick brown fox
415: 0: the quick brown fox
416: The Quick Brown Fox
417: 0: The Quick Brown Fox
418:
419: /abc.def/P
420: *** Failers
421: No match: POSIX code 17: match failed
422: abc\ndef
423: No match: POSIX code 17: match failed
424:
425: /abc$/P
426: abc
427: 0: abc
428: abc\n
429: 0: abc
430:
431: /(abc)\2/P
432: Failed: POSIX code 15: bad back reference at offset 7
433:
434: /(abc\1)/P
435: abc
436: No match: POSIX code 17: match failed
437:
438: /)/
439: Failed: unmatched parentheses at offset 0
440:
441: /a[]b/
442: Failed: missing terminating ] for character class at offset 4
443:
444: /[^aeiou ]{3,}/I
445: Capturing subpattern count = 0
446: No options
447: No first char
448: No need char
449: co-processors, and for
450: 0: -pr
451:
452: /<.*>/I
453: Capturing subpattern count = 0
454: No options
455: First char = '<'
456: Need char = '>'
457: abc<def>ghi<klm>nop
458: 0: <def>ghi<klm>
459:
460: /<.*?>/I
461: Capturing subpattern count = 0
462: No options
463: First char = '<'
464: Need char = '>'
465: abc<def>ghi<klm>nop
466: 0: <def>
467:
468: /<.*>/IU
469: Capturing subpattern count = 0
470: Options: ungreedy
471: First char = '<'
472: Need char = '>'
473: abc<def>ghi<klm>nop
474: 0: <def>
475:
476: /(?U)<.*>/I
477: Capturing subpattern count = 0
478: Options: ungreedy
479: First char = '<'
480: Need char = '>'
481: abc<def>ghi<klm>nop
482: 0: <def>
483:
484: /<.*?>/IU
485: Capturing subpattern count = 0
486: Options: ungreedy
487: First char = '<'
488: Need char = '>'
489: abc<def>ghi<klm>nop
490: 0: <def>ghi<klm>
491:
492: /={3,}/IU
493: Capturing subpattern count = 0
494: Options: ungreedy
495: First char = '='
496: Need char = '='
497: abc========def
498: 0: ===
499:
500: /(?U)={3,}?/I
501: Capturing subpattern count = 0
502: Options: ungreedy
503: First char = '='
504: Need char = '='
505: abc========def
506: 0: ========
507:
508: /(?<!bar|cattle)foo/I
509: Capturing subpattern count = 0
510: No options
511: First char = 'f'
512: Need char = 'o'
513: foo
514: 0: foo
515: catfoo
516: 0: foo
517: *** Failers
518: No match
519: the barfoo
520: No match
521: and cattlefoo
522: No match
523:
524: /(?<=a+)b/
525: Failed: lookbehind assertion is not fixed length at offset 6
526:
527: /(?<=aaa|b{0,3})b/
528: Failed: lookbehind assertion is not fixed length at offset 14
529:
530: /(?<!(foo)a\1)bar/
531: Failed: lookbehind assertion is not fixed length at offset 12
532:
533: /(?i)abc/I
534: Capturing subpattern count = 0
535: Options: caseless
536: First char = 'a' (caseless)
537: Need char = 'c' (caseless)
538:
539: /(a|(?m)a)/I
540: Capturing subpattern count = 1
541: No options
542: First char = 'a'
543: No need char
544:
545: /(?i)^1234/I
546: Capturing subpattern count = 0
547: Options: anchored caseless
548: No first char
549: No need char
550:
551: /(^b|(?i)^d)/I
552: Capturing subpattern count = 1
553: Options: anchored
554: No first char
555: No need char
556:
557: /(?s).*/I
558: Capturing subpattern count = 0
559: Options: anchored dotall
560: No first char
561: No need char
562:
563: /[abcd]/IS
564: Capturing subpattern count = 0
565: No options
566: No first char
567: No need char
568: Subject length lower bound = 1
569: Starting byte set: a b c d
570:
571: /(?i)[abcd]/IS
572: Capturing subpattern count = 0
573: Options: caseless
574: No first char
575: No need char
576: Subject length lower bound = 1
577: Starting byte set: A B C D a b c d
578:
579: /(?m)[xy]|(b|c)/IS
580: Capturing subpattern count = 1
581: Options: multiline
582: No first char
583: No need char
584: Subject length lower bound = 1
585: Starting byte set: b c x y
586:
587: /(^a|^b)/Im
588: Capturing subpattern count = 1
589: Options: multiline
590: First char at start or follows newline
591: No need char
592:
593: /(?i)(^a|^b)/Im
594: Capturing subpattern count = 1
595: Options: caseless multiline
596: First char at start or follows newline
597: No need char
598:
599: /(a)(?(1)a|b|c)/
600: Failed: conditional group contains more than two branches at offset 13
601:
602: /(?(?=a)a|b|c)/
603: Failed: conditional group contains more than two branches at offset 12
604:
605: /(?(1a)/
606: Failed: missing ) at offset 6
607:
608: /(?(1a))/
609: Failed: reference to non-existent subpattern at offset 6
610:
611: /(?(?i))/
612: Failed: assertion expected after (?( at offset 3
613:
614: /(?(abc))/
615: Failed: reference to non-existent subpattern at offset 7
616:
617: /(?(?<ab))/
618: Failed: syntax error in subpattern name (missing terminator) at offset 7
619:
620: /((?s)blah)\s+\1/I
621: Capturing subpattern count = 1
622: Max back reference = 1
623: No options
624: First char = 'b'
625: Need char = 'h'
626:
627: /((?i)blah)\s+\1/I
628: Capturing subpattern count = 1
629: Max back reference = 1
630: No options
631: First char = 'b' (caseless)
632: Need char = 'h' (caseless)
633:
634: /((?i)b)/IDZS
635: ------------------------------------------------------------------
636: Bra
637: CBra 1
638: /i b
639: Ket
640: Ket
641: End
642: ------------------------------------------------------------------
643: Capturing subpattern count = 1
644: No options
645: First char = 'b' (caseless)
646: No need char
647: Subject length lower bound = 1
648: No set of starting bytes
649:
650: /(a*b|(?i:c*(?-i)d))/IS
651: Capturing subpattern count = 1
652: No options
653: No first char
654: No need char
655: Subject length lower bound = 1
656: Starting byte set: C a b c d
657:
658: /a$/I
659: Capturing subpattern count = 0
660: No options
661: First char = 'a'
662: No need char
663: a
664: 0: a
665: a\n
666: 0: a
667: *** Failers
668: No match
669: \Za
670: No match
671: \Za\n
672: No match
673:
674: /a$/Im
675: Capturing subpattern count = 0
676: Options: multiline
677: First char = 'a'
678: No need char
679: a
680: 0: a
681: a\n
682: 0: a
683: \Za\n
684: 0: a
685: *** Failers
686: No match
687: \Za
688: No match
689:
690: /\Aabc/Im
691: Capturing subpattern count = 0
692: Options: anchored multiline
693: No first char
694: No need char
695:
696: /^abc/Im
697: Capturing subpattern count = 0
698: Options: multiline
699: First char at start or follows newline
700: Need char = 'c'
701:
702: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
703: Capturing subpattern count = 5
704: Options: anchored
705: No first char
706: No need char
707: aaaaabbbbbcccccdef
708: 0: aaaaabbbbbcccccdef
709: 1: aaaaabbbbbcccccdef
710: 2: aaaaa
711: 3: b
712: 4: bbbbccccc
713: 5: def
714:
715: /(?<=foo)[ab]/IS
716: Capturing subpattern count = 0
717: No options
718: No first char
719: No need char
720: Subject length lower bound = 1
721: Starting byte set: a b
722:
723: /(?<!foo)(alpha|omega)/IS
724: Capturing subpattern count = 1
725: No options
726: No first char
727: Need char = 'a'
728: Subject length lower bound = 5
729: Starting byte set: a o
730:
731: /(?!alphabet)[ab]/IS
732: Capturing subpattern count = 0
733: No options
734: No first char
735: No need char
736: Subject length lower bound = 1
737: Starting byte set: a b
738:
739: /(?<=foo\n)^bar/Im
740: Capturing subpattern count = 0
741: Contains explicit CR or LF match
742: Options: multiline
743: No first char
744: Need char = 'r'
745: foo\nbarbar
746: 0: bar
747: ***Failers
748: No match
749: rhubarb
750: No match
751: barbell
752: No match
753: abc\nbarton
754: No match
755:
756: /^(?<=foo\n)bar/Im
757: Capturing subpattern count = 0
758: Contains explicit CR or LF match
759: Options: multiline
760: First char at start or follows newline
761: Need char = 'r'
762: foo\nbarbar
763: 0: bar
764: ***Failers
765: No match
766: rhubarb
767: No match
768: barbell
769: No match
770: abc\nbarton
771: No match
772:
773: /(?>^abc)/Im
774: Capturing subpattern count = 0
775: Options: multiline
776: First char at start or follows newline
777: Need char = 'c'
778: abc
779: 0: abc
780: def\nabc
781: 0: abc
782: *** Failers
783: No match
784: defabc
785: No match
786:
787: /(?<=ab(c+)d)ef/
788: Failed: lookbehind assertion is not fixed length at offset 11
789:
790: /(?<=ab(?<=c+)d)ef/
791: Failed: lookbehind assertion is not fixed length at offset 12
792:
793: /(?<=ab(c|de)f)g/
794: Failed: lookbehind assertion is not fixed length at offset 13
795:
796: /The next three are in testinput2 because they have variable length branches/
797:
798: /(?<=bullock|donkey)-cart/I
799: Capturing subpattern count = 0
800: No options
801: First char = '-'
802: Need char = 't'
803: the bullock-cart
804: 0: -cart
805: a donkey-cart race
806: 0: -cart
807: *** Failers
808: No match
809: cart
810: No match
811: horse-and-cart
812: No match
813:
814: /(?<=ab(?i)x|y|z)/I
815: Capturing subpattern count = 0
816: No options
817: No first char
818: No need char
819:
820: /(?>.*)(?<=(abcd)|(xyz))/I
821: Capturing subpattern count = 2
822: No options
823: First char at start or follows newline
824: No need char
825: alphabetabcd
826: 0: alphabetabcd
827: 1: abcd
828: endingxyz
829: 0: endingxyz
830: 1: <unset>
831: 2: xyz
832:
833: /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
834: Capturing subpattern count = 0
835: No options
836: First char = 'Z'
837: Need char = 'Z'
838: abxyZZ
839: 0: ZZ
840: abXyZZ
841: 0: ZZ
842: ZZZ
843: 0: ZZ
844: zZZ
845: 0: ZZ
846: bZZ
847: 0: ZZ
848: BZZ
849: 0: ZZ
850: *** Failers
851: No match
852: ZZ
853: No match
854: abXYZZ
855: No match
856: zzz
857: No match
858: bzz
859: No match
860:
861: /(?<!(foo)a)bar/I
862: Capturing subpattern count = 1
863: No options
864: First char = 'b'
865: Need char = 'r'
866: bar
867: 0: bar
868: foobbar
869: 0: bar
870: *** Failers
871: No match
872: fooabar
873: No match
874:
875: /This one is here because Perl 5.005_02 doesn't fail it/I
876: Capturing subpattern count = 0
877: No options
878: First char = 'T'
879: Need char = 't'
880:
881: /^(a)?(?(1)a|b)+$/I
882: Capturing subpattern count = 1
883: Options: anchored
884: No first char
885: No need char
886: *** Failers
887: No match
888: a
889: No match
890:
891: /This one is here because Perl behaves differently; see also the following/I
892: Capturing subpattern count = 0
893: No options
894: First char = 'T'
895: Need char = 'g'
896:
897: /^(a\1?){4}$/I
898: Capturing subpattern count = 1
899: Max back reference = 1
900: Options: anchored
901: No first char
902: No need char
903: aaaa
904: No match
905: aaaaaa
906: No match
907:
908: /Perl does not fail these two for the final subjects. Neither did PCRE until/
909: /release 8.01. The problem is in backtracking into a subpattern that contains/
910: No match
911: /a recursive reference to itself. PCRE has now made these into atomic patterns./
912: No match
913:
914: /^(xa|=?\1a){2}$/
915: xa=xaa
916: 0: xa=xaa
917: 1: =xaa
918: ** Failers
919: No match
920: xa=xaaa
921: No match
922:
923: /^(xa|=?\1a)+$/
924: xa=xaa
925: 0: xa=xaa
926: 1: =xaa
927: ** Failers
928: No match
929: xa=xaaa
930: No match
931:
932: /These are syntax tests from Perl 5.005/I
933: Capturing subpattern count = 0
934: No options
935: First char = 'T'
936: Need char = '5'
937:
938: /a[b-a]/
939: Failed: range out of order in character class at offset 4
940:
941: /a[]b/
942: Failed: missing terminating ] for character class at offset 4
943:
944: /a[/
945: Failed: missing terminating ] for character class at offset 2
946:
947: /*a/
948: Failed: nothing to repeat at offset 0
949:
950: /(*)b/
951: Failed: nothing to repeat at offset 1
952:
953: /abc)/
954: Failed: unmatched parentheses at offset 3
955:
956: /(abc/
957: Failed: missing ) at offset 4
958:
959: /a**/
960: Failed: nothing to repeat at offset 2
961:
962: /)(/
963: Failed: unmatched parentheses at offset 0
964:
965: /\1/
966: Failed: reference to non-existent subpattern at offset 2
967:
968: /\2/
969: Failed: reference to non-existent subpattern at offset 2
970:
971: /(a)|\2/
972: Failed: reference to non-existent subpattern at offset 6
973:
974: /a[b-a]/Ii
975: Failed: range out of order in character class at offset 4
976:
977: /a[]b/Ii
978: Failed: missing terminating ] for character class at offset 4
979:
980: /a[/Ii
981: Failed: missing terminating ] for character class at offset 2
982:
983: /*a/Ii
984: Failed: nothing to repeat at offset 0
985:
986: /(*)b/Ii
987: Failed: nothing to repeat at offset 1
988:
989: /abc)/Ii
990: Failed: unmatched parentheses at offset 3
991:
992: /(abc/Ii
993: Failed: missing ) at offset 4
994:
995: /a**/Ii
996: Failed: nothing to repeat at offset 2
997:
998: /)(/Ii
999: Failed: unmatched parentheses at offset 0
1000:
1001: /:(?:/
1002: Failed: missing ) at offset 4
1003:
1004: /(?<%)b/
1005: Failed: unrecognized character after (?< at offset 3
1006:
1007: /a(?{)b/
1008: Failed: unrecognized character after (? or (?- at offset 3
1009:
1010: /a(?{{})b/
1011: Failed: unrecognized character after (? or (?- at offset 3
1012:
1013: /a(?{}})b/
1014: Failed: unrecognized character after (? or (?- at offset 3
1015:
1016: /a(?{"{"})b/
1017: Failed: unrecognized character after (? or (?- at offset 3
1018:
1019: /a(?{"{"}})b/
1020: Failed: unrecognized character after (? or (?- at offset 3
1021:
1022: /(?(1?)a|b)/
1023: Failed: malformed number or name after (?( at offset 4
1024:
1025: /[a[:xyz:/
1026: Failed: missing terminating ] for character class at offset 8
1027:
1028: /(?<=x+)y/
1029: Failed: lookbehind assertion is not fixed length at offset 6
1030:
1031: /a{37,17}/
1032: Failed: numbers out of order in {} quantifier at offset 7
1033:
1034: /abc/\
1035: Failed: \ at end of pattern at offset 4
1036:
1037: /abc/\P
1038: Failed: POSIX code 9: bad escape sequence at offset 4
1039:
1040: /abc/\i
1041: Failed: \ at end of pattern at offset 4
1042:
1043: /(a)bc(d)/I
1044: Capturing subpattern count = 2
1045: No options
1046: First char = 'a'
1047: Need char = 'd'
1048: abcd
1049: 0: abcd
1050: 1: a
1051: 2: d
1052: abcd\C2
1053: 0: abcd
1054: 1: a
1055: 2: d
1056: 2C d (1)
1057: abcd\C5
1058: 0: abcd
1059: 1: a
1060: 2: d
1061: copy substring 5 failed -7
1062:
1063: /(.{20})/I
1064: Capturing subpattern count = 1
1065: No options
1066: No first char
1067: No need char
1068: abcdefghijklmnopqrstuvwxyz
1069: 0: abcdefghijklmnopqrst
1070: 1: abcdefghijklmnopqrst
1071: abcdefghijklmnopqrstuvwxyz\C1
1072: 0: abcdefghijklmnopqrst
1073: 1: abcdefghijklmnopqrst
1074: 1C abcdefghijklmnopqrst (20)
1075: abcdefghijklmnopqrstuvwxyz\G1
1076: 0: abcdefghijklmnopqrst
1077: 1: abcdefghijklmnopqrst
1078: 1G abcdefghijklmnopqrst (20)
1079:
1080: /(.{15})/I
1081: Capturing subpattern count = 1
1082: No options
1083: No first char
1084: No need char
1085: abcdefghijklmnopqrstuvwxyz
1086: 0: abcdefghijklmno
1087: 1: abcdefghijklmno
1088: abcdefghijklmnopqrstuvwxyz\C1\G1
1089: 0: abcdefghijklmno
1090: 1: abcdefghijklmno
1091: 1C abcdefghijklmno (15)
1092: 1G abcdefghijklmno (15)
1093:
1094: /(.{16})/I
1095: Capturing subpattern count = 1
1096: No options
1097: No first char
1098: No need char
1099: abcdefghijklmnopqrstuvwxyz
1100: 0: abcdefghijklmnop
1101: 1: abcdefghijklmnop
1102: abcdefghijklmnopqrstuvwxyz\C1\G1\L
1103: 0: abcdefghijklmnop
1104: 1: abcdefghijklmnop
1105: 1C abcdefghijklmnop (16)
1106: 1G abcdefghijklmnop (16)
1107: 0L abcdefghijklmnop
1108: 1L abcdefghijklmnop
1109:
1110: /^(a|(bc))de(f)/I
1111: Capturing subpattern count = 3
1112: Options: anchored
1113: No first char
1114: No need char
1115: adef\G1\G2\G3\G4\L
1116: 0: adef
1117: 1: a
1118: 2: <unset>
1119: 3: f
1120: 1G a (1)
1121: 2G (0)
1122: 3G f (1)
1123: get substring 4 failed -7
1124: 0L adef
1125: 1L a
1126: 2L
1127: 3L f
1128: bcdef\G1\G2\G3\G4\L
1129: 0: bcdef
1130: 1: bc
1131: 2: bc
1132: 3: f
1133: 1G bc (2)
1134: 2G bc (2)
1135: 3G f (1)
1136: get substring 4 failed -7
1137: 0L bcdef
1138: 1L bc
1139: 2L bc
1140: 3L f
1141: adefghijk\C0
1142: 0: adef
1143: 1: a
1144: 2: <unset>
1145: 3: f
1146: 0C adef (4)
1147:
1148: /^abc\00def/I
1149: Capturing subpattern count = 0
1150: Options: anchored
1151: No first char
1152: No need char
1153: abc\00def\L\C0
1154: 0: abc\x00def
1155: 0C abc (7)
1156: 0L abc
1157:
1158: /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1159: )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1160: )?)?)?)?)?)?)?)?)?otherword/I
1161: Capturing subpattern count = 8
1162: Contains explicit CR or LF match
1163: No options
1164: First char = 'w'
1165: Need char = 'd'
1166:
1167: /.*X/IDZ
1168: ------------------------------------------------------------------
1169: Bra
1170: Any*
1171: X
1172: Ket
1173: End
1174: ------------------------------------------------------------------
1175: Capturing subpattern count = 0
1176: No options
1177: First char at start or follows newline
1178: Need char = 'X'
1179:
1180: /.*X/IDZs
1181: ------------------------------------------------------------------
1182: Bra
1183: AllAny*
1184: X
1185: Ket
1186: End
1187: ------------------------------------------------------------------
1188: Capturing subpattern count = 0
1189: Options: anchored dotall
1190: No first char
1191: Need char = 'X'
1192:
1193: /(.*X|^B)/IDZ
1194: ------------------------------------------------------------------
1195: Bra
1196: CBra 1
1197: Any*
1198: X
1199: Alt
1200: ^
1201: B
1202: Ket
1203: Ket
1204: End
1205: ------------------------------------------------------------------
1206: Capturing subpattern count = 1
1207: No options
1208: First char at start or follows newline
1209: No need char
1210:
1211: /(.*X|^B)/IDZs
1212: ------------------------------------------------------------------
1213: Bra
1214: CBra 1
1215: AllAny*
1216: X
1217: Alt
1218: ^
1219: B
1220: Ket
1221: Ket
1222: End
1223: ------------------------------------------------------------------
1224: Capturing subpattern count = 1
1225: Options: anchored dotall
1226: No first char
1227: No need char
1228:
1229: /(?s)(.*X|^B)/IDZ
1230: ------------------------------------------------------------------
1231: Bra
1232: CBra 1
1233: AllAny*
1234: X
1235: Alt
1236: ^
1237: B
1238: Ket
1239: Ket
1240: End
1241: ------------------------------------------------------------------
1242: Capturing subpattern count = 1
1243: Options: anchored dotall
1244: No first char
1245: No need char
1246:
1247: /(?s:.*X|^B)/IDZ
1248: ------------------------------------------------------------------
1249: Bra
1250: Bra
1251: AllAny*
1252: X
1253: Alt
1254: ^
1255: B
1256: Ket
1257: Ket
1258: End
1259: ------------------------------------------------------------------
1260: Capturing subpattern count = 0
1261: Options: anchored
1262: No first char
1263: No need char
1264:
1265: /\Biss\B/I+
1266: Capturing subpattern count = 0
1267: No options
1268: First char = 'i'
1269: Need char = 's'
1270: Mississippi
1271: 0: iss
1272: 0+ issippi
1273:
1274: /\Biss\B/I+P
1275: Mississippi
1276: 0: iss
1277: 0+ issippi
1278:
1279: /iss/IG+
1280: Capturing subpattern count = 0
1281: No options
1282: First char = 'i'
1283: Need char = 's'
1284: Mississippi
1285: 0: iss
1286: 0+ issippi
1287: 0: iss
1288: 0+ ippi
1289:
1290: /\Biss\B/IG+
1291: Capturing subpattern count = 0
1292: No options
1293: First char = 'i'
1294: Need char = 's'
1295: Mississippi
1296: 0: iss
1297: 0+ issippi
1298:
1299: /\Biss\B/Ig+
1300: Capturing subpattern count = 0
1301: No options
1302: First char = 'i'
1303: Need char = 's'
1304: Mississippi
1305: 0: iss
1306: 0+ issippi
1307: 0: iss
1308: 0+ ippi
1309: *** Failers
1310: No match
1311: Mississippi\A
1312: No match
1313:
1314: /(?<=[Ms])iss/Ig+
1315: Capturing subpattern count = 0
1316: No options
1317: First char = 'i'
1318: Need char = 's'
1319: Mississippi
1320: 0: iss
1321: 0+ issippi
1322: 0: iss
1323: 0+ ippi
1324:
1325: /(?<=[Ms])iss/IG+
1326: Capturing subpattern count = 0
1327: No options
1328: First char = 'i'
1329: Need char = 's'
1330: Mississippi
1331: 0: iss
1332: 0+ issippi
1333:
1334: /^iss/Ig+
1335: Capturing subpattern count = 0
1336: Options: anchored
1337: No first char
1338: No need char
1339: ississippi
1340: 0: iss
1341: 0+ issippi
1342:
1343: /.*iss/Ig+
1344: Capturing subpattern count = 0
1345: No options
1346: First char at start or follows newline
1347: Need char = 's'
1348: abciss\nxyzisspqr
1349: 0: abciss
1350: 0+ \x0axyzisspqr
1351: 0: xyziss
1352: 0+ pqr
1353:
1354: /.i./I+g
1355: Capturing subpattern count = 0
1356: No options
1357: No first char
1358: Need char = 'i'
1359: Mississippi
1360: 0: Mis
1361: 0+ sissippi
1362: 0: sis
1363: 0+ sippi
1364: 0: sip
1365: 0+ pi
1366: Mississippi\A
1367: 0: Mis
1368: 0+ sissippi
1369: 0: sis
1370: 0+ sippi
1371: 0: sip
1372: 0+ pi
1373: Missouri river
1374: 0: Mis
1375: 0+ souri river
1376: 0: ri
1377: 0+ river
1378: 0: riv
1379: 0+ er
1380: Missouri river\A
1381: 0: Mis
1382: 0+ souri river
1383:
1384: /^.is/I+g
1385: Capturing subpattern count = 0
1386: Options: anchored
1387: No first char
1388: No need char
1389: Mississippi
1390: 0: Mis
1391: 0+ sissippi
1392:
1393: /^ab\n/Ig+
1394: Capturing subpattern count = 0
1395: Contains explicit CR or LF match
1396: Options: anchored
1397: No first char
1398: No need char
1399: ab\nab\ncd
1400: 0: ab\x0a
1401: 0+ ab\x0acd
1402:
1403: /^ab\n/Img+
1404: Capturing subpattern count = 0
1405: Contains explicit CR or LF match
1406: Options: multiline
1407: First char at start or follows newline
1408: Need char = 10
1409: ab\nab\ncd
1410: 0: ab\x0a
1411: 0+ ab\x0acd
1412: 0: ab\x0a
1413: 0+ cd
1414:
1415: /abc/I
1416: Capturing subpattern count = 0
1417: No options
1418: First char = 'a'
1419: Need char = 'c'
1420:
1421: /abc|bac/I
1422: Capturing subpattern count = 0
1423: No options
1424: No first char
1425: Need char = 'c'
1426:
1427: /(abc|bac)/I
1428: Capturing subpattern count = 1
1429: No options
1430: No first char
1431: Need char = 'c'
1432:
1433: /(abc|(c|dc))/I
1434: Capturing subpattern count = 2
1435: No options
1436: No first char
1437: Need char = 'c'
1438:
1439: /(abc|(d|de)c)/I
1440: Capturing subpattern count = 2
1441: No options
1442: No first char
1443: Need char = 'c'
1444:
1445: /a*/I
1446: Capturing subpattern count = 0
1447: No options
1448: No first char
1449: No need char
1450:
1451: /a+/I
1452: Capturing subpattern count = 0
1453: No options
1454: First char = 'a'
1455: No need char
1456:
1457: /(baa|a+)/I
1458: Capturing subpattern count = 1
1459: No options
1460: No first char
1461: Need char = 'a'
1462:
1463: /a{0,3}/I
1464: Capturing subpattern count = 0
1465: No options
1466: No first char
1467: No need char
1468:
1469: /baa{3,}/I
1470: Capturing subpattern count = 0
1471: No options
1472: First char = 'b'
1473: Need char = 'a'
1474:
1475: /"([^\\"]+|\\.)*"/I
1476: Capturing subpattern count = 1
1477: No options
1478: First char = '"'
1479: Need char = '"'
1480:
1481: /(abc|ab[cd])/I
1482: Capturing subpattern count = 1
1483: No options
1484: First char = 'a'
1485: No need char
1486:
1487: /(a|.)/I
1488: Capturing subpattern count = 1
1489: No options
1490: No first char
1491: No need char
1492:
1493: /a|ba|\w/I
1494: Capturing subpattern count = 0
1495: No options
1496: No first char
1497: No need char
1498:
1499: /abc(?=pqr)/I
1500: Capturing subpattern count = 0
1501: No options
1502: First char = 'a'
1503: Need char = 'r'
1504:
1505: /...(?<=abc)/I
1506: Capturing subpattern count = 0
1507: No options
1508: No first char
1509: No need char
1510:
1511: /abc(?!pqr)/I
1512: Capturing subpattern count = 0
1513: No options
1514: First char = 'a'
1515: Need char = 'c'
1516:
1517: /ab./I
1518: Capturing subpattern count = 0
1519: No options
1520: First char = 'a'
1521: Need char = 'b'
1522:
1523: /ab[xyz]/I
1524: Capturing subpattern count = 0
1525: No options
1526: First char = 'a'
1527: Need char = 'b'
1528:
1529: /abc*/I
1530: Capturing subpattern count = 0
1531: No options
1532: First char = 'a'
1533: Need char = 'b'
1534:
1535: /ab.c*/I
1536: Capturing subpattern count = 0
1537: No options
1538: First char = 'a'
1539: Need char = 'b'
1540:
1541: /a.c*/I
1542: Capturing subpattern count = 0
1543: No options
1544: First char = 'a'
1545: No need char
1546:
1547: /.c*/I
1548: Capturing subpattern count = 0
1549: No options
1550: No first char
1551: No need char
1552:
1553: /ac*/I
1554: Capturing subpattern count = 0
1555: No options
1556: First char = 'a'
1557: No need char
1558:
1559: /(a.c*|b.c*)/I
1560: Capturing subpattern count = 1
1561: No options
1562: No first char
1563: No need char
1564:
1565: /a.c*|aba/I
1566: Capturing subpattern count = 0
1567: No options
1568: First char = 'a'
1569: No need char
1570:
1571: /.+a/I
1572: Capturing subpattern count = 0
1573: No options
1574: No first char
1575: Need char = 'a'
1576:
1577: /(?=abcda)a.*/I
1578: Capturing subpattern count = 0
1579: No options
1580: First char = 'a'
1581: Need char = 'a'
1582:
1583: /(?=a)a.*/I
1584: Capturing subpattern count = 0
1585: No options
1586: First char = 'a'
1587: No need char
1588:
1589: /a(b)*/I
1590: Capturing subpattern count = 1
1591: No options
1592: First char = 'a'
1593: No need char
1594:
1595: /a\d*/I
1596: Capturing subpattern count = 0
1597: No options
1598: First char = 'a'
1599: No need char
1600:
1601: /ab\d*/I
1602: Capturing subpattern count = 0
1603: No options
1604: First char = 'a'
1605: Need char = 'b'
1606:
1607: /a(\d)*/I
1608: Capturing subpattern count = 1
1609: No options
1610: First char = 'a'
1611: No need char
1612:
1613: /abcde{0,0}/I
1614: Capturing subpattern count = 0
1615: No options
1616: First char = 'a'
1617: Need char = 'd'
1618:
1619: /ab\d+/I
1620: Capturing subpattern count = 0
1621: No options
1622: First char = 'a'
1623: Need char = 'b'
1624:
1625: /a(?(1)b)(.)/I
1626: Capturing subpattern count = 1
1627: No options
1628: First char = 'a'
1629: No need char
1630:
1631: /a(?(1)bag|big)(.)/I
1632: Capturing subpattern count = 1
1633: No options
1634: First char = 'a'
1635: Need char = 'g'
1636:
1637: /a(?(1)bag|big)*(.)/I
1638: Capturing subpattern count = 1
1639: No options
1640: First char = 'a'
1641: No need char
1642:
1643: /a(?(1)bag|big)+(.)/I
1644: Capturing subpattern count = 1
1645: No options
1646: First char = 'a'
1647: Need char = 'g'
1648:
1649: /a(?(1)b..|b..)(.)/I
1650: Capturing subpattern count = 1
1651: No options
1652: First char = 'a'
1653: Need char = 'b'
1654:
1655: /ab\d{0}e/I
1656: Capturing subpattern count = 0
1657: No options
1658: First char = 'a'
1659: Need char = 'e'
1660:
1661: /a?b?/I
1662: Capturing subpattern count = 0
1663: No options
1664: No first char
1665: No need char
1666: a
1667: 0: a
1668: b
1669: 0: b
1670: ab
1671: 0: ab
1672: \
1673: 0:
1674: *** Failers
1675: 0:
1676: \N
1677: No match
1678:
1679: /|-/I
1680: Capturing subpattern count = 0
1681: No options
1682: No first char
1683: No need char
1684: abcd
1685: 0:
1686: -abc
1687: 0:
1688: \Nab-c
1689: 0: -
1690: *** Failers
1691: 0:
1692: \Nabc
1693: No match
1694:
1695: /a*(b+)(z)(z)/P
1696: aaaabbbbzzzz
1697: 0: aaaabbbbzz
1698: 1: bbbb
1699: 2: z
1700: 3: z
1701: aaaabbbbzzzz\O0
1702: aaaabbbbzzzz\O1
1703: 0: aaaabbbbzz
1704: aaaabbbbzzzz\O2
1705: 0: aaaabbbbzz
1706: 1: bbbb
1707: aaaabbbbzzzz\O3
1708: 0: aaaabbbbzz
1709: 1: bbbb
1710: 2: z
1711: aaaabbbbzzzz\O4
1712: 0: aaaabbbbzz
1713: 1: bbbb
1714: 2: z
1715: 3: z
1716: aaaabbbbzzzz\O5
1717: 0: aaaabbbbzz
1718: 1: bbbb
1719: 2: z
1720: 3: z
1721:
1722: /^.?abcd/IS
1723: Capturing subpattern count = 0
1724: Options: anchored
1725: No first char
1726: Need char = 'd'
1727: Subject length lower bound = 4
1728: No set of starting bytes
1729:
1730: /\( # ( at start
1731: (?: # Non-capturing bracket
1732: (?>[^()]+) # Either a sequence of non-brackets (no backtracking)
1733: | # Or
1734: (?R) # Recurse - i.e. nested bracketed string
1735: )* # Zero or more contents
1736: \) # Closing )
1737: /Ix
1738: Capturing subpattern count = 0
1739: Options: extended
1740: First char = '('
1741: Need char = ')'
1742: (abcd)
1743: 0: (abcd)
1744: (abcd)xyz
1745: 0: (abcd)
1746: xyz(abcd)
1747: 0: (abcd)
1748: (ab(xy)cd)pqr
1749: 0: (ab(xy)cd)
1750: (ab(xycd)pqr
1751: 0: (xycd)
1752: () abc ()
1753: 0: ()
1754: 12(abcde(fsh)xyz(foo(bar))lmno)89
1755: 0: (abcde(fsh)xyz(foo(bar))lmno)
1756: *** Failers
1757: No match
1758: abcd
1759: No match
1760: abcd)
1761: No match
1762: (abcd
1763: No match
1764:
1765: /\( ( (?>[^()]+) | (?R) )* \) /Ixg
1766: Capturing subpattern count = 1
1767: Options: extended
1768: First char = '('
1769: Need char = ')'
1770: (ab(xy)cd)pqr
1771: 0: (ab(xy)cd)
1772: 1: cd
1773: 1(abcd)(x(y)z)pqr
1774: 0: (abcd)
1775: 1: abcd
1776: 0: (x(y)z)
1777: 1: z
1778:
1779: /\( (?: (?>[^()]+) | (?R) ) \) /Ix
1780: Capturing subpattern count = 0
1781: Options: extended
1782: First char = '('
1783: Need char = ')'
1784: (abcd)
1785: 0: (abcd)
1786: (ab(xy)cd)
1787: 0: (xy)
1788: (a(b(c)d)e)
1789: 0: (c)
1790: ((ab))
1791: 0: ((ab))
1792: *** Failers
1793: No match
1794: ()
1795: No match
1796:
1797: /\( (?: (?>[^()]+) | (?R) )? \) /Ix
1798: Capturing subpattern count = 0
1799: Options: extended
1800: First char = '('
1801: Need char = ')'
1802: ()
1803: 0: ()
1804: 12(abcde(fsh)xyz(foo(bar))lmno)89
1805: 0: (fsh)
1806:
1807: /\( ( (?>[^()]+) | (?R) )* \) /Ix
1808: Capturing subpattern count = 1
1809: Options: extended
1810: First char = '('
1811: Need char = ')'
1812: (ab(xy)cd)
1813: 0: (ab(xy)cd)
1814: 1: cd
1815:
1816: /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1817: Capturing subpattern count = 2
1818: Options: extended
1819: First char = '('
1820: Need char = ')'
1821: (ab(xy)cd)
1822: 0: (ab(xy)cd)
1823: 1: ab(xy)cd
1824: 2: cd
1825:
1826: /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1827: Capturing subpattern count = 3
1828: Options: extended
1829: First char = '('
1830: Need char = ')'
1831: (ab(xy)cd)
1832: 0: (ab(xy)cd)
1833: 1: <unset>
1834: 2: ab(xy)cd
1835: 3: cd
1836: (123ab(xy)cd)
1837: 0: (123ab(xy)cd)
1838: 1: 123
1839: 2: ab(xy)cd
1840: 3: cd
1841:
1842: /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1843: Capturing subpattern count = 3
1844: Options: extended
1845: First char = '('
1846: Need char = ')'
1847: (ab(xy)cd)
1848: 0: (ab(xy)cd)
1849: 1: ab(xy)cd
1850: 2: <unset>
1851: 3: cd
1852: (123ab(xy)cd)
1853: 0: (123ab(xy)cd)
1854: 1: 123ab(xy)cd
1855: 2: 123
1856: 3: cd
1857:
1858: /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1859: Capturing subpattern count = 11
1860: Options: extended
1861: First char = '('
1862: Need char = ')'
1863: (ab(xy)cd)
1864: 0: (ab(xy)cd)
1865: 1: ab(xy)cd
1866: 2: ab(xy)cd
1867: 3: ab(xy)cd
1868: 4: ab(xy)cd
1869: 5: ab(xy)cd
1870: 6: ab(xy)cd
1871: 7: ab(xy)cd
1872: 8: ab(xy)cd
1873: 9: ab(xy)cd
1874: 10: ab(xy)cd
1875: 11: cd
1876:
1877: /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1878: Capturing subpattern count = 3
1879: Options: extended
1880: First char = '('
1881: Need char = ')'
1882: (abcd(xyz<p>qrs)123)
1883: 0: (abcd(xyz<p>qrs)123)
1884: 1: abcd(xyz<p>qrs)123
1885: 2: 123
1886:
1887: /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1888: Capturing subpattern count = 3
1889: Options: extended
1890: First char = '('
1891: Need char = ')'
1892: (ab(cd)ef)
1893: 0: (ab(cd)ef)
1894: 1: ab(cd)ef
1895: 2: ef
1896: 3: (cd)
1897: (ab(cd(ef)gh)ij)
1898: 0: (ab(cd(ef)gh)ij)
1899: 1: ab(cd(ef)gh)ij
1900: 2: ij
1901: 3: (cd(ef)gh)
1902:
1903: /^[[:alnum:]]/DZ
1904: ------------------------------------------------------------------
1905: Bra
1906: ^
1907: [0-9A-Za-z]
1908: Ket
1909: End
1910: ------------------------------------------------------------------
1911: Capturing subpattern count = 0
1912: Options: anchored
1913: No first char
1914: No need char
1915:
1916: /^[[:^alnum:]]/DZ
1917: ------------------------------------------------------------------
1918: Bra
1919: ^
1920: [\x00-/:-@[-`{-\xff] (neg)
1921: Ket
1922: End
1923: ------------------------------------------------------------------
1924: Capturing subpattern count = 0
1925: Options: anchored
1926: No first char
1927: No need char
1928:
1929: /^[[:alpha:]]/DZ
1930: ------------------------------------------------------------------
1931: Bra
1932: ^
1933: [A-Za-z]
1934: Ket
1935: End
1936: ------------------------------------------------------------------
1937: Capturing subpattern count = 0
1938: Options: anchored
1939: No first char
1940: No need char
1941:
1942: /^[[:^alpha:]]/DZ
1943: ------------------------------------------------------------------
1944: Bra
1945: ^
1946: [\x00-@[-`{-\xff] (neg)
1947: Ket
1948: End
1949: ------------------------------------------------------------------
1950: Capturing subpattern count = 0
1951: Options: anchored
1952: No first char
1953: No need char
1954:
1955: /[_[:alpha:]]/IS
1956: Capturing subpattern count = 0
1957: No options
1958: No first char
1959: No need char
1960: Subject length lower bound = 1
1961: 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
1962: _ 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
1963:
1964: /^[[:ascii:]]/DZ
1965: ------------------------------------------------------------------
1966: Bra
1967: ^
1968: [\x00-\x7f]
1969: Ket
1970: End
1971: ------------------------------------------------------------------
1972: Capturing subpattern count = 0
1973: Options: anchored
1974: No first char
1975: No need char
1976:
1977: /^[[:^ascii:]]/DZ
1978: ------------------------------------------------------------------
1979: Bra
1980: ^
1981: [\x80-\xff] (neg)
1982: Ket
1983: End
1984: ------------------------------------------------------------------
1985: Capturing subpattern count = 0
1986: Options: anchored
1987: No first char
1988: No need char
1989:
1990: /^[[:blank:]]/DZ
1991: ------------------------------------------------------------------
1992: Bra
1993: ^
1994: [\x09 ]
1995: Ket
1996: End
1997: ------------------------------------------------------------------
1998: Capturing subpattern count = 0
1999: Options: anchored
2000: No first char
2001: No need char
2002:
2003: /^[[:^blank:]]/DZ
2004: ------------------------------------------------------------------
2005: Bra
2006: ^
2007: [\x00-\x08\x0a-\x1f!-\xff] (neg)
2008: Ket
2009: End
2010: ------------------------------------------------------------------
2011: Capturing subpattern count = 0
2012: Options: anchored
2013: No first char
2014: No need char
2015:
2016: /[\n\x0b\x0c\x0d[:blank:]]/IS
2017: Capturing subpattern count = 0
2018: Contains explicit CR or LF match
2019: No options
2020: No first char
2021: No need char
2022: Subject length lower bound = 1
2023: Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2024:
2025: /^[[:cntrl:]]/DZ
2026: ------------------------------------------------------------------
2027: Bra
2028: ^
2029: [\x00-\x1f\x7f]
2030: Ket
2031: End
2032: ------------------------------------------------------------------
2033: Capturing subpattern count = 0
2034: Options: anchored
2035: No first char
2036: No need char
2037:
2038: /^[[:digit:]]/DZ
2039: ------------------------------------------------------------------
2040: Bra
2041: ^
2042: [0-9]
2043: Ket
2044: End
2045: ------------------------------------------------------------------
2046: Capturing subpattern count = 0
2047: Options: anchored
2048: No first char
2049: No need char
2050:
2051: /^[[:graph:]]/DZ
2052: ------------------------------------------------------------------
2053: Bra
2054: ^
2055: [!-~]
2056: Ket
2057: End
2058: ------------------------------------------------------------------
2059: Capturing subpattern count = 0
2060: Options: anchored
2061: No first char
2062: No need char
2063:
2064: /^[[:lower:]]/DZ
2065: ------------------------------------------------------------------
2066: Bra
2067: ^
2068: [a-z]
2069: Ket
2070: End
2071: ------------------------------------------------------------------
2072: Capturing subpattern count = 0
2073: Options: anchored
2074: No first char
2075: No need char
2076:
2077: /^[[:print:]]/DZ
2078: ------------------------------------------------------------------
2079: Bra
2080: ^
2081: [ -~]
2082: Ket
2083: End
2084: ------------------------------------------------------------------
2085: Capturing subpattern count = 0
2086: Options: anchored
2087: No first char
2088: No need char
2089:
2090: /^[[:punct:]]/DZ
2091: ------------------------------------------------------------------
2092: Bra
2093: ^
2094: [!-/:-@[-`{-~]
2095: Ket
2096: End
2097: ------------------------------------------------------------------
2098: Capturing subpattern count = 0
2099: Options: anchored
2100: No first char
2101: No need char
2102:
2103: /^[[:space:]]/DZ
2104: ------------------------------------------------------------------
2105: Bra
2106: ^
2107: [\x09-\x0d ]
2108: Ket
2109: End
2110: ------------------------------------------------------------------
2111: Capturing subpattern count = 0
2112: Options: anchored
2113: No first char
2114: No need char
2115:
2116: /^[[:upper:]]/DZ
2117: ------------------------------------------------------------------
2118: Bra
2119: ^
2120: [A-Z]
2121: Ket
2122: End
2123: ------------------------------------------------------------------
2124: Capturing subpattern count = 0
2125: Options: anchored
2126: No first char
2127: No need char
2128:
2129: /^[[:xdigit:]]/DZ
2130: ------------------------------------------------------------------
2131: Bra
2132: ^
2133: [0-9A-Fa-f]
2134: Ket
2135: End
2136: ------------------------------------------------------------------
2137: Capturing subpattern count = 0
2138: Options: anchored
2139: No first char
2140: No need char
2141:
2142: /^[[:word:]]/DZ
2143: ------------------------------------------------------------------
2144: Bra
2145: ^
2146: [0-9A-Z_a-z]
2147: Ket
2148: End
2149: ------------------------------------------------------------------
2150: Capturing subpattern count = 0
2151: Options: anchored
2152: No first char
2153: No need char
2154:
2155: /^[[:^cntrl:]]/DZ
2156: ------------------------------------------------------------------
2157: Bra
2158: ^
2159: [ -~\x80-\xff] (neg)
2160: Ket
2161: End
2162: ------------------------------------------------------------------
2163: Capturing subpattern count = 0
2164: Options: anchored
2165: No first char
2166: No need char
2167:
2168: /^[12[:^digit:]]/DZ
2169: ------------------------------------------------------------------
2170: Bra
2171: ^
2172: [\x00-/12:-\xff] (neg)
2173: Ket
2174: End
2175: ------------------------------------------------------------------
2176: Capturing subpattern count = 0
2177: Options: anchored
2178: No first char
2179: No need char
2180:
2181: /^[[:^blank:]]/DZ
2182: ------------------------------------------------------------------
2183: Bra
2184: ^
2185: [\x00-\x08\x0a-\x1f!-\xff] (neg)
2186: Ket
2187: End
2188: ------------------------------------------------------------------
2189: Capturing subpattern count = 0
2190: Options: anchored
2191: No first char
2192: No need char
2193:
2194: /[01[:alpha:]%]/DZ
2195: ------------------------------------------------------------------
2196: Bra
2197: [%01A-Za-z]
2198: Ket
2199: End
2200: ------------------------------------------------------------------
2201: Capturing subpattern count = 0
2202: No options
2203: No first char
2204: No need char
2205:
2206: /[[.ch.]]/I
2207: Failed: POSIX collating elements are not supported at offset 1
2208:
2209: /[[=ch=]]/I
2210: Failed: POSIX collating elements are not supported at offset 1
2211:
2212: /[[:rhubarb:]]/I
2213: Failed: unknown POSIX class name at offset 3
2214:
2215: /[[:upper:]]/Ii
2216: Capturing subpattern count = 0
2217: Options: caseless
2218: No first char
2219: No need char
2220: A
2221: 0: A
2222: a
2223: 0: a
2224:
2225: /[[:lower:]]/Ii
2226: Capturing subpattern count = 0
2227: Options: caseless
2228: No first char
2229: No need char
2230: A
2231: 0: A
2232: a
2233: 0: a
2234:
2235: /((?-i)[[:lower:]])[[:lower:]]/Ii
2236: Capturing subpattern count = 1
2237: Options: caseless
2238: No first char
2239: No need char
2240: ab
2241: 0: ab
2242: 1: a
2243: aB
2244: 0: aB
2245: 1: a
2246: *** Failers
2247: 0: ai
2248: 1: a
2249: Ab
2250: No match
2251: AB
2252: No match
2253:
2254: /[\200-\110]/I
2255: Failed: range out of order in character class at offset 9
2256:
2257: /^(?(0)f|b)oo/I
2258: Failed: invalid condition (?(0) at offset 6
2259:
2260: /This one's here because of the large output vector needed/I
2261: Capturing subpattern count = 0
2262: No options
2263: First char = 'T'
2264: Need char = 'd'
2265:
2266: /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2267: Capturing subpattern count = 271
2268: Max back reference = 270
2269: No options
2270: No first char
2271: No need char
2272: \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
2273: 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
2274: 1: 1
2275: 2: 2
2276: 3: 3
2277: 4: 4
2278: 5: 5
2279: 6: 6
2280: 7: 7
2281: 8: 8
2282: 9: 9
2283: 10: 10
2284: 11: 11
2285: 12: 12
2286: 13: 13
2287: 14: 14
2288: 15: 15
2289: 16: 16
2290: 17: 17
2291: 18: 18
2292: 19: 19
2293: 20: 20
2294: 21: 21
2295: 22: 22
2296: 23: 23
2297: 24: 24
2298: 25: 25
2299: 26: 26
2300: 27: 27
2301: 28: 28
2302: 29: 29
2303: 30: 30
2304: 31: 31
2305: 32: 32
2306: 33: 33
2307: 34: 34
2308: 35: 35
2309: 36: 36
2310: 37: 37
2311: 38: 38
2312: 39: 39
2313: 40: 40
2314: 41: 41
2315: 42: 42
2316: 43: 43
2317: 44: 44
2318: 45: 45
2319: 46: 46
2320: 47: 47
2321: 48: 48
2322: 49: 49
2323: 50: 50
2324: 51: 51
2325: 52: 52
2326: 53: 53
2327: 54: 54
2328: 55: 55
2329: 56: 56
2330: 57: 57
2331: 58: 58
2332: 59: 59
2333: 60: 60
2334: 61: 61
2335: 62: 62
2336: 63: 63
2337: 64: 64
2338: 65: 65
2339: 66: 66
2340: 67: 67
2341: 68: 68
2342: 69: 69
2343: 70: 70
2344: 71: 71
2345: 72: 72
2346: 73: 73
2347: 74: 74
2348: 75: 75
2349: 76: 76
2350: 77: 77
2351: 78: 78
2352: 79: 79
2353: 80: 80
2354: 81: 81
2355: 82: 82
2356: 83: 83
2357: 84: 84
2358: 85: 85
2359: 86: 86
2360: 87: 87
2361: 88: 88
2362: 89: 89
2363: 90: 90
2364: 91: 91
2365: 92: 92
2366: 93: 93
2367: 94: 94
2368: 95: 95
2369: 96: 96
2370: 97: 97
2371: 98: 98
2372: 99: 99
2373: 100: 100
2374: 101: 101
2375: 102: 102
2376: 103: 103
2377: 104: 104
2378: 105: 105
2379: 106: 106
2380: 107: 107
2381: 108: 108
2382: 109: 109
2383: 110: 110
2384: 111: 111
2385: 112: 112
2386: 113: 113
2387: 114: 114
2388: 115: 115
2389: 116: 116
2390: 117: 117
2391: 118: 118
2392: 119: 119
2393: 120: 120
2394: 121: 121
2395: 122: 122
2396: 123: 123
2397: 124: 124
2398: 125: 125
2399: 126: 126
2400: 127: 127
2401: 128: 128
2402: 129: 129
2403: 130: 130
2404: 131: 131
2405: 132: 132
2406: 133: 133
2407: 134: 134
2408: 135: 135
2409: 136: 136
2410: 137: 137
2411: 138: 138
2412: 139: 139
2413: 140: 140
2414: 141: 141
2415: 142: 142
2416: 143: 143
2417: 144: 144
2418: 145: 145
2419: 146: 146
2420: 147: 147
2421: 148: 148
2422: 149: 149
2423: 150: 150
2424: 151: 151
2425: 152: 152
2426: 153: 153
2427: 154: 154
2428: 155: 155
2429: 156: 156
2430: 157: 157
2431: 158: 158
2432: 159: 159
2433: 160: 160
2434: 161: 161
2435: 162: 162
2436: 163: 163
2437: 164: 164
2438: 165: 165
2439: 166: 166
2440: 167: 167
2441: 168: 168
2442: 169: 169
2443: 170: 170
2444: 171: 171
2445: 172: 172
2446: 173: 173
2447: 174: 174
2448: 175: 175
2449: 176: 176
2450: 177: 177
2451: 178: 178
2452: 179: 179
2453: 180: 180
2454: 181: 181
2455: 182: 182
2456: 183: 183
2457: 184: 184
2458: 185: 185
2459: 186: 186
2460: 187: 187
2461: 188: 188
2462: 189: 189
2463: 190: 190
2464: 191: 191
2465: 192: 192
2466: 193: 193
2467: 194: 194
2468: 195: 195
2469: 196: 196
2470: 197: 197
2471: 198: 198
2472: 199: 199
2473: 200: 200
2474: 201: 201
2475: 202: 202
2476: 203: 203
2477: 204: 204
2478: 205: 205
2479: 206: 206
2480: 207: 207
2481: 208: 208
2482: 209: 209
2483: 210: 210
2484: 211: 211
2485: 212: 212
2486: 213: 213
2487: 214: 214
2488: 215: 215
2489: 216: 216
2490: 217: 217
2491: 218: 218
2492: 219: 219
2493: 220: 220
2494: 221: 221
2495: 222: 222
2496: 223: 223
2497: 224: 224
2498: 225: 225
2499: 226: 226
2500: 227: 227
2501: 228: 228
2502: 229: 229
2503: 230: 230
2504: 231: 231
2505: 232: 232
2506: 233: 233
2507: 234: 234
2508: 235: 235
2509: 236: 236
2510: 237: 237
2511: 238: 238
2512: 239: 239
2513: 240: 240
2514: 241: 241
2515: 242: 242
2516: 243: 243
2517: 244: 244
2518: 245: 245
2519: 246: 246
2520: 247: 247
2521: 248: 248
2522: 249: 249
2523: 250: 250
2524: 251: 251
2525: 252: 252
2526: 253: 253
2527: 254: 254
2528: 255: 255
2529: 256: 256
2530: 257: 257
2531: 258: 258
2532: 259: 259
2533: 260: 260
2534: 261: 261
2535: 262: 262
2536: 263: 263
2537: 264: 264
2538: 265: 265
2539: 266: 266
2540: 267: 267
2541: 268: 268
2542: 269: 269
2543: 270: ABC
2544: 271: ABC
2545:
2546: /This one's here because Perl does this differently and PCRE can't at present/I
2547: Capturing subpattern count = 0
2548: No options
2549: First char = 'T'
2550: Need char = 't'
2551:
2552: /(main(O)?)+/I
2553: Capturing subpattern count = 2
2554: No options
2555: First char = 'm'
2556: Need char = 'n'
2557: mainmain
2558: 0: mainmain
2559: 1: main
2560: mainOmain
2561: 0: mainOmain
2562: 1: main
2563: 2: O
2564:
2565: /These are all cases where Perl does it differently (nested captures)/I
2566: Capturing subpattern count = 1
2567: No options
2568: First char = 'T'
2569: Need char = 's'
2570:
2571: /^(a(b)?)+$/I
2572: Capturing subpattern count = 2
2573: Options: anchored
2574: No first char
2575: No need char
2576: aba
2577: 0: aba
2578: 1: a
2579: 2: b
2580:
2581: /^(aa(bb)?)+$/I
2582: Capturing subpattern count = 2
2583: Options: anchored
2584: No first char
2585: No need char
2586: aabbaa
2587: 0: aabbaa
2588: 1: aa
2589: 2: bb
2590:
2591: /^(aa|aa(bb))+$/I
2592: Capturing subpattern count = 2
2593: Options: anchored
2594: No first char
2595: No need char
2596: aabbaa
2597: 0: aabbaa
2598: 1: aa
2599: 2: bb
2600:
2601: /^(aa(bb)??)+$/I
2602: Capturing subpattern count = 2
2603: Options: anchored
2604: No first char
2605: No need char
2606: aabbaa
2607: 0: aabbaa
2608: 1: aa
2609: 2: bb
2610:
2611: /^(?:aa(bb)?)+$/I
2612: Capturing subpattern count = 1
2613: Options: anchored
2614: No first char
2615: No need char
2616: aabbaa
2617: 0: aabbaa
2618: 1: bb
2619:
2620: /^(aa(b(b))?)+$/I
2621: Capturing subpattern count = 3
2622: Options: anchored
2623: No first char
2624: No need char
2625: aabbaa
2626: 0: aabbaa
2627: 1: aa
2628: 2: bb
2629: 3: b
2630:
2631: /^(?:aa(b(b))?)+$/I
2632: Capturing subpattern count = 2
2633: Options: anchored
2634: No first char
2635: No need char
2636: aabbaa
2637: 0: aabbaa
2638: 1: bb
2639: 2: b
2640:
2641: /^(?:aa(b(?:b))?)+$/I
2642: Capturing subpattern count = 1
2643: Options: anchored
2644: No first char
2645: No need char
2646: aabbaa
2647: 0: aabbaa
2648: 1: bb
2649:
2650: /^(?:aa(bb(?:b))?)+$/I
2651: Capturing subpattern count = 1
2652: Options: anchored
2653: No first char
2654: No need char
2655: aabbbaa
2656: 0: aabbbaa
2657: 1: bbb
2658:
2659: /^(?:aa(b(?:bb))?)+$/I
2660: Capturing subpattern count = 1
2661: Options: anchored
2662: No first char
2663: No need char
2664: aabbbaa
2665: 0: aabbbaa
2666: 1: bbb
2667:
2668: /^(?:aa(?:b(b))?)+$/I
2669: Capturing subpattern count = 1
2670: Options: anchored
2671: No first char
2672: No need char
2673: aabbaa
2674: 0: aabbaa
2675: 1: b
2676:
2677: /^(?:aa(?:b(bb))?)+$/I
2678: Capturing subpattern count = 1
2679: Options: anchored
2680: No first char
2681: No need char
2682: aabbbaa
2683: 0: aabbbaa
2684: 1: bb
2685:
2686: /^(aa(b(bb))?)+$/I
2687: Capturing subpattern count = 3
2688: Options: anchored
2689: No first char
2690: No need char
2691: aabbbaa
2692: 0: aabbbaa
2693: 1: aa
2694: 2: bbb
2695: 3: bb
2696:
2697: /^(aa(bb(bb))?)+$/I
2698: Capturing subpattern count = 3
2699: Options: anchored
2700: No first char
2701: No need char
2702: aabbbbaa
2703: 0: aabbbbaa
2704: 1: aa
2705: 2: bbbb
2706: 3: bb
2707:
2708: /--------------------------------------------------------------------/I
2709: Capturing subpattern count = 0
2710: No options
2711: First char = '-'
2712: Need char = '-'
2713:
2714: /#/IxDZ
2715: ------------------------------------------------------------------
2716: Bra
2717: Ket
2718: End
2719: ------------------------------------------------------------------
2720: Capturing subpattern count = 0
2721: Options: extended
2722: No first char
2723: No need char
2724:
2725: /a#/IxDZ
2726: ------------------------------------------------------------------
2727: Bra
2728: a
2729: Ket
2730: End
2731: ------------------------------------------------------------------
2732: Capturing subpattern count = 0
2733: Options: extended
2734: First char = 'a'
2735: No need char
2736:
2737: /[\s]/DZ
2738: ------------------------------------------------------------------
2739: Bra
2740: [\x09\x0a\x0c\x0d ]
2741: Ket
2742: End
2743: ------------------------------------------------------------------
2744: Capturing subpattern count = 0
2745: No options
2746: No first char
2747: No need char
2748:
2749: /[\S]/DZ
2750: ------------------------------------------------------------------
2751: Bra
2752: [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2753: Ket
2754: End
2755: ------------------------------------------------------------------
2756: Capturing subpattern count = 0
2757: No options
2758: No first char
2759: No need char
2760:
2761: /a(?i)b/DZ
2762: ------------------------------------------------------------------
2763: Bra
2764: a
2765: /i b
2766: Ket
2767: End
2768: ------------------------------------------------------------------
2769: Capturing subpattern count = 0
2770: No options
2771: First char = 'a'
2772: Need char = 'b' (caseless)
2773: ab
2774: 0: ab
2775: aB
2776: 0: aB
2777: *** Failers
2778: No match
2779: AB
2780: No match
2781:
2782: /(a(?i)b)/DZ
2783: ------------------------------------------------------------------
2784: Bra
2785: CBra 1
2786: a
2787: /i b
2788: Ket
2789: Ket
2790: End
2791: ------------------------------------------------------------------
2792: Capturing subpattern count = 1
2793: No options
2794: First char = 'a'
2795: Need char = 'b' (caseless)
2796: ab
2797: 0: ab
2798: 1: ab
2799: aB
2800: 0: aB
2801: 1: aB
2802: *** Failers
2803: No match
2804: AB
2805: No match
2806:
2807: / (?i)abc/IxDZ
2808: ------------------------------------------------------------------
2809: Bra
2810: /i abc
2811: Ket
2812: End
2813: ------------------------------------------------------------------
2814: Capturing subpattern count = 0
2815: Options: caseless extended
2816: First char = 'a' (caseless)
2817: Need char = 'c' (caseless)
2818:
2819: /#this is a comment
2820: (?i)abc/IxDZ
2821: ------------------------------------------------------------------
2822: Bra
2823: /i abc
2824: Ket
2825: End
2826: ------------------------------------------------------------------
2827: Capturing subpattern count = 0
2828: Options: caseless extended
2829: First char = 'a' (caseless)
2830: Need char = 'c' (caseless)
2831:
2832: /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2833: ------------------------------------------------------------------
2834: Bra
2835: 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2836: Ket
2837: End
2838: ------------------------------------------------------------------
2839: Capturing subpattern count = 0
2840: No options
2841: First char = '1'
2842: Need char = '0'
2843:
2844: /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2845: ------------------------------------------------------------------
2846: Bra
2847: 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2848: Ket
2849: End
2850: ------------------------------------------------------------------
2851: Capturing subpattern count = 0
2852: No options
2853: First char = '1'
2854: Need char = '0'
2855:
2856: /\Q\E/DZ
2857: ------------------------------------------------------------------
2858: Bra
2859: Ket
2860: End
2861: ------------------------------------------------------------------
2862: Capturing subpattern count = 0
2863: No options
2864: No first char
2865: No need char
2866: \
2867: 0:
2868:
2869: /\Q\Ex/DZ
2870: ------------------------------------------------------------------
2871: Bra
2872: x
2873: Ket
2874: End
2875: ------------------------------------------------------------------
2876: Capturing subpattern count = 0
2877: No options
2878: First char = 'x'
2879: No need char
2880:
2881: / \Q\E/DZ
2882: ------------------------------------------------------------------
2883: Bra
2884:
2885: Ket
2886: End
2887: ------------------------------------------------------------------
2888: Capturing subpattern count = 0
2889: No options
2890: First char = ' '
2891: No need char
2892:
2893: /a\Q\E/DZ
2894: ------------------------------------------------------------------
2895: Bra
2896: a
2897: Ket
2898: End
2899: ------------------------------------------------------------------
2900: Capturing subpattern count = 0
2901: No options
2902: First char = 'a'
2903: No need char
2904: abc
2905: 0: a
2906: bca
2907: 0: a
2908: bac
2909: 0: a
2910:
2911: /a\Q\Eb/DZ
2912: ------------------------------------------------------------------
2913: Bra
2914: ab
2915: Ket
2916: End
2917: ------------------------------------------------------------------
2918: Capturing subpattern count = 0
2919: No options
2920: First char = 'a'
2921: Need char = 'b'
2922: abc
2923: 0: ab
2924:
2925: /\Q\Eabc/DZ
2926: ------------------------------------------------------------------
2927: Bra
2928: abc
2929: Ket
2930: End
2931: ------------------------------------------------------------------
2932: Capturing subpattern count = 0
2933: No options
2934: First char = 'a'
2935: Need char = 'c'
2936:
2937: /x*+\w/DZ
2938: ------------------------------------------------------------------
2939: Bra
2940: x*+
2941: \w
2942: Ket
2943: End
2944: ------------------------------------------------------------------
2945: Capturing subpattern count = 0
2946: No options
2947: No first char
2948: No need char
2949: *** Failers
2950: 0: F
2951: xxxxx
2952: No match
2953:
2954: /x?+/DZ
2955: ------------------------------------------------------------------
2956: Bra
2957: x?+
2958: Ket
2959: End
2960: ------------------------------------------------------------------
2961: Capturing subpattern count = 0
2962: No options
2963: No first char
2964: No need char
2965:
2966: /x++/DZ
2967: ------------------------------------------------------------------
2968: Bra
2969: x++
2970: Ket
2971: End
2972: ------------------------------------------------------------------
2973: Capturing subpattern count = 0
2974: No options
2975: First char = 'x'
2976: No need char
2977:
2978: /x{1,3}+/DZ
2979: ------------------------------------------------------------------
2980: Bra
2981: Once
2982: x
2983: x{0,2}
2984: Ket
2985: Ket
2986: End
2987: ------------------------------------------------------------------
2988: Capturing subpattern count = 0
2989: No options
2990: First char = 'x'
2991: No need char
2992:
2993: /(x)*+/DZ
2994: ------------------------------------------------------------------
2995: Bra
2996: Braposzero
2997: CBraPos 1
2998: x
2999: KetRpos
3000: Ket
3001: End
3002: ------------------------------------------------------------------
3003: Capturing subpattern count = 1
3004: No options
3005: No first char
3006: No need char
3007:
3008: /^(\w++|\s++)*$/I
3009: Capturing subpattern count = 1
3010: Options: anchored
3011: No first char
3012: No need char
3013: now is the time for all good men to come to the aid of the party
3014: 0: now is the time for all good men to come to the aid of the party
3015: 1: party
3016: *** Failers
3017: No match
3018: this is not a line with only words and spaces!
3019: No match
3020:
3021: /(\d++)(\w)/I
3022: Capturing subpattern count = 2
3023: No options
3024: No first char
3025: No need char
3026: 12345a
3027: 0: 12345a
3028: 1: 12345
3029: 2: a
3030: *** Failers
3031: No match
3032: 12345+
3033: No match
3034:
3035: /a++b/I
3036: Capturing subpattern count = 0
3037: No options
3038: First char = 'a'
3039: Need char = 'b'
3040: aaab
3041: 0: aaab
3042:
3043: /(a++b)/I
3044: Capturing subpattern count = 1
3045: No options
3046: First char = 'a'
3047: Need char = 'b'
3048: aaab
3049: 0: aaab
3050: 1: aaab
3051:
3052: /(a++)b/I
3053: Capturing subpattern count = 1
3054: No options
3055: First char = 'a'
3056: Need char = 'b'
3057: aaab
3058: 0: aaab
3059: 1: aaa
3060:
3061: /([^()]++|\([^()]*\))+/I
3062: Capturing subpattern count = 1
3063: No options
3064: No first char
3065: No need char
3066: ((abc(ade)ufh()()x
3067: 0: abc(ade)ufh()()x
3068: 1: x
3069:
3070: /\(([^()]++|\([^()]+\))+\)/I
3071: Capturing subpattern count = 1
3072: No options
3073: First char = '('
3074: Need char = ')'
3075: (abc)
3076: 0: (abc)
3077: 1: abc
3078: (abc(def)xyz)
3079: 0: (abc(def)xyz)
3080: 1: xyz
3081: *** Failers
3082: No match
3083: ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3084: No match
3085:
3086: /(abc){1,3}+/DZ
3087: ------------------------------------------------------------------
3088: Bra
3089: Once
3090: CBra 1
3091: abc
3092: Ket
3093: Brazero
3094: Bra
3095: CBra 1
3096: abc
3097: Ket
3098: Brazero
3099: CBra 1
3100: abc
3101: Ket
3102: Ket
3103: Ket
3104: Ket
3105: End
3106: ------------------------------------------------------------------
3107: Capturing subpattern count = 1
3108: No options
3109: First char = 'a'
3110: Need char = 'c'
3111:
3112: /a+?+/I
3113: Failed: nothing to repeat at offset 3
3114:
3115: /a{2,3}?+b/I
3116: Failed: nothing to repeat at offset 7
3117:
3118: /(?U)a+?+/I
3119: Failed: nothing to repeat at offset 7
3120:
3121: /a{2,3}?+b/IU
3122: Failed: nothing to repeat at offset 7
3123:
3124: /x(?U)a++b/DZ
3125: ------------------------------------------------------------------
3126: Bra
3127: x
3128: a++
3129: b
3130: Ket
3131: End
3132: ------------------------------------------------------------------
3133: Capturing subpattern count = 0
3134: No options
3135: First char = 'x'
3136: Need char = 'b'
3137: xaaaab
3138: 0: xaaaab
3139:
3140: /(?U)xa++b/DZ
3141: ------------------------------------------------------------------
3142: Bra
3143: x
3144: a++
3145: b
3146: Ket
3147: End
3148: ------------------------------------------------------------------
3149: Capturing subpattern count = 0
3150: Options: ungreedy
3151: First char = 'x'
3152: Need char = 'b'
3153: xaaaab
3154: 0: xaaaab
3155:
3156: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3157: ------------------------------------------------------------------
3158: Bra
3159: ^
3160: CBra 1
3161: CBra 2
3162: a+
3163: Ket
3164: CBra 3
3165: [ab]+?
3166: Ket
3167: CBra 4
3168: [bc]+
3169: Ket
3170: CBra 5
3171: \w*
3172: Ket
3173: Ket
3174: Ket
3175: End
3176: ------------------------------------------------------------------
3177: Capturing subpattern count = 5
3178: Options: anchored
3179: No first char
3180: No need char
3181:
3182: /^x(?U)a+b/DZ
3183: ------------------------------------------------------------------
3184: Bra
3185: ^
3186: x
3187: a++
3188: b
3189: Ket
3190: End
3191: ------------------------------------------------------------------
3192: Capturing subpattern count = 0
3193: Options: anchored
3194: No first char
3195: Need char = 'b'
3196:
3197: /^x(?U)(a+)b/DZ
3198: ------------------------------------------------------------------
3199: Bra
3200: ^
3201: x
3202: CBra 1
3203: a+?
3204: Ket
3205: b
3206: Ket
3207: End
3208: ------------------------------------------------------------------
3209: Capturing subpattern count = 1
3210: Options: anchored
3211: No first char
3212: Need char = 'b'
3213:
3214: /[.x.]/I
3215: Failed: POSIX collating elements are not supported at offset 0
3216:
3217: /[=x=]/I
3218: Failed: POSIX collating elements are not supported at offset 0
3219:
3220: /[:x:]/I
3221: Failed: POSIX named classes are supported only within a class at offset 0
3222:
3223: /\l/I
3224: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3225:
3226: /\L/I
3227: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3228:
3229: /\N{name}/I
3230: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3231:
3232: /\u/I
3233: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3234:
3235: /\U/I
3236: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3237:
3238: /[/I
3239: Failed: missing terminating ] for character class at offset 1
3240:
3241: /[a-/I
3242: Failed: missing terminating ] for character class at offset 3
3243:
3244: /[[:space:]/I
3245: Failed: missing terminating ] for character class at offset 10
3246:
3247: /[\s]/IDZ
3248: ------------------------------------------------------------------
3249: Bra
3250: [\x09\x0a\x0c\x0d ]
3251: Ket
3252: End
3253: ------------------------------------------------------------------
3254: Capturing subpattern count = 0
3255: No options
3256: No first char
3257: No need char
3258:
3259: /[[:space:]]/IDZ
3260: ------------------------------------------------------------------
3261: Bra
3262: [\x09-\x0d ]
3263: Ket
3264: End
3265: ------------------------------------------------------------------
3266: Capturing subpattern count = 0
3267: No options
3268: No first char
3269: No need char
3270:
3271: /[[:space:]abcde]/IDZ
3272: ------------------------------------------------------------------
3273: Bra
3274: [\x09-\x0d a-e]
3275: Ket
3276: End
3277: ------------------------------------------------------------------
3278: Capturing subpattern count = 0
3279: No options
3280: No first char
3281: No need char
3282:
3283: /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix
3284: Capturing subpattern count = 0
3285: Options: extended
3286: First char = '<'
3287: Need char = '>'
3288: <>
3289: 0: <>
3290: <abcd>
3291: 0: <abcd>
3292: <abc <123> hij>
3293: 0: <abc <123> hij>
3294: <abc <def> hij>
3295: 0: <def>
3296: <abc<>def>
3297: 0: <abc<>def>
3298: <abc<>
3299: 0: <>
3300: *** Failers
3301: No match
3302: <abc
3303: No match
3304:
3305: |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
3306: ------------------------------------------------------------------
3307: Bra
3308: 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
3309: \b
3310: Ket
3311: End
3312: ------------------------------------------------------------------
3313: Capturing subpattern count = 0
3314: No options
3315: First char = '8'
3316: Need char = 'X'
3317:
3318: |\$\<\.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
3319: ------------------------------------------------------------------
3320: Bra
3321: $<.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
3322: \b
3323: Ket
3324: End
3325: ------------------------------------------------------------------
3326: Capturing subpattern count = 0
3327: No options
3328: First char = '$'
3329: Need char = 'X'
3330:
3331: /(.*)\d+\1/I
3332: Capturing subpattern count = 1
3333: Max back reference = 1
3334: No options
3335: No first char
3336: No need char
3337:
3338: /(.*)\d+/I
3339: Capturing subpattern count = 1
3340: No options
3341: First char at start or follows newline
3342: No need char
3343:
3344: /(.*)\d+\1/Is
3345: Capturing subpattern count = 1
3346: Max back reference = 1
3347: Options: dotall
3348: No first char
3349: No need char
3350:
3351: /(.*)\d+/Is
3352: Capturing subpattern count = 1
3353: Options: anchored dotall
3354: No first char
3355: No need char
3356:
3357: /(.*(xyz))\d+\2/I
3358: Capturing subpattern count = 2
3359: Max back reference = 2
3360: No options
3361: First char at start or follows newline
3362: Need char = 'z'
3363:
3364: /((.*))\d+\1/I
3365: Capturing subpattern count = 2
3366: Max back reference = 1
3367: No options
3368: No first char
3369: No need char
3370: abc123bc
3371: 0: bc123bc
3372: 1: bc
3373: 2: bc
3374:
3375: /a[b]/I
3376: Capturing subpattern count = 0
3377: No options
3378: First char = 'a'
3379: Need char = 'b'
3380:
3381: /(?=a).*/I
3382: Capturing subpattern count = 0
3383: No options
3384: First char = 'a'
3385: No need char
3386:
3387: /(?=abc).xyz/IiI
3388: Capturing subpattern count = 0
3389: Options: caseless
3390: First char = 'a' (caseless)
3391: Need char = 'z' (caseless)
3392:
3393: /(?=abc)(?i).xyz/I
3394: Capturing subpattern count = 0
3395: No options
3396: First char = 'a'
3397: Need char = 'z' (caseless)
3398:
3399: /(?=a)(?=b)/I
3400: Capturing subpattern count = 0
3401: No options
3402: First char = 'a'
3403: No need char
3404:
3405: /(?=.)a/I
3406: Capturing subpattern count = 0
3407: No options
3408: First char = 'a'
3409: No need char
3410:
3411: /((?=abcda)a)/I
3412: Capturing subpattern count = 1
3413: No options
3414: First char = 'a'
3415: Need char = 'a'
3416:
3417: /((?=abcda)ab)/I
3418: Capturing subpattern count = 1
3419: No options
3420: First char = 'a'
3421: Need char = 'b'
3422:
3423: /()a/I
3424: Capturing subpattern count = 1
3425: No options
3426: No first char
3427: Need char = 'a'
3428:
3429: /(?(1)ab|ac)(.)/I
3430: Capturing subpattern count = 1
3431: No options
3432: First char = 'a'
3433: No need char
3434:
3435: /(?(1)abz|acz)(.)/I
3436: Capturing subpattern count = 1
3437: No options
3438: First char = 'a'
3439: Need char = 'z'
3440:
3441: /(?(1)abz)(.)/I
3442: Capturing subpattern count = 1
3443: No options
3444: No first char
3445: No need char
3446:
3447: /(?(1)abz)(1)23/I
3448: Capturing subpattern count = 1
3449: No options
3450: No first char
3451: Need char = '3'
3452:
3453: /(a)+/I
3454: Capturing subpattern count = 1
3455: No options
3456: First char = 'a'
3457: No need char
3458:
3459: /(a){2,3}/I
3460: Capturing subpattern count = 1
3461: No options
3462: First char = 'a'
3463: Need char = 'a'
3464:
3465: /(a)*/I
3466: Capturing subpattern count = 1
3467: No options
3468: No first char
3469: No need char
3470:
3471: /[a]/I
3472: Capturing subpattern count = 0
3473: No options
3474: First char = 'a'
3475: No need char
3476:
3477: /[ab]/I
3478: Capturing subpattern count = 0
3479: No options
3480: No first char
3481: No need char
3482:
3483: /[ab]/IS
3484: Capturing subpattern count = 0
3485: No options
3486: No first char
3487: No need char
3488: Subject length lower bound = 1
3489: Starting byte set: a b
3490:
3491: /[^a]/I
3492: Capturing subpattern count = 0
3493: No options
3494: No first char
3495: No need char
3496:
3497: /\d456/I
3498: Capturing subpattern count = 0
3499: No options
3500: No first char
3501: Need char = '6'
3502:
3503: /\d456/IS
3504: Capturing subpattern count = 0
3505: No options
3506: No first char
3507: Need char = '6'
3508: Subject length lower bound = 4
3509: Starting byte set: 0 1 2 3 4 5 6 7 8 9
3510:
3511: /a^b/I
3512: Capturing subpattern count = 0
3513: No options
3514: First char = 'a'
3515: Need char = 'b'
3516:
3517: /^a/Im
3518: Capturing subpattern count = 0
3519: Options: multiline
3520: First char at start or follows newline
3521: Need char = 'a'
3522: abcde
3523: 0: a
3524: xy\nabc
3525: 0: a
3526: *** Failers
3527: No match
3528: xyabc
3529: No match
3530:
3531: /c|abc/I
3532: Capturing subpattern count = 0
3533: No options
3534: No first char
3535: Need char = 'c'
3536:
3537: /(?i)[ab]/IS
3538: Capturing subpattern count = 0
3539: Options: caseless
3540: No first char
3541: No need char
3542: Subject length lower bound = 1
3543: Starting byte set: A B a b
3544:
3545: /[ab](?i)cd/IS
3546: Capturing subpattern count = 0
3547: No options
3548: No first char
3549: Need char = 'd' (caseless)
3550: Subject length lower bound = 3
3551: Starting byte set: a b
3552:
3553: /abc(?C)def/I
3554: Capturing subpattern count = 0
3555: No options
3556: First char = 'a'
3557: Need char = 'f'
3558: abcdef
3559: --->abcdef
3560: 0 ^ ^ d
3561: 0: abcdef
3562: 1234abcdef
3563: --->1234abcdef
3564: 0 ^ ^ d
3565: 0: abcdef
3566: *** Failers
3567: No match
3568: abcxyz
3569: No match
3570: abcxyzf
3571: --->abcxyzf
3572: 0 ^ ^ d
3573: No match
3574:
3575: /abc(?C)de(?C1)f/I
3576: Capturing subpattern count = 0
3577: No options
3578: First char = 'a'
3579: Need char = 'f'
3580: 123abcdef
3581: --->123abcdef
3582: 0 ^ ^ d
3583: 1 ^ ^ f
3584: 0: abcdef
3585:
3586: /(?C1)\dabc(?C2)def/IS
3587: Capturing subpattern count = 0
3588: No options
3589: No first char
3590: Need char = 'f'
3591: Subject length lower bound = 7
3592: Starting byte set: 0 1 2 3 4 5 6 7 8 9
3593: 1234abcdef
3594: --->1234abcdef
3595: 1 ^ \d
3596: 1 ^ \d
3597: 1 ^ \d
3598: 1 ^ \d
3599: 2 ^ ^ d
3600: 0: 4abcdef
3601: *** Failers
3602: No match
3603: abcdef
3604: No match
3605:
3606: /(?C1)\dabc(?C2)def/ISS
3607: Capturing subpattern count = 0
3608: No options
3609: No first char
3610: Need char = 'f'
3611: 1234abcdef
3612: --->1234abcdef
3613: 1 ^ \d
3614: 1 ^ \d
3615: 1 ^ \d
3616: 1 ^ \d
3617: 2 ^ ^ d
3618: 0: 4abcdef
3619: *** Failers
3620: No match
3621: abcdef
3622: --->abcdef
3623: 1 ^ \d
3624: 1 ^ \d
3625: 1 ^ \d
3626: 1 ^ \d
3627: 1 ^ \d
3628: 1 ^ \d
3629: No match
3630:
3631: /(?C255)ab/I
3632: Capturing subpattern count = 0
3633: No options
3634: First char = 'a'
3635: Need char = 'b'
3636:
3637: /(?C256)ab/I
3638: Failed: number after (?C is > 255 at offset 6
3639:
3640: /(?Cab)xx/I
3641: Failed: closing ) for (?C expected at offset 3
3642:
3643: /(?C12vr)x/I
3644: Failed: closing ) for (?C expected at offset 5
3645:
3646: /abc(?C)def/I
3647: Capturing subpattern count = 0
3648: No options
3649: First char = 'a'
3650: Need char = 'f'
3651: *** Failers
3652: No match
3653: \x83\x0\x61bcdef
3654: --->\x83\x00abcdef
3655: 0 ^ ^ d
3656: 0: abcdef
3657:
3658: /(abc)(?C)de(?C1)f/I
3659: Capturing subpattern count = 1
3660: No options
3661: First char = 'a'
3662: Need char = 'f'
3663: 123abcdef
3664: --->123abcdef
3665: 0 ^ ^ d
3666: 1 ^ ^ f
3667: 0: abcdef
3668: 1: abc
3669: 123abcdef\C+
3670: Callout 0: last capture = 1
3671: 0: <unset>
3672: 1: abc
3673: --->123abcdef
3674: ^ ^ d
3675: Callout 1: last capture = 1
3676: 0: <unset>
3677: 1: abc
3678: --->123abcdef
3679: ^ ^ f
3680: 0: abcdef
3681: 1: abc
3682: 123abcdef\C-
3683: 0: abcdef
3684: 1: abc
3685: *** Failers
3686: No match
3687: 123abcdef\C!1
3688: --->123abcdef
3689: 0 ^ ^ d
3690: 1 ^ ^ f
3691: No match
3692:
3693: /(?C0)(abc(?C1))*/I
3694: Capturing subpattern count = 1
3695: No options
3696: No first char
3697: No need char
3698: abcabcabc
3699: --->abcabcabc
3700: 0 ^ (abc(?C1))*
3701: 1 ^ ^ )
3702: 1 ^ ^ )
3703: 1 ^ ^ )
3704: 0: abcabcabc
3705: 1: abc
3706: abcabc\C!1!3
3707: --->abcabc
3708: 0 ^ (abc(?C1))*
3709: 1 ^ ^ )
3710: 1 ^ ^ )
3711: 0: abcabc
3712: 1: abc
3713: *** Failers
3714: --->*** Failers
3715: 0 ^ (abc(?C1))*
3716: 0:
3717: abcabcabc\C!1!3
3718: --->abcabcabc
3719: 0 ^ (abc(?C1))*
3720: 1 ^ ^ )
3721: 1 ^ ^ )
3722: 1 ^ ^ )
3723: 0: abcabc
3724: 1: abc
3725:
3726: /(\d{3}(?C))*/I
3727: Capturing subpattern count = 1
3728: No options
3729: No first char
3730: No need char
3731: 123\C+
3732: Callout 0: last capture = -1
3733: 0: <unset>
3734: --->123
3735: ^ ^ )
3736: 0: 123
3737: 1: 123
3738: 123456\C+
3739: Callout 0: last capture = -1
3740: 0: <unset>
3741: --->123456
3742: ^ ^ )
3743: Callout 0: last capture = 1
3744: 0: <unset>
3745: 1: 123
3746: --->123456
3747: ^ ^ )
3748: 0: 123456
3749: 1: 456
3750: 123456789\C+
3751: Callout 0: last capture = -1
3752: 0: <unset>
3753: --->123456789
3754: ^ ^ )
3755: Callout 0: last capture = 1
3756: 0: <unset>
3757: 1: 123
3758: --->123456789
3759: ^ ^ )
3760: Callout 0: last capture = 1
3761: 0: <unset>
3762: 1: 456
3763: --->123456789
3764: ^ ^ )
3765: 0: 123456789
3766: 1: 789
3767:
3768: /((xyz)(?C)p|(?C1)xyzabc)/I
3769: Capturing subpattern count = 2
3770: No options
3771: First char = 'x'
3772: No need char
3773: xyzabc\C+
3774: Callout 0: last capture = 2
3775: 0: <unset>
3776: 1: <unset>
3777: 2: xyz
3778: --->xyzabc
3779: ^ ^ p
3780: Callout 1: last capture = -1
3781: 0: <unset>
3782: --->xyzabc
3783: ^ x
3784: 0: xyzabc
3785: 1: xyzabc
3786:
3787: /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3788: Capturing subpattern count = 3
3789: No options
3790: First char = 'X'
3791: Need char = 'x'
3792: Xxyzabc\C+
3793: Callout 0: last capture = 3
3794: 0: <unset>
3795: 1: X
3796: 2: <unset>
3797: 3: xyz
3798: --->Xxyzabc
3799: ^ ^ p
3800: Callout 1: last capture = 1
3801: 0: <unset>
3802: 1: X
3803: --->Xxyzabc
3804: ^^ x
3805: 0: Xxyzabc
3806: 1: X
3807: 2: xyzabc
3808:
3809: /(?=(abc))(?C)abcdef/I
3810: Capturing subpattern count = 1
3811: No options
3812: First char = 'a'
3813: Need char = 'f'
3814: abcdef\C+
3815: Callout 0: last capture = 1
3816: 0: <unset>
3817: 1: abc
3818: --->abcdef
3819: ^ a
3820: 0: abcdef
3821: 1: abc
3822:
3823: /(?!(abc)(?C1)d)(?C2)abcxyz/I
3824: Capturing subpattern count = 1
3825: No options
3826: First char = 'a'
3827: Need char = 'z'
3828: abcxyz\C+
3829: Callout 1: last capture = 1
3830: 0: <unset>
3831: 1: abc
3832: --->abcxyz
3833: ^ ^ d
3834: Callout 2: last capture = -1
3835: 0: <unset>
3836: --->abcxyz
3837: ^ a
3838: 0: abcxyz
3839:
3840: /(?<=(abc)(?C))xyz/I
3841: Capturing subpattern count = 1
3842: No options
3843: First char = 'x'
3844: Need char = 'z'
3845: abcxyz\C+
3846: Callout 0: last capture = 1
3847: 0: <unset>
3848: 1: abc
3849: --->abcxyz
3850: ^ )
3851: 0: xyz
3852: 1: abc
3853:
3854: /a(b+)(c*)(?C1)/I
3855: Capturing subpattern count = 2
3856: No options
3857: First char = 'a'
3858: Need char = 'b'
3859: abbbbbccc\C*1
3860: --->abbbbbccc
3861: 1 ^ ^
3862: Callout data = 1
3863: 1 ^ ^
3864: Callout data = 1
3865: 1 ^ ^
3866: Callout data = 1
3867: 1 ^ ^
3868: Callout data = 1
3869: 1 ^ ^
3870: Callout data = 1
3871: 1 ^ ^
3872: Callout data = 1
3873: 1 ^ ^
3874: Callout data = 1
3875: 1 ^ ^
3876: Callout data = 1
3877: No match
3878:
3879: /a(b+?)(c*?)(?C1)/I
3880: Capturing subpattern count = 2
3881: No options
3882: First char = 'a'
3883: Need char = 'b'
3884: abbbbbccc\C*1
3885: --->abbbbbccc
3886: 1 ^ ^
3887: Callout data = 1
3888: 1 ^ ^
3889: Callout data = 1
3890: 1 ^ ^
3891: Callout data = 1
3892: 1 ^ ^
3893: Callout data = 1
3894: 1 ^ ^
3895: Callout data = 1
3896: 1 ^ ^
3897: Callout data = 1
3898: 1 ^ ^
3899: Callout data = 1
3900: 1 ^ ^
3901: Callout data = 1
3902: No match
3903:
3904: /(?C)abc/I
3905: Capturing subpattern count = 0
3906: No options
3907: First char = 'a'
3908: Need char = 'c'
3909:
3910: /(?C)^abc/I
3911: Capturing subpattern count = 0
3912: Options: anchored
3913: No first char
3914: No need char
3915:
3916: /(?C)a|b/IS
3917: Capturing subpattern count = 0
3918: No options
3919: No first char
3920: No need char
3921: Subject length lower bound = 1
3922: Starting byte set: a b
3923:
3924: /(?R)/I
3925: Failed: recursive call could loop indefinitely at offset 3
3926:
3927: /(a|(?R))/I
3928: Failed: recursive call could loop indefinitely at offset 6
3929:
3930: /(ab|(bc|(de|(?R))))/I
3931: Failed: recursive call could loop indefinitely at offset 15
3932:
3933: /x(ab|(bc|(de|(?R))))/I
3934: Capturing subpattern count = 3
3935: No options
3936: First char = 'x'
3937: No need char
3938: xab
3939: 0: xab
3940: 1: ab
3941: xbc
3942: 0: xbc
3943: 1: bc
3944: 2: bc
3945: xde
3946: 0: xde
3947: 1: de
3948: 2: de
3949: 3: de
3950: xxab
3951: 0: xxab
3952: 1: xab
3953: 2: xab
3954: 3: xab
3955: xxxab
3956: 0: xxxab
3957: 1: xxab
3958: 2: xxab
3959: 3: xxab
3960: *** Failers
3961: No match
3962: xyab
3963: No match
3964:
3965: /(ab|(bc|(de|(?1))))/I
3966: Failed: recursive call could loop indefinitely at offset 15
3967:
3968: /x(ab|(bc|(de|(?1)x)x)x)/I
3969: Failed: recursive call could loop indefinitely at offset 16
3970:
3971: /^([^()]|\((?1)*\))*$/I
3972: Capturing subpattern count = 1
3973: Options: anchored
3974: No first char
3975: No need char
3976: abc
3977: 0: abc
3978: 1: c
3979: a(b)c
3980: 0: a(b)c
3981: 1: c
3982: a(b(c))d
3983: 0: a(b(c))d
3984: 1: d
3985: *** Failers)
3986: No match
3987: a(b(c)d
3988: No match
3989:
3990: /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3991: Capturing subpattern count = 1
3992: Options: anchored
3993: No first char
3994: Need char = '<'
3995: >abc>123<xyz<
3996: 0: >abc>123<xyz<
3997: 1: 3
3998: >abc>1(2)3<xyz<
3999: 0: >abc>1(2)3<xyz<
4000: 1: 3
4001: >abc>(1(2)3)<xyz<
4002: 0: >abc>(1(2)3)<xyz<
4003: 1: (1(2)3)
4004:
4005: /(a(?1)b)/DZ
4006: ------------------------------------------------------------------
4007: Bra
4008: CBra 1
4009: a
4010: Recurse
4011: b
4012: Ket
4013: Ket
4014: End
4015: ------------------------------------------------------------------
4016: Capturing subpattern count = 1
4017: No options
4018: First char = 'a'
4019: Need char = 'b'
4020:
4021: /(a(?1)+b)/DZ
4022: ------------------------------------------------------------------
4023: Bra
4024: CBra 1
4025: a
4026: Once
4027: Recurse
4028: KetRmax
4029: b
4030: Ket
4031: Ket
4032: End
4033: ------------------------------------------------------------------
4034: Capturing subpattern count = 1
4035: No options
4036: First char = 'a'
4037: Need char = 'b'
4038:
4039: /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
4040: Capturing subpattern count = 2
4041: Options: anchored
4042: No first char
4043: No need char
4044: 12
4045: 0: 12
4046: 1: 12
4047: (((2+2)*-3)-7)
4048: 0: (((2+2)*-3)-7)
4049: 1: (((2+2)*-3)-7)
4050: 2: -
4051: -12
4052: 0: -12
4053: 1: -12
4054: *** Failers
4055: No match
4056: ((2+2)*-3)-7)
4057: No match
4058:
4059: /^(x(y|(?1){2})z)/I
4060: Capturing subpattern count = 2
4061: Options: anchored
4062: No first char
4063: No need char
4064: xyz
4065: 0: xyz
4066: 1: xyz
4067: 2: y
4068: xxyzxyzz
4069: 0: xxyzxyzz
4070: 1: xxyzxyzz
4071: 2: xyzxyz
4072: *** Failers
4073: No match
4074: xxyzz
4075: No match
4076: xxyzxyzxyzz
4077: No match
4078:
4079: /((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix
4080: Capturing subpattern count = 2
4081: Options: extended
4082: First char = '<'
4083: Need char = '>'
4084: <>
4085: 0: <>
4086: 1: <>
4087: 2: <>
4088: <abcd>
4089: 0: <abcd>
4090: 1: <abcd>
4091: 2: <abcd>
4092: <abc <123> hij>
4093: 0: <abc <123> hij>
4094: 1: <abc <123> hij>
4095: 2: <abc <123> hij>
4096: <abc <def> hij>
4097: 0: <def>
4098: 1: <def>
4099: 2: <def>
4100: <abc<>def>
4101: 0: <abc<>def>
4102: 1: <abc<>def>
4103: 2: <abc<>def>
4104: <abc<>
4105: 0: <>
4106: 1: <>
4107: 2: <>
4108: *** Failers
4109: No match
4110: <abc
4111: No match
4112:
4113: /(?1)/I
4114: Failed: reference to non-existent subpattern at offset 3
4115:
4116: /((?2)(abc)/I
4117: Failed: missing ) at offset 10
4118:
4119: /^(abc)def(?1)/I
4120: Capturing subpattern count = 1
4121: Options: anchored
4122: No first char
4123: No need char
4124: abcdefabc
4125: 0: abcdefabc
4126: 1: abc
4127:
4128: /^(a|b|c)=(?1)+/I
4129: Capturing subpattern count = 1
4130: Options: anchored
4131: No first char
4132: No need char
4133: a=a
4134: 0: a=a
4135: 1: a
4136: a=b
4137: 0: a=b
4138: 1: a
4139: a=bc
4140: 0: a=bc
4141: 1: a
4142:
4143: /^(a|b|c)=((?1))+/I
4144: Capturing subpattern count = 2
4145: Options: anchored
4146: No first char
4147: No need char
4148: a=a
4149: 0: a=a
4150: 1: a
4151: 2: a
4152: a=b
4153: 0: a=b
4154: 1: a
4155: 2: b
4156: a=bc
4157: 0: a=bc
4158: 1: a
4159: 2: c
4160:
4161: /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4162: ------------------------------------------------------------------
4163: Bra
4164: a
4165: CBra 1
4166: b
4167: Alt
4168: c
4169: Ket
4170: d
4171: CBra 2
4172: e
4173: Ket
4174: Ket
4175: End
4176: ------------------------------------------------------------------
4177: Capturing subpattern count = 2
4178: Named capturing subpatterns:
4179: longername2 2
4180: name1 1
4181: No options
4182: First char = 'a'
4183: Need char = 'e'
4184: abde
4185: 0: abde
4186: 1: b
4187: 2: e
4188: acde
4189: 0: acde
4190: 1: c
4191: 2: e
4192:
4193: /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4194: ------------------------------------------------------------------
4195: Bra
4196: Bra
4197: a
4198: CBra 1
4199: c
4200: CBra 2
4201: d
4202: Ket
4203: Ket
4204: Ket
4205: CBra 3
4206: a
4207: Ket
4208: Ket
4209: End
4210: ------------------------------------------------------------------
4211: Capturing subpattern count = 3
4212: Named capturing subpatterns:
4213: a 3
4214: c 1
4215: d 2
4216: No options
4217: First char = 'a'
4218: Need char = 'a'
4219:
4220: /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4221: ------------------------------------------------------------------
4222: Bra
4223: CBra 1
4224: a
4225: Ket
4226: Any
4227: Any
4228: Any
4229: \1
4230: bbb
4231: Recurse
4232: d
4233: Ket
4234: End
4235: ------------------------------------------------------------------
4236: Capturing subpattern count = 1
4237: Max back reference = 1
4238: Named capturing subpatterns:
4239: a 1
4240: No options
4241: First char = 'a'
4242: Need char = 'd'
4243:
4244: /^\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
4245: Capturing subpattern count = 4
4246: Max back reference = 4
4247: Named capturing subpatterns:
4248: four 4
4249: one 1
4250: three 3
4251: two 2
4252: Options: anchored caseless
4253: No first char
4254: No need char
4255: 1221
4256: 0: 1221
4257: 1: 1221
4258: 2: 1
4259: Satan, oscillate my metallic sonatas!
4260: 0: Satan, oscillate my metallic sonatas!
4261: 1: <unset>
4262: 2: <unset>
4263: 3: Satan, oscillate my metallic sonatas
4264: 4: S
4265: A man, a plan, a canal: Panama!
4266: 0: A man, a plan, a canal: Panama!
4267: 1: <unset>
4268: 2: <unset>
4269: 3: A man, a plan, a canal: Panama
4270: 4: A
4271: Able was I ere I saw Elba.
4272: 0: Able was I ere I saw Elba.
4273: 1: <unset>
4274: 2: <unset>
4275: 3: Able was I ere I saw Elba
4276: 4: A
4277: *** Failers
4278: No match
4279: The quick brown fox
4280: No match
4281:
4282: /((?(R)a|b))\1(?1)?/I
4283: Capturing subpattern count = 1
4284: Max back reference = 1
4285: No options
4286: No first char
4287: No need char
4288: bb
4289: 0: bb
4290: 1: b
4291: bbaa
4292: 0: bba
4293: 1: b
4294:
4295: /(.*)a/Is
4296: Capturing subpattern count = 1
4297: Options: anchored dotall
4298: No first char
4299: Need char = 'a'
4300:
4301: /(.*)a\1/Is
4302: Capturing subpattern count = 1
4303: Max back reference = 1
4304: Options: dotall
4305: No first char
4306: Need char = 'a'
4307:
4308: /(.*)a(b)\2/Is
4309: Capturing subpattern count = 2
4310: Max back reference = 2
4311: Options: anchored dotall
4312: No first char
4313: Need char = 'b'
4314:
4315: /((.*)a|(.*)b)z/Is
4316: Capturing subpattern count = 3
4317: Options: anchored dotall
4318: No first char
4319: Need char = 'z'
4320:
4321: /((.*)a|(.*)b)z\1/Is
4322: Capturing subpattern count = 3
4323: Max back reference = 1
4324: Options: dotall
4325: No first char
4326: Need char = 'z'
4327:
4328: /((.*)a|(.*)b)z\2/Is
4329: Capturing subpattern count = 3
4330: Max back reference = 2
4331: Options: dotall
4332: No first char
4333: Need char = 'z'
4334:
4335: /((.*)a|(.*)b)z\3/Is
4336: Capturing subpattern count = 3
4337: Max back reference = 3
4338: Options: dotall
4339: No first char
4340: Need char = 'z'
4341:
4342: /((.*)a|^(.*)b)z\3/Is
4343: Capturing subpattern count = 3
4344: Max back reference = 3
4345: Options: anchored dotall
4346: No first char
4347: Need char = 'z'
4348:
4349: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4350: Capturing subpattern count = 31
4351: Options: anchored dotall
4352: No first char
4353: No need char
4354:
4355: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4356: Capturing subpattern count = 31
4357: Max back reference = 31
4358: Options: dotall
4359: No first char
4360: No need char
4361:
4362: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4363: Capturing subpattern count = 32
4364: Max back reference = 32
4365: Options: dotall
4366: No first char
4367: No need char
4368:
4369: /(a)(bc)/INDZ
4370: ------------------------------------------------------------------
4371: Bra
4372: Bra
4373: a
4374: Ket
4375: Bra
4376: bc
4377: Ket
4378: Ket
4379: End
4380: ------------------------------------------------------------------
4381: Capturing subpattern count = 0
4382: Options: no_auto_capture
4383: First char = 'a'
4384: Need char = 'c'
4385: abc
4386: 0: abc
4387:
4388: /(?P<one>a)(bc)/INDZ
4389: ------------------------------------------------------------------
4390: Bra
4391: CBra 1
4392: a
4393: Ket
4394: Bra
4395: bc
4396: Ket
4397: Ket
4398: End
4399: ------------------------------------------------------------------
4400: Capturing subpattern count = 1
4401: Named capturing subpatterns:
4402: one 1
4403: Options: no_auto_capture
4404: First char = 'a'
4405: Need char = 'c'
4406: abc
4407: 0: abc
4408: 1: a
4409:
4410: /(a)(?P<named>bc)/INDZ
4411: ------------------------------------------------------------------
4412: Bra
4413: Bra
4414: a
4415: Ket
4416: CBra 1
4417: bc
4418: Ket
4419: Ket
4420: End
4421: ------------------------------------------------------------------
4422: Capturing subpattern count = 1
4423: Named capturing subpatterns:
4424: named 1
4425: Options: no_auto_capture
4426: First char = 'a'
4427: Need char = 'c'
4428:
4429: /(a+)*zz/I
4430: Capturing subpattern count = 1
4431: No options
4432: No first char
4433: Need char = 'z'
4434: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4435: Minimum match() limit = 8
4436: Minimum match() recursion limit = 6
4437: 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4438: 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4439: aaaaaaaaaaaaaz\M
4440: Minimum match() limit = 32768
4441: Minimum match() recursion limit = 42
4442: No match
4443:
4444: /(aaa(?C1)bbb|ab)/I
4445: Capturing subpattern count = 1
4446: No options
4447: First char = 'a'
4448: Need char = 'b'
4449: aaabbb
4450: --->aaabbb
4451: 1 ^ ^ b
4452: 0: aaabbb
4453: 1: aaabbb
4454: aaabbb\C*0
4455: --->aaabbb
4456: 1 ^ ^ b
4457: 0: aaabbb
4458: 1: aaabbb
4459: aaabbb\C*1
4460: --->aaabbb
4461: 1 ^ ^ b
4462: Callout data = 1
4463: 0: ab
4464: 1: ab
4465: aaabbb\C*-1
4466: --->aaabbb
4467: 1 ^ ^ b
4468: Callout data = -1
4469: No match
4470:
4471: /ab(?P<one>cd)ef(?P<two>gh)/I
4472: Capturing subpattern count = 2
4473: Named capturing subpatterns:
4474: one 1
4475: two 2
4476: No options
4477: First char = 'a'
4478: Need char = 'h'
4479: abcdefgh
4480: 0: abcdefgh
4481: 1: cd
4482: 2: gh
4483: abcdefgh\C1\Gtwo
4484: 0: abcdefgh
4485: 1: cd
4486: 2: gh
4487: 1C cd (2)
4488: G gh (2) two
4489: abcdefgh\Cone\Ctwo
4490: 0: abcdefgh
4491: 1: cd
4492: 2: gh
4493: C cd (2) one
4494: C gh (2) two
4495: abcdefgh\Cthree
4496: no parentheses with name "three"
4497: 0: abcdefgh
4498: 1: cd
4499: 2: gh
4500: copy substring three failed -7
4501:
4502: /(?P<Tes>)(?P<Test>)/DZ
4503: ------------------------------------------------------------------
4504: Bra
4505: CBra 1
4506: Ket
4507: CBra 2
4508: Ket
4509: Ket
4510: End
4511: ------------------------------------------------------------------
4512: Capturing subpattern count = 2
4513: Named capturing subpatterns:
4514: Tes 1
4515: Test 2
4516: No options
4517: No first char
4518: No need char
4519:
4520: /(?P<Test>)(?P<Tes>)/DZ
4521: ------------------------------------------------------------------
4522: Bra
4523: CBra 1
4524: Ket
4525: CBra 2
4526: Ket
4527: Ket
4528: End
4529: ------------------------------------------------------------------
4530: Capturing subpattern count = 2
4531: Named capturing subpatterns:
4532: Tes 2
4533: Test 1
4534: No options
4535: No first char
4536: No need char
4537:
4538: /(?P<Z>zz)(?P<A>aa)/I
4539: Capturing subpattern count = 2
4540: Named capturing subpatterns:
4541: A 2
4542: Z 1
4543: No options
4544: First char = 'z'
4545: Need char = 'a'
4546: zzaa\CZ
4547: 0: zzaa
4548: 1: zz
4549: 2: aa
4550: C zz (2) Z
4551: zzaa\CA
4552: 0: zzaa
4553: 1: zz
4554: 2: aa
4555: C aa (2) A
4556:
4557: /(?P<x>eks)(?P<x>eccs)/I
4558: Failed: two named subpatterns have the same name at offset 15
4559:
4560: /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
4561: Failed: two named subpatterns have the same name at offset 30
4562:
4563: "\[((?P<elem>\d+)(,(?P>elem))*)\]"I
4564: Capturing subpattern count = 3
4565: Named capturing subpatterns:
4566: elem 2
4567: No options
4568: First char = '['
4569: Need char = ']'
4570: [10,20,30,5,5,4,4,2,43,23,4234]
4571: 0: [10,20,30,5,5,4,4,2,43,23,4234]
4572: 1: 10,20,30,5,5,4,4,2,43,23,4234
4573: 2: 10
4574: 3: ,4234
4575: *** Failers
4576: No match
4577: []
4578: No match
4579:
4580: "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
4581: Capturing subpattern count = 3
4582: Named capturing subpatterns:
4583: elem 2
4584: No options
4585: First char = '['
4586: Need char = ']'
4587: [10,20,30,5,5,4,4,2,43,23,4234]
4588: 0: [10,20,30,5,5,4,4,2,43,23,4234]
4589: 1: 10,20,30,5,5,4,4,2,43,23,4234
4590: 2: 10
4591: 3: ,4234
4592: []
4593: 0: []
4594:
4595: /(a(b(?2)c))?/DZ
4596: ------------------------------------------------------------------
4597: Bra
4598: Brazero
4599: CBra 1
4600: a
4601: CBra 2
4602: b
4603: Recurse
4604: c
4605: Ket
4606: Ket
4607: Ket
4608: End
4609: ------------------------------------------------------------------
4610: Capturing subpattern count = 2
4611: No options
4612: No first char
4613: No need char
4614:
4615: /(a(b(?2)c))*/DZ
4616: ------------------------------------------------------------------
4617: Bra
4618: Brazero
4619: CBra 1
4620: a
4621: CBra 2
4622: b
4623: Recurse
4624: c
4625: Ket
4626: KetRmax
4627: Ket
4628: End
4629: ------------------------------------------------------------------
4630: Capturing subpattern count = 2
4631: No options
4632: No first char
4633: No need char
4634:
4635: /(a(b(?2)c)){0,2}/DZ
4636: ------------------------------------------------------------------
4637: Bra
4638: Brazero
4639: Bra
4640: CBra 1
4641: a
4642: CBra 2
4643: b
4644: Recurse
4645: c
4646: Ket
4647: Ket
4648: Brazero
4649: CBra 1
4650: a
4651: CBra 2
4652: b
4653: Recurse
4654: c
4655: Ket
4656: Ket
4657: Ket
4658: Ket
4659: End
4660: ------------------------------------------------------------------
4661: Capturing subpattern count = 2
4662: No options
4663: No first char
4664: No need char
4665:
4666: /[ab]{1}+/DZ
4667: ------------------------------------------------------------------
4668: Bra
4669: Once
4670: [ab]{1,1}
4671: Ket
4672: Ket
4673: End
4674: ------------------------------------------------------------------
4675: Capturing subpattern count = 0
4676: No options
4677: No first char
4678: No need char
4679:
4680: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4681: Capturing subpattern count = 3
4682: Options: caseless
4683: No first char
4684: Need char = 'g' (caseless)
4685: Baby Bjorn Active Carrier - With free SHIPPING!!
4686: 0: Baby Bjorn Active Carrier - With free SHIPPING!!
4687: 1: Baby Bjorn Active Carrier - With free SHIPPING!!
4688:
4689: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4690: Capturing subpattern count = 3
4691: Options: caseless
4692: No first char
4693: Need char = 'g' (caseless)
4694: Subject length lower bound = 8
4695: No set of starting bytes
4696: Baby Bjorn Active Carrier - With free SHIPPING!!
4697: 0: Baby Bjorn Active Carrier - With free SHIPPING!!
4698: 1: Baby Bjorn Active Carrier - With free SHIPPING!!
4699:
4700: /a*.*b/ISDZ
4701: ------------------------------------------------------------------
4702: Bra
4703: a*
4704: Any*
4705: b
4706: Ket
4707: End
4708: ------------------------------------------------------------------
4709: Capturing subpattern count = 0
4710: No options
4711: No first char
4712: Need char = 'b'
4713: Subject length lower bound = 1
4714: No set of starting bytes
4715:
4716: /(a|b)*.?c/ISDZ
4717: ------------------------------------------------------------------
4718: Bra
4719: Brazero
4720: CBra 1
4721: a
4722: Alt
4723: b
4724: KetRmax
4725: Any?
4726: c
4727: Ket
4728: End
4729: ------------------------------------------------------------------
4730: Capturing subpattern count = 1
4731: No options
4732: No first char
4733: Need char = 'c'
4734: Subject length lower bound = 1
4735: No set of starting bytes
4736:
4737: /abc(?C255)de(?C)f/DZ
4738: ------------------------------------------------------------------
4739: Bra
4740: abc
4741: Callout 255 10 1
4742: de
4743: Callout 0 16 1
4744: f
4745: Ket
4746: End
4747: ------------------------------------------------------------------
4748: Capturing subpattern count = 0
4749: No options
4750: First char = 'a'
4751: Need char = 'f'
4752:
4753: /abcde/ICDZ
4754: ------------------------------------------------------------------
4755: Bra
4756: Callout 255 0 1
4757: a
4758: Callout 255 1 1
4759: b
4760: Callout 255 2 1
4761: c
4762: Callout 255 3 1
4763: d
4764: Callout 255 4 1
4765: e
4766: Callout 255 5 0
4767: Ket
4768: End
4769: ------------------------------------------------------------------
4770: Capturing subpattern count = 0
4771: Options:
4772: First char = 'a'
4773: Need char = 'e'
4774: abcde
4775: --->abcde
4776: +0 ^ a
4777: +1 ^^ b
4778: +2 ^ ^ c
4779: +3 ^ ^ d
4780: +4 ^ ^ e
4781: +5 ^ ^
4782: 0: abcde
4783: abcdfe
4784: --->abcdfe
4785: +0 ^ a
4786: +1 ^^ b
4787: +2 ^ ^ c
4788: +3 ^ ^ d
4789: +4 ^ ^ e
4790: No match
4791:
4792: /a*b/ICDZS
4793: ------------------------------------------------------------------
4794: Bra
4795: Callout 255 0 2
4796: a*+
4797: Callout 255 2 1
4798: b
4799: Callout 255 3 0
4800: Ket
4801: End
4802: ------------------------------------------------------------------
4803: Capturing subpattern count = 0
4804: Options:
4805: No first char
4806: Need char = 'b'
4807: Subject length lower bound = 1
4808: Starting byte set: a b
4809: ab
4810: --->ab
4811: +0 ^ a*
4812: +2 ^^ b
4813: +3 ^ ^
4814: 0: ab
4815: aaaab
4816: --->aaaab
4817: +0 ^ a*
4818: +2 ^ ^ b
4819: +3 ^ ^
4820: 0: aaaab
4821: aaaacb
4822: --->aaaacb
4823: +0 ^ a*
4824: +2 ^ ^ b
4825: +0 ^ a*
4826: +2 ^ ^ b
4827: +0 ^ a*
4828: +2 ^ ^ b
4829: +0 ^ a*
4830: +2 ^^ b
4831: +0 ^ a*
4832: +2 ^ b
4833: +3 ^^
4834: 0: b
4835:
4836: /a*b/ICDZSS
4837: ------------------------------------------------------------------
4838: Bra
4839: Callout 255 0 2
4840: a*+
4841: Callout 255 2 1
4842: b
4843: Callout 255 3 0
4844: Ket
4845: End
4846: ------------------------------------------------------------------
4847: Capturing subpattern count = 0
4848: Options:
4849: No first char
4850: Need char = 'b'
4851: ab
4852: --->ab
4853: +0 ^ a*
4854: +2 ^^ b
4855: +3 ^ ^
4856: 0: ab
4857: aaaab
4858: --->aaaab
4859: +0 ^ a*
4860: +2 ^ ^ b
4861: +3 ^ ^
4862: 0: aaaab
4863: aaaacb
4864: --->aaaacb
4865: +0 ^ a*
4866: +2 ^ ^ b
4867: +0 ^ a*
4868: +2 ^ ^ b
4869: +0 ^ a*
4870: +2 ^ ^ b
4871: +0 ^ a*
4872: +2 ^^ b
4873: +0 ^ a*
4874: +2 ^ b
4875: +0 ^ a*
4876: +2 ^ b
4877: +3 ^^
4878: 0: b
4879:
4880: /a+b/ICDZ
4881: ------------------------------------------------------------------
4882: Bra
4883: Callout 255 0 2
4884: a++
4885: Callout 255 2 1
4886: b
4887: Callout 255 3 0
4888: Ket
4889: End
4890: ------------------------------------------------------------------
4891: Capturing subpattern count = 0
4892: Options:
4893: First char = 'a'
4894: Need char = 'b'
4895: ab
4896: --->ab
4897: +0 ^ a+
4898: +2 ^^ b
4899: +3 ^ ^
4900: 0: ab
4901: aaaab
4902: --->aaaab
4903: +0 ^ a+
4904: +2 ^ ^ b
4905: +3 ^ ^
4906: 0: aaaab
4907: aaaacb
4908: --->aaaacb
4909: +0 ^ a+
4910: +2 ^ ^ b
4911: +0 ^ a+
4912: +2 ^ ^ b
4913: +0 ^ a+
4914: +2 ^ ^ b
4915: +0 ^ a+
4916: +2 ^^ b
4917: No match
4918:
4919: /(abc|def)x/ICDZS
4920: ------------------------------------------------------------------
4921: Bra
4922: Callout 255 0 9
4923: CBra 1
4924: Callout 255 1 1
4925: a
4926: Callout 255 2 1
4927: b
4928: Callout 255 3 1
4929: c
4930: Callout 255 4 0
4931: Alt
4932: Callout 255 5 1
4933: d
4934: Callout 255 6 1
4935: e
4936: Callout 255 7 1
4937: f
4938: Callout 255 8 0
4939: Ket
4940: Callout 255 9 1
4941: x
4942: Callout 255 10 0
4943: Ket
4944: End
4945: ------------------------------------------------------------------
4946: Capturing subpattern count = 1
4947: Options:
4948: No first char
4949: Need char = 'x'
4950: Subject length lower bound = 4
4951: Starting byte set: a d
4952: abcx
4953: --->abcx
4954: +0 ^ (abc|def)
4955: +1 ^ a
4956: +2 ^^ b
4957: +3 ^ ^ c
4958: +4 ^ ^ |
4959: +9 ^ ^ x
4960: +10 ^ ^
4961: 0: abcx
4962: 1: abc
4963: defx
4964: --->defx
4965: +0 ^ (abc|def)
4966: +1 ^ a
4967: +5 ^ d
4968: +6 ^^ e
4969: +7 ^ ^ f
4970: +8 ^ ^ )
4971: +9 ^ ^ x
4972: +10 ^ ^
4973: 0: defx
4974: 1: def
4975: ** Failers
4976: No match
4977: abcdefzx
4978: --->abcdefzx
4979: +0 ^ (abc|def)
4980: +1 ^ a
4981: +2 ^^ b
4982: +3 ^ ^ c
4983: +4 ^ ^ |
4984: +9 ^ ^ x
4985: +5 ^ d
4986: +0 ^ (abc|def)
4987: +1 ^ a
4988: +5 ^ d
4989: +6 ^^ e
4990: +7 ^ ^ f
4991: +8 ^ ^ )
4992: +9 ^ ^ x
4993: No match
4994:
4995: /(abc|def)x/ICDZSS
4996: ------------------------------------------------------------------
4997: Bra
4998: Callout 255 0 9
4999: CBra 1
5000: Callout 255 1 1
5001: a
5002: Callout 255 2 1
5003: b
5004: Callout 255 3 1
5005: c
5006: Callout 255 4 0
5007: Alt
5008: Callout 255 5 1
5009: d
5010: Callout 255 6 1
5011: e
5012: Callout 255 7 1
5013: f
5014: Callout 255 8 0
5015: Ket
5016: Callout 255 9 1
5017: x
5018: Callout 255 10 0
5019: Ket
5020: End
5021: ------------------------------------------------------------------
5022: Capturing subpattern count = 1
5023: Options:
5024: No first char
5025: Need char = 'x'
5026: abcx
5027: --->abcx
5028: +0 ^ (abc|def)
5029: +1 ^ a
5030: +2 ^^ b
5031: +3 ^ ^ c
5032: +4 ^ ^ |
5033: +9 ^ ^ x
5034: +10 ^ ^
5035: 0: abcx
5036: 1: abc
5037: defx
5038: --->defx
5039: +0 ^ (abc|def)
5040: +1 ^ a
5041: +5 ^ d
5042: +6 ^^ e
5043: +7 ^ ^ f
5044: +8 ^ ^ )
5045: +9 ^ ^ x
5046: +10 ^ ^
5047: 0: defx
5048: 1: def
5049: ** Failers
5050: No match
5051: abcdefzx
5052: --->abcdefzx
5053: +0 ^ (abc|def)
5054: +1 ^ a
5055: +2 ^^ b
5056: +3 ^ ^ c
5057: +4 ^ ^ |
5058: +9 ^ ^ x
5059: +5 ^ d
5060: +0 ^ (abc|def)
5061: +1 ^ a
5062: +5 ^ d
5063: +0 ^ (abc|def)
5064: +1 ^ a
5065: +5 ^ d
5066: +0 ^ (abc|def)
5067: +1 ^ a
5068: +5 ^ d
5069: +6 ^^ e
5070: +7 ^ ^ f
5071: +8 ^ ^ )
5072: +9 ^ ^ x
5073: +0 ^ (abc|def)
5074: +1 ^ a
5075: +5 ^ d
5076: +0 ^ (abc|def)
5077: +1 ^ a
5078: +5 ^ d
5079: +0 ^ (abc|def)
5080: +1 ^ a
5081: +5 ^ d
5082: +0 ^ (abc|def)
5083: +1 ^ a
5084: +5 ^ d
5085: No match
5086:
5087: /(ab|cd){3,4}/IC
5088: Capturing subpattern count = 1
5089: Options:
5090: No first char
5091: No need char
5092: ababab
5093: --->ababab
5094: +0 ^ (ab|cd){3,4}
5095: +1 ^ a
5096: +2 ^^ b
5097: +3 ^ ^ |
5098: +1 ^ ^ a
5099: +2 ^ ^ b
5100: +3 ^ ^ |
5101: +1 ^ ^ a
5102: +2 ^ ^ b
5103: +3 ^ ^ |
5104: +1 ^ ^ a
5105: +4 ^ ^ c
5106: +12 ^ ^
5107: 0: ababab
5108: 1: ab
5109: abcdabcd
5110: --->abcdabcd
5111: +0 ^ (ab|cd){3,4}
5112: +1 ^ a
5113: +2 ^^ b
5114: +3 ^ ^ |
5115: +1 ^ ^ a
5116: +4 ^ ^ c
5117: +5 ^ ^ d
5118: +6 ^ ^ )
5119: +1 ^ ^ a
5120: +2 ^ ^ b
5121: +3 ^ ^ |
5122: +1 ^ ^ a
5123: +4 ^ ^ c
5124: +5 ^ ^ d
5125: +6 ^ ^ )
5126: +12 ^ ^
5127: 0: abcdabcd
5128: 1: cd
5129: abcdcdcdcdcd
5130: --->abcdcdcdcdcd
5131: +0 ^ (ab|cd){3,4}
5132: +1 ^ a
5133: +2 ^^ b
5134: +3 ^ ^ |
5135: +1 ^ ^ a
5136: +4 ^ ^ c
5137: +5 ^ ^ d
5138: +6 ^ ^ )
5139: +1 ^ ^ a
5140: +4 ^ ^ c
5141: +5 ^ ^ d
5142: +6 ^ ^ )
5143: +1 ^ ^ a
5144: +4 ^ ^ c
5145: +5 ^ ^ d
5146: +6 ^ ^ )
5147: +12 ^ ^
5148: 0: abcdcdcd
5149: 1: cd
5150:
5151: /([ab]{,4}c|xy)/ICDZS
5152: ------------------------------------------------------------------
5153: Bra
5154: Callout 255 0 14
5155: CBra 1
5156: Callout 255 1 4
5157: [ab]
5158: Callout 255 5 1
5159: {
5160: Callout 255 6 1
5161: ,
5162: Callout 255 7 1
5163: 4
5164: Callout 255 8 1
5165: }
5166: Callout 255 9 1
5167: c
5168: Callout 255 10 0
5169: Alt
5170: Callout 255 11 1
5171: x
5172: Callout 255 12 1
5173: y
5174: Callout 255 13 0
5175: Ket
5176: Callout 255 14 0
5177: Ket
5178: End
5179: ------------------------------------------------------------------
5180: Capturing subpattern count = 1
5181: Options:
5182: No first char
5183: No need char
5184: Subject length lower bound = 2
5185: Starting byte set: a b x
5186: Note: that { does NOT introduce a quantifier
5187: --->Note: that { does NOT introduce a quantifier
5188: +0 ^ ([ab]{,4}c|xy)
5189: +1 ^ [ab]
5190: +5 ^^ {
5191: +11 ^ x
5192: +0 ^ ([ab]{,4}c|xy)
5193: +1 ^ [ab]
5194: +5 ^^ {
5195: +11 ^ x
5196: +0 ^ ([ab]{,4}c|xy)
5197: +1 ^ [ab]
5198: +5 ^^ {
5199: +11 ^ x
5200: No match
5201:
5202: /([ab]{,4}c|xy)/ICDZSS
5203: ------------------------------------------------------------------
5204: Bra
5205: Callout 255 0 14
5206: CBra 1
5207: Callout 255 1 4
5208: [ab]
5209: Callout 255 5 1
5210: {
5211: Callout 255 6 1
5212: ,
5213: Callout 255 7 1
5214: 4
5215: Callout 255 8 1
5216: }
5217: Callout 255 9 1
5218: c
5219: Callout 255 10 0
5220: Alt
5221: Callout 255 11 1
5222: x
5223: Callout 255 12 1
5224: y
5225: Callout 255 13 0
5226: Ket
5227: Callout 255 14 0
5228: Ket
5229: End
5230: ------------------------------------------------------------------
5231: Capturing subpattern count = 1
5232: Options:
5233: No first char
5234: No need char
5235: Note: that { does NOT introduce a quantifier
5236: --->Note: that { does NOT introduce a quantifier
5237: +0 ^ ([ab]{,4}c|xy)
5238: +1 ^ [ab]
5239: +11 ^ x
5240: +0 ^ ([ab]{,4}c|xy)
5241: +1 ^ [ab]
5242: +11 ^ x
5243: +0 ^ ([ab]{,4}c|xy)
5244: +1 ^ [ab]
5245: +11 ^ x
5246: +0 ^ ([ab]{,4}c|xy)
5247: +1 ^ [ab]
5248: +11 ^ x
5249: +0 ^ ([ab]{,4}c|xy)
5250: +1 ^ [ab]
5251: +11 ^ x
5252: +0 ^ ([ab]{,4}c|xy)
5253: +1 ^ [ab]
5254: +11 ^ x
5255: +0 ^ ([ab]{,4}c|xy)
5256: +1 ^ [ab]
5257: +11 ^ x
5258: +0 ^ ([ab]{,4}c|xy)
5259: +1 ^ [ab]
5260: +11 ^ x
5261: +0 ^ ([ab]{,4}c|xy)
5262: +1 ^ [ab]
5263: +5 ^^ {
5264: +11 ^ x
5265: +0 ^ ([ab]{,4}c|xy)
5266: +1 ^ [ab]
5267: +11 ^ x
5268: +0 ^ ([ab]{,4}c|xy)
5269: +1 ^ [ab]
5270: +11 ^ x
5271: +0 ^ ([ab]{,4}c|xy)
5272: +1 ^ [ab]
5273: +11 ^ x
5274: +0 ^ ([ab]{,4}c|xy)
5275: +1 ^ [ab]
5276: +11 ^ x
5277: +0 ^ ([ab]{,4}c|xy)
5278: +1 ^ [ab]
5279: +11 ^ x
5280: +0 ^ ([ab]{,4}c|xy)
5281: +1 ^ [ab]
5282: +11 ^ x
5283: +0 ^ ([ab]{,4}c|xy)
5284: +1 ^ [ab]
5285: +11 ^ x
5286: +0 ^ ([ab]{,4}c|xy)
5287: +1 ^ [ab]
5288: +11 ^ x
5289: +0 ^ ([ab]{,4}c|xy)
5290: +1 ^ [ab]
5291: +11 ^ x
5292: +0 ^ ([ab]{,4}c|xy)
5293: +1 ^ [ab]
5294: +11 ^ x
5295: +0 ^ ([ab]{,4}c|xy)
5296: +1 ^ [ab]
5297: +11 ^ x
5298: +0 ^ ([ab]{,4}c|xy)
5299: +1 ^ [ab]
5300: +11 ^ x
5301: +0 ^ ([ab]{,4}c|xy)
5302: +1 ^ [ab]
5303: +11 ^ x
5304: +0 ^ ([ab]{,4}c|xy)
5305: +1 ^ [ab]
5306: +11 ^ x
5307: +0 ^ ([ab]{,4}c|xy)
5308: +1 ^ [ab]
5309: +11 ^ x
5310: +0 ^ ([ab]{,4}c|xy)
5311: +1 ^ [ab]
5312: +11 ^ x
5313: +0 ^ ([ab]{,4}c|xy)
5314: +1 ^ [ab]
5315: +11 ^ x
5316: +0 ^ ([ab]{,4}c|xy)
5317: +1 ^ [ab]
5318: +11 ^ x
5319: +0 ^ ([ab]{,4}c|xy)
5320: +1 ^ [ab]
5321: +11 ^ x
5322: +0 ^ ([ab]{,4}c|xy)
5323: +1 ^ [ab]
5324: +11 ^ x
5325: +0 ^ ([ab]{,4}c|xy)
5326: +1 ^ [ab]
5327: +11 ^ x
5328: +0 ^ ([ab]{,4}c|xy)
5329: +1 ^ [ab]
5330: +11 ^ x
5331: +0 ^ ([ab]{,4}c|xy)
5332: +1 ^ [ab]
5333: +11 ^ x
5334: +0 ^ ([ab]{,4}c|xy)
5335: +1 ^ [ab]
5336: +5 ^^ {
5337: +11 ^ x
5338: +0 ^ ([ab]{,4}c|xy)
5339: +1 ^ [ab]
5340: +11 ^ x
5341: +0 ^ ([ab]{,4}c|xy)
5342: +1 ^ [ab]
5343: +11 ^ x
5344: +0 ^ ([ab]{,4}c|xy)
5345: +1 ^ [ab]
5346: +11 ^ x
5347: +0 ^ ([ab]{,4}c|xy)
5348: +1 ^ [ab]
5349: +5 ^^ {
5350: +11 ^ x
5351: +0 ^ ([ab]{,4}c|xy)
5352: +1 ^ [ab]
5353: +11 ^ x
5354: +0 ^ ([ab]{,4}c|xy)
5355: +1 ^ [ab]
5356: +11 ^ x
5357: +0 ^ ([ab]{,4}c|xy)
5358: +1 ^ [ab]
5359: +11 ^ x
5360: +0 ^ ([ab]{,4}c|xy)
5361: +1 ^ [ab]
5362: +11 ^ x
5363: +0 ^ ([ab]{,4}c|xy)
5364: +1 ^ [ab]
5365: +11 ^ x
5366: +0 ^ ([ab]{,4}c|xy)
5367: +1 ^ [ab]
5368: +11 ^ x
5369: +0 ^ ([ab]{,4}c|xy)
5370: +1 ^ [ab]
5371: +11 ^ x
5372: +0 ^ ([ab]{,4}c|xy)
5373: +1 ^ [ab]
5374: +11 ^ x
5375: No match
5376:
5377: /([ab]{1,4}c|xy){4,5}?123/ICDZ
5378: ------------------------------------------------------------------
5379: Bra
5380: Callout 255 0 21
5381: CBra 1
5382: Callout 255 1 9
5383: [ab]{1,4}
5384: Callout 255 10 1
5385: c
5386: Callout 255 11 0
5387: Alt
5388: Callout 255 12 1
5389: x
5390: Callout 255 13 1
5391: y
5392: Callout 255 14 0
5393: Ket
5394: CBra 1
5395: Callout 255 1 9
5396: [ab]{1,4}
5397: Callout 255 10 1
5398: c
5399: Callout 255 11 0
5400: Alt
5401: Callout 255 12 1
5402: x
5403: Callout 255 13 1
5404: y
5405: Callout 255 14 0
5406: Ket
5407: CBra 1
5408: Callout 255 1 9
5409: [ab]{1,4}
5410: Callout 255 10 1
5411: c
5412: Callout 255 11 0
5413: Alt
5414: Callout 255 12 1
5415: x
5416: Callout 255 13 1
5417: y
5418: Callout 255 14 0
5419: Ket
5420: CBra 1
5421: Callout 255 1 9
5422: [ab]{1,4}
5423: Callout 255 10 1
5424: c
5425: Callout 255 11 0
5426: Alt
5427: Callout 255 12 1
5428: x
5429: Callout 255 13 1
5430: y
5431: Callout 255 14 0
5432: Ket
5433: Braminzero
5434: CBra 1
5435: Callout 255 1 9
5436: [ab]{1,4}
5437: Callout 255 10 1
5438: c
5439: Callout 255 11 0
5440: Alt
5441: Callout 255 12 1
5442: x
5443: Callout 255 13 1
5444: y
5445: Callout 255 14 0
5446: Ket
5447: Callout 255 21 1
5448: 1
5449: Callout 255 22 1
5450: 2
5451: Callout 255 23 1
5452: 3
5453: Callout 255 24 0
5454: Ket
5455: End
5456: ------------------------------------------------------------------
5457: Capturing subpattern count = 1
5458: Options:
5459: No first char
5460: Need char = '3'
5461: aacaacaacaacaac123
5462: --->aacaacaacaacaac123
5463: +0 ^ ([ab]{1,4}c|xy){4,5}?
5464: +1 ^ [ab]{1,4}
5465: +10 ^ ^ c
5466: +11 ^ ^ |
5467: +1 ^ ^ [ab]{1,4}
5468: +10 ^ ^ c
5469: +11 ^ ^ |
5470: +1 ^ ^ [ab]{1,4}
5471: +10 ^ ^ c
5472: +11 ^ ^ |
5473: +1 ^ ^ [ab]{1,4}
5474: +10 ^ ^ c
5475: +11 ^ ^ |
5476: +21 ^ ^ 1
5477: +1 ^ ^ [ab]{1,4}
5478: +10 ^ ^ c
5479: +11 ^ ^ |
5480: +21 ^ ^ 1
5481: +22 ^ ^ 2
5482: +23 ^ ^ 3
5483: +24 ^ ^
5484: 0: aacaacaacaacaac123
5485: 1: aac
5486:
5487: /\b.*/I
5488: Capturing subpattern count = 0
5489: No options
5490: No first char
5491: No need char
5492: ab cd\>1
5493: 0: cd
5494:
5495: /\b.*/Is
5496: Capturing subpattern count = 0
5497: Options: dotall
5498: No first char
5499: No need char
5500: ab cd\>1
5501: 0: cd
5502:
5503: /(?!.bcd).*/I
5504: Capturing subpattern count = 0
5505: No options
5506: No first char
5507: No need char
5508: Xbcd12345
5509: 0: bcd12345
5510:
5511: /abcde/I
5512: Capturing subpattern count = 0
5513: No options
5514: First char = 'a'
5515: Need char = 'e'
5516: ab\P
5517: Partial match: ab
5518: abc\P
5519: Partial match: abc
5520: abcd\P
5521: Partial match: abcd
5522: abcde\P
5523: 0: abcde
5524: the quick brown abc\P
5525: Partial match: abc
5526: ** Failers\P
5527: No match
5528: the quick brown abxyz fox\P
5529: No match
5530:
5531: "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
5532: Capturing subpattern count = 3
5533: Options: anchored
5534: No first char
5535: Need char = '/'
5536: 13/05/04\P
5537: 0: 13/05/04
5538: 1: 13
5539: 2: 05
5540: 13/5/2004\P
5541: 0: 13/5/2004
5542: 1: 13
5543: 2: 5
5544: 3: 20
5545: 02/05/09\P
5546: 0: 02/05/09
5547: 1: 02
5548: 2: 05
5549: 1\P
5550: Partial match: 1
5551: 1/2\P
5552: Partial match: 1/2
5553: 1/2/0\P
5554: Partial match: 1/2/0
5555: 1/2/04\P
5556: 0: 1/2/04
5557: 1: 1
5558: 2: 2
5559: 0\P
5560: Partial match: 0
5561: 02/\P
5562: Partial match: 02/
5563: 02/0\P
5564: Partial match: 02/0
5565: 02/1\P
5566: Partial match: 02/1
5567: ** Failers\P
5568: No match
5569: \P
5570: No match
5571: 123\P
5572: No match
5573: 33/4/04\P
5574: No match
5575: 3/13/04\P
5576: No match
5577: 0/1/2003\P
5578: No match
5579: 0/\P
5580: No match
5581: 02/0/\P
5582: No match
5583: 02/13\P
5584: No match
5585:
5586: /0{0,2}ABC/I
5587: Capturing subpattern count = 0
5588: No options
5589: No first char
5590: Need char = 'C'
5591:
5592: /\d{3,}ABC/I
5593: Capturing subpattern count = 0
5594: No options
5595: No first char
5596: Need char = 'C'
5597:
5598: /\d*ABC/I
5599: Capturing subpattern count = 0
5600: No options
5601: No first char
5602: Need char = 'C'
5603:
5604: /[abc]+DE/I
5605: Capturing subpattern count = 0
5606: No options
5607: No first char
5608: Need char = 'E'
5609:
5610: /[abc]?123/I
5611: Capturing subpattern count = 0
5612: No options
5613: No first char
5614: Need char = '3'
5615: 123\P
5616: 0: 123
5617: a\P
5618: Partial match: a
5619: b\P
5620: Partial match: b
5621: c\P
5622: Partial match: c
5623: c12\P
5624: Partial match: c12
5625: c123\P
5626: 0: c123
5627:
5628: /^(?:\d){3,5}X/I
5629: Capturing subpattern count = 0
5630: Options: anchored
5631: No first char
5632: Need char = 'X'
5633: 1\P
5634: Partial match: 1
5635: 123\P
5636: Partial match: 123
5637: 123X
5638: 0: 123X
5639: 1234\P
5640: Partial match: 1234
5641: 1234X
5642: 0: 1234X
5643: 12345\P
5644: Partial match: 12345
5645: 12345X
5646: 0: 12345X
5647: *** Failers
5648: No match
5649: 1X
5650: No match
5651: 123456\P
5652: No match
5653:
5654: /abc/IS>testsavedregex
5655: Capturing subpattern count = 0
5656: No options
5657: First char = 'a'
5658: Need char = 'c'
5659: Subject length lower bound = 3
5660: No set of starting bytes
5661: Compiled pattern written to testsavedregex
5662: Study data written to testsavedregex
5663: <testsavedregex
5664: Compiled pattern loaded from testsavedregex
5665: Study data loaded from testsavedregex
5666: abc
5667: 0: abc
5668: ** Failers
5669: No match
5670: bca
5671: No match
5672:
5673: /abc/ISS>testsavedregex
5674: Capturing subpattern count = 0
5675: No options
5676: First char = 'a'
5677: Need char = 'c'
5678: Compiled pattern written to testsavedregex
5679: <testsavedregex
5680: Compiled pattern loaded from testsavedregex
5681: No study data
5682: abc
5683: 0: abc
5684: ** Failers
5685: No match
5686: bca
5687: No match
5688:
5689: /abc/IFS>testsavedregex
5690: Capturing subpattern count = 0
5691: No options
5692: First char = 'a'
5693: Need char = 'c'
5694: Subject length lower bound = 3
5695: No set of starting bytes
5696: Compiled pattern written to testsavedregex
5697: Study data written to testsavedregex
5698: <testsavedregex
5699: Compiled pattern (byte-inverted) loaded from testsavedregex
5700: Study data loaded from testsavedregex
5701: abc
5702: 0: abc
5703: ** Failers
5704: No match
5705: bca
5706: No match
5707:
5708: /abc/IFSS>testsavedregex
5709: Capturing subpattern count = 0
5710: No options
5711: First char = 'a'
5712: Need char = 'c'
5713: Compiled pattern written to testsavedregex
5714: <testsavedregex
5715: Compiled pattern (byte-inverted) loaded from testsavedregex
5716: No study data
5717: abc
5718: 0: abc
5719: ** Failers
5720: No match
5721: bca
5722: No match
5723:
5724: /(a|b)/IS>testsavedregex
5725: Capturing subpattern count = 1
5726: No options
5727: No first char
5728: No need char
5729: Subject length lower bound = 1
5730: Starting byte set: a b
5731: Compiled pattern written to testsavedregex
5732: Study data written to testsavedregex
5733: <testsavedregex
5734: Compiled pattern loaded from testsavedregex
5735: Study data loaded from testsavedregex
5736: abc
5737: 0: a
5738: 1: a
5739: ** Failers
5740: 0: a
5741: 1: a
5742: def
5743: No match
5744:
5745: /(a|b)/ISS>testsavedregex
5746: Capturing subpattern count = 1
5747: No options
5748: No first char
5749: No need char
5750: Compiled pattern written to testsavedregex
5751: <testsavedregex
5752: Compiled pattern loaded from testsavedregex
5753: No study data
5754: abc
5755: 0: a
5756: 1: a
5757: ** Failers
5758: 0: a
5759: 1: a
5760: def
5761: No match
5762:
5763: /(a|b)/ISF>testsavedregex
5764: Capturing subpattern count = 1
5765: No options
5766: No first char
5767: No need char
5768: Subject length lower bound = 1
5769: Starting byte set: a b
5770: Compiled pattern written to testsavedregex
5771: Study data written to testsavedregex
5772: <testsavedregex
5773: Compiled pattern (byte-inverted) loaded from testsavedregex
5774: Study data loaded from testsavedregex
5775: abc
5776: 0: a
5777: 1: a
5778: ** Failers
5779: 0: a
5780: 1: a
5781: def
5782: No match
5783:
5784: /(a|b)/ISSF>testsavedregex
5785: Capturing subpattern count = 1
5786: No options
5787: No first char
5788: No need char
5789: Compiled pattern written to testsavedregex
5790: <testsavedregex
5791: Compiled pattern (byte-inverted) loaded from testsavedregex
5792: No study data
5793: abc
5794: 0: a
5795: 1: a
5796: ** Failers
5797: 0: a
5798: 1: a
5799: def
5800: No match
5801:
5802: ~<(\w+)/?>(.)*</(\1)>~smgI
5803: Capturing subpattern count = 3
5804: Max back reference = 1
5805: Options: multiline dotall
5806: First char = '<'
5807: Need char = '>'
5808: \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>
5809: 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>
5810: 1: seite
5811: 2: \x0a
5812: 3: seite
5813:
5814: /^a/IF
5815: Capturing subpattern count = 0
5816: Options: anchored
5817: No first char
5818: No need char
5819:
5820: /line\nbreak/I
5821: Capturing subpattern count = 0
5822: Contains explicit CR or LF match
5823: No options
5824: First char = 'l'
5825: Need char = 'k'
5826: this is a line\nbreak
5827: 0: line\x0abreak
5828: line one\nthis is a line\nbreak in the second line
5829: 0: line\x0abreak
5830:
5831: /line\nbreak/If
5832: Capturing subpattern count = 0
5833: Contains explicit CR or LF match
5834: Options: firstline
5835: First char = 'l'
5836: Need char = 'k'
5837: this is a line\nbreak
5838: 0: line\x0abreak
5839: ** Failers
5840: No match
5841: line one\nthis is a line\nbreak in the second line
5842: No match
5843:
5844: /line\nbreak/Imf
5845: Capturing subpattern count = 0
5846: Contains explicit CR or LF match
5847: Options: multiline firstline
5848: First char = 'l'
5849: Need char = 'k'
5850: this is a line\nbreak
5851: 0: line\x0abreak
5852: ** Failers
5853: No match
5854: line one\nthis is a line\nbreak in the second line
5855: No match
5856:
5857: /ab.cd/P
5858: ab-cd
5859: 0: ab-cd
5860: ab=cd
5861: 0: ab=cd
5862: ** Failers
5863: No match: POSIX code 17: match failed
5864: ab\ncd
5865: No match: POSIX code 17: match failed
5866:
5867: /ab.cd/Ps
5868: ab-cd
5869: 0: ab-cd
5870: ab=cd
5871: 0: ab=cd
5872: ab\ncd
5873: 0: ab\x0acd
5874:
5875: /(?i)(?-i)AbCd/I
5876: Capturing subpattern count = 0
5877: No options
5878: First char = 'A'
5879: Need char = 'd'
5880: AbCd
5881: 0: AbCd
5882: ** Failers
5883: No match
5884: abcd
5885: No match
5886:
5887: /a{11111111111111111111}/I
5888: Failed: number too big in {} quantifier at offset 22
5889:
5890: /(){64294967295}/I
5891: Failed: number too big in {} quantifier at offset 14
5892:
5893: /(){2,4294967295}/I
5894: Failed: number too big in {} quantifier at offset 15
5895:
5896: "(?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
5897: Capturing subpattern count = 1
5898: Max back reference = 1
5899: No options
5900: First char = 'a' (caseless)
5901: Need char = 'B'
5902: abcdefghijklAkB
5903: 0: abcdefghijklAkB
5904: 1: k
5905:
5906: "(?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
5907: Capturing subpattern count = 12
5908: Max back reference = 11
5909: Named capturing subpatterns:
5910: n0 1
5911: n1 2
5912: n10 11
5913: n11 12
5914: n2 3
5915: n3 4
5916: n4 5
5917: n5 6
5918: n6 7
5919: n7 8
5920: n8 9
5921: n9 10
5922: No options
5923: First char = 'a'
5924: Need char = 'B'
5925: abcdefghijklAkB
5926: 0: abcdefghijklAkB
5927: 1: a
5928: 2: b
5929: 3: c
5930: 4: d
5931: 5: e
5932: 6: f
5933: 7: g
5934: 8: h
5935: 9: i
5936: 10: j
5937: 11: k
5938: 12: l
5939:
5940: "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
5941: Capturing subpattern count = 12
5942: Max back reference = 11
5943: No options
5944: First char = 'a'
5945: Need char = 'B'
5946: abcdefghijklAkB
5947: 0: abcdefghijklAkB
5948: 1: a
5949: 2: b
5950: 3: c
5951: 4: d
5952: 5: e
5953: 6: f
5954: 7: g
5955: 8: h
5956: 9: i
5957: 10: j
5958: 11: k
5959: 12: l
5960:
5961: "(?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
5962: Capturing subpattern count = 101
5963: Named capturing subpatterns:
5964: name0 1
5965: name1 2
5966: name10 11
5967: name100 101
5968: name11 12
5969: name12 13
5970: name13 14
5971: name14 15
5972: name15 16
5973: name16 17
5974: name17 18
5975: name18 19
5976: name19 20
5977: name2 3
5978: name20 21
5979: name21 22
5980: name22 23
5981: name23 24
5982: name24 25
5983: name25 26
5984: name26 27
5985: name27 28
5986: name28 29
5987: name29 30
5988: name3 4
5989: name30 31
5990: name31 32
5991: name32 33
5992: name33 34
5993: name34 35
5994: name35 36
5995: name36 37
5996: name37 38
5997: name38 39
5998: name39 40
5999: name4 5
6000: name40 41
6001: name41 42
6002: name42 43
6003: name43 44
6004: name44 45
6005: name45 46
6006: name46 47
6007: name47 48
6008: name48 49
6009: name49 50
6010: name5 6
6011: name50 51
6012: name51 52
6013: name52 53
6014: name53 54
6015: name54 55
6016: name55 56
6017: name56 57
6018: name57 58
6019: name58 59
6020: name59 60
6021: name6 7
6022: name60 61
6023: name61 62
6024: name62 63
6025: name63 64
6026: name64 65
6027: name65 66
6028: name66 67
6029: name67 68
6030: name68 69
6031: name69 70
6032: name7 8
6033: name70 71
6034: name71 72
6035: name72 73
6036: name73 74
6037: name74 75
6038: name75 76
6039: name76 77
6040: name77 78
6041: name78 79
6042: name79 80
6043: name8 9
6044: name80 81
6045: name81 82
6046: name82 83
6047: name83 84
6048: name84 85
6049: name85 86
6050: name86 87
6051: name87 88
6052: name88 89
6053: name89 90
6054: name9 10
6055: name90 91
6056: name91 92
6057: name92 93
6058: name93 94
6059: name94 95
6060: name95 96
6061: name96 97
6062: name97 98
6063: name98 99
6064: name99 100
6065: No options
6066: First char = 'a'
6067: Need char = 'a'
6068: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6069: Matched, but too many substrings
6070: 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6071: 1: a
6072: 2: a
6073: 3: a
6074: 4: a
6075: 5: a
6076: 6: a
6077: 7: a
6078: 8: a
6079: 9: a
6080: 10: a
6081: 11: a
6082: 12: a
6083: 13: a
6084: 14: a
6085:
6086: "(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
6087: Capturing subpattern count = 101
6088: No options
6089: First char = 'a'
6090: Need char = 'a'
6091: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6092: Matched, but too many substrings
6093: 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6094: 1: a
6095: 2: a
6096: 3: a
6097: 4: a
6098: 5: a
6099: 6: a
6100: 7: a
6101: 8: a
6102: 9: a
6103: 10: a
6104: 11: a
6105: 12: a
6106: 13: a
6107: 14: a
6108:
6109: /[^()]*(?:\((?R)\)[^()]*)*/I
6110: Capturing subpattern count = 0
6111: No options
6112: No first char
6113: No need char
6114: (this(and)that
6115: 0:
6116: (this(and)that)
6117: 0: (this(and)that)
6118: (this(and)that)stuff
6119: 0: (this(and)that)stuff
6120:
6121: /[^()]*(?:\((?>(?R))\)[^()]*)*/I
6122: Capturing subpattern count = 0
6123: No options
6124: No first char
6125: No need char
6126: (this(and)that
6127: 0:
6128: (this(and)that)
6129: 0: (this(and)that)
6130:
6131: /[^()]*(?:\((?R)\))*[^()]*/I
6132: Capturing subpattern count = 0
6133: No options
6134: No first char
6135: No need char
6136: (this(and)that
6137: 0:
6138: (this(and)that)
6139: 0: (this(and)that)
6140:
6141: /(?:\((?R)\))*[^()]*/I
6142: Capturing subpattern count = 0
6143: No options
6144: No first char
6145: No need char
6146: (this(and)that
6147: 0:
6148: (this(and)that)
6149: 0:
6150: ((this))
6151: 0: ((this))
6152:
6153: /(?:\((?R)\))|[^()]*/I
6154: Capturing subpattern count = 0
6155: No options
6156: No first char
6157: No need char
6158: (this(and)that
6159: 0:
6160: (this(and)that)
6161: 0:
6162: (this)
6163: 0: (this)
6164: ((this))
6165: 0: ((this))
6166:
6167: /a(b)c/PN
6168: abc
6169: Matched with REG_NOSUB
6170:
6171: /a(?P<name>b)c/PN
6172: abc
6173: Matched with REG_NOSUB
6174:
6175: /\x{100}/I
6176: Failed: character value in \x{...} sequence is too large at offset 6
6177:
6178: /\x{0000ff}/I
6179: Capturing subpattern count = 0
6180: No options
6181: First char = 255
6182: No need char
6183:
6184: /^((?P<A>a1)|(?P<A>a2)b)/I
6185: Failed: two named subpatterns have the same name at offset 17
6186:
6187: /^((?P<A>a1)|(?P<A>a2)b)/IJ
6188: Capturing subpattern count = 3
6189: Named capturing subpatterns:
6190: A 2
6191: A 3
6192: Options: anchored dupnames
6193: No first char
6194: No need char
6195: a1b\CA
6196: 0: a1
6197: 1: a1
6198: 2: a1
6199: C a1 (2) A
6200: a2b\CA
6201: 0: a2b
6202: 1: a2b
6203: 2: <unset>
6204: 3: a2
6205: C a2 (2) A
6206: ** Failers
6207: No match
6208: a1b\CZ\CA
6209: no parentheses with name "Z"
6210: 0: a1
6211: 1: a1
6212: 2: a1
6213: copy substring Z failed -7
6214: C a1 (2) A
6215:
6216: /^(?P<A>a)(?P<A>b)/IJ
6217: Capturing subpattern count = 2
6218: Named capturing subpatterns:
6219: A 1
6220: A 2
6221: Options: anchored dupnames
6222: No first char
6223: No need char
6224: ab\CA
6225: 0: ab
6226: 1: a
6227: 2: b
6228: C a (1) A
6229:
6230: /^(?P<A>a)(?P<A>b)|cd/IJ
6231: Capturing subpattern count = 2
6232: Named capturing subpatterns:
6233: A 1
6234: A 2
6235: Options: dupnames
6236: No first char
6237: No need char
6238: ab\CA
6239: 0: ab
6240: 1: a
6241: 2: b
6242: C a (1) A
6243: cd\CA
6244: 0: cd
6245: copy substring A failed -7
6246:
6247: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6248: Capturing subpattern count = 4
6249: Named capturing subpatterns:
6250: A 1
6251: A 2
6252: A 3
6253: A 4
6254: Options: dupnames
6255: No first char
6256: No need char
6257: cdefgh\CA
6258: 0: cdefgh
6259: 1: <unset>
6260: 2: <unset>
6261: 3: ef
6262: 4: gh
6263: C ef (2) A
6264:
6265: /^((?P<A>a1)|(?P<A>a2)b)/IJ
6266: Capturing subpattern count = 3
6267: Named capturing subpatterns:
6268: A 2
6269: A 3
6270: Options: anchored dupnames
6271: No first char
6272: No need char
6273: a1b\GA
6274: 0: a1
6275: 1: a1
6276: 2: a1
6277: G a1 (2) A
6278: a2b\GA
6279: 0: a2b
6280: 1: a2b
6281: 2: <unset>
6282: 3: a2
6283: G a2 (2) A
6284: ** Failers
6285: No match
6286: a1b\GZ\GA
6287: no parentheses with name "Z"
6288: 0: a1
6289: 1: a1
6290: 2: a1
6291: copy substring Z failed -7
6292: G a1 (2) A
6293:
6294: /^(?P<A>a)(?P<A>b)/IJ
6295: Capturing subpattern count = 2
6296: Named capturing subpatterns:
6297: A 1
6298: A 2
6299: Options: anchored dupnames
6300: No first char
6301: No need char
6302: ab\GA
6303: 0: ab
6304: 1: a
6305: 2: b
6306: G a (1) A
6307:
6308: /^(?P<A>a)(?P<A>b)|cd/IJ
6309: Capturing subpattern count = 2
6310: Named capturing subpatterns:
6311: A 1
6312: A 2
6313: Options: dupnames
6314: No first char
6315: No need char
6316: ab\GA
6317: 0: ab
6318: 1: a
6319: 2: b
6320: G a (1) A
6321: cd\GA
6322: 0: cd
6323: copy substring A failed -7
6324:
6325: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6326: Capturing subpattern count = 4
6327: Named capturing subpatterns:
6328: A 1
6329: A 2
6330: A 3
6331: A 4
6332: Options: dupnames
6333: No first char
6334: No need char
6335: cdefgh\GA
6336: 0: cdefgh
6337: 1: <unset>
6338: 2: <unset>
6339: 3: ef
6340: 4: gh
6341: G ef (2) A
6342:
6343: /(?J)^((?P<A>a1)|(?P<A>a2)b)/I
6344: Capturing subpattern count = 3
6345: Named capturing subpatterns:
6346: A 2
6347: A 3
6348: Options: anchored dupnames
6349: Duplicate name status changes
6350: No first char
6351: No need char
6352: a1b\CA
6353: 0: a1
6354: 1: a1
6355: 2: a1
6356: C a1 (2) A
6357: a2b\CA
6358: 0: a2b
6359: 1: a2b
6360: 2: <unset>
6361: 3: a2
6362: C a2 (2) A
6363:
6364: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
6365: Failed: two named subpatterns have the same name at offset 37
6366:
6367: / In this next test, J is not set at the outer level; consequently it isn't
6368: set in the pattern's options; consequently pcre_get_named_substring() produces
6369: a random value. /Ix
6370: Capturing subpattern count = 1
6371: Options: extended
6372: First char = 'I'
6373: Need char = 'e'
6374:
6375: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
6376: Capturing subpattern count = 4
6377: Named capturing subpatterns:
6378: A 1
6379: B 2
6380: B 3
6381: C 4
6382: Options: anchored
6383: Duplicate name status changes
6384: No first char
6385: No need char
6386: a bc d\CA\CB\CC
6387: 0: a bc d
6388: 1: a
6389: 2: b
6390: 3: c
6391: 4: d
6392: C a (1) A
6393: C b (1) B
6394: C d (1) C
6395:
6396: /^(?P<A>a)?(?(A)a|b)/I
6397: Capturing subpattern count = 1
6398: Named capturing subpatterns:
6399: A 1
6400: Options: anchored
6401: No first char
6402: No need char
6403: aabc
6404: 0: aa
6405: 1: a
6406: bc
6407: 0: b
6408: ** Failers
6409: No match
6410: abc
6411: No match
6412:
6413: /(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
6414: Capturing subpattern count = 1
6415: Named capturing subpatterns:
6416: ZZ 1
6417: No options
6418: No first char
6419: Need char = 'X'
6420: bXaX
6421: 0: bXaX
6422: 1: X
6423:
6424: /(?:(?(2y)a|b)(X))+/I
6425: Failed: reference to non-existent subpattern at offset 9
6426:
6427: /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
6428: Failed: reference to non-existent subpattern at offset 9
6429:
6430: /(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
6431: Capturing subpattern count = 1
6432: Named capturing subpatterns:
6433: ZZ 1
6434: No options
6435: No first char
6436: Need char = 'X'
6437: bbXaaX
6438: 0: bbXaaX
6439: 1: X
6440:
6441: /(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
6442: Capturing subpattern count = 1
6443: Named capturing subpatterns:
6444: ZZ 1
6445: No options
6446: No first char
6447: Need char = 'X'
6448: (b)\\Xa\\X
6449: 0: (b)\Xa\X
6450: 1: X
6451:
6452: /(?P<ABC/I
6453: Failed: syntax error in subpattern name (missing terminator) at offset 7
6454:
6455: /(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6456: Capturing subpattern count = 1
6457: Max back reference = 1
6458: Named capturing subpatterns:
6459: A 1
6460: No options
6461: No first char
6462: No need char
6463: bXXaYYaY
6464: 0: bXXaYYaY
6465: 1: Y
6466: bXYaXXaX
6467: 0: bX
6468: 1: X
6469:
6470: /()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6471: Capturing subpattern count = 10
6472: Max back reference = 10
6473: Named capturing subpatterns:
6474: A 10
6475: No options
6476: No first char
6477: No need char
6478: bXXaYYaY
6479: 0: bXXaYYaY
6480: 1:
6481: 2:
6482: 3:
6483: 4:
6484: 5:
6485: 6:
6486: 7:
6487: 8:
6488: 9:
6489: 10: Y
6490:
6491: /\777/I
6492: Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3
6493:
6494: /\s*,\s*/IS
6495: Capturing subpattern count = 0
6496: No options
6497: No first char
6498: Need char = ','
6499: Subject length lower bound = 1
6500: Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6501: \x0b,\x0b
6502: 0: ,
6503: \x0c,\x0d
6504: 0: \x0c,\x0d
6505:
6506: /^abc/Im
6507: Capturing subpattern count = 0
6508: Options: multiline
6509: First char at start or follows newline
6510: Need char = 'c'
6511: xyz\nabc
6512: 0: abc
6513: xyz\nabc\<lf>
6514: 0: abc
6515: xyz\r\nabc\<lf>
6516: 0: abc
6517: xyz\rabc\<cr>
6518: 0: abc
6519: xyz\r\nabc\<crlf>
6520: 0: abc
6521: ** Failers
6522: No match
6523: xyz\nabc\<cr>
6524: No match
6525: xyz\r\nabc\<cr>
6526: No match
6527: xyz\nabc\<crlf>
6528: No match
6529: xyz\rabc\<crlf>
6530: No match
6531: xyz\rabc\<lf>
6532: No match
6533:
6534: /abc$/Im<lf>
6535: Capturing subpattern count = 0
6536: Options: multiline
6537: Forced newline sequence: LF
6538: First char = 'a'
6539: Need char = 'c'
6540: xyzabc
6541: 0: abc
6542: xyzabc\n
6543: 0: abc
6544: xyzabc\npqr
6545: 0: abc
6546: xyzabc\r\<cr>
6547: 0: abc
6548: xyzabc\rpqr\<cr>
6549: 0: abc
6550: xyzabc\r\n\<crlf>
6551: 0: abc
6552: xyzabc\r\npqr\<crlf>
6553: 0: abc
6554: ** Failers
6555: No match
6556: xyzabc\r
6557: No match
6558: xyzabc\rpqr
6559: No match
6560: xyzabc\r\n
6561: No match
6562: xyzabc\r\npqr
6563: No match
6564:
6565: /^abc/Im<cr>
6566: Capturing subpattern count = 0
6567: Options: multiline
6568: Forced newline sequence: CR
6569: First char at start or follows newline
6570: Need char = 'c'
6571: xyz\rabcdef
6572: 0: abc
6573: xyz\nabcdef\<lf>
6574: 0: abc
6575: ** Failers
6576: No match
6577: xyz\nabcdef
6578: No match
6579:
6580: /^abc/Im<lf>
6581: Capturing subpattern count = 0
6582: Options: multiline
6583: Forced newline sequence: LF
6584: First char at start or follows newline
6585: Need char = 'c'
6586: xyz\nabcdef
6587: 0: abc
6588: xyz\rabcdef\<cr>
6589: 0: abc
6590: ** Failers
6591: No match
6592: xyz\rabcdef
6593: No match
6594:
6595: /^abc/Im<crlf>
6596: Capturing subpattern count = 0
6597: Options: multiline
6598: Forced newline sequence: CRLF
6599: First char at start or follows newline
6600: Need char = 'c'
6601: xyz\r\nabcdef
6602: 0: abc
6603: xyz\rabcdef\<cr>
6604: 0: abc
6605: ** Failers
6606: No match
6607: xyz\rabcdef
6608: No match
6609:
6610: /^abc/Im<bad>
6611: Unknown newline type at: <bad>
6612:
6613:
6614: /abc/I
6615: Capturing subpattern count = 0
6616: No options
6617: First char = 'a'
6618: Need char = 'c'
6619: xyz\rabc\<bad>
6620: Unknown newline type at: <bad>
6621: abc
6622: 0: abc
6623:
6624: /.*/I<lf>
6625: Capturing subpattern count = 0
6626: Options:
6627: Forced newline sequence: LF
6628: First char at start or follows newline
6629: No need char
6630: abc\ndef
6631: 0: abc
6632: abc\rdef
6633: 0: abc\x0ddef
6634: abc\r\ndef
6635: 0: abc\x0d
6636: \<cr>abc\ndef
6637: 0: abc\x0adef
6638: \<cr>abc\rdef
6639: 0: abc
6640: \<cr>abc\r\ndef
6641: 0: abc
6642: \<crlf>abc\ndef
6643: 0: abc\x0adef
6644: \<crlf>abc\rdef
6645: 0: abc\x0ddef
6646: \<crlf>abc\r\ndef
6647: 0: abc
6648:
6649: /\w+(.)(.)?def/Is
6650: Capturing subpattern count = 2
6651: Options: dotall
6652: No first char
6653: Need char = 'f'
6654: abc\ndef
6655: 0: abc\x0adef
6656: 1: \x0a
6657: abc\rdef
6658: 0: abc\x0ddef
6659: 1: \x0d
6660: abc\r\ndef
6661: 0: abc\x0d\x0adef
6662: 1: \x0d
6663: 2: \x0a
6664:
6665: +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6666: Capturing subpattern count = 1
6667: No options
6668: No first char
6669: No need char
6670: /* this is a C style comment */\M
6671: Minimum match() limit = 120
6672: Minimum match() recursion limit = 6
6673: 0: /* this is a C style comment */
6674: 1: /* this is a C style comment */
6675:
6676: /(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
6677: Capturing subpattern count = 1
6678: Named capturing subpatterns:
6679: B 1
6680: No options
6681: No first char
6682: Need char = '.'
6683:
6684: /()()()()()()()()()()()()()()()()()()()()
6685: ()()()()()()()()()()()()()()()()()()()()
6686: ()()()()()()()()()()()()()()()()()()()()
6687: ()()()()()()()()()()()()()()()()()()()()
6688: ()()()()()()()()()()()()()()()()()()()()
6689: (.(.))/Ix
6690: Capturing subpattern count = 102
6691: Options: extended
6692: No first char
6693: No need char
6694: XY\O400
6695: 0: XY
6696: 1:
6697: 2:
6698: 3:
6699: 4:
6700: 5:
6701: 6:
6702: 7:
6703: 8:
6704: 9:
6705: 10:
6706: 11:
6707: 12:
6708: 13:
6709: 14:
6710: 15:
6711: 16:
6712: 17:
6713: 18:
6714: 19:
6715: 20:
6716: 21:
6717: 22:
6718: 23:
6719: 24:
6720: 25:
6721: 26:
6722: 27:
6723: 28:
6724: 29:
6725: 30:
6726: 31:
6727: 32:
6728: 33:
6729: 34:
6730: 35:
6731: 36:
6732: 37:
6733: 38:
6734: 39:
6735: 40:
6736: 41:
6737: 42:
6738: 43:
6739: 44:
6740: 45:
6741: 46:
6742: 47:
6743: 48:
6744: 49:
6745: 50:
6746: 51:
6747: 52:
6748: 53:
6749: 54:
6750: 55:
6751: 56:
6752: 57:
6753: 58:
6754: 59:
6755: 60:
6756: 61:
6757: 62:
6758: 63:
6759: 64:
6760: 65:
6761: 66:
6762: 67:
6763: 68:
6764: 69:
6765: 70:
6766: 71:
6767: 72:
6768: 73:
6769: 74:
6770: 75:
6771: 76:
6772: 77:
6773: 78:
6774: 79:
6775: 80:
6776: 81:
6777: 82:
6778: 83:
6779: 84:
6780: 85:
6781: 86:
6782: 87:
6783: 88:
6784: 89:
6785: 90:
6786: 91:
6787: 92:
6788: 93:
6789: 94:
6790: 95:
6791: 96:
6792: 97:
6793: 98:
6794: 99:
6795: 100:
6796: 101: XY
6797: 102: Y
6798:
6799: /(a*b|(?i:c*(?-i)d))/IS
6800: Capturing subpattern count = 1
6801: No options
6802: No first char
6803: No need char
6804: Subject length lower bound = 1
6805: Starting byte set: C a b c d
6806:
6807: /()[ab]xyz/IS
6808: Capturing subpattern count = 1
6809: No options
6810: No first char
6811: Need char = 'z'
6812: Subject length lower bound = 4
6813: Starting byte set: a b
6814:
6815: /(|)[ab]xyz/IS
6816: Capturing subpattern count = 1
6817: No options
6818: No first char
6819: Need char = 'z'
6820: Subject length lower bound = 4
6821: Starting byte set: a b
6822:
6823: /(|c)[ab]xyz/IS
6824: Capturing subpattern count = 1
6825: No options
6826: No first char
6827: Need char = 'z'
6828: Subject length lower bound = 4
6829: Starting byte set: a b c
6830:
6831: /(|c?)[ab]xyz/IS
6832: Capturing subpattern count = 1
6833: No options
6834: No first char
6835: Need char = 'z'
6836: Subject length lower bound = 4
6837: Starting byte set: a b c
6838:
6839: /(d?|c?)[ab]xyz/IS
6840: Capturing subpattern count = 1
6841: No options
6842: No first char
6843: Need char = 'z'
6844: Subject length lower bound = 4
6845: Starting byte set: a b c d
6846:
6847: /(d?|c)[ab]xyz/IS
6848: Capturing subpattern count = 1
6849: No options
6850: No first char
6851: Need char = 'z'
6852: Subject length lower bound = 4
6853: Starting byte set: a b c d
6854:
6855: /^a*b\d/DZ
6856: ------------------------------------------------------------------
6857: Bra
6858: ^
6859: a*+
6860: b
6861: \d
6862: Ket
6863: End
6864: ------------------------------------------------------------------
6865: Capturing subpattern count = 0
6866: Options: anchored
6867: No first char
6868: Need char = 'b'
6869:
6870: /^a*+b\d/DZ
6871: ------------------------------------------------------------------
6872: Bra
6873: ^
6874: a*+
6875: b
6876: \d
6877: Ket
6878: End
6879: ------------------------------------------------------------------
6880: Capturing subpattern count = 0
6881: Options: anchored
6882: No first char
6883: Need char = 'b'
6884:
6885: /^a*?b\d/DZ
6886: ------------------------------------------------------------------
6887: Bra
6888: ^
6889: a*+
6890: b
6891: \d
6892: Ket
6893: End
6894: ------------------------------------------------------------------
6895: Capturing subpattern count = 0
6896: Options: anchored
6897: No first char
6898: Need char = 'b'
6899:
6900: /^a+A\d/DZ
6901: ------------------------------------------------------------------
6902: Bra
6903: ^
6904: a++
6905: A
6906: \d
6907: Ket
6908: End
6909: ------------------------------------------------------------------
6910: Capturing subpattern count = 0
6911: Options: anchored
6912: No first char
6913: Need char = 'A'
6914: aaaA5
6915: 0: aaaA5
6916: ** Failers
6917: No match
6918: aaaa5
6919: No match
6920:
6921: /^a*A\d/IiDZ
6922: ------------------------------------------------------------------
6923: Bra
6924: ^
6925: /i a*
6926: /i A
6927: \d
6928: Ket
6929: End
6930: ------------------------------------------------------------------
6931: Capturing subpattern count = 0
6932: Options: anchored caseless
6933: No first char
6934: Need char = 'A' (caseless)
6935: aaaA5
6936: 0: aaaA5
6937: aaaa5
6938: 0: aaaa5
6939:
6940: /(a*|b*)[cd]/IS
6941: Capturing subpattern count = 1
6942: No options
6943: No first char
6944: No need char
6945: Subject length lower bound = 1
6946: Starting byte set: a b c d
6947:
6948: /(a+|b*)[cd]/IS
6949: Capturing subpattern count = 1
6950: No options
6951: No first char
6952: No need char
6953: Subject length lower bound = 1
6954: Starting byte set: a b c d
6955:
6956: /(a*|b+)[cd]/IS
6957: Capturing subpattern count = 1
6958: No options
6959: No first char
6960: No need char
6961: Subject length lower bound = 1
6962: Starting byte set: a b c d
6963:
6964: /(a+|b+)[cd]/IS
6965: Capturing subpattern count = 1
6966: No options
6967: No first char
6968: No need char
6969: Subject length lower bound = 2
6970: Starting byte set: a b
6971:
6972: /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6973: ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6974: (((
6975: a
6976: ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6977: ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6978: )))
6979: /Ix
6980: Capturing subpattern count = 203
6981: Options: extended
6982: First char = 'a'
6983: No need char
6984: large nest
6985: Matched, but too many substrings
6986: 0: a
6987: 1: a
6988: 2: a
6989: 3: a
6990: 4: a
6991: 5: a
6992: 6: a
6993: 7: a
6994: 8: a
6995: 9: a
6996: 10: a
6997: 11: a
6998: 12: a
6999: 13: a
7000: 14: a
7001:
7002: /a*\d/BZ
7003: ------------------------------------------------------------------
7004: Bra
7005: a*+
7006: \d
7007: Ket
7008: End
7009: ------------------------------------------------------------------
7010:
7011: /a*\D/BZ
7012: ------------------------------------------------------------------
7013: Bra
7014: a*
7015: \D
7016: Ket
7017: End
7018: ------------------------------------------------------------------
7019:
7020: /0*\d/BZ
7021: ------------------------------------------------------------------
7022: Bra
7023: 0*
7024: \d
7025: Ket
7026: End
7027: ------------------------------------------------------------------
7028:
7029: /0*\D/BZ
7030: ------------------------------------------------------------------
7031: Bra
7032: 0*+
7033: \D
7034: Ket
7035: End
7036: ------------------------------------------------------------------
7037:
7038: /a*\s/BZ
7039: ------------------------------------------------------------------
7040: Bra
7041: a*+
7042: \s
7043: Ket
7044: End
7045: ------------------------------------------------------------------
7046:
7047: /a*\S/BZ
7048: ------------------------------------------------------------------
7049: Bra
7050: a*
7051: \S
7052: Ket
7053: End
7054: ------------------------------------------------------------------
7055:
7056: / *\s/BZ
7057: ------------------------------------------------------------------
7058: Bra
7059: *
7060: \s
7061: Ket
7062: End
7063: ------------------------------------------------------------------
7064:
7065: / *\S/BZ
7066: ------------------------------------------------------------------
7067: Bra
7068: *+
7069: \S
7070: Ket
7071: End
7072: ------------------------------------------------------------------
7073:
7074: /a*\w/BZ
7075: ------------------------------------------------------------------
7076: Bra
7077: a*
7078: \w
7079: Ket
7080: End
7081: ------------------------------------------------------------------
7082:
7083: /a*\W/BZ
7084: ------------------------------------------------------------------
7085: Bra
7086: a*+
7087: \W
7088: Ket
7089: End
7090: ------------------------------------------------------------------
7091:
7092: /=*\w/BZ
7093: ------------------------------------------------------------------
7094: Bra
7095: =*+
7096: \w
7097: Ket
7098: End
7099: ------------------------------------------------------------------
7100:
7101: /=*\W/BZ
7102: ------------------------------------------------------------------
7103: Bra
7104: =*
7105: \W
7106: Ket
7107: End
7108: ------------------------------------------------------------------
7109:
7110: /\d*a/BZ
7111: ------------------------------------------------------------------
7112: Bra
7113: \d*+
7114: a
7115: Ket
7116: End
7117: ------------------------------------------------------------------
7118:
7119: /\d*2/BZ
7120: ------------------------------------------------------------------
7121: Bra
7122: \d*
7123: 2
7124: Ket
7125: End
7126: ------------------------------------------------------------------
7127:
7128: /\d*\d/BZ
7129: ------------------------------------------------------------------
7130: Bra
7131: \d*
7132: \d
7133: Ket
7134: End
7135: ------------------------------------------------------------------
7136:
7137: /\d*\D/BZ
7138: ------------------------------------------------------------------
7139: Bra
7140: \d*+
7141: \D
7142: Ket
7143: End
7144: ------------------------------------------------------------------
7145:
7146: /\d*\s/BZ
7147: ------------------------------------------------------------------
7148: Bra
7149: \d*+
7150: \s
7151: Ket
7152: End
7153: ------------------------------------------------------------------
7154:
7155: /\d*\S/BZ
7156: ------------------------------------------------------------------
7157: Bra
7158: \d*
7159: \S
7160: Ket
7161: End
7162: ------------------------------------------------------------------
7163:
7164: /\d*\w/BZ
7165: ------------------------------------------------------------------
7166: Bra
7167: \d*
7168: \w
7169: Ket
7170: End
7171: ------------------------------------------------------------------
7172:
7173: /\d*\W/BZ
7174: ------------------------------------------------------------------
7175: Bra
7176: \d*+
7177: \W
7178: Ket
7179: End
7180: ------------------------------------------------------------------
7181:
7182: /\D*a/BZ
7183: ------------------------------------------------------------------
7184: Bra
7185: \D*
7186: a
7187: Ket
7188: End
7189: ------------------------------------------------------------------
7190:
7191: /\D*2/BZ
7192: ------------------------------------------------------------------
7193: Bra
7194: \D*+
7195: 2
7196: Ket
7197: End
7198: ------------------------------------------------------------------
7199:
7200: /\D*\d/BZ
7201: ------------------------------------------------------------------
7202: Bra
7203: \D*+
7204: \d
7205: Ket
7206: End
7207: ------------------------------------------------------------------
7208:
7209: /\D*\D/BZ
7210: ------------------------------------------------------------------
7211: Bra
7212: \D*
7213: \D
7214: Ket
7215: End
7216: ------------------------------------------------------------------
7217:
7218: /\D*\s/BZ
7219: ------------------------------------------------------------------
7220: Bra
7221: \D*
7222: \s
7223: Ket
7224: End
7225: ------------------------------------------------------------------
7226:
7227: /\D*\S/BZ
7228: ------------------------------------------------------------------
7229: Bra
7230: \D*
7231: \S
7232: Ket
7233: End
7234: ------------------------------------------------------------------
7235:
7236: /\D*\w/BZ
7237: ------------------------------------------------------------------
7238: Bra
7239: \D*
7240: \w
7241: Ket
7242: End
7243: ------------------------------------------------------------------
7244:
7245: /\D*\W/BZ
7246: ------------------------------------------------------------------
7247: Bra
7248: \D*
7249: \W
7250: Ket
7251: End
7252: ------------------------------------------------------------------
7253:
7254: /\s*a/BZ
7255: ------------------------------------------------------------------
7256: Bra
7257: \s*+
7258: a
7259: Ket
7260: End
7261: ------------------------------------------------------------------
7262:
7263: /\s*2/BZ
7264: ------------------------------------------------------------------
7265: Bra
7266: \s*+
7267: 2
7268: Ket
7269: End
7270: ------------------------------------------------------------------
7271:
7272: /\s*\d/BZ
7273: ------------------------------------------------------------------
7274: Bra
7275: \s*+
7276: \d
7277: Ket
7278: End
7279: ------------------------------------------------------------------
7280:
7281: /\s*\D/BZ
7282: ------------------------------------------------------------------
7283: Bra
7284: \s*
7285: \D
7286: Ket
7287: End
7288: ------------------------------------------------------------------
7289:
7290: /\s*\s/BZ
7291: ------------------------------------------------------------------
7292: Bra
7293: \s*
7294: \s
7295: Ket
7296: End
7297: ------------------------------------------------------------------
7298:
7299: /\s*\S/BZ
7300: ------------------------------------------------------------------
7301: Bra
7302: \s*+
7303: \S
7304: Ket
7305: End
7306: ------------------------------------------------------------------
7307:
7308: /\s*\w/BZ
7309: ------------------------------------------------------------------
7310: Bra
7311: \s*+
7312: \w
7313: Ket
7314: End
7315: ------------------------------------------------------------------
7316:
7317: /\s*\W/BZ
7318: ------------------------------------------------------------------
7319: Bra
7320: \s*
7321: \W
7322: Ket
7323: End
7324: ------------------------------------------------------------------
7325:
7326: /\S*a/BZ
7327: ------------------------------------------------------------------
7328: Bra
7329: \S*
7330: a
7331: Ket
7332: End
7333: ------------------------------------------------------------------
7334:
7335: /\S*2/BZ
7336: ------------------------------------------------------------------
7337: Bra
7338: \S*
7339: 2
7340: Ket
7341: End
7342: ------------------------------------------------------------------
7343:
7344: /\S*\d/BZ
7345: ------------------------------------------------------------------
7346: Bra
7347: \S*
7348: \d
7349: Ket
7350: End
7351: ------------------------------------------------------------------
7352:
7353: /\S*\D/BZ
7354: ------------------------------------------------------------------
7355: Bra
7356: \S*
7357: \D
7358: Ket
7359: End
7360: ------------------------------------------------------------------
7361:
7362: /\S*\s/BZ
7363: ------------------------------------------------------------------
7364: Bra
7365: \S*+
7366: \s
7367: Ket
7368: End
7369: ------------------------------------------------------------------
7370:
7371: /\S*\S/BZ
7372: ------------------------------------------------------------------
7373: Bra
7374: \S*
7375: \S
7376: Ket
7377: End
7378: ------------------------------------------------------------------
7379:
7380: /\S*\w/BZ
7381: ------------------------------------------------------------------
7382: Bra
7383: \S*
7384: \w
7385: Ket
7386: End
7387: ------------------------------------------------------------------
7388:
7389: /\S*\W/BZ
7390: ------------------------------------------------------------------
7391: Bra
7392: \S*
7393: \W
7394: Ket
7395: End
7396: ------------------------------------------------------------------
7397:
7398: /\w*a/BZ
7399: ------------------------------------------------------------------
7400: Bra
7401: \w*
7402: a
7403: Ket
7404: End
7405: ------------------------------------------------------------------
7406:
7407: /\w*2/BZ
7408: ------------------------------------------------------------------
7409: Bra
7410: \w*
7411: 2
7412: Ket
7413: End
7414: ------------------------------------------------------------------
7415:
7416: /\w*\d/BZ
7417: ------------------------------------------------------------------
7418: Bra
7419: \w*
7420: \d
7421: Ket
7422: End
7423: ------------------------------------------------------------------
7424:
7425: /\w*\D/BZ
7426: ------------------------------------------------------------------
7427: Bra
7428: \w*
7429: \D
7430: Ket
7431: End
7432: ------------------------------------------------------------------
7433:
7434: /\w*\s/BZ
7435: ------------------------------------------------------------------
7436: Bra
7437: \w*+
7438: \s
7439: Ket
7440: End
7441: ------------------------------------------------------------------
7442:
7443: /\w*\S/BZ
7444: ------------------------------------------------------------------
7445: Bra
7446: \w*
7447: \S
7448: Ket
7449: End
7450: ------------------------------------------------------------------
7451:
7452: /\w*\w/BZ
7453: ------------------------------------------------------------------
7454: Bra
7455: \w*
7456: \w
7457: Ket
7458: End
7459: ------------------------------------------------------------------
7460:
7461: /\w*\W/BZ
7462: ------------------------------------------------------------------
7463: Bra
7464: \w*+
7465: \W
7466: Ket
7467: End
7468: ------------------------------------------------------------------
7469:
7470: /\W*a/BZ
7471: ------------------------------------------------------------------
7472: Bra
7473: \W*+
7474: a
7475: Ket
7476: End
7477: ------------------------------------------------------------------
7478:
7479: /\W*2/BZ
7480: ------------------------------------------------------------------
7481: Bra
7482: \W*+
7483: 2
7484: Ket
7485: End
7486: ------------------------------------------------------------------
7487:
7488: /\W*\d/BZ
7489: ------------------------------------------------------------------
7490: Bra
7491: \W*+
7492: \d
7493: Ket
7494: End
7495: ------------------------------------------------------------------
7496:
7497: /\W*\D/BZ
7498: ------------------------------------------------------------------
7499: Bra
7500: \W*
7501: \D
7502: Ket
7503: End
7504: ------------------------------------------------------------------
7505:
7506: /\W*\s/BZ
7507: ------------------------------------------------------------------
7508: Bra
7509: \W*
7510: \s
7511: Ket
7512: End
7513: ------------------------------------------------------------------
7514:
7515: /\W*\S/BZ
7516: ------------------------------------------------------------------
7517: Bra
7518: \W*
7519: \S
7520: Ket
7521: End
7522: ------------------------------------------------------------------
7523:
7524: /\W*\w/BZ
7525: ------------------------------------------------------------------
7526: Bra
7527: \W*+
7528: \w
7529: Ket
7530: End
7531: ------------------------------------------------------------------
7532:
7533: /\W*\W/BZ
7534: ------------------------------------------------------------------
7535: Bra
7536: \W*
7537: \W
7538: Ket
7539: End
7540: ------------------------------------------------------------------
7541:
7542: /[^a]+a/BZ
7543: ------------------------------------------------------------------
7544: Bra
7545: [^a]++
7546: a
7547: Ket
7548: End
7549: ------------------------------------------------------------------
7550:
7551: /[^a]+a/BZi
7552: ------------------------------------------------------------------
7553: Bra
7554: /i [^A]++
7555: /i a
7556: Ket
7557: End
7558: ------------------------------------------------------------------
7559:
7560: /[^a]+A/BZi
7561: ------------------------------------------------------------------
7562: Bra
7563: /i [^A]++
7564: /i A
7565: Ket
7566: End
7567: ------------------------------------------------------------------
7568:
7569: /[^a]+b/BZ
7570: ------------------------------------------------------------------
7571: Bra
7572: [^a]+
7573: b
7574: Ket
7575: End
7576: ------------------------------------------------------------------
7577:
7578: /[^a]+\d/BZ
7579: ------------------------------------------------------------------
7580: Bra
7581: [^a]+
7582: \d
7583: Ket
7584: End
7585: ------------------------------------------------------------------
7586:
7587: /a*[^a]/BZ
7588: ------------------------------------------------------------------
7589: Bra
7590: a*
7591: [^a]
7592: Ket
7593: End
7594: ------------------------------------------------------------------
7595:
7596: /(?P<abc>x)(?P<xyz>y)/I
7597: Capturing subpattern count = 2
7598: Named capturing subpatterns:
7599: abc 1
7600: xyz 2
7601: No options
7602: First char = 'x'
7603: Need char = 'y'
7604: xy\Cabc\Cxyz
7605: 0: xy
7606: 1: x
7607: 2: y
7608: C x (1) abc
7609: C y (1) xyz
7610:
7611: /(?<abc>x)(?'xyz'y)/I
7612: Capturing subpattern count = 2
7613: Named capturing subpatterns:
7614: abc 1
7615: xyz 2
7616: No options
7617: First char = 'x'
7618: Need char = 'y'
7619: xy\Cabc\Cxyz
7620: 0: xy
7621: 1: x
7622: 2: y
7623: C x (1) abc
7624: C y (1) xyz
7625:
7626: /(?<abc'x)(?'xyz'y)/I
7627: Failed: syntax error in subpattern name (missing terminator) at offset 6
7628:
7629: /(?<abc>x)(?'xyz>y)/I
7630: Failed: syntax error in subpattern name (missing terminator) at offset 15
7631:
7632: /(?P'abc'x)(?P<xyz>y)/I
7633: Failed: unrecognized character after (?P at offset 3
7634:
7635: /^(?:(?(ZZ)a|b)(?<ZZ>X))+/
7636: bXaX
7637: 0: bXaX
7638: 1: X
7639: bXbX
7640: 0: bX
7641: 1: X
7642: ** Failers
7643: No match
7644: aXaX
7645: No match
7646: aXbX
7647: No match
7648:
7649: /^(?P>abc)(?<abcd>xxx)/
7650: Failed: reference to non-existent subpattern at offset 8
7651:
7652: /^(?P>abc)(?<abc>x|y)/
7653: xx
7654: 0: xx
7655: 1: x
7656: xy
7657: 0: xy
7658: 1: y
7659: yy
7660: 0: yy
7661: 1: y
7662: yx
7663: 0: yx
7664: 1: x
7665:
7666: /^(?P>abc)(?P<abc>x|y)/
7667: xx
7668: 0: xx
7669: 1: x
7670: xy
7671: 0: xy
7672: 1: y
7673: yy
7674: 0: yy
7675: 1: y
7676: yx
7677: 0: yx
7678: 1: x
7679:
7680: /^((?(abc)a|b)(?<abc>x|y))+/
7681: bxay
7682: 0: bxay
7683: 1: ay
7684: 2: y
7685: bxby
7686: 0: bx
7687: 1: bx
7688: 2: x
7689: ** Failers
7690: No match
7691: axby
7692: No match
7693:
7694: /^(((?P=abc)|X)(?<abc>x|y))+/
7695: XxXxxx
7696: 0: XxXxxx
7697: 1: xx
7698: 2: x
7699: 3: x
7700: XxXyyx
7701: 0: XxXyyx
7702: 1: yx
7703: 2: y
7704: 3: x
7705: XxXyxx
7706: 0: XxXy
7707: 1: Xy
7708: 2: X
7709: 3: y
7710: ** Failers
7711: No match
7712: x
7713: No match
7714:
7715: /^(?1)(abc)/
7716: abcabc
7717: 0: abcabc
7718: 1: abc
7719:
7720: /^(?:(?:\1|X)(a|b))+/
7721: Xaaa
7722: 0: Xaaa
7723: 1: a
7724: Xaba
7725: 0: Xa
7726: 1: a
7727:
7728: /^[\E\Qa\E-\Qz\E]+/BZ
7729: ------------------------------------------------------------------
7730: Bra
7731: ^
7732: [a-z]+
7733: Ket
7734: End
7735: ------------------------------------------------------------------
7736:
7737: /^[a\Q]bc\E]/BZ
7738: ------------------------------------------------------------------
7739: Bra
7740: ^
7741: [\]a-c]
7742: Ket
7743: End
7744: ------------------------------------------------------------------
7745:
7746: /^[a-\Q\E]/BZ
7747: ------------------------------------------------------------------
7748: Bra
7749: ^
7750: [\-a]
7751: Ket
7752: End
7753: ------------------------------------------------------------------
7754:
7755: /^(?P>abc)[()](?<abc>)/BZ
7756: ------------------------------------------------------------------
7757: Bra
7758: ^
7759: Recurse
7760: [()]
7761: CBra 1
7762: Ket
7763: Ket
7764: End
7765: ------------------------------------------------------------------
7766:
7767: /^((?(abc)y)[()](?P<abc>x))+/BZ
7768: ------------------------------------------------------------------
7769: Bra
7770: ^
7771: CBra 1
7772: Cond
7773: 2 Cond nref
7774: y
7775: Ket
7776: [()]
7777: CBra 2
7778: x
7779: Ket
7780: KetRmax
7781: Ket
7782: End
7783: ------------------------------------------------------------------
7784: (xy)x
7785: 0: (xy)x
7786: 1: y)x
7787: 2: x
7788:
7789: /^(?P>abc)\Q()\E(?<abc>)/BZ
7790: ------------------------------------------------------------------
7791: Bra
7792: ^
7793: Recurse
7794: ()
7795: CBra 1
7796: Ket
7797: Ket
7798: End
7799: ------------------------------------------------------------------
7800:
7801: /^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
7802: ------------------------------------------------------------------
7803: Bra
7804: ^
7805: Recurse
7806: [(\]a]
7807: CBra 1
7808: Ket
7809: Ket
7810: End
7811: ------------------------------------------------------------------
7812:
7813: /^(?P>abc) # this is (a comment)
7814: (?<abc>)/BZx
7815: ------------------------------------------------------------------
7816: Bra
7817: ^
7818: Recurse
7819: CBra 1
7820: Ket
7821: Ket
7822: End
7823: ------------------------------------------------------------------
7824:
7825: /^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
7826: Capturing subpattern count = 4
7827: Max back reference = 4
7828: Named capturing subpatterns:
7829: four 4
7830: one 1
7831: three 3
7832: two 2
7833: Options: anchored caseless
7834: No first char
7835: No need char
7836: 1221
7837: 0: 1221
7838: 1: 1221
7839: 2: 1
7840: Satan, oscillate my metallic sonatas!
7841: 0: Satan, oscillate my metallic sonatas!
7842: 1: <unset>
7843: 2: <unset>
7844: 3: Satan, oscillate my metallic sonatas
7845: 4: S
7846: A man, a plan, a canal: Panama!
7847: 0: A man, a plan, a canal: Panama!
7848: 1: <unset>
7849: 2: <unset>
7850: 3: A man, a plan, a canal: Panama
7851: 4: A
7852: Able was I ere I saw Elba.
7853: 0: Able was I ere I saw Elba.
7854: 1: <unset>
7855: 2: <unset>
7856: 3: Able was I ere I saw Elba
7857: 4: A
7858: *** Failers
7859: No match
7860: The quick brown fox
7861: No match
7862:
7863: /(?=(\w+))\1:/I
7864: Capturing subpattern count = 1
7865: Max back reference = 1
7866: No options
7867: No first char
7868: Need char = ':'
7869: abcd:
7870: 0: abcd:
7871: 1: abcd
7872:
7873: /(?=(?'abc'\w+))\k<abc>:/I
7874: Capturing subpattern count = 1
7875: Max back reference = 1
7876: Named capturing subpatterns:
7877: abc 1
7878: No options
7879: No first char
7880: Need char = ':'
7881: abcd:
7882: 0: abcd:
7883: 1: abcd
7884:
7885: /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7886: adaa
7887: 0: adaa
7888: 1: a
7889: 2: d
7890: ** Failers
7891: No match
7892: addd
7893: No match
7894: adbb
7895: No match
7896:
7897: /(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
7898: bdaa
7899: 0: bdaa
7900: 1: b
7901: 2: d
7902: bdab
7903: 0: bdab
7904: 1: b
7905: 2: d
7906: ** Failers
7907: No match
7908: bddd
7909: No match
7910:
7911: /(?(<bc))/
7912: Failed: malformed number or name after (?( at offset 6
7913:
7914: /(?(''))/
7915: Failed: assertion expected after (?( at offset 4
7916:
7917: /(?('R')stuff)/
7918: Failed: reference to non-existent subpattern at offset 7
7919:
7920: /((abc (?(R) (?(R1)1) (?(R2)2) X | (?1) (?2) (?R) ))) /x
7921: abcabc1Xabc2XabcXabcabc
7922: 0: abcabc1Xabc2XabcX
7923: 1: abcabc1Xabc2XabcX
7924: 2: abcabc1Xabc2XabcX
7925:
7926: /(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
7927: abcabc1Xabc2XabcXabcabc
7928: 0: abcabc1Xabc2XabcX
7929: 1: abcabc1Xabc2XabcX
7930: 2: abcabc1Xabc2XabcX
7931:
7932: /(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
7933: Failed: reference to non-existent subpattern at offset 29
7934:
7935: /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
7936: abcabc1Xabc2XabcXabcabc
7937: 0: abcabc1Xabc2XabcX
7938: 1: abcabc1Xabc2XabcX
7939: 2: abcabc1Xabc2XabcX
7940:
7941: /^(?(DEFINE) abc | xyz ) /x
7942: Failed: DEFINE group contains more than one branch at offset 22
7943:
7944: /(?(DEFINE) abc) xyz/xI
7945: Capturing subpattern count = 0
7946: Options: extended
7947: First char = 'x'
7948: Need char = 'z'
7949:
7950: /(a|)*\d/
7951: \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7952: No match
7953: \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
7954: Matched, but too many substrings
7955:
7956: /^a.b/<lf>
7957: a\rb
7958: 0: a\x0db
7959: a\nb\<cr>
7960: 0: a\x0ab
7961: a\x85b\<anycrlf>
7962: 0: a\x85b
7963: ** Failers
7964: No match
7965: a\nb
7966: No match
7967: a\nb\<any>
7968: No match
7969: a\rb\<cr>
7970: No match
7971: a\rb\<any>
7972: No match
7973: a\x85b\<any>
7974: No match
7975: a\rb\<anycrlf>
7976: No match
7977:
7978: /^abc./mgx<any>
7979: abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7980: 0: abc1
7981: 0: abc2
7982: 0: abc3
7983: 0: abc4
7984: 0: abc5
7985: 0: abc6
7986: 0: abc7
7987:
7988: /abc.$/mgx<any>
7989: abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
7990: 0: abc1
7991: 0: abc2
7992: 0: abc3
7993: 0: abc4
7994: 0: abc5
7995: 0: abc6
7996: 0: abc9
7997:
7998: /a/<cr><any>
7999:
8000: /a/<any><crlf>
8001: Failed: inconsistent NEWLINE options at offset 0
8002:
8003: /^a\Rb/<bsr_unicode>
8004: a\nb
8005: 0: a\x0ab
8006: a\rb
8007: 0: a\x0db
8008: a\r\nb
8009: 0: a\x0d\x0ab
8010: a\x0bb
8011: 0: a\x0bb
8012: a\x0cb
8013: 0: a\x0cb
8014: a\x85b
8015: 0: a\x85b
8016: ** Failers
8017: No match
8018: a\n\rb
8019: No match
8020:
8021: /^a\R*b/<bsr_unicode>
8022: ab
8023: 0: ab
8024: a\nb
8025: 0: a\x0ab
8026: a\rb
8027: 0: a\x0db
8028: a\r\nb
8029: 0: a\x0d\x0ab
8030: a\x0bb
8031: 0: a\x0bb
8032: a\x0cb
8033: 0: a\x0cb
8034: a\x85b
8035: 0: a\x85b
8036: a\n\rb
8037: 0: a\x0a\x0db
8038: a\n\r\x85\x0cb
8039: 0: a\x0a\x0d\x85\x0cb
8040:
8041: /^a\R+b/<bsr_unicode>
8042: a\nb
8043: 0: a\x0ab
8044: a\rb
8045: 0: a\x0db
8046: a\r\nb
8047: 0: a\x0d\x0ab
8048: a\x0bb
8049: 0: a\x0bb
8050: a\x0cb
8051: 0: a\x0cb
8052: a\x85b
8053: 0: a\x85b
8054: a\n\rb
8055: 0: a\x0a\x0db
8056: a\n\r\x85\x0cb
8057: 0: a\x0a\x0d\x85\x0cb
8058: ** Failers
8059: No match
8060: ab
8061: No match
8062:
8063: /^a\R{1,3}b/<bsr_unicode>
8064: a\nb
8065: 0: a\x0ab
8066: a\n\rb
8067: 0: a\x0a\x0db
8068: a\n\r\x85b
8069: 0: a\x0a\x0d\x85b
8070: a\r\n\r\nb
8071: 0: a\x0d\x0a\x0d\x0ab
8072: a\r\n\r\n\r\nb
8073: 0: a\x0d\x0a\x0d\x0a\x0d\x0ab
8074: a\n\r\n\rb
8075: 0: a\x0a\x0d\x0a\x0db
8076: a\n\n\r\nb
8077: 0: a\x0a\x0a\x0d\x0ab
8078: ** Failers
8079: No match
8080: a\n\n\n\rb
8081: No match
8082: a\r
8083: No match
8084:
8085: /^a[\R]b/<bsr_unicode>
8086: aRb
8087: 0: aRb
8088: ** Failers
8089: No match
8090: a\nb
8091: No match
8092:
8093: /(?&abc)X(?<abc>P)/I
8094: Capturing subpattern count = 1
8095: Named capturing subpatterns:
8096: abc 1
8097: No options
8098: No first char
8099: Need char = 'P'
8100: abcPXP123
8101: 0: PXP
8102: 1: P
8103:
8104: /(?1)X(?<abc>P)/I
8105: Capturing subpattern count = 1
8106: Named capturing subpatterns:
8107: abc 1
8108: No options
8109: No first char
8110: Need char = 'P'
8111: abcPXP123
8112: 0: PXP
8113: 1: P
8114:
8115: /(?:a(?&abc)b)*(?<abc>x)/
8116: 123axbaxbaxbx456
8117: 0: axbaxbaxbx
8118: 1: x
8119: 123axbaxbaxb456
8120: 0: x
8121: 1: x
8122:
8123: /(?:a(?&abc)b){1,5}(?<abc>x)/
8124: 123axbaxbaxbx456
8125: 0: axbaxbaxbx
8126: 1: x
8127:
8128: /(?:a(?&abc)b){2,5}(?<abc>x)/
8129: 123axbaxbaxbx456
8130: 0: axbaxbaxbx
8131: 1: x
8132:
8133: /(?:a(?&abc)b){2,}(?<abc>x)/
8134: 123axbaxbaxbx456
8135: 0: axbaxbaxbx
8136: 1: x
8137:
8138: /(abc)(?i:(?1))/
8139: defabcabcxyz
8140: 0: abcabc
8141: 1: abc
8142: DEFabcABCXYZ
8143: No match
8144:
8145: /(abc)(?:(?i)(?1))/
8146: defabcabcxyz
8147: 0: abcabc
8148: 1: abc
8149: DEFabcABCXYZ
8150: No match
8151:
8152: /^(a)\g-2/
8153: Failed: reference to non-existent subpattern at offset 7
8154:
8155: /^(a)\g/
8156: Failed: a numbered reference must not be zero at offset 5
8157:
8158: /^(a)\g{0}/
8159: Failed: a numbered reference must not be zero at offset 8
8160:
8161: /^(a)\g{3/
8162: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
8163:
8164: /^(a)\g{4a}/
8165: Failed: reference to non-existent subpattern at offset 9
8166:
8167: /^a.b/<lf>
8168: a\rb
8169: 0: a\x0db
8170: *** Failers
8171: No match
8172: a\nb
8173: No match
8174:
8175: /.+foo/
8176: afoo
8177: 0: afoo
8178: ** Failers
8179: No match
8180: \r\nfoo
8181: No match
8182: \nfoo
8183: No match
8184:
8185: /.+foo/<crlf>
8186: afoo
8187: 0: afoo
8188: \nfoo
8189: 0: \x0afoo
8190: ** Failers
8191: No match
8192: \r\nfoo
8193: No match
8194:
8195: /.+foo/<any>
8196: afoo
8197: 0: afoo
8198: ** Failers
8199: No match
8200: \nfoo
8201: No match
8202: \r\nfoo
8203: No match
8204:
8205: /.+foo/s
8206: afoo
8207: 0: afoo
8208: \r\nfoo
8209: 0: \x0d\x0afoo
8210: \nfoo
8211: 0: \x0afoo
8212:
8213: /^$/mg<any>
8214: abc\r\rxyz
8215: 0:
8216: abc\n\rxyz
8217: 0:
8218: ** Failers
8219: No match
8220: abc\r\nxyz
8221: No match
8222:
8223: /(?m)^$/<any>g+
8224: abc\r\n\r\n
8225: 0:
8226: 0+ \x0d\x0a
8227:
8228: /(?m)^$|^\r\n/<any>g+
8229: abc\r\n\r\n
8230: 0:
8231: 0+ \x0d\x0a
8232: 0: \x0d\x0a
8233: 0+
8234:
8235: /(?m)$/<any>g+
8236: abc\r\n\r\n
8237: 0:
8238: 0+ \x0d\x0a\x0d\x0a
8239: 0:
8240: 0+ \x0d\x0a
8241: 0:
8242: 0+
8243:
8244: /abc.$/mgx<anycrlf>
8245: abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
8246: 0: abc1
8247: 0: abc4
8248: 0: abc5
8249: 0: abc9
8250:
8251: /^X/m
8252: XABC
8253: 0: X
8254: ** Failers
8255: No match
8256: XABC\B
8257: No match
8258:
8259: /(ab|c)(?-1)/BZ
8260: ------------------------------------------------------------------
8261: Bra
8262: CBra 1
8263: ab
8264: Alt
8265: c
8266: Ket
8267: Recurse
8268: Ket
8269: End
8270: ------------------------------------------------------------------
8271: abc
8272: 0: abc
8273: 1: ab
8274:
8275: /xy(?+1)(abc)/BZ
8276: ------------------------------------------------------------------
8277: Bra
8278: xy
8279: Recurse
8280: CBra 1
8281: abc
8282: Ket
8283: Ket
8284: End
8285: ------------------------------------------------------------------
8286: xyabcabc
8287: 0: xyabcabc
8288: 1: abc
8289: ** Failers
8290: No match
8291: xyabc
8292: No match
8293:
8294: /x(?-0)y/
8295: Failed: a numbered reference must not be zero at offset 5
8296:
8297: /x(?-1)y/
8298: Failed: reference to non-existent subpattern at offset 5
8299:
8300: /x(?+0)y/
8301: Failed: a numbered reference must not be zero at offset 5
8302:
8303: /x(?+1)y/
8304: Failed: reference to non-existent subpattern at offset 5
8305:
8306: /^(abc)?(?(-1)X|Y)/BZ
8307: ------------------------------------------------------------------
8308: Bra
8309: ^
8310: Brazero
8311: CBra 1
8312: abc
8313: Ket
8314: Cond
8315: 1 Cond ref
8316: X
8317: Alt
8318: Y
8319: Ket
8320: Ket
8321: End
8322: ------------------------------------------------------------------
8323: abcX
8324: 0: abcX
8325: 1: abc
8326: Y
8327: 0: Y
8328: ** Failers
8329: No match
8330: abcY
8331: No match
8332:
8333: /^((?(+1)X|Y)(abc))+/BZ
8334: ------------------------------------------------------------------
8335: Bra
8336: ^
8337: CBra 1
8338: Cond
8339: 2 Cond ref
8340: X
8341: Alt
8342: Y
8343: Ket
8344: CBra 2
8345: abc
8346: Ket
8347: KetRmax
8348: Ket
8349: End
8350: ------------------------------------------------------------------
8351: YabcXabc
8352: 0: YabcXabc
8353: 1: Xabc
8354: 2: abc
8355: YabcXabcXabc
8356: 0: YabcXabcXabc
8357: 1: Xabc
8358: 2: abc
8359: ** Failers
8360: No match
8361: XabcXabc
8362: No match
8363:
8364: /(?(-1)a)/BZ
8365: Failed: reference to non-existent subpattern at offset 6
8366:
8367: /((?(-1)a))/BZ
8368: ------------------------------------------------------------------
8369: Bra
8370: CBra 1
8371: Cond
8372: 1 Cond ref
8373: a
8374: Ket
8375: Ket
8376: Ket
8377: End
8378: ------------------------------------------------------------------
8379:
8380: /((?(-2)a))/BZ
8381: Failed: reference to non-existent subpattern at offset 7
8382:
8383: /^(?(+1)X|Y)(.)/BZ
8384: ------------------------------------------------------------------
8385: Bra
8386: ^
8387: Cond
8388: 1 Cond ref
8389: X
8390: Alt
8391: Y
8392: Ket
8393: CBra 1
8394: Any
8395: Ket
8396: Ket
8397: End
8398: ------------------------------------------------------------------
8399: Y!
8400: 0: Y!
8401: 1: !
8402:
8403: /(?<A>tom|bon)-\k{A}/
8404: tom-tom
8405: 0: tom-tom
8406: 1: tom
8407: bon-bon
8408: 0: bon-bon
8409: 1: bon
8410: ** Failers
8411: No match
8412: tom-bon
8413: No match
8414:
8415: /\g{A/
8416: Failed: syntax error in subpattern name (missing terminator) at offset 4
8417:
8418: /(?|(abc)|(xyz))/BZ
8419: ------------------------------------------------------------------
8420: Bra
8421: Bra
8422: CBra 1
8423: abc
8424: Ket
8425: Alt
8426: CBra 1
8427: xyz
8428: Ket
8429: Ket
8430: Ket
8431: End
8432: ------------------------------------------------------------------
8433: >abc<
8434: 0: abc
8435: 1: abc
8436: >xyz<
8437: 0: xyz
8438: 1: xyz
8439:
8440: /(x)(?|(abc)|(xyz))(x)/BZ
8441: ------------------------------------------------------------------
8442: Bra
8443: CBra 1
8444: x
8445: Ket
8446: Bra
8447: CBra 2
8448: abc
8449: Ket
8450: Alt
8451: CBra 2
8452: xyz
8453: Ket
8454: Ket
8455: CBra 3
8456: x
8457: Ket
8458: Ket
8459: End
8460: ------------------------------------------------------------------
8461: xabcx
8462: 0: xabcx
8463: 1: x
8464: 2: abc
8465: 3: x
8466: xxyzx
8467: 0: xxyzx
8468: 1: x
8469: 2: xyz
8470: 3: x
8471:
8472: /(x)(?|(abc)(pqr)|(xyz))(x)/BZ
8473: ------------------------------------------------------------------
8474: Bra
8475: CBra 1
8476: x
8477: Ket
8478: Bra
8479: CBra 2
8480: abc
8481: Ket
8482: CBra 3
8483: pqr
8484: Ket
8485: Alt
8486: CBra 2
8487: xyz
8488: Ket
8489: Ket
8490: CBra 4
8491: x
8492: Ket
8493: Ket
8494: End
8495: ------------------------------------------------------------------
8496: xabcpqrx
8497: 0: xabcpqrx
8498: 1: x
8499: 2: abc
8500: 3: pqr
8501: 4: x
8502: xxyzx
8503: 0: xxyzx
8504: 1: x
8505: 2: xyz
8506: 3: <unset>
8507: 4: x
8508:
8509: /[\h]/BZ
8510: ------------------------------------------------------------------
8511: Bra
8512: [\x09 \xa0]
8513: Ket
8514: End
8515: ------------------------------------------------------------------
8516: >\x09<
8517: 0: \x09
8518:
8519: /[\h]+/BZ
8520: ------------------------------------------------------------------
8521: Bra
8522: [\x09 \xa0]+
8523: Ket
8524: End
8525: ------------------------------------------------------------------
8526: >\x09\x20\xa0<
8527: 0: \x09 \xa0
8528:
8529: /[\v]/BZ
8530: ------------------------------------------------------------------
8531: Bra
8532: [\x0a-\x0d\x85]
8533: Ket
8534: End
8535: ------------------------------------------------------------------
8536:
8537: /[\H]/BZ
8538: ------------------------------------------------------------------
8539: Bra
8540: [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff]
8541: Ket
8542: End
8543: ------------------------------------------------------------------
8544:
8545: /[^\h]/BZ
8546: ------------------------------------------------------------------
8547: Bra
8548: [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff] (neg)
8549: Ket
8550: End
8551: ------------------------------------------------------------------
8552:
8553: /[\V]/BZ
8554: ------------------------------------------------------------------
8555: Bra
8556: [\x00-\x09\x0e-\x84\x86-\xff]
8557: Ket
8558: End
8559: ------------------------------------------------------------------
8560:
8561: /[\x0a\V]/BZ
8562: ------------------------------------------------------------------
8563: Bra
8564: [\x00-\x0a\x0e-\x84\x86-\xff]
8565: Ket
8566: End
8567: ------------------------------------------------------------------
8568:
8569: /\H++X/BZ
8570: ------------------------------------------------------------------
8571: Bra
8572: \H++
8573: X
8574: Ket
8575: End
8576: ------------------------------------------------------------------
8577: ** Failers
8578: No match
8579: XXXX
8580: No match
8581:
8582: /\H+\hY/BZ
8583: ------------------------------------------------------------------
8584: Bra
8585: \H++
8586: \h
8587: Y
8588: Ket
8589: End
8590: ------------------------------------------------------------------
8591: XXXX Y
8592: 0: XXXX Y
8593:
8594: /\H+ Y/BZ
8595: ------------------------------------------------------------------
8596: Bra
8597: \H++
8598: Y
8599: Ket
8600: End
8601: ------------------------------------------------------------------
8602:
8603: /\h+A/BZ
8604: ------------------------------------------------------------------
8605: Bra
8606: \h++
8607: A
8608: Ket
8609: End
8610: ------------------------------------------------------------------
8611:
8612: /\v*B/BZ
8613: ------------------------------------------------------------------
8614: Bra
8615: \v*+
8616: B
8617: Ket
8618: End
8619: ------------------------------------------------------------------
8620:
8621: /\V+\x0a/BZ
8622: ------------------------------------------------------------------
8623: Bra
8624: \V++
8625: \x0a
8626: Ket
8627: End
8628: ------------------------------------------------------------------
8629:
8630: /A+\h/BZ
8631: ------------------------------------------------------------------
8632: Bra
8633: A++
8634: \h
8635: Ket
8636: End
8637: ------------------------------------------------------------------
8638:
8639: / *\H/BZ
8640: ------------------------------------------------------------------
8641: Bra
8642: *+
8643: \H
8644: Ket
8645: End
8646: ------------------------------------------------------------------
8647:
8648: /A*\v/BZ
8649: ------------------------------------------------------------------
8650: Bra
8651: A*+
8652: \v
8653: Ket
8654: End
8655: ------------------------------------------------------------------
8656:
8657: /\x0b*\V/BZ
8658: ------------------------------------------------------------------
8659: Bra
8660: \x0b*+
8661: \V
8662: Ket
8663: End
8664: ------------------------------------------------------------------
8665:
8666: /\d+\h/BZ
8667: ------------------------------------------------------------------
8668: Bra
8669: \d++
8670: \h
8671: Ket
8672: End
8673: ------------------------------------------------------------------
8674:
8675: /\d*\v/BZ
8676: ------------------------------------------------------------------
8677: Bra
8678: \d*+
8679: \v
8680: Ket
8681: End
8682: ------------------------------------------------------------------
8683:
8684: /S+\h\S+\v/BZ
8685: ------------------------------------------------------------------
8686: Bra
8687: S++
8688: \h
8689: \S++
8690: \v
8691: Ket
8692: End
8693: ------------------------------------------------------------------
8694:
8695: /\w{3,}\h\w+\v/BZ
8696: ------------------------------------------------------------------
8697: Bra
8698: \w{3}
8699: \w*+
8700: \h
8701: \w++
8702: \v
8703: Ket
8704: End
8705: ------------------------------------------------------------------
8706:
8707: /\h+\d\h+\w\h+\S\h+\H/BZ
8708: ------------------------------------------------------------------
8709: Bra
8710: \h++
8711: \d
8712: \h++
8713: \w
8714: \h++
8715: \S
8716: \h++
8717: \H
8718: Ket
8719: End
8720: ------------------------------------------------------------------
8721:
8722: /\v+\d\v+\w\v+\S\v+\V/BZ
8723: ------------------------------------------------------------------
8724: Bra
8725: \v++
8726: \d
8727: \v++
8728: \w
8729: \v+
8730: \S
8731: \v++
8732: \V
8733: Ket
8734: End
8735: ------------------------------------------------------------------
8736:
8737: /\H+\h\H+\d/BZ
8738: ------------------------------------------------------------------
8739: Bra
8740: \H++
8741: \h
8742: \H+
8743: \d
8744: Ket
8745: End
8746: ------------------------------------------------------------------
8747:
8748: /\V+\v\V+\w/BZ
8749: ------------------------------------------------------------------
8750: Bra
8751: \V++
8752: \v
8753: \V+
8754: \w
8755: Ket
8756: End
8757: ------------------------------------------------------------------
8758:
8759: /\( (?: [^()]* | (?R) )* \)/x
8760: \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)
8761: 0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8762:
8763: /[\E]AAA/
8764: Failed: missing terminating ] for character class at offset 7
8765:
8766: /[\Q\E]AAA/
8767: Failed: missing terminating ] for character class at offset 9
8768:
8769: /[^\E]AAA/
8770: Failed: missing terminating ] for character class at offset 8
8771:
8772: /[^\Q\E]AAA/
8773: Failed: missing terminating ] for character class at offset 10
8774:
8775: /[\E^]AAA/
8776: Failed: missing terminating ] for character class at offset 8
8777:
8778: /[\Q\E^]AAA/
8779: Failed: missing terminating ] for character class at offset 10
8780:
8781: /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
8782: ------------------------------------------------------------------
8783: Bra
8784: A
8785: *PRUNE
8786: B
8787: *SKIP
8788: C
8789: *THEN
8790: D
8791: *COMMIT
8792: E
8793: *FAIL
8794: F
8795: *FAIL
8796: G
8797: *FAIL
8798: H
8799: *ACCEPT
8800: I
8801: Ket
8802: End
8803: ------------------------------------------------------------------
8804:
8805: /^a+(*FAIL)/C
8806: aaaaaa
8807: --->aaaaaa
8808: +0 ^ ^
8809: +1 ^ a+
8810: +3 ^ ^ (*FAIL)
8811: +3 ^ ^ (*FAIL)
8812: +3 ^ ^ (*FAIL)
8813: +3 ^ ^ (*FAIL)
8814: +3 ^ ^ (*FAIL)
8815: +3 ^^ (*FAIL)
8816: No match
8817:
8818: /a+b?c+(*FAIL)/C
8819: aaabccc
8820: --->aaabccc
8821: +0 ^ a+
8822: +2 ^ ^ b?
8823: +4 ^ ^ c+
8824: +6 ^ ^ (*FAIL)
8825: +6 ^ ^ (*FAIL)
8826: +6 ^ ^ (*FAIL)
8827: +4 ^ ^ c+
8828: +2 ^ ^ b?
8829: +4 ^ ^ c+
8830: +2 ^^ b?
8831: +4 ^^ c+
8832: +0 ^ a+
8833: +2 ^ ^ b?
8834: +4 ^ ^ c+
8835: +6 ^ ^ (*FAIL)
8836: +6 ^ ^ (*FAIL)
8837: +6 ^ ^ (*FAIL)
8838: +4 ^ ^ c+
8839: +2 ^^ b?
8840: +4 ^^ c+
8841: +0 ^ a+
8842: +2 ^^ b?
8843: +4 ^ ^ c+
8844: +6 ^ ^ (*FAIL)
8845: +6 ^ ^ (*FAIL)
8846: +6 ^ ^ (*FAIL)
8847: +4 ^^ c+
8848: No match
8849:
8850: /a+b?(*PRUNE)c+(*FAIL)/C
8851: aaabccc
8852: --->aaabccc
8853: +0 ^ a+
8854: +2 ^ ^ b?
8855: +4 ^ ^ (*PRUNE)
8856: +12 ^ ^ c+
8857: +14 ^ ^ (*FAIL)
8858: +14 ^ ^ (*FAIL)
8859: +14 ^ ^ (*FAIL)
8860: +0 ^ a+
8861: +2 ^ ^ b?
8862: +4 ^ ^ (*PRUNE)
8863: +12 ^ ^ c+
8864: +14 ^ ^ (*FAIL)
8865: +14 ^ ^ (*FAIL)
8866: +14 ^ ^ (*FAIL)
8867: +0 ^ a+
8868: +2 ^^ b?
8869: +4 ^ ^ (*PRUNE)
8870: +12 ^ ^ c+
8871: +14 ^ ^ (*FAIL)
8872: +14 ^ ^ (*FAIL)
8873: +14 ^ ^ (*FAIL)
8874: No match
8875:
8876: /a+b?(*COMMIT)c+(*FAIL)/C
8877: aaabccc
8878: --->aaabccc
8879: +0 ^ a+
8880: +2 ^ ^ b?
8881: +4 ^ ^ (*COMMIT)
8882: +13 ^ ^ c+
8883: +15 ^ ^ (*FAIL)
8884: +15 ^ ^ (*FAIL)
8885: +15 ^ ^ (*FAIL)
8886: No match
8887:
8888: /a+b?(*SKIP)c+(*FAIL)/C
8889: aaabcccaaabccc
8890: --->aaabcccaaabccc
8891: +0 ^ a+
8892: +2 ^ ^ b?
8893: +4 ^ ^ (*SKIP)
8894: +11 ^ ^ c+
8895: +13 ^ ^ (*FAIL)
8896: +13 ^ ^ (*FAIL)
8897: +13 ^ ^ (*FAIL)
8898: +0 ^ a+
8899: +2 ^ ^ b?
8900: +4 ^ ^ (*SKIP)
8901: +11 ^ ^ c+
8902: +13 ^ ^ (*FAIL)
8903: +13 ^ ^ (*FAIL)
8904: +13 ^ ^ (*FAIL)
8905: No match
8906:
8907: /a+b?(*THEN)c+(*FAIL)/C
8908: aaabccc
8909: --->aaabccc
8910: +0 ^ a+
8911: +2 ^ ^ b?
8912: +4 ^ ^ (*THEN)
8913: +11 ^ ^ c+
8914: +13 ^ ^ (*FAIL)
8915: +13 ^ ^ (*FAIL)
8916: +13 ^ ^ (*FAIL)
8917: +0 ^ a+
8918: +2 ^ ^ b?
8919: +4 ^ ^ (*THEN)
8920: +11 ^ ^ c+
8921: +13 ^ ^ (*FAIL)
8922: +13 ^ ^ (*FAIL)
8923: +13 ^ ^ (*FAIL)
8924: +0 ^ a+
8925: +2 ^^ b?
8926: +4 ^ ^ (*THEN)
8927: +11 ^ ^ c+
8928: +13 ^ ^ (*FAIL)
8929: +13 ^ ^ (*FAIL)
8930: +13 ^ ^ (*FAIL)
8931: No match
8932:
8933: /a(*MARK)b/
8934: Failed: (*MARK) must have an argument at offset 7
8935:
8936: /(?i:A{1,}\6666666666)/
8937: Failed: number is too big at offset 19
8938:
8939: /\g6666666666/
8940: Failed: number is too big at offset 11
8941:
8942: /[\g6666666666]/BZ
8943: ------------------------------------------------------------------
8944: Bra
8945: [6g]
8946: Ket
8947: End
8948: ------------------------------------------------------------------
8949:
8950: /(?1)\c[/
8951: Failed: reference to non-existent subpattern at offset 3
8952:
8953: /.+A/<crlf>
8954: \r\nA
8955: No match
8956:
8957: /\nA/<crlf>
8958: \r\nA
8959: 0: \x0aA
8960:
8961: /[\r\n]A/<crlf>
8962: \r\nA
8963: 0: \x0aA
8964:
8965: /(\r|\n)A/<crlf>
8966: \r\nA
8967: 0: \x0aA
8968: 1: \x0a
8969:
8970: /a(*CR)b/
8971: Failed: (*VERB) not recognized at offset 5
8972:
8973: /(*CR)a.b/
8974: a\nb
8975: 0: a\x0ab
8976: ** Failers
8977: No match
8978: a\rb
8979: No match
8980:
8981: /(*CR)a.b/<lf>
8982: a\nb
8983: 0: a\x0ab
8984: ** Failers
8985: No match
8986: a\rb
8987: No match
8988:
8989: /(*LF)a.b/<CRLF>
8990: a\rb
8991: 0: a\x0db
8992: ** Failers
8993: No match
8994: a\nb
8995: No match
8996:
8997: /(*CRLF)a.b/
8998: a\rb
8999: 0: a\x0db
9000: a\nb
9001: 0: a\x0ab
9002: ** Failers
9003: No match
9004: a\r\nb
9005: No match
9006:
9007: /(*ANYCRLF)a.b/<CR>
9008: ** Failers
9009: No match
9010: a\rb
9011: No match
9012: a\nb
9013: No match
9014: a\r\nb
9015: No match
9016:
9017: /(*ANY)a.b/<cr>
9018: ** Failers
9019: No match
9020: a\rb
9021: No match
9022: a\nb
9023: No match
9024: a\r\nb
9025: No match
9026: a\x85b
9027: No match
9028:
9029: /(*ANY).*/g
9030: abc\r\ndef
9031: 0: abc
9032: 0:
9033: 0: def
9034: 0:
9035:
9036: /(*ANYCRLF).*/g
9037: abc\r\ndef
9038: 0: abc
9039: 0:
9040: 0: def
9041: 0:
9042:
9043: /(*CRLF).*/g
9044: abc\r\ndef
9045: 0: abc
9046: 0:
9047: 0: def
9048: 0:
9049:
9050: /a\Rb/I<bsr_anycrlf>
9051: Capturing subpattern count = 0
9052: Options: bsr_anycrlf
9053: First char = 'a'
9054: Need char = 'b'
9055: a\rb
9056: 0: a\x0db
9057: a\nb
9058: 0: a\x0ab
9059: a\r\nb
9060: 0: a\x0d\x0ab
9061: ** Failers
9062: No match
9063: a\x85b
9064: No match
9065: a\x0bb
9066: No match
9067:
9068: /a\Rb/I<bsr_unicode>
9069: Capturing subpattern count = 0
9070: Options: bsr_unicode
9071: First char = 'a'
9072: Need char = 'b'
9073: a\rb
9074: 0: a\x0db
9075: a\nb
9076: 0: a\x0ab
9077: a\r\nb
9078: 0: a\x0d\x0ab
9079: a\x85b
9080: 0: a\x85b
9081: a\x0bb
9082: 0: a\x0bb
9083: ** Failers
9084: No match
9085: a\x85b\<bsr_anycrlf>
9086: No match
9087: a\x0bb\<bsr_anycrlf>
9088: No match
9089:
9090: /a\R?b/I<bsr_anycrlf>
9091: Capturing subpattern count = 0
9092: Options: bsr_anycrlf
9093: First char = 'a'
9094: Need char = 'b'
9095: a\rb
9096: 0: a\x0db
9097: a\nb
9098: 0: a\x0ab
9099: a\r\nb
9100: 0: a\x0d\x0ab
9101: ** Failers
9102: No match
9103: a\x85b
9104: No match
9105: a\x0bb
9106: No match
9107:
9108: /a\R?b/I<bsr_unicode>
9109: Capturing subpattern count = 0
9110: Options: bsr_unicode
9111: First char = 'a'
9112: Need char = 'b'
9113: a\rb
9114: 0: a\x0db
9115: a\nb
9116: 0: a\x0ab
9117: a\r\nb
9118: 0: a\x0d\x0ab
9119: a\x85b
9120: 0: a\x85b
9121: a\x0bb
9122: 0: a\x0bb
9123: ** Failers
9124: No match
9125: a\x85b\<bsr_anycrlf>
9126: No match
9127: a\x0bb\<bsr_anycrlf>
9128: No match
9129:
9130: /a\R{2,4}b/I<bsr_anycrlf>
9131: Capturing subpattern count = 0
9132: Options: bsr_anycrlf
9133: First char = 'a'
9134: Need char = 'b'
9135: a\r\n\nb
9136: 0: a\x0d\x0a\x0ab
9137: a\n\r\rb
9138: 0: a\x0a\x0d\x0db
9139: a\r\n\r\n\r\n\r\nb
9140: 0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
9141: ** Failers
9142: No match
9143: a\x85\85b
9144: No match
9145: a\x0b\0bb
9146: No match
9147:
9148: /a\R{2,4}b/I<bsr_unicode>
9149: Capturing subpattern count = 0
9150: Options: bsr_unicode
9151: First char = 'a'
9152: Need char = 'b'
9153: a\r\rb
9154: 0: a\x0d\x0db
9155: a\n\n\nb
9156: 0: a\x0a\x0a\x0ab
9157: a\r\n\n\r\rb
9158: 0: a\x0d\x0a\x0a\x0d\x0db
9159: a\x85\85b
9160: No match
9161: a\x0b\0bb
9162: No match
9163: ** Failers
9164: No match
9165: a\r\r\r\r\rb
9166: No match
9167: a\x85\85b\<bsr_anycrlf>
9168: No match
9169: a\x0b\0bb\<bsr_anycrlf>
9170: No match
9171:
9172: /(*BSR_ANYCRLF)a\Rb/I
9173: Capturing subpattern count = 0
9174: Options: bsr_anycrlf
9175: First char = 'a'
9176: Need char = 'b'
9177: a\nb
9178: 0: a\x0ab
9179: a\rb
9180: 0: a\x0db
9181:
9182: /(*BSR_UNICODE)a\Rb/I
9183: Capturing subpattern count = 0
9184: Options: bsr_unicode
9185: First char = 'a'
9186: Need char = 'b'
9187: a\x85b
9188: 0: a\x85b
9189:
9190: /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
9191: Capturing subpattern count = 0
9192: Options: bsr_anycrlf
9193: Forced newline sequence: CRLF
9194: First char = 'a'
9195: Need char = 'b'
9196: a\nb
9197: 0: a\x0ab
9198: a\rb
9199: 0: a\x0db
9200:
9201: /(*CRLF)(*BSR_UNICODE)a\Rb/I
9202: Capturing subpattern count = 0
9203: Options: bsr_unicode
9204: Forced newline sequence: CRLF
9205: First char = 'a'
9206: Need char = 'b'
9207: a\x85b
9208: 0: a\x85b
9209:
9210: /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
9211: Capturing subpattern count = 0
9212: Options: bsr_anycrlf
9213: Forced newline sequence: CR
9214: First char = 'a'
9215: Need char = 'b'
9216:
9217: /(?<a>)(?&)/
9218: Failed: subpattern name expected at offset 9
9219:
9220: /(?<abc>)(?&a)/
9221: Failed: reference to non-existent subpattern at offset 12
9222:
9223: /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
9224: Failed: reference to non-existent subpattern at offset 32
9225:
9226: /(?+-a)/
9227: Failed: digit expected after (?+ at offset 3
9228:
9229: /(?-+a)/
9230: Failed: unrecognized character after (? or (?- at offset 3
9231:
9232: /(?(-1))/
9233: Failed: reference to non-existent subpattern at offset 6
9234:
9235: /(?(+10))/
9236: Failed: reference to non-existent subpattern at offset 7
9237:
9238: /(?(10))/
9239: Failed: reference to non-existent subpattern at offset 6
9240:
9241: /(?(+2))()()/
9242:
9243: /(?(2))()()/
9244:
9245: /\k''/
9246: Failed: subpattern name expected at offset 3
9247:
9248: /\k<>/
9249: Failed: subpattern name expected at offset 3
9250:
9251: /\k{}/
9252: Failed: subpattern name expected at offset 3
9253:
9254: /\k/
9255: Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9256:
9257: /\kabc/
9258: Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9259:
9260: /(?P=)/
9261: Failed: subpattern name expected at offset 4
9262:
9263: /(?P>)/
9264: Failed: subpattern name expected at offset 4
9265:
9266: /(?!\w)(?R)/
9267: Failed: recursive call could loop indefinitely at offset 9
9268:
9269: /(?=\w)(?R)/
9270: Failed: recursive call could loop indefinitely at offset 9
9271:
9272: /(?<!\w)(?R)/
9273: Failed: recursive call could loop indefinitely at offset 10
9274:
9275: /(?<=\w)(?R)/
9276: Failed: recursive call could loop indefinitely at offset 10
9277:
9278: /[[:foo:]]/
9279: Failed: unknown POSIX class name at offset 3
9280:
9281: /[[:1234:]]/
9282: Failed: unknown POSIX class name at offset 3
9283:
9284: /[[:f\oo:]]/
9285: Failed: unknown POSIX class name at offset 3
9286:
9287: /[[: :]]/
9288: Failed: unknown POSIX class name at offset 3
9289:
9290: /[[:...:]]/
9291: Failed: unknown POSIX class name at offset 3
9292:
9293: /[[:l\ower:]]/
9294: Failed: unknown POSIX class name at offset 3
9295:
9296: /[[:abc\:]]/
9297: Failed: unknown POSIX class name at offset 3
9298:
9299: /[abc[:x\]pqr:]]/
9300: Failed: unknown POSIX class name at offset 6
9301:
9302: /[[:a\dz:]]/
9303: Failed: unknown POSIX class name at offset 3
9304:
9305: /(^(a|b\g<-1'c))/
9306: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
9307:
9308: /^(?+1)(?<a>x|y){0}z/
9309: xzxx
9310: 0: xz
9311: yzyy
9312: 0: yz
9313: ** Failers
9314: No match
9315: xxz
9316: No match
9317:
9318: /(\3)(\1)(a)/
9319: cat
9320: No match
9321:
9322: /(\3)(\1)(a)/<JS>
9323: cat
9324: 0: a
9325: 1:
9326: 2:
9327: 3: a
9328:
9329: /TA]/
9330: The ACTA] comes
9331: 0: TA]
9332:
9333: /TA]/<JS>
9334: Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
9335:
9336: /(?2)[]a()b](abc)/
9337: Failed: reference to non-existent subpattern at offset 3
9338:
9339: /(?2)[^]a()b](abc)/
9340: Failed: reference to non-existent subpattern at offset 3
9341:
9342: /(?1)[]a()b](abc)/
9343: abcbabc
9344: 0: abcbabc
9345: 1: abc
9346: ** Failers
9347: No match
9348: abcXabc
9349: No match
9350:
9351: /(?1)[^]a()b](abc)/
9352: abcXabc
9353: 0: abcXabc
9354: 1: abc
9355: ** Failers
9356: No match
9357: abcbabc
9358: No match
9359:
9360: /(?2)[]a()b](abc)(xyz)/
9361: xyzbabcxyz
9362: 0: xyzbabcxyz
9363: 1: abc
9364: 2: xyz
9365:
9366: /(?&N)[]a(?<N>)](?<M>abc)/
9367: Failed: reference to non-existent subpattern at offset 4
9368:
9369: /(?&N)[]a(?<N>)](abc)/
9370: Failed: reference to non-existent subpattern at offset 4
9371:
9372: /a[]b/
9373: Failed: missing terminating ] for character class at offset 4
9374:
9375: /a[^]b/
9376: Failed: missing terminating ] for character class at offset 5
9377:
9378: /a[]b/<JS>
9379: ** Failers
9380: No match
9381: ab
9382: No match
9383:
9384: /a[]+b/<JS>
9385: ** Failers
9386: No match
9387: ab
9388: No match
9389:
9390: /a[]*+b/<JS>
9391: ** Failers
9392: No match
9393: ab
9394: No match
9395:
9396: /a[^]b/<JS>
9397: aXb
9398: 0: aXb
9399: a\nb
9400: 0: a\x0ab
9401: ** Failers
9402: No match
9403: ab
9404: No match
9405:
9406: /a[^]+b/<JS>
9407: aXb
9408: 0: aXb
9409: a\nX\nXb
9410: 0: a\x0aX\x0aXb
9411: ** Failers
9412: No match
9413: ab
9414: No match
9415:
9416: /a(?!)+b/
9417: Failed: nothing to repeat at offset 5
9418:
9419: /a(*FAIL)+b/
9420: Failed: nothing to repeat at offset 8
9421:
9422: /(abc|pqr|123){0}[xyz]/SI
9423: Capturing subpattern count = 1
9424: No options
9425: No first char
9426: No need char
9427: Subject length lower bound = 1
9428: Starting byte set: x y z
9429:
9430: /(?(?=.*b)b|^)/CI
9431: Capturing subpattern count = 0
9432: Options:
9433: No first char
9434: No need char
9435: adc
9436: --->adc
9437: +0 ^ (?(?=.*b)b|^)
9438: +2 ^ (?=.*b)
9439: +5 ^ .*
9440: +7 ^ ^ b
9441: +7 ^ ^ b
9442: +7 ^^ b
9443: +7 ^ b
9444: +12 ^ )
9445: +13 ^
9446: 0:
9447: abc
9448: --->abc
9449: +0 ^ (?(?=.*b)b|^)
9450: +2 ^ (?=.*b)
9451: +5 ^ .*
9452: +7 ^ ^ b
9453: +7 ^ ^ b
9454: +7 ^^ b
9455: +8 ^ ^ )
9456: +9 ^ b
9457: +0 ^ (?(?=.*b)b|^)
9458: +2 ^ (?=.*b)
9459: +5 ^ .*
9460: +7 ^ ^ b
9461: +7 ^^ b
9462: +7 ^ b
9463: +8 ^^ )
9464: +9 ^ b
9465: +10 ^^ |
9466: +13 ^^
9467: 0: b
9468:
9469: /(?(?=b).*b|^d)/I
9470: Capturing subpattern count = 0
9471: No options
9472: No first char
9473: No need char
9474:
9475: /(?(?=.*b).*b|^d)/I
9476: Capturing subpattern count = 0
9477: No options
9478: First char at start or follows newline
9479: No need char
9480:
9481: /a?|b?/P
9482: abc
9483: 0: a
9484: ** Failers
9485: 0:
9486: ddd\N
9487: No match: POSIX code 17: match failed
9488:
9489: /xyz/C
9490: xyz
9491: --->xyz
9492: +0 ^ x
9493: +1 ^^ y
9494: +2 ^ ^ z
9495: +3 ^ ^
9496: 0: xyz
9497: abcxyz
9498: --->abcxyz
9499: +0 ^ x
9500: +1 ^^ y
9501: +2 ^ ^ z
9502: +3 ^ ^
9503: 0: xyz
9504: abcxyz\Y
9505: --->abcxyz
9506: +0 ^ x
9507: +0 ^ x
9508: +0 ^ x
9509: +0 ^ x
9510: +1 ^^ y
9511: +2 ^ ^ z
9512: +3 ^ ^
9513: 0: xyz
9514: ** Failers
9515: No match
9516: abc
9517: No match
9518: abc\Y
9519: --->abc
9520: +0 ^ x
9521: +0 ^ x
9522: +0 ^ x
9523: +0 ^ x
9524: No match
9525: abcxypqr
9526: No match
9527: abcxypqr\Y
9528: --->abcxypqr
9529: +0 ^ x
9530: +0 ^ x
9531: +0 ^ x
9532: +0 ^ x
9533: +1 ^^ y
9534: +2 ^ ^ z
9535: +0 ^ x
9536: +0 ^ x
9537: +0 ^ x
9538: +0 ^ x
9539: +0 ^ x
9540: No match
9541:
9542: /(*NO_START_OPT)xyz/C
9543: abcxyz
9544: --->abcxyz
9545: +15 ^ x
9546: +15 ^ x
9547: +15 ^ x
9548: +15 ^ x
9549: +16 ^^ y
9550: +17 ^ ^ z
9551: +18 ^ ^
9552: 0: xyz
9553:
9554: /xyz/CY
9555: abcxyz
9556: --->abcxyz
9557: +0 ^ x
9558: +0 ^ x
9559: +0 ^ x
9560: +0 ^ x
9561: +1 ^^ y
9562: +2 ^ ^ z
9563: +3 ^ ^
9564: 0: xyz
9565:
9566: /^"((?(?=[a])[^"])|b)*"$/C
9567: "ab"
9568: --->"ab"
9569: +0 ^ ^
9570: +1 ^ "
9571: +2 ^^ ((?(?=[a])[^"])|b)*
9572: +3 ^^ (?(?=[a])[^"])
9573: +5 ^^ (?=[a])
9574: +8 ^^ [a]
9575: +11 ^ ^ )
9576: +12 ^^ [^"]
9577: +16 ^ ^ )
9578: +17 ^ ^ |
9579: +3 ^ ^ (?(?=[a])[^"])
9580: +5 ^ ^ (?=[a])
9581: +8 ^ ^ [a]
9582: +21 ^ ^ "
9583: +18 ^ ^ b
9584: +19 ^ ^ )
9585: +3 ^ ^ (?(?=[a])[^"])
9586: +5 ^ ^ (?=[a])
9587: +8 ^ ^ [a]
9588: +21 ^ ^ "
9589: +22 ^ ^ $
9590: +23 ^ ^
9591: 0: "ab"
9592: 1:
9593:
9594: /^"((?(?=[a])[^"])|b)*"$/
9595: "ab"
9596: 0: "ab"
9597: 1:
9598:
9599: /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9600: Failed: reference to non-existent subpattern at offset 5
9601:
9602: /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9603: XYabcdY
9604: 0: XYabcdY
9605: 1: a
9606: 2: b
9607: 3: c
9608: 4: d
9609: 5: Y
9610:
9611: /Xa{2,4}b/
9612: X\P
9613: Partial match: X
9614: Xa\P
9615: Partial match: Xa
9616: Xaa\P
9617: Partial match: Xaa
9618: Xaaa\P
9619: Partial match: Xaaa
9620: Xaaaa\P
9621: Partial match: Xaaaa
9622:
9623: /Xa{2,4}?b/
9624: X\P
9625: Partial match: X
9626: Xa\P
9627: Partial match: Xa
9628: Xaa\P
9629: Partial match: Xaa
9630: Xaaa\P
9631: Partial match: Xaaa
9632: Xaaaa\P
9633: Partial match: Xaaaa
9634:
9635: /Xa{2,4}+b/
9636: X\P
9637: Partial match: X
9638: Xa\P
9639: Partial match: Xa
9640: Xaa\P
9641: Partial match: Xaa
9642: Xaaa\P
9643: Partial match: Xaaa
9644: Xaaaa\P
9645: Partial match: Xaaaa
9646:
9647: /X\d{2,4}b/
9648: X\P
9649: Partial match: X
9650: X3\P
9651: Partial match: X3
9652: X33\P
9653: Partial match: X33
9654: X333\P
9655: Partial match: X333
9656: X3333\P
9657: Partial match: X3333
9658:
9659: /X\d{2,4}?b/
9660: X\P
9661: Partial match: X
9662: X3\P
9663: Partial match: X3
9664: X33\P
9665: Partial match: X33
9666: X333\P
9667: Partial match: X333
9668: X3333\P
9669: Partial match: X3333
9670:
9671: /X\d{2,4}+b/
9672: X\P
9673: Partial match: X
9674: X3\P
9675: Partial match: X3
9676: X33\P
9677: Partial match: X33
9678: X333\P
9679: Partial match: X333
9680: X3333\P
9681: Partial match: X3333
9682:
9683: /X\D{2,4}b/
9684: X\P
9685: Partial match: X
9686: Xa\P
9687: Partial match: Xa
9688: Xaa\P
9689: Partial match: Xaa
9690: Xaaa\P
9691: Partial match: Xaaa
9692: Xaaaa\P
9693: Partial match: Xaaaa
9694:
9695: /X\D{2,4}?b/
9696: X\P
9697: Partial match: X
9698: Xa\P
9699: Partial match: Xa
9700: Xaa\P
9701: Partial match: Xaa
9702: Xaaa\P
9703: Partial match: Xaaa
9704: Xaaaa\P
9705: Partial match: Xaaaa
9706:
9707: /X\D{2,4}+b/
9708: X\P
9709: Partial match: X
9710: Xa\P
9711: Partial match: Xa
9712: Xaa\P
9713: Partial match: Xaa
9714: Xaaa\P
9715: Partial match: Xaaa
9716: Xaaaa\P
9717: Partial match: Xaaaa
9718:
9719: /X[abc]{2,4}b/
9720: X\P
9721: Partial match: X
9722: Xa\P
9723: Partial match: Xa
9724: Xaa\P
9725: Partial match: Xaa
9726: Xaaa\P
9727: Partial match: Xaaa
9728: Xaaaa\P
9729: Partial match: Xaaaa
9730:
9731: /X[abc]{2,4}?b/
9732: X\P
9733: Partial match: X
9734: Xa\P
9735: Partial match: Xa
9736: Xaa\P
9737: Partial match: Xaa
9738: Xaaa\P
9739: Partial match: Xaaa
9740: Xaaaa\P
9741: Partial match: Xaaaa
9742:
9743: /X[abc]{2,4}+b/
9744: X\P
9745: Partial match: X
9746: Xa\P
9747: Partial match: Xa
9748: Xaa\P
9749: Partial match: Xaa
9750: Xaaa\P
9751: Partial match: Xaaa
9752: Xaaaa\P
9753: Partial match: Xaaaa
9754:
9755: /X[^a]{2,4}b/
9756: X\P
9757: Partial match: X
9758: Xz\P
9759: Partial match: Xz
9760: Xzz\P
9761: Partial match: Xzz
9762: Xzzz\P
9763: Partial match: Xzzz
9764: Xzzzz\P
9765: Partial match: Xzzzz
9766:
9767: /X[^a]{2,4}?b/
9768: X\P
9769: Partial match: X
9770: Xz\P
9771: Partial match: Xz
9772: Xzz\P
9773: Partial match: Xzz
9774: Xzzz\P
9775: Partial match: Xzzz
9776: Xzzzz\P
9777: Partial match: Xzzzz
9778:
9779: /X[^a]{2,4}+b/
9780: X\P
9781: Partial match: X
9782: Xz\P
9783: Partial match: Xz
9784: Xzz\P
9785: Partial match: Xzz
9786: Xzzz\P
9787: Partial match: Xzzz
9788: Xzzzz\P
9789: Partial match: Xzzzz
9790:
9791: /(Y)X\1{2,4}b/
9792: YX\P
9793: Partial match: YX
9794: YXY\P
9795: Partial match: YXY
9796: YXYY\P
9797: Partial match: YXYY
9798: YXYYY\P
9799: Partial match: YXYYY
9800: YXYYYY\P
9801: Partial match: YXYYYY
9802:
9803: /(Y)X\1{2,4}?b/
9804: YX\P
9805: Partial match: YX
9806: YXY\P
9807: Partial match: YXY
9808: YXYY\P
9809: Partial match: YXYY
9810: YXYYY\P
9811: Partial match: YXYYY
9812: YXYYYY\P
9813: Partial match: YXYYYY
9814:
9815: /(Y)X\1{2,4}+b/
9816: YX\P
9817: Partial match: YX
9818: YXY\P
9819: Partial match: YXY
9820: YXYY\P
9821: Partial match: YXYY
9822: YXYYY\P
9823: Partial match: YXYYY
9824: YXYYYY\P
9825: Partial match: YXYYYY
9826:
9827: /\++\KZ|\d+X|9+Y/
9828: ++++123999\P
9829: Partial match: 123999
9830: ++++123999Y\P
9831: 0: 999Y
9832: ++++Z1234\P
9833: 0: Z
9834:
9835: /Z(*F)/
9836: Z\P
9837: No match
9838: ZA\P
9839: No match
9840:
9841: /Z(?!)/
9842: Z\P
9843: No match
9844: ZA\P
9845: No match
9846:
9847: /dog(sbody)?/
9848: dogs\P
9849: 0: dog
9850: dogs\P\P
9851: Partial match: dogs
9852:
9853: /dog(sbody)??/
9854: dogs\P
9855: 0: dog
9856: dogs\P\P
9857: 0: dog
9858:
9859: /dog|dogsbody/
9860: dogs\P
9861: 0: dog
9862: dogs\P\P
9863: 0: dog
9864:
9865: /dogsbody|dog/
9866: dogs\P
9867: 0: dog
9868: dogs\P\P
9869: Partial match: dogs
9870:
9871: /\bthe cat\b/
9872: the cat\P
9873: 0: the cat
9874: the cat\P\P
9875: Partial match: the cat
9876:
9877: /abc/
9878: abc\P
9879: 0: abc
9880: abc\P\P
9881: 0: abc
9882:
9883: /\w+A/P
9884: CDAAAAB
9885: 0: CDAAAA
9886:
9887: /\w+A/PU
9888: CDAAAAB
9889: 0: CDA
9890:
9891: /abc\K123/
9892: xyzabc123pqr
9893: 0: 123
9894: xyzabc12\P
9895: Partial match: abc12
9896: xyzabc12\P\P
9897: Partial match: abc12
9898:
9899: /(?<=abc)123/
9900: xyzabc123pqr
9901: 0: 123
9902: xyzabc12\P
9903: Partial match: abc12
9904: xyzabc12\P\P
9905: Partial match: abc12
9906:
9907: /\babc\b/
9908: +++abc+++
9909: 0: abc
9910: +++ab\P
9911: Partial match: +ab
9912: +++ab\P\P
9913: Partial match: +ab
9914:
9915: /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9916: ------------------------------------------------------------------
9917: Bra
9918: Recurse
9919: Recurse
9920: Cond
9921: Cond def
9922: CBra 1
9923: <
9924: [^m]
9925: [^>]
9926: >
9927: [^<]
9928: Ket
9929: CBra 2
9930: \w*+
9931: Ket
9932: Ket
9933: Ket
9934: End
9935: ------------------------------------------------------------------
9936:
9937: /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9938: ------------------------------------------------------------------
9939: Bra
9940: Recurse
9941: Recurse
9942: Cond
9943: Cond def
9944: CBra 1
9945: <
9946: [\x00-/:-\xff] (neg)
9947: [^>]
9948: >
9949: [^<]
9950: Ket
9951: CBra 2
9952: \w*+
9953: Ket
9954: Ket
9955: Ket
9956: End
9957: ------------------------------------------------------------------
9958:
9959: /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9960: ------------------------------------------------------------------
9961: Bra
9962: CBra 1
9963: ab
9964: Ket
9965: CBra 2
9966: x
9967: CBra 3
9968: y
9969: Ket
9970: z
9971: CBra 4
9972: cd
9973: Close 4
9974: Close 2
9975: *ACCEPT
9976: Ket
9977: Ket
9978: pq
9979: Ket
9980: End
9981: ------------------------------------------------------------------
9982:
9983: /abc\K/+
9984: abcdef
9985: 0:
9986: 0+ def
9987: abcdef\N\N
9988: 0:
9989: 0+ def
9990: xyzabcdef\N\N
9991: 0:
9992: 0+ def
9993: ** Failers
9994: No match
9995: abcdef\N
9996: No match
9997: xyzabcdef\N
9998: No match
9999:
10000: /^(?:(?=abc)|abc\K)/+
10001: abcdef
10002: 0:
10003: 0+ abcdef
10004: abcdef\N\N
10005: 0:
10006: 0+ def
10007: ** Failers
10008: No match
10009: abcdef\N
10010: No match
10011:
10012: /a?b?/+
10013: xyz
10014: 0:
10015: 0+ xyz
10016: xyzabc
10017: 0:
10018: 0+ xyzabc
10019: xyzabc\N
10020: 0: ab
10021: 0+ c
10022: xyzabc\N\N
10023: 0:
10024: 0+ yzabc
10025: xyz\N\N
10026: 0:
10027: 0+ yz
10028: ** Failers
10029: 0:
10030: 0+ ** Failers
10031: xyz\N
10032: No match
10033:
10034: /^a?b?/+
10035: xyz
10036: 0:
10037: 0+ xyz
10038: xyzabc
10039: 0:
10040: 0+ xyzabc
10041: ** Failers
10042: 0:
10043: 0+ ** Failers
10044: xyzabc\N
10045: No match
10046: xyzabc\N\N
10047: No match
10048: xyz\N\N
10049: No match
10050: xyz\N
10051: No match
10052:
10053: /^(?<name>a|b\g<name>c)/
10054: aaaa
10055: 0: a
10056: 1: a
10057: bacxxx
10058: 0: bac
10059: 1: bac
10060: bbaccxxx
10061: 0: bbacc
10062: 1: bbacc
10063: bbbacccxx
10064: 0: bbbaccc
10065: 1: bbbaccc
10066:
10067: /^(?<name>a|b\g'name'c)/
10068: aaaa
10069: 0: a
10070: 1: a
10071: bacxxx
10072: 0: bac
10073: 1: bac
10074: bbaccxxx
10075: 0: bbacc
10076: 1: bbacc
10077: bbbacccxx
10078: 0: bbbaccc
10079: 1: bbbaccc
10080:
10081: /^(a|b\g<1>c)/
10082: aaaa
10083: 0: a
10084: 1: a
10085: bacxxx
10086: 0: bac
10087: 1: bac
10088: bbaccxxx
10089: 0: bbacc
10090: 1: bbacc
10091: bbbacccxx
10092: 0: bbbaccc
10093: 1: bbbaccc
10094:
10095: /^(a|b\g'1'c)/
10096: aaaa
10097: 0: a
10098: 1: a
10099: bacxxx
10100: 0: bac
10101: 1: bac
10102: bbaccxxx
10103: 0: bbacc
10104: 1: bbacc
10105: bbbacccxx
10106: 0: bbbaccc
10107: 1: bbbaccc
10108:
10109: /^(a|b\g'-1'c)/
10110: aaaa
10111: 0: a
10112: 1: a
10113: bacxxx
10114: 0: bac
10115: 1: bac
10116: bbaccxxx
10117: 0: bbacc
10118: 1: bbacc
10119: bbbacccxx
10120: 0: bbbaccc
10121: 1: bbbaccc
10122:
10123: /(^(a|b\g<-1>c))/
10124: aaaa
10125: 0: a
10126: 1: a
10127: 2: a
10128: bacxxx
10129: 0: bac
10130: 1: bac
10131: 2: bac
10132: bbaccxxx
10133: 0: bbacc
10134: 1: bbacc
10135: 2: bbacc
10136: bbbacccxx
10137: 0: bbbaccc
10138: 1: bbbaccc
10139: 2: bbbaccc
10140:
10141: /(?-i:\g<name>)(?i:(?<name>a))/
10142: XaaX
10143: 0: aa
10144: 1: a
10145: XAAX
10146: 0: AA
10147: 1: A
10148:
10149: /(?i:\g<name>)(?-i:(?<name>a))/
10150: XaaX
10151: 0: aa
10152: 1: a
10153: ** Failers
10154: No match
10155: XAAX
10156: No match
10157:
10158: /(?-i:\g<+1>)(?i:(a))/
10159: XaaX
10160: 0: aa
10161: 1: a
10162: XAAX
10163: 0: AA
10164: 1: A
10165:
10166: /(?=(?<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>\})\}))\{/
10167:
10168: /(?<n>a|b|c)\g<n>*/
10169: abc
10170: 0: abc
10171: 1: a
10172: accccbbb
10173: 0: accccbbb
10174: 1: a
10175:
10176: /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
10177: XYabcdY
10178: 0: XYabcdY
10179: 1: a
10180: 2: b
10181: 3: <unset>
10182: 4: <unset>
10183: 5: c
10184: 6: d
10185: 7: Y
10186:
10187: /(?<=b(?1)|zzz)(a)/
10188: xbaax
10189: 0: a
10190: 1: a
10191: xzzzax
10192: 0: a
10193: 1: a
10194:
10195: /(a)(?<=b\1)/
10196: Failed: lookbehind assertion is not fixed length at offset 10
10197:
10198: /(a)(?<=b+(?1))/
10199: Failed: lookbehind assertion is not fixed length at offset 13
10200:
10201: /(a+)(?<=b(?1))/
10202: Failed: lookbehind assertion is not fixed length at offset 14
10203:
10204: /(a(?<=b(?1)))/
10205: Failed: lookbehind assertion is not fixed length at offset 13
10206:
10207: /(?<=b(?1))xyz/
10208: Failed: reference to non-existent subpattern at offset 8
10209:
10210: /(?<=b(?1))xyz(b+)pqrstuvew/
10211: Failed: lookbehind assertion is not fixed length at offset 26
10212:
10213: /(a|bc)\1/SI
10214: Capturing subpattern count = 1
10215: Max back reference = 1
10216: No options
10217: No first char
10218: No need char
10219: Subject length lower bound = 2
10220: Starting byte set: a b
10221:
10222: /(a|bc)\1{2,3}/SI
10223: Capturing subpattern count = 1
10224: Max back reference = 1
10225: No options
10226: No first char
10227: No need char
10228: Subject length lower bound = 3
10229: Starting byte set: a b
10230:
10231: /(a|bc)(?1)/SI
10232: Capturing subpattern count = 1
10233: No options
10234: No first char
10235: No need char
10236: Subject length lower bound = 2
10237: Starting byte set: a b
10238:
10239: /(a|b\1)(a|b\1)/SI
10240: Capturing subpattern count = 2
10241: Max back reference = 1
10242: No options
10243: No first char
10244: No need char
10245: Subject length lower bound = 2
10246: Starting byte set: a b
10247:
10248: /(a|b\1){2}/SI
10249: Capturing subpattern count = 1
10250: Max back reference = 1
10251: No options
10252: No first char
10253: No need char
10254: Subject length lower bound = 2
10255: Starting byte set: a b
10256:
10257: /(a|bbbb\1)(a|bbbb\1)/SI
10258: Capturing subpattern count = 2
10259: Max back reference = 1
10260: No options
10261: No first char
10262: No need char
10263: Subject length lower bound = 2
10264: Starting byte set: a b
10265:
10266: /(a|bbbb\1){2}/SI
10267: Capturing subpattern count = 1
10268: Max back reference = 1
10269: No options
10270: No first char
10271: No need char
10272: Subject length lower bound = 2
10273: Starting byte set: a b
10274:
10275: /^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
10276: Capturing subpattern count = 1
10277: Options: anchored
10278: No first char
10279: Need char = ':'
10280: Subject length lower bound = 22
10281: No set of starting bytes
10282:
10283: / (?: [\040\t] | \(
10284: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10285: \) )* # optional leading comment
10286: (?: (?:
10287: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10288: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10289: |
10290: " (?: # opening quote...
10291: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
10292: | # or
10293: \\ [^\x80-\xff] # Escaped something (something != CR)
10294: )* " # closing quote
10295: ) # initial word
10296: (?: (?: [\040\t] | \(
10297: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10298: \) )* \. (?: [\040\t] | \(
10299: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10300: \) )* (?:
10301: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10302: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10303: |
10304: " (?: # opening quote...
10305: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
10306: | # or
10307: \\ [^\x80-\xff] # Escaped something (something != CR)
10308: )* " # closing quote
10309: ) )* # further okay, if led by a period
10310: (?: [\040\t] | \(
10311: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10312: \) )* @ (?: [\040\t] | \(
10313: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10314: \) )* (?:
10315: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10316: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10317: | \[ # [
10318: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
10319: \] # ]
10320: ) # initial subdomain
10321: (?: #
10322: (?: [\040\t] | \(
10323: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10324: \) )* \. # if led by a period...
10325: (?: [\040\t] | \(
10326: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10327: \) )* (?:
10328: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10329: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10330: | \[ # [
10331: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
10332: \] # ]
10333: ) # ...further okay
10334: )*
10335: # address
10336: | # or
10337: (?:
10338: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10339: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10340: |
10341: " (?: # opening quote...
10342: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
10343: | # or
10344: \\ [^\x80-\xff] # Escaped something (something != CR)
10345: )* " # closing quote
10346: ) # one word, optionally followed by....
10347: (?:
10348: [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
10349: \(
10350: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10351: \) | # comments, or...
10352:
10353: " (?: # opening quote...
10354: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
10355: | # or
10356: \\ [^\x80-\xff] # Escaped something (something != CR)
10357: )* " # closing quote
10358: # quoted strings
10359: )*
10360: < (?: [\040\t] | \(
10361: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10362: \) )* # leading <
10363: (?: @ (?: [\040\t] | \(
10364: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10365: \) )* (?:
10366: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10367: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10368: | \[ # [
10369: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
10370: \] # ]
10371: ) # initial subdomain
10372: (?: #
10373: (?: [\040\t] | \(
10374: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10375: \) )* \. # if led by a period...
10376: (?: [\040\t] | \(
10377: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10378: \) )* (?:
10379: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10380: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10381: | \[ # [
10382: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
10383: \] # ]
10384: ) # ...further okay
10385: )*
10386:
10387: (?: (?: [\040\t] | \(
10388: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10389: \) )* , (?: [\040\t] | \(
10390: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10391: \) )* @ (?: [\040\t] | \(
10392: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10393: \) )* (?:
10394: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10395: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10396: | \[ # [
10397: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
10398: \] # ]
10399: ) # initial subdomain
10400: (?: #
10401: (?: [\040\t] | \(
10402: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10403: \) )* \. # if led by a period...
10404: (?: [\040\t] | \(
10405: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10406: \) )* (?:
10407: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10408: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10409: | \[ # [
10410: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
10411: \] # ]
10412: ) # ...further okay
10413: )*
10414: )* # further okay, if led by comma
10415: : # closing colon
10416: (?: [\040\t] | \(
10417: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10418: \) )* )? # optional route
10419: (?:
10420: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10421: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10422: |
10423: " (?: # opening quote...
10424: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
10425: | # or
10426: \\ [^\x80-\xff] # Escaped something (something != CR)
10427: )* " # closing quote
10428: ) # initial word
10429: (?: (?: [\040\t] | \(
10430: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10431: \) )* \. (?: [\040\t] | \(
10432: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10433: \) )* (?:
10434: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10435: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10436: |
10437: " (?: # opening quote...
10438: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
10439: | # or
10440: \\ [^\x80-\xff] # Escaped something (something != CR)
10441: )* " # closing quote
10442: ) )* # further okay, if led by a period
10443: (?: [\040\t] | \(
10444: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10445: \) )* @ (?: [\040\t] | \(
10446: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10447: \) )* (?:
10448: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10449: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10450: | \[ # [
10451: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
10452: \] # ]
10453: ) # initial subdomain
10454: (?: #
10455: (?: [\040\t] | \(
10456: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10457: \) )* \. # if led by a period...
10458: (?: [\040\t] | \(
10459: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10460: \) )* (?:
10461: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10462: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10463: | \[ # [
10464: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
10465: \] # ]
10466: ) # ...further okay
10467: )*
10468: # address spec
10469: (?: [\040\t] | \(
10470: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10471: \) )* > # trailing >
10472: # name and address
10473: ) (?: [\040\t] | \(
10474: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10475: \) )* # optional trailing comment
10476: /xSI
10477: Capturing subpattern count = 0
10478: Contains explicit CR or LF match
10479: Options: extended
10480: No first char
10481: No need char
10482: Subject length lower bound = 3
10483: Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
10484: 9 = ? 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 ^ _ ` a b c d e
10485: f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f
10486:
10487: /<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
10488: Capturing subpattern count = 11
10489: Options: caseless dotall
10490: First char = '<'
10491: Need char = '>'
10492: Subject length lower bound = 47
10493: No set of starting bytes
10494:
10495: "(?>.*/)foo"SI
10496: Capturing subpattern count = 0
10497: No options
10498: First char at start or follows newline
10499: Need char = 'o'
10500: Subject length lower bound = 4
10501: No set of starting bytes
10502:
10503: /(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /xSI
10504: Capturing subpattern count = 0
10505: Options: extended
10506: No first char
10507: Need char = '-'
10508: Subject length lower bound = 8
10509: No set of starting bytes
10510:
10511: /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10512: Capturing subpattern count = 1
10513: Options: caseless
10514: No first char
10515: No need char
10516: Subject length lower bound = 1
10517: Starting byte set: A B C a b c
10518:
10519: /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10520: Capturing subpattern count = 0
10521: No options
10522: No first char
10523: Need char = 'b'
10524: Subject length lower bound = 41
10525: Starting byte set: c d
10526:
10527: /<a[\s]+href[\s]*=[\s]* # find <a href=
10528: ([\"\'])? # find single or double quote
10529: (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching
10530: # quote, otherwise match up to next space
10531: /isxSI
10532: Capturing subpattern count = 3
10533: Max back reference = 1
10534: Options: caseless extended dotall
10535: First char = '<'
10536: Need char = '='
10537: Subject length lower bound = 9
10538: No set of starting bytes
10539:
10540: /^(?!:) # colon disallowed at start
10541: (?: # start of item
10542: (?: [0-9a-f]{1,4} | # 1-4 hex digits or
10543: (?(1)0 | () ) ) # if null previously matched, fail; else null
10544: : # followed by colon
10545: ){1,7} # end item; 1-7 of them required
10546: [0-9a-f]{1,4} $ # final hex number at end of string
10547: (?(1)|.) # check that there was an empty component
10548: /xiIS
10549: Capturing subpattern count = 1
10550: Options: anchored caseless extended
10551: No first char
10552: Need char = ':'
10553: Subject length lower bound = 2
10554: No set of starting bytes
10555:
10556: /(?|(?<a>A)|(?<a>B))/I
10557: Capturing subpattern count = 1
10558: Named capturing subpatterns:
10559: a 1
10560: a 1
10561: No options
10562: No first char
10563: No need char
10564: AB\Ca
10565: 0: A
10566: 1: A
10567: C A (1) a
10568: BA\Ca
10569: 0: B
10570: 1: B
10571: C B (1) a
10572:
10573: /(?|(?<a>A)|(?<b>B))/
10574: Failed: different names for subpatterns of the same number are not allowed at offset 15
10575:
10576: /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10577: b(?<quote> (?<apostrophe>')|(?<realquote>")) )
10578: (?('quote')[a-z]+|[0-9]+)/JIx
10579: Capturing subpattern count = 6
10580: Named capturing subpatterns:
10581: apostrophe 2
10582: apostrophe 5
10583: quote 1
10584: quote 4
10585: realquote 3
10586: realquote 6
10587: Options: extended dupnames
10588: No first char
10589: No need char
10590: a"aaaaa
10591: 0: a"aaaaa
10592: 1: "
10593: 2: <unset>
10594: 3: "
10595: b"aaaaa
10596: 0: b"aaaaa
10597: 1: <unset>
10598: 2: <unset>
10599: 3: <unset>
10600: 4: "
10601: 5: <unset>
10602: 6: "
10603: ** Failers
10604: No match
10605: b"11111
10606: No match
10607: a"11111
10608: No match
10609:
10610: /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10611: ------------------------------------------------------------------
10612: Bra
10613: ^
10614: Bra
10615: CBra 1
10616: a
10617: Ket
10618: CBra 2
10619: b
10620: Ket
10621: CBra 3
10622: c
10623: Ket
10624: CBra 4
10625: d
10626: Ket
10627: Alt
10628: CBra 1
10629: e
10630: Ket
10631: Ket
10632: Cond
10633: 4 Cond nref
10634: X
10635: Alt
10636: Y
10637: Ket
10638: Ket
10639: End
10640: ------------------------------------------------------------------
10641: Capturing subpattern count = 4
10642: Named capturing subpatterns:
10643: D 4
10644: D 1
10645: Options: anchored extended dupnames
10646: No first char
10647: No need char
10648: abcdX
10649: 0: abcdX
10650: 1: a
10651: 2: b
10652: 3: c
10653: 4: d
10654: eX
10655: 0: eX
10656: 1: e
10657: ** Failers
10658: No match
10659: abcdY
10660: No match
10661: ey
10662: No match
10663:
10664: /(?<A>a) (b)(c) (?<A>d (?(R&A)$ | (?4)) )/JDZx
10665: ------------------------------------------------------------------
10666: Bra
10667: CBra 1
10668: a
10669: Ket
10670: CBra 2
10671: b
10672: Ket
10673: CBra 3
10674: c
10675: Ket
10676: CBra 4
10677: d
10678: Cond
10679: Cond nrecurse 1
10680: $
10681: Alt
10682: Recurse
10683: Ket
10684: Ket
10685: Ket
10686: End
10687: ------------------------------------------------------------------
10688: Capturing subpattern count = 4
10689: Named capturing subpatterns:
10690: A 1
10691: A 4
10692: Options: extended dupnames
10693: First char = 'a'
10694: Need char = 'd'
10695: abcdd
10696: 0: abcdd
10697: 1: a
10698: 2: b
10699: 3: c
10700: 4: dd
10701: ** Failers
10702: No match
10703: abcdde
10704: No match
10705:
10706: /abcd*/
10707: xxxxabcd\P
10708: 0: abcd
10709: xxxxabcd\P\P
10710: Partial match: abcd
10711:
10712: /abcd*/i
10713: xxxxabcd\P
10714: 0: abcd
10715: xxxxabcd\P\P
10716: Partial match: abcd
10717: XXXXABCD\P
10718: 0: ABCD
10719: XXXXABCD\P\P
10720: Partial match: ABCD
10721:
10722: /abc\d*/
10723: xxxxabc1\P
10724: 0: abc1
10725: xxxxabc1\P\P
10726: Partial match: abc1
10727:
10728: /(a)bc\1*/
10729: xxxxabca\P
10730: 0: abca
10731: 1: a
10732: xxxxabca\P\P
10733: Partial match: abca
10734:
10735: /abc[de]*/
10736: xxxxabcde\P
10737: 0: abcde
10738: xxxxabcde\P\P
10739: Partial match: abcde
10740:
10741: /-- This is not in the Perl >= 5.10 test because Perl seems currently to be
10742: broken and not behaving as specified in that it *does* bumpalong after
10743: hitting (*COMMIT). --/
10744:
10745: /(?1)(A(*COMMIT)|B)D/
10746: ABD
10747: 0: ABD
10748: 1: B
10749: XABD
10750: 0: ABD
10751: 1: B
10752: BAD
10753: 0: BAD
10754: 1: A
10755: ABXABD
10756: 0: ABD
10757: 1: B
10758: ** Failers
10759: No match
10760: ABX
10761: No match
10762: BAXBAD
10763: No match
10764:
10765: /(\3)(\1)(a)/<JS>
10766: cat
10767: 0: a
10768: 1:
10769: 2:
10770: 3: a
10771:
10772: /(\3)(\1)(a)/SI<JS>
10773: Capturing subpattern count = 3
10774: Max back reference = 3
10775: Options:
10776: No first char
10777: Need char = 'a'
10778: Subject length lower bound = 1
10779: No set of starting bytes
10780: cat
10781: 0: a
10782: 1:
10783: 2:
10784: 3: a
10785:
10786: /(\3)(\1)(a)/SI
10787: Capturing subpattern count = 3
10788: Max back reference = 3
10789: No options
10790: No first char
10791: Need char = 'a'
10792: Subject length lower bound = 3
10793: No set of starting bytes
10794: cat
10795: No match
10796:
10797: /i(?(DEFINE)(?<s>a))/SI
10798: Capturing subpattern count = 1
10799: Named capturing subpatterns:
10800: s 1
10801: No options
10802: First char = 'i'
10803: No need char
10804: Subject length lower bound = 1
10805: No set of starting bytes
10806: i
10807: 0: i
10808:
10809: /()i(?(1)a)/SI
10810: Capturing subpattern count = 1
10811: No options
10812: No first char
10813: Need char = 'i'
10814: Subject length lower bound = 1
10815: Starting byte set: i
10816: ia
10817: 0: ia
10818: 1:
10819:
10820: /(?i)a(?-i)b|c/BZ
10821: ------------------------------------------------------------------
10822: Bra
10823: /i a
10824: b
10825: Alt
10826: c
10827: Ket
10828: End
10829: ------------------------------------------------------------------
10830: XabX
10831: 0: ab
10832: XAbX
10833: 0: Ab
10834: CcC
10835: 0: c
10836: ** Failers
10837: No match
10838: XABX
10839: No match
10840:
10841: /(?i)a(?s)b|c/BZ
10842: ------------------------------------------------------------------
10843: Bra
10844: /i ab
10845: Alt
10846: /i c
10847: Ket
10848: End
10849: ------------------------------------------------------------------
10850:
10851: /(?i)a(?s-i)b|c/BZ
10852: ------------------------------------------------------------------
10853: Bra
10854: /i a
10855: b
10856: Alt
10857: c
10858: Ket
10859: End
10860: ------------------------------------------------------------------
10861:
10862: /^(ab(c\1)d|x){2}$/BZ
10863: ------------------------------------------------------------------
10864: Bra
10865: ^
10866: Once
10867: CBra 1
10868: ab
10869: CBra 2
10870: c
10871: \1
10872: Ket
10873: d
10874: Alt
10875: x
10876: Ket
10877: Ket
10878: Once
10879: CBra 1
10880: ab
10881: CBra 2
10882: c
10883: \1
10884: Ket
10885: d
10886: Alt
10887: x
10888: Ket
10889: Ket
10890: $
10891: Ket
10892: End
10893: ------------------------------------------------------------------
10894: xabcxd
10895: 0: xabcxd
10896: 1: abcxd
10897: 2: cx
10898:
10899: /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10900: ------------------------------------------------------------------
10901: Bra
10902: ^
10903: Braposzero
10904: SBraPos
10905: Recurse
10906: KetRpos
10907: Cond
10908: Cond def
10909: CBra 1
10910: Any
10911: Ket
10912: Ket
10913: $
10914: Ket
10915: End
10916: ------------------------------------------------------------------
10917:
10918: /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10919: ------------------------------------------------------------------
10920: Bra
10921: ^
10922: Brazero
10923: Once
10924: Recurse
10925: KetRmax
10926: Cond
10927: Cond def
10928: CBra 1
10929: Any
10930: Ket
10931: Ket
10932: $
10933: Ket
10934: End
10935: ------------------------------------------------------------------
10936:
10937: / -- The first four of these are not in the Perl >= 5.10 test because Perl
10938: documents that the use of \K in assertions is "not well defined". The
10939: last is here because Perl gives the match as "b" rather than "ab". I
10940: believe this to be a Perl bug. --/
10941:
10942: /(?=a\Kb)ab/
10943: ab
10944: 0: b
10945:
10946: /(?!a\Kb)ac/
10947: ac
10948: 0: ac
10949:
10950: /^abc(?<=b\Kc)d/
10951: abcd
10952: 0: cd
10953:
10954: /^abc(?<!b\Kq)d/
10955: abcd
10956: 0: abcd
10957:
10958: /(?>a\Kb)z|(ab)/
10959: ab
10960: 0: ab
10961: 1: ab
10962:
10963: /----------------------/
10964:
10965: /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10966: Failed: recursive call could loop indefinitely at offset 31
10967:
10968: /abc(*MARK:)pqr/
10969: Failed: (*MARK) must have an argument at offset 10
10970:
10971: /abc(*:)pqr/
10972: Failed: (*MARK) must have an argument at offset 6
10973:
10974: /abc(*FAIL:123)xyz/
10975: Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10976:
10977: /--- This should, and does, fail. In Perl, it does not, which I think is a
10978: bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10979:
10980: /A(*COMMIT)B/+K
10981: ACABX
10982: No match
10983:
10984: /--- These should be different, but in Perl 5.11 are not, which I think
10985: is a bug in Perl. ---/
10986:
10987: /A(*THEN)B|A(*THEN)C/K
10988: AC
10989: 0: AC
10990:
10991: /A(*PRUNE)B|A(*PRUNE)C/K
10992: AC
10993: No match
10994:
10995: /--- This should fail; the SKIP advances by one, but when we get to AC, the
10996: PRUNE kills it. Perl behaves differently. ---/
10997:
10998: /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
10999: AAAC
11000: No match, mark = A
11001:
11002: /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
11003: though PCRE does. ---/
11004:
11005: /^A(*:A)B|^X(*:A)Y/K
11006: ** Failers
11007: No match
11008: XAQQ
11009: No match, mark = A
11010:
11011: /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
11012: optimizations defeat this. So does the PCRE optimization unless we disable it
11013: with \Y. ---/
11014:
11015: /(*COMMIT)ABC/
11016: ABCDEFG
11017: 0: ABC
11018: ** Failers
11019: No match
11020: DEFGABC\Y
11021: No match
11022:
11023: /^(ab (c+(*THEN)cd) | xyz)/x
11024: abcccd
11025: No match
11026:
11027: /^(ab (c+(*PRUNE)cd) | xyz)/x
11028: abcccd
11029: No match
11030:
11031: /^(ab (c+(*FAIL)cd) | xyz)/x
11032: abcccd
11033: No match
11034:
11035: /--- Perl 5.11 gets some of these wrong ---/
11036:
11037: /(?>.(*ACCEPT))*?5/
11038: abcde
11039: 0: a
11040:
11041: /(.(*ACCEPT))*?5/
11042: abcde
11043: 0: a
11044: 1: a
11045:
11046: /(.(*ACCEPT))5/
11047: abcde
11048: 0: a
11049: 1: a
11050:
11051: /(.(*ACCEPT))*5/
11052: abcde
11053: 0: a
11054: 1: a
11055:
11056: /A\NB./BZ
11057: ------------------------------------------------------------------
11058: Bra
11059: A
11060: Any
11061: B
11062: Any
11063: Ket
11064: End
11065: ------------------------------------------------------------------
11066: ACBD
11067: 0: ACBD
11068: *** Failers
11069: No match
11070: A\nB
11071: No match
11072: ACB\n
11073: No match
11074:
11075: /A\NB./sBZ
11076: ------------------------------------------------------------------
11077: Bra
11078: A
11079: Any
11080: B
11081: AllAny
11082: Ket
11083: End
11084: ------------------------------------------------------------------
11085: ACBD
11086: 0: ACBD
11087: ACB\n
11088: 0: ACB\x0a
11089: *** Failers
11090: No match
11091: A\nB
11092: No match
11093:
11094: /A\NB/<crlf>
11095: A\nB
11096: 0: A\x0aB
11097: A\rB
11098: 0: A\x0dB
11099: ** Failers
11100: No match
11101: A\r\nB
11102: No match
11103:
11104: /\R+b/BZ
11105: ------------------------------------------------------------------
11106: Bra
11107: \R++
11108: b
11109: Ket
11110: End
11111: ------------------------------------------------------------------
11112:
11113: /\R+\n/BZ
11114: ------------------------------------------------------------------
11115: Bra
11116: \R+
11117: \x0a
11118: Ket
11119: End
11120: ------------------------------------------------------------------
11121:
11122: /\R+\d/BZ
11123: ------------------------------------------------------------------
11124: Bra
11125: \R++
11126: \d
11127: Ket
11128: End
11129: ------------------------------------------------------------------
11130:
11131: /\d*\R/BZ
11132: ------------------------------------------------------------------
11133: Bra
11134: \d*+
11135: \R
11136: Ket
11137: End
11138: ------------------------------------------------------------------
11139:
11140: /\s*\R/BZ
11141: ------------------------------------------------------------------
11142: Bra
11143: \s*+
11144: \R
11145: Ket
11146: End
11147: ------------------------------------------------------------------
11148:
11149: /-- Perl treats this one differently, not failing the second string. I believe
11150: that is a bug in Perl. --/
11151:
11152: /^((abc|abcx)(*THEN)y|abcd)/
11153: abcd
11154: 0: abcd
11155: 1: abcd
11156: *** Failers
11157: No match
11158: abcxy
11159: No match
11160:
11161: /(?<=abc)def/
11162: abc\P\P
11163: Partial match: abc
11164:
11165: /abc$/
11166: abc
11167: 0: abc
11168: abc\P
11169: 0: abc
11170: abc\P\P
11171: Partial match: abc
11172:
11173: /abc$/m
11174: abc
11175: 0: abc
11176: abc\n
11177: 0: abc
11178: abc\P\P
11179: Partial match: abc
11180: abc\n\P\P
11181: 0: abc
11182: abc\P
11183: 0: abc
11184: abc\n\P
11185: 0: abc
11186:
11187: /abc\z/
11188: abc
11189: 0: abc
11190: abc\P
11191: 0: abc
11192: abc\P\P
11193: Partial match: abc
11194:
11195: /abc\Z/
11196: abc
11197: 0: abc
11198: abc\P
11199: 0: abc
11200: abc\P\P
11201: Partial match: abc
11202:
11203: /abc\b/
11204: abc
11205: 0: abc
11206: abc\P
11207: 0: abc
11208: abc\P\P
11209: Partial match: abc
11210:
11211: /abc\B/
11212: abc
11213: No match
11214: abc\P
11215: Partial match: abc
11216: abc\P\P
11217: Partial match: abc
11218:
11219: /.+/
11220: abc\>0
11221: 0: abc
11222: abc\>1
11223: 0: bc
11224: abc\>2
11225: 0: c
11226: abc\>3
11227: No match
11228: abc\>4
11229: Error -24 (bad offset value)
11230: abc\>-4
11231: Error -24 (bad offset value)
11232:
11233: /^\cģ/
11234: Failed: \c must be followed by an ASCII character at offset 3
11235:
11236: /(?P<abn>(?P=abn)xxx)/BZ
11237: ------------------------------------------------------------------
11238: Bra
11239: Once
11240: CBra 1
11241: \1
11242: xxx
11243: Ket
11244: Ket
11245: Ket
11246: End
11247: ------------------------------------------------------------------
11248:
11249: /(a\1z)/BZ
11250: ------------------------------------------------------------------
11251: Bra
11252: Once
11253: CBra 1
11254: a
11255: \1
11256: z
11257: Ket
11258: Ket
11259: Ket
11260: End
11261: ------------------------------------------------------------------
11262:
11263: /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
11264: Failed: syntax error in subpattern name (missing terminator) at offset 29
11265:
11266: /(?P<abn>(?P=axn)xxx)/BZ
11267: Failed: reference to non-existent subpattern at offset 15
11268:
11269: /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
11270: ------------------------------------------------------------------
11271: Bra
11272: CBra 1
11273: \2
11274: xxx
11275: Ket
11276: CBra 2
11277: yy
11278: Ket
11279: Ket
11280: End
11281: ------------------------------------------------------------------
11282:
11283: /-- These tests are here because Perl gets the first one wrong. --/
11284:
11285: /(\R*)(.)/s
11286: \r\n
11287: 0: \x0d
11288: 1:
11289: 2: \x0d
11290: \r\r\n\n\r
11291: 0: \x0d\x0d\x0a\x0a\x0d
11292: 1: \x0d\x0d\x0a\x0a
11293: 2: \x0d
11294: \r\r\n\n\r\n
11295: 0: \x0d\x0d\x0a\x0a\x0d
11296: 1: \x0d\x0d\x0a\x0a
11297: 2: \x0d
11298:
11299: /(\R)*(.)/s
11300: \r\n
11301: 0: \x0d
11302: 1: <unset>
11303: 2: \x0d
11304: \r\r\n\n\r
11305: 0: \x0d\x0d\x0a\x0a\x0d
11306: 1: \x0a
11307: 2: \x0d
11308: \r\r\n\n\r\n
11309: 0: \x0d\x0d\x0a\x0a\x0d
11310: 1: \x0a
11311: 2: \x0d
11312:
11313: /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
11314: \r\n
11315: 0: \x0d
11316: 1:
11317: 2: \x0d
11318: \r\r\n\n\r
11319: 0: \x0d\x0d\x0a\x0a\x0d
11320: 1: \x0d\x0d\x0a\x0a
11321: 2: \x0d
11322: \r\r\n\n\r\n
11323: 0: \x0d\x0d\x0a\x0a\x0d
11324: 1: \x0d\x0d\x0a\x0a
11325: 2: \x0d
11326:
11327: /-- --/
11328:
11329: /^abc$/BZ
11330: ------------------------------------------------------------------
11331: Bra
11332: ^
11333: abc
11334: $
11335: Ket
11336: End
11337: ------------------------------------------------------------------
11338:
11339: /^abc$/BZm
11340: ------------------------------------------------------------------
11341: Bra
11342: /m ^
11343: abc
11344: /m $
11345: Ket
11346: End
11347: ------------------------------------------------------------------
11348:
11349: /^(a)*+(\w)/S
11350: aaaaX
11351: 0: aaaaX
11352: 1: a
11353: 2: X
11354: ** Failers
11355: No match
11356: aaaa
11357: No match
11358:
11359: /^(?:a)*+(\w)/S
11360: aaaaX
11361: 0: aaaaX
11362: 1: X
11363: ** Failers
11364: No match
11365: aaaa
11366: No match
11367:
11368: /(a)++1234/SDZ
11369: ------------------------------------------------------------------
11370: Bra
11371: CBraPos 1
11372: a
11373: KetRpos
11374: 1234
11375: Ket
11376: End
11377: ------------------------------------------------------------------
11378: Capturing subpattern count = 1
11379: No options
11380: First char = 'a'
11381: Need char = '4'
11382: Subject length lower bound = 5
11383: No set of starting bytes
11384:
11385: /([abc])++1234/SI
11386: Capturing subpattern count = 1
11387: No options
11388: No first char
11389: Need char = '4'
11390: Subject length lower bound = 5
11391: Starting byte set: a b c
11392:
11393: /(?<=(abc)+)X/
11394: Failed: lookbehind assertion is not fixed length at offset 10
11395:
11396: /(^ab)/I
11397: Capturing subpattern count = 1
11398: Options: anchored
11399: No first char
11400: No need char
11401:
11402: /(^ab)++/I
11403: Capturing subpattern count = 1
11404: Options: anchored
11405: No first char
11406: No need char
11407:
11408: /(^ab|^)+/I
11409: Capturing subpattern count = 1
11410: Options: anchored
11411: No first char
11412: No need char
11413:
11414: /(^ab|^)++/I
11415: Capturing subpattern count = 1
11416: Options: anchored
11417: No first char
11418: No need char
11419:
11420: /(?:^ab)/I
11421: Capturing subpattern count = 0
11422: Options: anchored
11423: No first char
11424: No need char
11425:
11426: /(?:^ab)++/I
11427: Capturing subpattern count = 0
11428: Options: anchored
11429: No first char
11430: No need char
11431:
11432: /(?:^ab|^)+/I
11433: Capturing subpattern count = 0
11434: Options: anchored
11435: No first char
11436: No need char
11437:
11438: /(?:^ab|^)++/I
11439: Capturing subpattern count = 0
11440: Options: anchored
11441: No first char
11442: No need char
11443:
11444: /(.*ab)/I
11445: Capturing subpattern count = 1
11446: No options
11447: First char at start or follows newline
11448: Need char = 'b'
11449:
11450: /(.*ab)++/I
11451: Capturing subpattern count = 1
11452: No options
11453: First char at start or follows newline
11454: Need char = 'b'
11455:
11456: /(.*ab|.*)+/I
11457: Capturing subpattern count = 1
11458: No options
11459: First char at start or follows newline
11460: No need char
11461:
11462: /(.*ab|.*)++/I
11463: Capturing subpattern count = 1
11464: No options
11465: First char at start or follows newline
11466: No need char
11467:
11468: /(?:.*ab)/I
11469: Capturing subpattern count = 0
11470: No options
11471: First char at start or follows newline
11472: Need char = 'b'
11473:
11474: /(?:.*ab)++/I
11475: Capturing subpattern count = 0
11476: No options
11477: First char at start or follows newline
11478: Need char = 'b'
11479:
11480: /(?:.*ab|.*)+/I
11481: Capturing subpattern count = 0
11482: No options
11483: First char at start or follows newline
11484: No need char
11485:
11486: /(?:.*ab|.*)++/I
11487: Capturing subpattern count = 0
11488: No options
11489: First char at start or follows newline
11490: No need char
11491:
11492: /(?=a)[bcd]/I
11493: Capturing subpattern count = 0
11494: No options
11495: First char = 'a'
11496: No need char
11497:
11498: /((?=a))[bcd]/I
11499: Capturing subpattern count = 1
11500: No options
11501: First char = 'a'
11502: No need char
11503:
11504: /((?=a))+[bcd]/I
11505: Capturing subpattern count = 1
11506: No options
11507: First char = 'a'
11508: No need char
11509:
11510: /((?=a))++[bcd]/I
11511: Capturing subpattern count = 1
11512: No options
11513: First char = 'a'
11514: No need char
11515:
11516: /(?=a+)[bcd]/iI
11517: Capturing subpattern count = 0
11518: Options: caseless
11519: First char = 'a' (caseless)
11520: No need char
11521:
11522: /(?=a+?)[bcd]/iI
11523: Capturing subpattern count = 0
11524: Options: caseless
11525: First char = 'a' (caseless)
11526: No need char
11527:
11528: /(?=a++)[bcd]/iI
11529: Capturing subpattern count = 0
11530: Options: caseless
11531: First char = 'a' (caseless)
11532: No need char
11533:
11534: /(?=a{3})[bcd]/iI
11535: Capturing subpattern count = 0
11536: Options: caseless
11537: First char = 'a' (caseless)
11538: Need char = 'a' (caseless)
11539:
11540: /(abc)\1+/S
11541:
11542: /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11543:
11544: /(?1)(?:(b(*ACCEPT))){0}/
11545: b
11546: 0: b
11547:
11548: /(?1)(?:(b(*ACCEPT))){0}c/
11549: bc
11550: 0: bc
11551: ** Failers
11552: No match
11553: b
11554: No match
11555:
11556: /(?1)(?:((*ACCEPT))){0}c/
11557: c
11558: 0: c
11559: c\N
11560: 0: c
11561:
11562: /^.*?(?(?=a)a|b(*THEN)c)/
11563: ba
11564: No match
11565:
11566: /^.*?(?(?=a)a|bc)/
11567: ba
11568: 0: ba
11569:
11570: /^.*?(?(?=a)a(*THEN)b|c)/
11571: ac
11572: No match
11573:
11574: /^.*?(?(?=a)a(*THEN)b)c/
11575: ac
11576: No match
11577:
11578: /^.*?(a(*THEN)b)c/
11579: aabc
11580: No match
11581:
11582: /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11583: aabc
11584: 0: aabc
11585:
11586: /^.*?(a(*THEN)b|z)c/
11587: aabc
11588: 0: aabc
11589: 1: ab
11590:
11591: /^.*?(z|a(*THEN)b)c/
11592: aabc
11593: 0: aabc
11594: 1: ab
11595:
11596: /-- --/
11597:
11598: /-- These studied versions are here because they are not Perl-compatible; the
11599: studying means the mark is not seen. --/
11600:
11601: /(*MARK:A)(*SKIP:B)(C|X)/KS
11602: C
11603: 0: C
11604: 1: C
11605: MK: A
11606: D
11607: No match, mark = A
11608:
11609: /(*:A)A+(*SKIP:A)(B|Z)/KS
11610: AAAC
11611: No match, mark = A
11612:
11613: /-- --/
11614:
11615: "(?=a*(*ACCEPT)b)c"
11616: c
11617: 0: c
11618: c\N
11619: 0: c
11620:
11621: /(?1)c(?(DEFINE)((*ACCEPT)b))/
11622: c
11623: 0: c
11624: c\N
11625: 0: c
11626:
11627: /(?>(*ACCEPT)b)c/
11628: c
11629: 0:
11630: c\N
11631: No match
11632:
11633: /(?:(?>(a)))+a%/++
11634: %aa%
11635: 0: aa%
11636: 0+
11637: 1: a
11638: 1+ a%
11639:
11640: /(a)b|ac/++SS
11641: ac\O3
11642: Matched, but too many substrings
11643: 0: ac
11644: 0+
11645:
11646: /(a)(b)x|abc/++
11647: abc\O6
11648: 0: abc
11649: 0+
11650:
11651: /(a)bc|(a)(b)\2/
11652: \O3abc
11653: Matched, but too many substrings
11654: 0: abc
11655: \O4abc
11656: Matched, but too many substrings
11657: 0: abc
11658:
11659: /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11660: Capturing subpattern count = 2
11661: No options
11662: No first char
11663: No need char
11664: Subject length lower bound = 1
11665: No set of starting bytes
11666:
11667: /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11668: Capturing subpattern count = 2
11669: No options
11670: No first char
11671: No need char
11672: Subject length lower bound = 3
11673: Starting byte set: a b
11674:
11675: /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11676: Capturing subpattern count = 2
11677: No options
11678: No first char
11679: No need char
11680: Subject length lower bound = 4
11681: Starting byte set: a b
11682:
11683: /(abc)(?1)/SI
11684: Capturing subpattern count = 1
11685: No options
11686: First char = 'a'
11687: Need char = 'c'
11688: Subject length lower bound = 6
11689: No set of starting bytes
11690:
11691: /^(?>a)++/
11692: aa\M
11693: Minimum match() limit = 5
11694: Minimum match() recursion limit = 2
11695: 0: aa
11696: aaaaaaaaa\M
11697: Minimum match() limit = 12
11698: Minimum match() recursion limit = 2
11699: 0: aaaaaaaaa
11700:
11701: /(a)(?1)++/
11702: aa\M
11703: Minimum match() limit = 7
11704: Minimum match() recursion limit = 4
11705: 0: aa
11706: 1: a
11707: aaaaaaaaa\M
11708: Minimum match() limit = 21
11709: Minimum match() recursion limit = 4
11710: 0: aaaaaaaaa
11711: 1: a
11712:
11713: /(?:(foo)|(bar)|(baz))X/SS=
11714: bazfooX
11715: 0: fooX
11716: 1: foo
11717: 2: <unset>
11718: 3: <unset>
11719: foobazbarX
11720: 0: barX
11721: 1: <unset>
11722: 2: bar
11723: 3: <unset>
11724: barfooX
11725: 0: fooX
11726: 1: foo
11727: 2: <unset>
11728: 3: <unset>
11729: bazX
11730: 0: bazX
11731: 1: <unset>
11732: 2: <unset>
11733: 3: baz
11734: foobarbazX
11735: 0: bazX
11736: 1: <unset>
11737: 2: <unset>
11738: 3: baz
11739: bazfooX\O0
11740: Matched, but too many substrings
11741: bazfooX\O2
11742: Matched, but too many substrings
11743: 0: fooX
11744: bazfooX\O4
11745: Matched, but too many substrings
11746: 0: fooX
11747: 1: <unset>
11748: bazfooX\O6
11749: Matched, but too many substrings
11750: 0: fooX
11751: 1: foo
11752: 2: <unset>
11753: bazfooX\O8
11754: Matched, but too many substrings
11755: 0: fooX
11756: 1: foo
11757: 2: <unset>
11758: 3: <unset>
11759: bazfooX\O10
11760: 0: fooX
11761: 1: foo
11762: 2: <unset>
11763: 3: <unset>
11764:
11765: /(?=abc){3}abc/BZ
11766: ------------------------------------------------------------------
11767: Bra
11768: Assert
11769: abc
11770: Ket
11771: abc
11772: Ket
11773: End
11774: ------------------------------------------------------------------
11775:
11776: /(?=abc)+abc/BZ
11777: ------------------------------------------------------------------
11778: Bra
11779: Assert
11780: abc
11781: Ket
11782: abc
11783: Ket
11784: End
11785: ------------------------------------------------------------------
11786:
11787: /(?=abc)++abc/BZ
11788: ------------------------------------------------------------------
11789: Bra
11790: Assert
11791: abc
11792: Ket
11793: abc
11794: Ket
11795: End
11796: ------------------------------------------------------------------
11797:
11798: /(?=abc){0}xyz/BZ
11799: ------------------------------------------------------------------
11800: Bra
11801: Skip zero
11802: Assert
11803: abc
11804: Ket
11805: xyz
11806: Ket
11807: End
11808: ------------------------------------------------------------------
11809:
11810: /(?=(a))?./BZ
11811: ------------------------------------------------------------------
11812: Bra
11813: Brazero
11814: Assert
11815: CBra 1
11816: a
11817: Ket
11818: Ket
11819: Any
11820: Ket
11821: End
11822: ------------------------------------------------------------------
11823:
11824: /(?=(a))??./BZ
11825: ------------------------------------------------------------------
11826: Bra
11827: Braminzero
11828: Assert
11829: CBra 1
11830: a
11831: Ket
11832: Ket
11833: Any
11834: Ket
11835: End
11836: ------------------------------------------------------------------
11837:
11838: /^(?=(a)){0}b(?1)/BZ
11839: ------------------------------------------------------------------
11840: Bra
11841: ^
11842: Skip zero
11843: Assert
11844: CBra 1
11845: a
11846: Ket
11847: Ket
11848: b
11849: Recurse
11850: Ket
11851: End
11852: ------------------------------------------------------------------
11853:
11854: /(?(DEFINE)(a))?b(?1)/BZ
11855: ------------------------------------------------------------------
11856: Bra
11857: Cond
11858: Cond def
11859: CBra 1
11860: a
11861: Ket
11862: Ket
11863: b
11864: Recurse
11865: Ket
11866: End
11867: ------------------------------------------------------------------
11868:
11869: /^(?=(?1))?[az]([abc])d/BZ
11870: ------------------------------------------------------------------
11871: Bra
11872: ^
11873: Brazero
11874: Assert
11875: Recurse
11876: Ket
11877: [az]
11878: CBra 1
11879: [a-c]
11880: Ket
11881: d
11882: Ket
11883: End
11884: ------------------------------------------------------------------
11885:
11886: /^(?!a){0}\w+/BZ
11887: ------------------------------------------------------------------
11888: Bra
11889: ^
11890: Skip zero
11891: Assert not
11892: a
11893: Ket
11894: \w+
11895: Ket
11896: End
11897: ------------------------------------------------------------------
11898:
11899: /(?<=(abc))?xyz/BZ
11900: ------------------------------------------------------------------
11901: Bra
11902: Brazero
11903: AssertB
11904: Reverse
11905: CBra 1
11906: abc
11907: Ket
11908: Ket
11909: xyz
11910: Ket
11911: End
11912: ------------------------------------------------------------------
11913:
11914: /[:a[:abc]b:]/BZ
11915: ------------------------------------------------------------------
11916: Bra
11917: [:[a-c]
11918: b:]
11919: Ket
11920: End
11921: ------------------------------------------------------------------
11922:
11923: /((?2))((?1))/SS
11924: abc
11925: Error -26 (nested recursion at the same subject position)
11926:
11927: /((?(R2)a+|(?1)b))/SS
11928: aaaabcde
11929: Error -26 (nested recursion at the same subject position)
11930:
11931: /(?(R)a*(?1)|((?R))b)/SS
11932: aaaabcde
11933: Error -26 (nested recursion at the same subject position)
11934:
11935: /(a+|(?R)b)/
11936: Failed: recursive call could loop indefinitely at offset 7
11937:
11938: /^(a(*:A)(d|e(*:B))z|aeq)/C
11939: adz
11940: --->adz
11941: +0 ^ ^
11942: +1 ^ (a(*:A)(d|e(*:B))z|aeq)
11943: +2 ^ a
11944: +3 ^^ (*:A)
11945: +8 ^^ (d|e(*:B))
11946: Latest Mark: A
11947: +9 ^^ d
11948: +10 ^ ^ |
11949: +18 ^ ^ z
11950: +19 ^ ^ |
11951: +24 ^ ^
11952: 0: adz
11953: 1: adz
11954: 2: d
11955: aez
11956: --->aez
11957: +0 ^ ^
11958: +1 ^ (a(*:A)(d|e(*:B))z|aeq)
11959: +2 ^ a
11960: +3 ^^ (*:A)
11961: +8 ^^ (d|e(*:B))
11962: Latest Mark: A
11963: +9 ^^ d
11964: +11 ^^ e
11965: +12 ^ ^ (*:B)
11966: +17 ^ ^ )
11967: Latest Mark: B
11968: +18 ^ ^ z
11969: +19 ^ ^ |
11970: +24 ^ ^
11971: 0: aez
11972: 1: aez
11973: 2: e
11974: aeqwerty
11975: --->aeqwerty
11976: +0 ^ ^
11977: +1 ^ (a(*:A)(d|e(*:B))z|aeq)
11978: +2 ^ a
11979: +3 ^^ (*:A)
11980: +8 ^^ (d|e(*:B))
11981: Latest Mark: A
11982: +9 ^^ d
11983: +11 ^^ e
11984: +12 ^ ^ (*:B)
11985: +17 ^ ^ )
11986: Latest Mark: B
11987: +18 ^ ^ z
11988: +20 ^ a
11989: +21 ^^ e
11990: +22 ^ ^ q
11991: +23 ^ ^ )
11992: +24 ^ ^
11993: 0: aeq
11994: 1: aeq
11995:
11996: /.(*F)/
11997: \P\Pabc
11998: No match
11999:
12000: /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
12001: Capturing subpattern count = 0
12002: No options
12003: First char = 't'
12004: Need char = 't'
12005: Subject length lower bound = 18
12006: No set of starting bytes
12007:
12008: /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
12009: Capturing subpattern count = 0
12010: No options
12011: No first char
12012: No need char
12013: Subject length lower bound = 8
12014: Starting byte set: < o t u
12015:
12016: /a(*SKIP)c|b(*ACCEPT)|/+SI
12017: Capturing subpattern count = 0
12018: No options
12019: No first char
12020: No need char
12021: Study returned NULL
12022: a
12023: 0:
12024: 0+
12025:
12026: /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
12027: Capturing subpattern count = 0
12028: No options
12029: No first char
12030: No need char
12031: Subject length lower bound = -1
12032: Starting byte set: a b x
12033: ax
12034: 0: x
12035:
12036: 'a*(*ACCEPT)b'+
12037: \N\N
12038: No match
12039: abc\N\N
12040: 0: a
12041: 0+ bc
12042: bbb\N\N
12043: 0:
12044: 0+ bb
12045:
12046: /(*ACCEPT)a/+I
12047: Capturing subpattern count = 0
12048: No options
12049: No first char
12050: No need char
12051: bax
12052: 0:
12053: 0+ bax
12054:
12055: /z(*ACCEPT)a/+I
12056: Capturing subpattern count = 0
12057: No options
12058: First char = 'z'
12059: No need char
12060: baxzbx
12061: 0: z
12062: 0+ bx
12063:
12064: /a(?:.)*?a/ims
12065: \Mabbbbbbbbbbbbbbbbbbbbba
12066: Minimum match() limit = 65
12067: Minimum match() recursion limit = 2
12068: 0: abbbbbbbbbbbbbbbbbbbbba
12069:
12070: /a(?:.(*THEN))*?a/ims
12071: \Mabbbbbbbbbbbbbbbbbbbbba
12072: Minimum match() limit = 86
12073: Minimum match() recursion limit = 45
12074: 0: abbbbbbbbbbbbbbbbbbbbba
12075:
12076: /a(?:.(*THEN:ABC))*?a/ims
12077: \Mabbbbbbbbbbbbbbbbbbbbba
12078: Minimum match() limit = 86
12079: Minimum match() recursion limit = 45
12080: 0: abbbbbbbbbbbbbbbbbbbbba
12081:
12082: /-- These tests are in agreement with development Perl 5.015, which has fixed
12083: some things, but they don't all work with 5.012, so they aren't in the
12084: Perl-compatible tests. Those after the first come from Perl's own test
12085: files. --/
12086:
12087: /^((yes|no)(*THEN)(*F))?/
12088: yes
12089: No match
12090:
12091: /(A (.*) C? (*THEN) | A D) (*FAIL)/x
12092: AbcdCBefgBhiBqz
12093: No match
12094:
12095: /(A (.*) C? (*THEN) | A D) z/x
12096: AbcdCBefgBhiBqz
12097: No match
12098:
12099: /(A (.*) C? (*THEN) | A D) \s* (*FAIL)/x
12100: AbcdCBefgBhiBqz
12101: No match
12102:
12103: /(A (.*) C? (*THEN) | A D) \s* z/x
12104: AbcdCBefgBhiBqz
12105: No match
12106:
12107: /(A (.*) (?:C|) (*THEN) | A D) (*FAIL)/x
12108: AbcdCBefgBhiBqz
12109: No match
12110:
12111: /(A (.*) (?:C|) (*THEN) | A D) z/x
12112: AbcdCBefgBhiBqz
12113: No match
12114:
12115: /(A (.*) C{0,6} (*THEN) | A D) (*FAIL)/x
12116: AbcdCBefgBhiBqz
12117: No match
12118:
12119: /(A (.*) C{0,6} (*THEN) | A D) z/x
12120: AbcdCBefgBhiBqz
12121: No match
12122:
12123: /(A (.*) (CE){0,6} (*THEN) | A D) (*FAIL)/x
12124: AbcdCEBefgBhiBqz
12125: No match
12126:
12127: /(A (.*) (CE){0,6} (*THEN) | A D) z/x
12128: AbcdCEBefgBhiBqz
12129: No match
12130:
12131: /(A (.*) (CE*){0,6} (*THEN) | A D) (*FAIL)/x
12132: AbcdCBefgBhiBqz
12133: No match
12134:
12135: /(A (.*) (CE*){0,6} (*THEN) | A D) z/x
12136: AbcdCBefgBhiBqz
12137: No match
12138:
12139: /-----------------------------------------------/
12140:
12141: /^(?>a+)(?>(z+))\w/BZ
12142: ------------------------------------------------------------------
12143: Bra
12144: ^
12145: Once_NC
12146: a+
12147: Ket
12148: Once
12149: CBra 1
12150: z+
12151: Ket
12152: Ket
12153: \w
12154: Ket
12155: End
12156: ------------------------------------------------------------------
12157: aaaazzzzb
12158: 0: aaaazzzzb
12159: 1: zzzz
12160: ** Failers
12161: No match
12162: aazz
12163: No match
12164:
12165: /(.)(\1|a(?2))/
12166: bab
12167: 0: bab
12168: 1: b
12169: 2: ab
12170:
12171: /\1|(.)(?R)\1/
12172: cbbbc
12173: 0: cbbbc
12174: 1: c
12175:
12176: /(.)((?(1)c|a)|a(?2))/
12177: baa
12178: No match
12179:
12180: /(?P<abn>(?P=abn)xxx)/BZ
12181: ------------------------------------------------------------------
12182: Bra
12183: Once
12184: CBra 1
12185: \1
12186: xxx
12187: Ket
12188: Ket
12189: Ket
12190: End
12191: ------------------------------------------------------------------
12192:
12193: /(a\1z)/BZ
12194: ------------------------------------------------------------------
12195: Bra
12196: Once
12197: CBra 1
12198: a
12199: \1
12200: z
12201: Ket
12202: Ket
12203: Ket
12204: End
12205: ------------------------------------------------------------------
12206:
12207: /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
12208: \Maabbccddee
12209: Minimum match() limit = 12
12210: Minimum match() recursion limit = 3
12211: 0: aabbccddee
12212:
12213: /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
12214: \Maabbccddee
12215: Minimum match() limit = 22
12216: Minimum match() recursion limit = 21
12217: 0: aabbccddee
12218: 1: aa
12219: 2: bb
12220: 3: cc
12221: 4: dd
12222: 5: ee
12223:
12224: /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
12225: \Maabbccddee
12226: Minimum match() limit = 18
12227: Minimum match() recursion limit = 13
12228: 0: aabbccddee
12229: 1: aa
12230: 2: cc
12231: 3: ee
12232:
12233: /^a\x41z/<JS>
12234: aAz
12235: 0: aAz
12236: *** Failers
12237: No match
12238: ax41z
12239: No match
12240:
12241: /^a[m\x41]z/<JS>
12242: aAz
12243: 0: aAz
12244:
12245: /^a\x1z/<JS>
12246: ax1z
12247: 0: ax1z
12248:
12249: /^a\u0041z/<JS>
12250: aAz
12251: 0: aAz
12252: *** Failers
12253: No match
12254: au0041z
12255: No match
12256:
12257: /^a[m\u0041]z/<JS>
12258: aAz
12259: 0: aAz
12260:
12261: /^a\u041z/<JS>
12262: au041z
12263: 0: au041z
12264: *** Failers
12265: No match
12266: aAz
12267: No match
12268:
12269: /^a\U0041z/<JS>
12270: aU0041z
12271: 0: aU0041z
12272: *** Failers
12273: No match
12274: aAz
12275: No match
12276:
12277: /(?(?=c)c|d)++Y/BZ
12278: ------------------------------------------------------------------
12279: Bra
12280: BraPos
12281: Cond
12282: Assert
12283: c
12284: Ket
12285: c
12286: Alt
12287: d
12288: Ket
12289: KetRpos
12290: Y
12291: Ket
12292: End
12293: ------------------------------------------------------------------
12294:
12295: /(?(?=c)c|d)*+Y/BZ
12296: ------------------------------------------------------------------
12297: Bra
12298: Braposzero
12299: BraPos
12300: Cond
12301: Assert
12302: c
12303: Ket
12304: c
12305: Alt
12306: d
12307: Ket
12308: KetRpos
12309: Y
12310: Ket
12311: End
12312: ------------------------------------------------------------------
12313:
12314: /a[\NB]c/
12315: Failed: \N is not supported in a class at offset 3
12316:
12317: /a[B-\Nc]/
12318: Failed: \N is not supported in a class at offset 5
12319:
12320: /(a)(?2){0,1999}?(b)/
12321:
12322: /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
12323:
12324: /--- This test, with something more complicated than individual letters, causes
12325: different behaviour in Perl. Perhaps it disables some optimization; no tag is
12326: passed back for the failures, whereas in PCRE there is a tag. ---/
12327:
12328: /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
12329: AABC
12330: 0: AB
12331: 1: A
12332: 2: B
12333: MK: A
12334: XXYZ
12335: 0: XXY
12336: 1: <unset>
12337: 2: <unset>
12338: 3: X
12339: 4: X
12340: 5: Y
12341: MK: B
12342: ** Failers
12343: No match
12344: XAQQ
12345: No match, mark = A
12346: XAQQXZZ
12347: No match, mark = A
12348: AXQQQ
12349: No match, mark = A
12350: AXXQQQ
12351: No match, mark = B
12352:
12353: /-- Perl doesn't give marks for these, though it does if the alternatives are
12354: replaced by single letters. --/
12355:
12356: /(b|q)(*:m)f|a(*:n)w/K
12357: aw
12358: 0: aw
12359: MK: n
12360: ** Failers
12361: No match, mark = n
12362: abc
12363: No match, mark = m
12364:
12365: /(q|b)(*:m)f|a(*:n)w/K
12366: aw
12367: 0: aw
12368: MK: n
12369: ** Failers
12370: No match, mark = n
12371: abc
12372: No match, mark = m
12373:
12374: /-- After a partial match, the behaviour is as for a failure. --/
12375:
12376: /^a(*:X)bcde/K
12377: abc\P
12378: Partial match, mark=X: abc
12379:
12380: /-- End of testinput2 --/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>