Annotation of embedaddon/pcre/testdata/testoutput2, revision 1.1.1.5
1.1 misho 1: /-- This set of tests is not Perl-compatible. It checks on special features
2: of PCRE's API, error diagnostics, and the compiled code of some patterns.
3: It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4: Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5: either because PCRE can't be compatible, or there is a possible Perl
6: bug.
7:
1.1.1.2 misho 8: NOTE: This is a non-UTF set of tests. When UTF support is needed, use
9: test 5, and if Unicode Property Support is needed, use test 7. --/
1.1.1.5 ! misho 10:
! 11: < forbid 8W
1.1 misho 12:
13: /(a)b|/I
14: Capturing subpattern count = 1
1.1.1.5 ! misho 15: May match empty string
1.1 misho 16: No options
17: No first char
18: No need char
19:
20: /abc/I
21: Capturing subpattern count = 0
22: No options
23: First char = 'a'
24: Need char = 'c'
25: abc
26: 0: abc
27: defabc
28: 0: abc
29: \Aabc
30: 0: abc
31: *** Failers
32: No match
33: \Adefabc
34: No match
35: ABC
36: No match
37:
38: /^abc/I
39: Capturing subpattern count = 0
40: Options: anchored
41: No first char
42: No need char
43: abc
44: 0: abc
45: \Aabc
46: 0: abc
47: *** Failers
48: No match
49: defabc
50: No match
51: \Adefabc
52: No match
53:
54: /a+bc/I
55: Capturing subpattern count = 0
56: No options
57: First char = 'a'
58: Need char = 'c'
59:
60: /a*bc/I
61: Capturing subpattern count = 0
62: No options
63: No first char
64: Need char = 'c'
65:
66: /a{3}bc/I
67: Capturing subpattern count = 0
68: No options
69: First char = 'a'
70: Need char = 'c'
71:
72: /(abc|a+z)/I
73: Capturing subpattern count = 1
74: No options
75: First char = 'a'
76: No need char
77:
78: /^abc$/I
79: Capturing subpattern count = 0
80: Options: anchored
81: No first char
82: No need char
83: abc
84: 0: abc
85: *** Failers
86: No match
87: def\nabc
88: No match
89:
90: /ab\idef/X
91: Failed: unrecognized character follows \ at offset 3
92:
93: /(?X)ab\idef/X
94: Failed: unrecognized character follows \ at offset 7
95:
96: /x{5,4}/
97: Failed: numbers out of order in {} quantifier at offset 5
98:
99: /z{65536}/
100: Failed: number too big in {} quantifier at offset 7
101:
102: /[abcd/
103: Failed: missing terminating ] for character class at offset 5
104:
105: /(?X)[\B]/
106: Failed: invalid escape sequence in character class at offset 6
107:
108: /(?X)[\R]/
109: Failed: invalid escape sequence in character class at offset 6
110:
111: /(?X)[\X]/
112: Failed: invalid escape sequence in character class at offset 6
113:
114: /[\B]/BZ
115: ------------------------------------------------------------------
116: Bra
117: B
118: Ket
119: End
120: ------------------------------------------------------------------
121:
122: /[\R]/BZ
123: ------------------------------------------------------------------
124: Bra
125: R
126: Ket
127: End
128: ------------------------------------------------------------------
129:
130: /[\X]/BZ
131: ------------------------------------------------------------------
132: Bra
133: X
134: Ket
135: End
136: ------------------------------------------------------------------
137:
138: /[z-a]/
139: Failed: range out of order in character class at offset 3
140:
141: /^*/
142: Failed: nothing to repeat at offset 1
143:
144: /(abc/
145: Failed: missing ) at offset 4
146:
147: /(?# abc/
148: Failed: missing ) after comment at offset 7
149:
150: /(?z)abc/
151: Failed: unrecognized character after (? or (?- at offset 2
152:
153: /.*b/I
154: Capturing subpattern count = 0
155: No options
156: First char at start or follows newline
157: Need char = 'b'
158:
159: /.*?b/I
160: Capturing subpattern count = 0
161: No options
162: First char at start or follows newline
163: Need char = 'b'
164:
165: /cat|dog|elephant/I
166: Capturing subpattern count = 0
167: No options
168: No first char
169: No need char
170: this sentence eventually mentions a cat
171: 0: cat
172: this sentences rambles on and on for a while and then reaches elephant
173: 0: elephant
174:
175: /cat|dog|elephant/IS
176: Capturing subpattern count = 0
177: No options
178: No first char
179: No need char
180: Subject length lower bound = 3
181: Starting byte set: c d e
182: this sentence eventually mentions a cat
183: 0: cat
184: this sentences rambles on and on for a while and then reaches elephant
185: 0: elephant
186:
187: /cat|dog|elephant/IiS
188: Capturing subpattern count = 0
189: Options: caseless
190: No first char
191: No need char
192: Subject length lower bound = 3
193: Starting byte set: C D E c d e
194: this sentence eventually mentions a CAT cat
195: 0: CAT
196: this sentences rambles on and on for a while to elephant ElePhant
197: 0: elephant
198:
199: /a|[bcd]/IS
200: Capturing subpattern count = 0
201: No options
202: No first char
203: No need char
204: Subject length lower bound = 1
205: Starting byte set: a b c d
206:
207: /(a|[^\dZ])/IS
208: Capturing subpattern count = 1
209: No options
210: No first char
211: No need char
212: Subject length lower bound = 1
213: Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
214: \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
215: \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
216: ? @ 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
217: 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
218: \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92
219: \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1
220: \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0
221: \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf
222: \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce
223: \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd
224: \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec
225: \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb
226: \xfc \xfd \xfe \xff
227:
228: /(a|b)*[\s]/IS
229: Capturing subpattern count = 1
230: No options
231: No first char
232: No need char
233: Subject length lower bound = 1
1.1.1.5 ! misho 234: Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 a b
1.1 misho 235:
236: /(ab\2)/
237: Failed: reference to non-existent subpattern at offset 6
238:
239: /{4,5}abc/
240: Failed: nothing to repeat at offset 4
241:
242: /(a)(b)(c)\2/I
243: Capturing subpattern count = 3
244: Max back reference = 2
245: No options
246: First char = 'a'
247: Need char = 'c'
248: abcb
249: 0: abcb
250: 1: a
251: 2: b
252: 3: c
253: \O0abcb
254: Matched, but too many substrings
255: \O3abcb
256: Matched, but too many substrings
257: 0: abcb
258: \O6abcb
259: Matched, but too many substrings
260: 0: abcb
261: 1: a
262: \O9abcb
263: Matched, but too many substrings
264: 0: abcb
265: 1: a
266: 2: b
267: \O12abcb
268: 0: abcb
269: 1: a
270: 2: b
271: 3: c
272:
273: /(a)bc|(a)(b)\2/I
274: Capturing subpattern count = 3
275: Max back reference = 2
276: No options
277: First char = 'a'
278: No need char
279: abc
280: 0: abc
281: 1: a
282: \O0abc
283: Matched, but too many substrings
284: \O3abc
285: Matched, but too many substrings
286: 0: abc
287: \O6abc
288: 0: abc
289: 1: a
290: aba
291: 0: aba
292: 1: <unset>
293: 2: a
294: 3: b
295: \O0aba
296: Matched, but too many substrings
297: \O3aba
298: Matched, but too many substrings
299: 0: aba
300: \O6aba
301: Matched, but too many substrings
302: 0: aba
303: 1: <unset>
304: \O9aba
305: Matched, but too many substrings
306: 0: aba
307: 1: <unset>
308: 2: a
309: \O12aba
310: 0: aba
311: 1: <unset>
312: 2: a
313: 3: b
314:
315: /abc$/IE
316: Capturing subpattern count = 0
317: Options: dollar_endonly
318: First char = 'a'
319: Need char = 'c'
320: abc
321: 0: abc
322: *** Failers
323: No match
324: abc\n
325: No match
326: abc\ndef
327: No match
328:
329: /(a)(b)(c)(d)(e)\6/
330: Failed: reference to non-existent subpattern at offset 17
331:
332: /the quick brown fox/I
333: Capturing subpattern count = 0
334: No options
335: First char = 't'
336: Need char = 'x'
337: the quick brown fox
338: 0: the quick brown fox
339: this is a line with the quick brown fox
340: 0: the quick brown fox
341:
342: /the quick brown fox/IA
343: Capturing subpattern count = 0
344: Options: anchored
345: No first char
346: No need char
347: the quick brown fox
348: 0: the quick brown fox
349: *** Failers
350: No match
351: this is a line with the quick brown fox
352: No match
353:
354: /ab(?z)cd/
355: Failed: unrecognized character after (? or (?- at offset 4
356:
357: /^abc|def/I
358: Capturing subpattern count = 0
359: No options
360: No first char
361: No need char
362: abcdef
363: 0: abc
364: abcdef\B
365: 0: def
366:
367: /.*((abc)$|(def))/I
368: Capturing subpattern count = 3
369: No options
370: First char at start or follows newline
371: No need char
372: defabc
373: 0: defabc
374: 1: abc
375: 2: abc
376: \Zdefabc
377: 0: def
378: 1: def
379: 2: <unset>
380: 3: def
381:
382: /)/
383: Failed: unmatched parentheses at offset 0
384:
385: /a[]b/
386: Failed: missing terminating ] for character class at offset 4
387:
388: /[^aeiou ]{3,}/I
389: Capturing subpattern count = 0
390: No options
391: No first char
392: No need char
393: co-processors, and for
394: 0: -pr
395:
396: /<.*>/I
397: Capturing subpattern count = 0
398: No options
399: First char = '<'
400: Need char = '>'
401: abc<def>ghi<klm>nop
402: 0: <def>ghi<klm>
403:
404: /<.*?>/I
405: Capturing subpattern count = 0
406: No options
407: First char = '<'
408: Need char = '>'
409: abc<def>ghi<klm>nop
410: 0: <def>
411:
412: /<.*>/IU
413: Capturing subpattern count = 0
414: Options: ungreedy
415: First char = '<'
416: Need char = '>'
417: abc<def>ghi<klm>nop
418: 0: <def>
419:
420: /(?U)<.*>/I
421: Capturing subpattern count = 0
422: Options: ungreedy
423: First char = '<'
424: Need char = '>'
425: abc<def>ghi<klm>nop
426: 0: <def>
427:
428: /<.*?>/IU
429: Capturing subpattern count = 0
430: Options: ungreedy
431: First char = '<'
432: Need char = '>'
433: abc<def>ghi<klm>nop
434: 0: <def>ghi<klm>
435:
436: /={3,}/IU
437: Capturing subpattern count = 0
438: Options: ungreedy
439: First char = '='
440: Need char = '='
441: abc========def
442: 0: ===
443:
444: /(?U)={3,}?/I
445: Capturing subpattern count = 0
446: Options: ungreedy
447: First char = '='
448: Need char = '='
449: abc========def
450: 0: ========
451:
452: /(?<!bar|cattle)foo/I
453: Capturing subpattern count = 0
1.1.1.4 misho 454: Max lookbehind = 6
1.1 misho 455: No options
456: First char = 'f'
457: Need char = 'o'
458: foo
459: 0: foo
460: catfoo
461: 0: foo
462: *** Failers
463: No match
464: the barfoo
465: No match
466: and cattlefoo
467: No match
468:
469: /(?<=a+)b/
470: Failed: lookbehind assertion is not fixed length at offset 6
471:
472: /(?<=aaa|b{0,3})b/
473: Failed: lookbehind assertion is not fixed length at offset 14
474:
475: /(?<!(foo)a\1)bar/
476: Failed: lookbehind assertion is not fixed length at offset 12
477:
478: /(?i)abc/I
479: Capturing subpattern count = 0
480: Options: caseless
481: First char = 'a' (caseless)
482: Need char = 'c' (caseless)
483:
484: /(a|(?m)a)/I
485: Capturing subpattern count = 1
486: No options
487: First char = 'a'
488: No need char
489:
490: /(?i)^1234/I
491: Capturing subpattern count = 0
492: Options: anchored caseless
493: No first char
494: No need char
495:
496: /(^b|(?i)^d)/I
497: Capturing subpattern count = 1
498: Options: anchored
499: No first char
500: No need char
501:
502: /(?s).*/I
503: Capturing subpattern count = 0
1.1.1.5 ! misho 504: May match empty string
1.1 misho 505: Options: anchored dotall
506: No first char
507: No need char
508:
509: /[abcd]/IS
510: Capturing subpattern count = 0
511: No options
512: No first char
513: No need char
514: Subject length lower bound = 1
515: Starting byte set: a b c d
516:
517: /(?i)[abcd]/IS
518: Capturing subpattern count = 0
519: Options: caseless
520: No first char
521: No need char
522: Subject length lower bound = 1
523: Starting byte set: A B C D a b c d
524:
525: /(?m)[xy]|(b|c)/IS
526: Capturing subpattern count = 1
527: Options: multiline
528: No first char
529: No need char
530: Subject length lower bound = 1
531: Starting byte set: b c x y
532:
533: /(^a|^b)/Im
534: Capturing subpattern count = 1
535: Options: multiline
536: First char at start or follows newline
537: No need char
538:
539: /(?i)(^a|^b)/Im
540: Capturing subpattern count = 1
541: Options: caseless multiline
542: First char at start or follows newline
543: No need char
544:
545: /(a)(?(1)a|b|c)/
546: Failed: conditional group contains more than two branches at offset 13
547:
548: /(?(?=a)a|b|c)/
549: Failed: conditional group contains more than two branches at offset 12
550:
551: /(?(1a)/
1.1.1.5 ! misho 552: Failed: malformed number or name after (?( at offset 4
1.1 misho 553:
554: /(?(1a))/
1.1.1.5 ! misho 555: Failed: malformed number or name after (?( at offset 4
1.1 misho 556:
557: /(?(?i))/
558: Failed: assertion expected after (?( at offset 3
559:
560: /(?(abc))/
561: Failed: reference to non-existent subpattern at offset 7
562:
563: /(?(?<ab))/
564: Failed: syntax error in subpattern name (missing terminator) at offset 7
565:
566: /((?s)blah)\s+\1/I
567: Capturing subpattern count = 1
568: Max back reference = 1
569: No options
570: First char = 'b'
571: Need char = 'h'
572:
573: /((?i)blah)\s+\1/I
574: Capturing subpattern count = 1
575: Max back reference = 1
576: No options
577: First char = 'b' (caseless)
578: Need char = 'h' (caseless)
579:
580: /((?i)b)/IDZS
581: ------------------------------------------------------------------
582: Bra
583: CBra 1
584: /i b
585: Ket
586: Ket
587: End
588: ------------------------------------------------------------------
589: Capturing subpattern count = 1
590: No options
591: First char = 'b' (caseless)
592: No need char
593: Subject length lower bound = 1
594: No set of starting bytes
595:
596: /(a*b|(?i:c*(?-i)d))/IS
597: Capturing subpattern count = 1
598: No options
599: No first char
600: No need char
601: Subject length lower bound = 1
602: Starting byte set: C a b c d
603:
604: /a$/I
605: Capturing subpattern count = 0
606: No options
607: First char = 'a'
608: No need char
609: a
610: 0: a
611: a\n
612: 0: a
613: *** Failers
614: No match
615: \Za
616: No match
617: \Za\n
618: No match
619:
620: /a$/Im
621: Capturing subpattern count = 0
622: Options: multiline
623: First char = 'a'
624: No need char
625: a
626: 0: a
627: a\n
628: 0: a
629: \Za\n
630: 0: a
631: *** Failers
632: No match
633: \Za
634: No match
635:
636: /\Aabc/Im
637: Capturing subpattern count = 0
1.1.1.4 misho 638: Max lookbehind = 1
1.1 misho 639: Options: anchored multiline
640: No first char
641: No need char
642:
643: /^abc/Im
644: Capturing subpattern count = 0
645: Options: multiline
646: First char at start or follows newline
647: Need char = 'c'
648:
649: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
650: Capturing subpattern count = 5
651: Options: anchored
652: No first char
653: No need char
654: aaaaabbbbbcccccdef
655: 0: aaaaabbbbbcccccdef
656: 1: aaaaabbbbbcccccdef
657: 2: aaaaa
658: 3: b
659: 4: bbbbccccc
660: 5: def
661:
662: /(?<=foo)[ab]/IS
663: Capturing subpattern count = 0
1.1.1.4 misho 664: Max lookbehind = 3
1.1 misho 665: No options
666: No first char
667: No need char
668: Subject length lower bound = 1
669: Starting byte set: a b
670:
671: /(?<!foo)(alpha|omega)/IS
672: Capturing subpattern count = 1
1.1.1.4 misho 673: Max lookbehind = 3
1.1 misho 674: No options
675: No first char
676: Need char = 'a'
677: Subject length lower bound = 5
678: Starting byte set: a o
679:
680: /(?!alphabet)[ab]/IS
681: Capturing subpattern count = 0
682: No options
683: No first char
684: No need char
685: Subject length lower bound = 1
686: Starting byte set: a b
687:
688: /(?<=foo\n)^bar/Im
689: Capturing subpattern count = 0
1.1.1.4 misho 690: Max lookbehind = 4
1.1 misho 691: Contains explicit CR or LF match
692: Options: multiline
693: No first char
694: Need char = 'r'
695: foo\nbarbar
696: 0: bar
697: ***Failers
698: No match
699: rhubarb
700: No match
701: barbell
702: No match
703: abc\nbarton
704: No match
705:
706: /^(?<=foo\n)bar/Im
707: Capturing subpattern count = 0
1.1.1.4 misho 708: Max lookbehind = 4
1.1 misho 709: Contains explicit CR or LF match
710: Options: multiline
711: First char at start or follows newline
712: Need char = 'r'
713: foo\nbarbar
714: 0: bar
715: ***Failers
716: No match
717: rhubarb
718: No match
719: barbell
720: No match
721: abc\nbarton
722: No match
723:
724: /(?>^abc)/Im
725: Capturing subpattern count = 0
726: Options: multiline
727: First char at start or follows newline
728: Need char = 'c'
729: abc
730: 0: abc
731: def\nabc
732: 0: abc
733: *** Failers
734: No match
735: defabc
736: No match
737:
738: /(?<=ab(c+)d)ef/
739: Failed: lookbehind assertion is not fixed length at offset 11
740:
741: /(?<=ab(?<=c+)d)ef/
742: Failed: lookbehind assertion is not fixed length at offset 12
743:
744: /(?<=ab(c|de)f)g/
745: Failed: lookbehind assertion is not fixed length at offset 13
746:
747: /The next three are in testinput2 because they have variable length branches/
748:
749: /(?<=bullock|donkey)-cart/I
750: Capturing subpattern count = 0
1.1.1.4 misho 751: Max lookbehind = 7
1.1 misho 752: No options
753: First char = '-'
754: Need char = 't'
755: the bullock-cart
756: 0: -cart
757: a donkey-cart race
758: 0: -cart
759: *** Failers
760: No match
761: cart
762: No match
763: horse-and-cart
764: No match
765:
766: /(?<=ab(?i)x|y|z)/I
767: Capturing subpattern count = 0
1.1.1.4 misho 768: Max lookbehind = 3
1.1.1.5 ! misho 769: May match empty string
1.1 misho 770: No options
771: No first char
772: No need char
773:
774: /(?>.*)(?<=(abcd)|(xyz))/I
775: Capturing subpattern count = 2
1.1.1.4 misho 776: Max lookbehind = 4
1.1.1.5 ! misho 777: May match empty string
1.1 misho 778: No options
1.1.1.4 misho 779: No first char
1.1 misho 780: No need char
781: alphabetabcd
782: 0: alphabetabcd
783: 1: abcd
784: endingxyz
785: 0: endingxyz
786: 1: <unset>
787: 2: xyz
788:
789: /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
790: Capturing subpattern count = 0
1.1.1.4 misho 791: Max lookbehind = 4
1.1 misho 792: No options
793: First char = 'Z'
794: Need char = 'Z'
795: abxyZZ
796: 0: ZZ
797: abXyZZ
798: 0: ZZ
799: ZZZ
800: 0: ZZ
801: zZZ
802: 0: ZZ
803: bZZ
804: 0: ZZ
805: BZZ
806: 0: ZZ
807: *** Failers
808: No match
809: ZZ
810: No match
811: abXYZZ
812: No match
813: zzz
814: No match
815: bzz
816: No match
817:
818: /(?<!(foo)a)bar/I
819: Capturing subpattern count = 1
1.1.1.4 misho 820: Max lookbehind = 4
1.1 misho 821: No options
822: First char = 'b'
823: Need char = 'r'
824: bar
825: 0: bar
826: foobbar
827: 0: bar
828: *** Failers
829: No match
830: fooabar
831: No match
832:
833: /This one is here because Perl behaves differently; see also the following/I
834: Capturing subpattern count = 0
835: No options
836: First char = 'T'
837: Need char = 'g'
838:
839: /^(a\1?){4}$/I
840: Capturing subpattern count = 1
841: Max back reference = 1
842: Options: anchored
843: No first char
844: No need char
845: aaaa
846: No match
847: aaaaaa
848: No match
849:
850: /Perl does not fail these two for the final subjects. Neither did PCRE until/
851: /release 8.01. The problem is in backtracking into a subpattern that contains/
852: No match
853: /a recursive reference to itself. PCRE has now made these into atomic patterns./
854: No match
855:
856: /^(xa|=?\1a){2}$/
857: xa=xaa
858: 0: xa=xaa
859: 1: =xaa
860: ** Failers
861: No match
862: xa=xaaa
863: No match
864:
865: /^(xa|=?\1a)+$/
866: xa=xaa
867: 0: xa=xaa
868: 1: =xaa
869: ** Failers
870: No match
871: xa=xaaa
872: No match
873:
874: /These are syntax tests from Perl 5.005/I
875: Capturing subpattern count = 0
876: No options
877: First char = 'T'
878: Need char = '5'
879:
880: /a[b-a]/
881: Failed: range out of order in character class at offset 4
882:
883: /a[]b/
884: Failed: missing terminating ] for character class at offset 4
885:
886: /a[/
887: Failed: missing terminating ] for character class at offset 2
888:
889: /*a/
890: Failed: nothing to repeat at offset 0
891:
892: /(*)b/
893: Failed: nothing to repeat at offset 1
894:
895: /abc)/
896: Failed: unmatched parentheses at offset 3
897:
898: /(abc/
899: Failed: missing ) at offset 4
900:
901: /a**/
902: Failed: nothing to repeat at offset 2
903:
904: /)(/
905: Failed: unmatched parentheses at offset 0
906:
907: /\1/
908: Failed: reference to non-existent subpattern at offset 2
909:
910: /\2/
911: Failed: reference to non-existent subpattern at offset 2
912:
913: /(a)|\2/
914: Failed: reference to non-existent subpattern at offset 6
915:
916: /a[b-a]/Ii
917: Failed: range out of order in character class at offset 4
918:
919: /a[]b/Ii
920: Failed: missing terminating ] for character class at offset 4
921:
922: /a[/Ii
923: Failed: missing terminating ] for character class at offset 2
924:
925: /*a/Ii
926: Failed: nothing to repeat at offset 0
927:
928: /(*)b/Ii
929: Failed: nothing to repeat at offset 1
930:
931: /abc)/Ii
932: Failed: unmatched parentheses at offset 3
933:
934: /(abc/Ii
935: Failed: missing ) at offset 4
936:
937: /a**/Ii
938: Failed: nothing to repeat at offset 2
939:
940: /)(/Ii
941: Failed: unmatched parentheses at offset 0
942:
943: /:(?:/
944: Failed: missing ) at offset 4
945:
946: /(?<%)b/
947: Failed: unrecognized character after (?< at offset 3
948:
949: /a(?{)b/
950: Failed: unrecognized character after (? or (?- at offset 3
951:
952: /a(?{{})b/
953: Failed: unrecognized character after (? or (?- at offset 3
954:
955: /a(?{}})b/
956: Failed: unrecognized character after (? or (?- at offset 3
957:
958: /a(?{"{"})b/
959: Failed: unrecognized character after (? or (?- at offset 3
960:
961: /a(?{"{"}})b/
962: Failed: unrecognized character after (? or (?- at offset 3
963:
964: /(?(1?)a|b)/
965: Failed: malformed number or name after (?( at offset 4
966:
967: /[a[:xyz:/
968: Failed: missing terminating ] for character class at offset 8
969:
970: /(?<=x+)y/
971: Failed: lookbehind assertion is not fixed length at offset 6
972:
973: /a{37,17}/
974: Failed: numbers out of order in {} quantifier at offset 7
975:
976: /abc/\
977: Failed: \ at end of pattern at offset 4
978:
979: /abc/\i
980: Failed: \ at end of pattern at offset 4
981:
982: /(a)bc(d)/I
983: Capturing subpattern count = 2
984: No options
985: First char = 'a'
986: Need char = 'd'
987: abcd
988: 0: abcd
989: 1: a
990: 2: d
991: abcd\C2
992: 0: abcd
993: 1: a
994: 2: d
995: 2C d (1)
996: abcd\C5
997: 0: abcd
998: 1: a
999: 2: d
1000: copy substring 5 failed -7
1001:
1002: /(.{20})/I
1003: Capturing subpattern count = 1
1004: No options
1005: No first char
1006: No need char
1007: abcdefghijklmnopqrstuvwxyz
1008: 0: abcdefghijklmnopqrst
1009: 1: abcdefghijklmnopqrst
1010: abcdefghijklmnopqrstuvwxyz\C1
1011: 0: abcdefghijklmnopqrst
1012: 1: abcdefghijklmnopqrst
1013: 1C abcdefghijklmnopqrst (20)
1014: abcdefghijklmnopqrstuvwxyz\G1
1015: 0: abcdefghijklmnopqrst
1016: 1: abcdefghijklmnopqrst
1017: 1G abcdefghijklmnopqrst (20)
1018:
1019: /(.{15})/I
1020: Capturing subpattern count = 1
1021: No options
1022: No first char
1023: No need char
1024: abcdefghijklmnopqrstuvwxyz
1025: 0: abcdefghijklmno
1026: 1: abcdefghijklmno
1027: abcdefghijklmnopqrstuvwxyz\C1\G1
1028: 0: abcdefghijklmno
1029: 1: abcdefghijklmno
1030: 1C abcdefghijklmno (15)
1031: 1G abcdefghijklmno (15)
1032:
1033: /(.{16})/I
1034: Capturing subpattern count = 1
1035: No options
1036: No first char
1037: No need char
1038: abcdefghijklmnopqrstuvwxyz
1039: 0: abcdefghijklmnop
1040: 1: abcdefghijklmnop
1041: abcdefghijklmnopqrstuvwxyz\C1\G1\L
1042: 0: abcdefghijklmnop
1043: 1: abcdefghijklmnop
1044: 1C abcdefghijklmnop (16)
1045: 1G abcdefghijklmnop (16)
1046: 0L abcdefghijklmnop
1047: 1L abcdefghijklmnop
1048:
1049: /^(a|(bc))de(f)/I
1050: Capturing subpattern count = 3
1051: Options: anchored
1052: No first char
1053: No need char
1054: adef\G1\G2\G3\G4\L
1055: 0: adef
1056: 1: a
1057: 2: <unset>
1058: 3: f
1059: 1G a (1)
1060: 2G (0)
1061: 3G f (1)
1062: get substring 4 failed -7
1063: 0L adef
1064: 1L a
1065: 2L
1066: 3L f
1067: bcdef\G1\G2\G3\G4\L
1068: 0: bcdef
1069: 1: bc
1070: 2: bc
1071: 3: f
1072: 1G bc (2)
1073: 2G bc (2)
1074: 3G f (1)
1075: get substring 4 failed -7
1076: 0L bcdef
1077: 1L bc
1078: 2L bc
1079: 3L f
1080: adefghijk\C0
1081: 0: adef
1082: 1: a
1083: 2: <unset>
1084: 3: f
1085: 0C adef (4)
1086:
1087: /^abc\00def/I
1088: Capturing subpattern count = 0
1089: Options: anchored
1090: No first char
1091: No need char
1092: abc\00def\L\C0
1093: 0: abc\x00def
1.1.1.2 misho 1094: 0C abc\x00def (7)
1.1 misho 1095: 0L abc
1096:
1097: /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1098: )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1099: )?)?)?)?)?)?)?)?)?otherword/I
1100: Capturing subpattern count = 8
1101: Contains explicit CR or LF match
1102: No options
1103: First char = 'w'
1104: Need char = 'd'
1105:
1106: /.*X/IDZ
1107: ------------------------------------------------------------------
1108: Bra
1109: Any*
1110: X
1111: Ket
1112: End
1113: ------------------------------------------------------------------
1114: Capturing subpattern count = 0
1115: No options
1116: First char at start or follows newline
1117: Need char = 'X'
1118:
1119: /.*X/IDZs
1120: ------------------------------------------------------------------
1121: Bra
1122: AllAny*
1123: X
1124: Ket
1125: End
1126: ------------------------------------------------------------------
1127: Capturing subpattern count = 0
1128: Options: anchored dotall
1129: No first char
1130: Need char = 'X'
1131:
1132: /(.*X|^B)/IDZ
1133: ------------------------------------------------------------------
1134: Bra
1135: CBra 1
1136: Any*
1137: X
1138: Alt
1139: ^
1140: B
1141: Ket
1142: Ket
1143: End
1144: ------------------------------------------------------------------
1145: Capturing subpattern count = 1
1146: No options
1147: First char at start or follows newline
1148: No need char
1149:
1150: /(.*X|^B)/IDZs
1151: ------------------------------------------------------------------
1152: Bra
1153: CBra 1
1154: AllAny*
1155: X
1156: Alt
1157: ^
1158: B
1159: Ket
1160: Ket
1161: End
1162: ------------------------------------------------------------------
1163: Capturing subpattern count = 1
1164: Options: anchored dotall
1165: No first char
1166: No need char
1167:
1168: /(?s)(.*X|^B)/IDZ
1169: ------------------------------------------------------------------
1170: Bra
1171: CBra 1
1172: AllAny*
1173: X
1174: Alt
1175: ^
1176: B
1177: Ket
1178: Ket
1179: End
1180: ------------------------------------------------------------------
1181: Capturing subpattern count = 1
1182: Options: anchored dotall
1183: No first char
1184: No need char
1185:
1186: /(?s:.*X|^B)/IDZ
1187: ------------------------------------------------------------------
1188: Bra
1189: Bra
1190: AllAny*
1191: X
1192: Alt
1193: ^
1194: B
1195: Ket
1196: Ket
1197: End
1198: ------------------------------------------------------------------
1199: Capturing subpattern count = 0
1200: Options: anchored
1201: No first char
1202: No need char
1203:
1204: /\Biss\B/I+
1205: Capturing subpattern count = 0
1.1.1.4 misho 1206: Max lookbehind = 1
1.1 misho 1207: No options
1208: First char = 'i'
1209: Need char = 's'
1210: Mississippi
1211: 0: iss
1212: 0+ issippi
1213:
1214: /iss/IG+
1215: Capturing subpattern count = 0
1216: No options
1217: First char = 'i'
1218: Need char = 's'
1219: Mississippi
1220: 0: iss
1221: 0+ issippi
1222: 0: iss
1223: 0+ ippi
1224:
1225: /\Biss\B/IG+
1226: Capturing subpattern count = 0
1.1.1.4 misho 1227: Max lookbehind = 1
1.1 misho 1228: No options
1229: First char = 'i'
1230: Need char = 's'
1231: Mississippi
1232: 0: iss
1233: 0+ issippi
1234:
1235: /\Biss\B/Ig+
1236: Capturing subpattern count = 0
1.1.1.4 misho 1237: Max lookbehind = 1
1.1 misho 1238: No options
1239: First char = 'i'
1240: Need char = 's'
1241: Mississippi
1242: 0: iss
1243: 0+ issippi
1244: 0: iss
1245: 0+ ippi
1246: *** Failers
1247: No match
1248: Mississippi\A
1249: No match
1250:
1251: /(?<=[Ms])iss/Ig+
1252: Capturing subpattern count = 0
1.1.1.4 misho 1253: Max lookbehind = 1
1.1 misho 1254: No options
1255: First char = 'i'
1256: Need char = 's'
1257: Mississippi
1258: 0: iss
1259: 0+ issippi
1260: 0: iss
1261: 0+ ippi
1262:
1263: /(?<=[Ms])iss/IG+
1264: Capturing subpattern count = 0
1.1.1.4 misho 1265: Max lookbehind = 1
1.1 misho 1266: No options
1267: First char = 'i'
1268: Need char = 's'
1269: Mississippi
1270: 0: iss
1271: 0+ issippi
1272:
1273: /^iss/Ig+
1274: Capturing subpattern count = 0
1275: Options: anchored
1276: No first char
1277: No need char
1278: ississippi
1279: 0: iss
1280: 0+ issippi
1281:
1282: /.*iss/Ig+
1283: Capturing subpattern count = 0
1284: No options
1285: First char at start or follows newline
1286: Need char = 's'
1287: abciss\nxyzisspqr
1288: 0: abciss
1289: 0+ \x0axyzisspqr
1290: 0: xyziss
1291: 0+ pqr
1292:
1293: /.i./I+g
1294: Capturing subpattern count = 0
1295: No options
1296: No first char
1297: Need char = 'i'
1298: Mississippi
1299: 0: Mis
1300: 0+ sissippi
1301: 0: sis
1302: 0+ sippi
1303: 0: sip
1304: 0+ pi
1305: Mississippi\A
1306: 0: Mis
1307: 0+ sissippi
1308: 0: sis
1309: 0+ sippi
1310: 0: sip
1311: 0+ pi
1312: Missouri river
1313: 0: Mis
1314: 0+ souri river
1315: 0: ri
1316: 0+ river
1317: 0: riv
1318: 0+ er
1319: Missouri river\A
1320: 0: Mis
1321: 0+ souri river
1322:
1323: /^.is/I+g
1324: Capturing subpattern count = 0
1325: Options: anchored
1326: No first char
1327: No need char
1328: Mississippi
1329: 0: Mis
1330: 0+ sissippi
1331:
1332: /^ab\n/Ig+
1333: Capturing subpattern count = 0
1334: Contains explicit CR or LF match
1335: Options: anchored
1336: No first char
1337: No need char
1338: ab\nab\ncd
1339: 0: ab\x0a
1340: 0+ ab\x0acd
1341:
1342: /^ab\n/Img+
1343: Capturing subpattern count = 0
1344: Contains explicit CR or LF match
1345: Options: multiline
1346: First char at start or follows newline
1.1.1.2 misho 1347: Need char = \x0a
1.1 misho 1348: ab\nab\ncd
1349: 0: ab\x0a
1350: 0+ ab\x0acd
1351: 0: ab\x0a
1352: 0+ cd
1353:
1354: /abc/I
1355: Capturing subpattern count = 0
1356: No options
1357: First char = 'a'
1358: Need char = 'c'
1359:
1360: /abc|bac/I
1361: Capturing subpattern count = 0
1362: No options
1363: No first char
1364: Need char = 'c'
1365:
1366: /(abc|bac)/I
1367: Capturing subpattern count = 1
1368: No options
1369: No first char
1370: Need char = 'c'
1371:
1372: /(abc|(c|dc))/I
1373: Capturing subpattern count = 2
1374: No options
1375: No first char
1376: Need char = 'c'
1377:
1378: /(abc|(d|de)c)/I
1379: Capturing subpattern count = 2
1380: No options
1381: No first char
1382: Need char = 'c'
1383:
1384: /a*/I
1385: Capturing subpattern count = 0
1.1.1.5 ! misho 1386: May match empty string
1.1 misho 1387: No options
1388: No first char
1389: No need char
1390:
1391: /a+/I
1392: Capturing subpattern count = 0
1393: No options
1394: First char = 'a'
1395: No need char
1396:
1397: /(baa|a+)/I
1398: Capturing subpattern count = 1
1399: No options
1400: No first char
1401: Need char = 'a'
1402:
1403: /a{0,3}/I
1404: Capturing subpattern count = 0
1.1.1.5 ! misho 1405: May match empty string
1.1 misho 1406: No options
1407: No first char
1408: No need char
1409:
1410: /baa{3,}/I
1411: Capturing subpattern count = 0
1412: No options
1413: First char = 'b'
1414: Need char = 'a'
1415:
1416: /"([^\\"]+|\\.)*"/I
1417: Capturing subpattern count = 1
1418: No options
1419: First char = '"'
1420: Need char = '"'
1421:
1422: /(abc|ab[cd])/I
1423: Capturing subpattern count = 1
1424: No options
1425: First char = 'a'
1426: No need char
1427:
1428: /(a|.)/I
1429: Capturing subpattern count = 1
1430: No options
1431: No first char
1432: No need char
1433:
1434: /a|ba|\w/I
1435: Capturing subpattern count = 0
1436: No options
1437: No first char
1438: No need char
1439:
1440: /abc(?=pqr)/I
1441: Capturing subpattern count = 0
1442: No options
1443: First char = 'a'
1444: Need char = 'r'
1445:
1446: /...(?<=abc)/I
1447: Capturing subpattern count = 0
1.1.1.4 misho 1448: Max lookbehind = 3
1.1 misho 1449: No options
1450: No first char
1451: No need char
1452:
1453: /abc(?!pqr)/I
1454: Capturing subpattern count = 0
1455: No options
1456: First char = 'a'
1457: Need char = 'c'
1458:
1459: /ab./I
1460: Capturing subpattern count = 0
1461: No options
1462: First char = 'a'
1463: Need char = 'b'
1464:
1465: /ab[xyz]/I
1466: Capturing subpattern count = 0
1467: No options
1468: First char = 'a'
1469: Need char = 'b'
1470:
1471: /abc*/I
1472: Capturing subpattern count = 0
1473: No options
1474: First char = 'a'
1475: Need char = 'b'
1476:
1477: /ab.c*/I
1478: Capturing subpattern count = 0
1479: No options
1480: First char = 'a'
1481: Need char = 'b'
1482:
1483: /a.c*/I
1484: Capturing subpattern count = 0
1485: No options
1486: First char = 'a'
1487: No need char
1488:
1489: /.c*/I
1490: Capturing subpattern count = 0
1491: No options
1492: No first char
1493: No need char
1494:
1495: /ac*/I
1496: Capturing subpattern count = 0
1497: No options
1498: First char = 'a'
1499: No need char
1500:
1501: /(a.c*|b.c*)/I
1502: Capturing subpattern count = 1
1503: No options
1504: No first char
1505: No need char
1506:
1507: /a.c*|aba/I
1508: Capturing subpattern count = 0
1509: No options
1510: First char = 'a'
1511: No need char
1512:
1513: /.+a/I
1514: Capturing subpattern count = 0
1515: No options
1516: No first char
1517: Need char = 'a'
1518:
1519: /(?=abcda)a.*/I
1520: Capturing subpattern count = 0
1521: No options
1522: First char = 'a'
1523: Need char = 'a'
1524:
1525: /(?=a)a.*/I
1526: Capturing subpattern count = 0
1527: No options
1528: First char = 'a'
1529: No need char
1530:
1531: /a(b)*/I
1532: Capturing subpattern count = 1
1533: No options
1534: First char = 'a'
1535: No need char
1536:
1537: /a\d*/I
1538: Capturing subpattern count = 0
1539: No options
1540: First char = 'a'
1541: No need char
1542:
1543: /ab\d*/I
1544: Capturing subpattern count = 0
1545: No options
1546: First char = 'a'
1547: Need char = 'b'
1548:
1549: /a(\d)*/I
1550: Capturing subpattern count = 1
1551: No options
1552: First char = 'a'
1553: No need char
1554:
1555: /abcde{0,0}/I
1556: Capturing subpattern count = 0
1557: No options
1558: First char = 'a'
1559: Need char = 'd'
1560:
1561: /ab\d+/I
1562: Capturing subpattern count = 0
1563: No options
1564: First char = 'a'
1565: Need char = 'b'
1566:
1567: /a(?(1)b)(.)/I
1568: Capturing subpattern count = 1
1569: No options
1570: First char = 'a'
1571: No need char
1572:
1573: /a(?(1)bag|big)(.)/I
1574: Capturing subpattern count = 1
1575: No options
1576: First char = 'a'
1577: Need char = 'g'
1578:
1579: /a(?(1)bag|big)*(.)/I
1580: Capturing subpattern count = 1
1581: No options
1582: First char = 'a'
1583: No need char
1584:
1585: /a(?(1)bag|big)+(.)/I
1586: Capturing subpattern count = 1
1587: No options
1588: First char = 'a'
1589: Need char = 'g'
1590:
1591: /a(?(1)b..|b..)(.)/I
1592: Capturing subpattern count = 1
1593: No options
1594: First char = 'a'
1595: Need char = 'b'
1596:
1597: /ab\d{0}e/I
1598: Capturing subpattern count = 0
1599: No options
1600: First char = 'a'
1601: Need char = 'e'
1602:
1603: /a?b?/I
1604: Capturing subpattern count = 0
1.1.1.5 ! misho 1605: May match empty string
1.1 misho 1606: No options
1607: No first char
1608: No need char
1609: a
1610: 0: a
1611: b
1612: 0: b
1613: ab
1614: 0: ab
1615: \
1616: 0:
1617: *** Failers
1618: 0:
1619: \N
1620: No match
1621:
1622: /|-/I
1623: Capturing subpattern count = 0
1.1.1.5 ! misho 1624: May match empty string
1.1 misho 1625: No options
1626: No first char
1627: No need char
1628: abcd
1629: 0:
1630: -abc
1631: 0:
1632: \Nab-c
1633: 0: -
1634: *** Failers
1635: 0:
1636: \Nabc
1637: No match
1638:
1639: /^.?abcd/IS
1640: Capturing subpattern count = 0
1641: Options: anchored
1642: No first char
1643: Need char = 'd'
1644: Subject length lower bound = 4
1645: No set of starting bytes
1646:
1647: /\( # ( at start
1648: (?: # Non-capturing bracket
1649: (?>[^()]+) # Either a sequence of non-brackets (no backtracking)
1650: | # Or
1651: (?R) # Recurse - i.e. nested bracketed string
1652: )* # Zero or more contents
1653: \) # Closing )
1654: /Ix
1655: Capturing subpattern count = 0
1656: Options: extended
1657: First char = '('
1658: Need char = ')'
1659: (abcd)
1660: 0: (abcd)
1661: (abcd)xyz
1662: 0: (abcd)
1663: xyz(abcd)
1664: 0: (abcd)
1665: (ab(xy)cd)pqr
1666: 0: (ab(xy)cd)
1667: (ab(xycd)pqr
1668: 0: (xycd)
1669: () abc ()
1670: 0: ()
1671: 12(abcde(fsh)xyz(foo(bar))lmno)89
1672: 0: (abcde(fsh)xyz(foo(bar))lmno)
1673: *** Failers
1674: No match
1675: abcd
1676: No match
1677: abcd)
1678: No match
1679: (abcd
1680: No match
1681:
1682: /\( ( (?>[^()]+) | (?R) )* \) /Ixg
1683: Capturing subpattern count = 1
1684: Options: extended
1685: First char = '('
1686: Need char = ')'
1687: (ab(xy)cd)pqr
1688: 0: (ab(xy)cd)
1689: 1: cd
1690: 1(abcd)(x(y)z)pqr
1691: 0: (abcd)
1692: 1: abcd
1693: 0: (x(y)z)
1694: 1: z
1695:
1696: /\( (?: (?>[^()]+) | (?R) ) \) /Ix
1697: Capturing subpattern count = 0
1698: Options: extended
1699: First char = '('
1700: Need char = ')'
1701: (abcd)
1702: 0: (abcd)
1703: (ab(xy)cd)
1704: 0: (xy)
1705: (a(b(c)d)e)
1706: 0: (c)
1707: ((ab))
1708: 0: ((ab))
1709: *** Failers
1710: No match
1711: ()
1712: No match
1713:
1714: /\( (?: (?>[^()]+) | (?R) )? \) /Ix
1715: Capturing subpattern count = 0
1716: Options: extended
1717: First char = '('
1718: Need char = ')'
1719: ()
1720: 0: ()
1721: 12(abcde(fsh)xyz(foo(bar))lmno)89
1722: 0: (fsh)
1723:
1724: /\( ( (?>[^()]+) | (?R) )* \) /Ix
1725: Capturing subpattern count = 1
1726: Options: extended
1727: First char = '('
1728: Need char = ')'
1729: (ab(xy)cd)
1730: 0: (ab(xy)cd)
1731: 1: cd
1732:
1733: /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1734: Capturing subpattern count = 2
1735: Options: extended
1736: First char = '('
1737: Need char = ')'
1738: (ab(xy)cd)
1739: 0: (ab(xy)cd)
1740: 1: ab(xy)cd
1741: 2: cd
1742:
1743: /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1744: Capturing subpattern count = 3
1745: Options: extended
1746: First char = '('
1747: Need char = ')'
1748: (ab(xy)cd)
1749: 0: (ab(xy)cd)
1750: 1: <unset>
1751: 2: ab(xy)cd
1752: 3: cd
1753: (123ab(xy)cd)
1754: 0: (123ab(xy)cd)
1755: 1: 123
1756: 2: ab(xy)cd
1757: 3: cd
1758:
1759: /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1760: Capturing subpattern count = 3
1761: Options: extended
1762: First char = '('
1763: Need char = ')'
1764: (ab(xy)cd)
1765: 0: (ab(xy)cd)
1766: 1: ab(xy)cd
1767: 2: <unset>
1768: 3: cd
1769: (123ab(xy)cd)
1770: 0: (123ab(xy)cd)
1771: 1: 123ab(xy)cd
1772: 2: 123
1773: 3: cd
1774:
1775: /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1776: Capturing subpattern count = 11
1777: Options: extended
1778: First char = '('
1779: Need char = ')'
1780: (ab(xy)cd)
1781: 0: (ab(xy)cd)
1782: 1: ab(xy)cd
1783: 2: ab(xy)cd
1784: 3: ab(xy)cd
1785: 4: ab(xy)cd
1786: 5: ab(xy)cd
1787: 6: ab(xy)cd
1788: 7: ab(xy)cd
1789: 8: ab(xy)cd
1790: 9: ab(xy)cd
1791: 10: ab(xy)cd
1792: 11: cd
1793:
1794: /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1795: Capturing subpattern count = 3
1796: Options: extended
1797: First char = '('
1798: Need char = ')'
1799: (abcd(xyz<p>qrs)123)
1800: 0: (abcd(xyz<p>qrs)123)
1801: 1: abcd(xyz<p>qrs)123
1802: 2: 123
1803:
1804: /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1805: Capturing subpattern count = 3
1806: Options: extended
1807: First char = '('
1808: Need char = ')'
1809: (ab(cd)ef)
1810: 0: (ab(cd)ef)
1811: 1: ab(cd)ef
1812: 2: ef
1813: 3: (cd)
1814: (ab(cd(ef)gh)ij)
1815: 0: (ab(cd(ef)gh)ij)
1816: 1: ab(cd(ef)gh)ij
1817: 2: ij
1818: 3: (cd(ef)gh)
1819:
1820: /^[[:alnum:]]/DZ
1821: ------------------------------------------------------------------
1822: Bra
1823: ^
1824: [0-9A-Za-z]
1825: Ket
1826: End
1827: ------------------------------------------------------------------
1828: Capturing subpattern count = 0
1829: Options: anchored
1830: No first char
1831: No need char
1832:
1833: /^[[:^alnum:]]/DZ
1834: ------------------------------------------------------------------
1835: Bra
1836: ^
1837: [\x00-/:-@[-`{-\xff] (neg)
1838: Ket
1839: End
1840: ------------------------------------------------------------------
1841: Capturing subpattern count = 0
1842: Options: anchored
1843: No first char
1844: No need char
1845:
1846: /^[[:alpha:]]/DZ
1847: ------------------------------------------------------------------
1848: Bra
1849: ^
1850: [A-Za-z]
1851: Ket
1852: End
1853: ------------------------------------------------------------------
1854: Capturing subpattern count = 0
1855: Options: anchored
1856: No first char
1857: No need char
1858:
1859: /^[[:^alpha:]]/DZ
1860: ------------------------------------------------------------------
1861: Bra
1862: ^
1863: [\x00-@[-`{-\xff] (neg)
1864: Ket
1865: End
1866: ------------------------------------------------------------------
1867: Capturing subpattern count = 0
1868: Options: anchored
1869: No first char
1870: No need char
1871:
1872: /[_[:alpha:]]/IS
1873: Capturing subpattern count = 0
1874: No options
1875: No first char
1876: No need char
1877: Subject length lower bound = 1
1878: 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
1879: _ 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
1880:
1881: /^[[:ascii:]]/DZ
1882: ------------------------------------------------------------------
1883: Bra
1884: ^
1885: [\x00-\x7f]
1886: Ket
1887: End
1888: ------------------------------------------------------------------
1889: Capturing subpattern count = 0
1890: Options: anchored
1891: No first char
1892: No need char
1893:
1894: /^[[:^ascii:]]/DZ
1895: ------------------------------------------------------------------
1896: Bra
1897: ^
1898: [\x80-\xff] (neg)
1899: Ket
1900: End
1901: ------------------------------------------------------------------
1902: Capturing subpattern count = 0
1903: Options: anchored
1904: No first char
1905: No need char
1906:
1907: /^[[:blank:]]/DZ
1908: ------------------------------------------------------------------
1909: Bra
1910: ^
1911: [\x09 ]
1912: Ket
1913: End
1914: ------------------------------------------------------------------
1915: Capturing subpattern count = 0
1916: Options: anchored
1917: No first char
1918: No need char
1919:
1920: /^[[:^blank:]]/DZ
1921: ------------------------------------------------------------------
1922: Bra
1923: ^
1924: [\x00-\x08\x0a-\x1f!-\xff] (neg)
1925: Ket
1926: End
1927: ------------------------------------------------------------------
1928: Capturing subpattern count = 0
1929: Options: anchored
1930: No first char
1931: No need char
1932:
1933: /[\n\x0b\x0c\x0d[:blank:]]/IS
1934: Capturing subpattern count = 0
1935: Contains explicit CR or LF match
1936: No options
1937: No first char
1938: No need char
1939: Subject length lower bound = 1
1940: Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1941:
1942: /^[[:cntrl:]]/DZ
1943: ------------------------------------------------------------------
1944: Bra
1945: ^
1946: [\x00-\x1f\x7f]
1947: Ket
1948: End
1949: ------------------------------------------------------------------
1950: Capturing subpattern count = 0
1951: Options: anchored
1952: No first char
1953: No need char
1954:
1955: /^[[:digit:]]/DZ
1956: ------------------------------------------------------------------
1957: Bra
1958: ^
1959: [0-9]
1960: Ket
1961: End
1962: ------------------------------------------------------------------
1963: Capturing subpattern count = 0
1964: Options: anchored
1965: No first char
1966: No need char
1967:
1968: /^[[:graph:]]/DZ
1969: ------------------------------------------------------------------
1970: Bra
1971: ^
1972: [!-~]
1973: Ket
1974: End
1975: ------------------------------------------------------------------
1976: Capturing subpattern count = 0
1977: Options: anchored
1978: No first char
1979: No need char
1980:
1981: /^[[:lower:]]/DZ
1982: ------------------------------------------------------------------
1983: Bra
1984: ^
1985: [a-z]
1986: Ket
1987: End
1988: ------------------------------------------------------------------
1989: Capturing subpattern count = 0
1990: Options: anchored
1991: No first char
1992: No need char
1993:
1994: /^[[:print:]]/DZ
1995: ------------------------------------------------------------------
1996: Bra
1997: ^
1998: [ -~]
1999: Ket
2000: End
2001: ------------------------------------------------------------------
2002: Capturing subpattern count = 0
2003: Options: anchored
2004: No first char
2005: No need char
2006:
2007: /^[[:punct:]]/DZ
2008: ------------------------------------------------------------------
2009: Bra
2010: ^
2011: [!-/:-@[-`{-~]
2012: Ket
2013: End
2014: ------------------------------------------------------------------
2015: Capturing subpattern count = 0
2016: Options: anchored
2017: No first char
2018: No need char
2019:
2020: /^[[:space:]]/DZ
2021: ------------------------------------------------------------------
2022: Bra
2023: ^
2024: [\x09-\x0d ]
2025: Ket
2026: End
2027: ------------------------------------------------------------------
2028: Capturing subpattern count = 0
2029: Options: anchored
2030: No first char
2031: No need char
2032:
2033: /^[[:upper:]]/DZ
2034: ------------------------------------------------------------------
2035: Bra
2036: ^
2037: [A-Z]
2038: Ket
2039: End
2040: ------------------------------------------------------------------
2041: Capturing subpattern count = 0
2042: Options: anchored
2043: No first char
2044: No need char
2045:
2046: /^[[:xdigit:]]/DZ
2047: ------------------------------------------------------------------
2048: Bra
2049: ^
2050: [0-9A-Fa-f]
2051: Ket
2052: End
2053: ------------------------------------------------------------------
2054: Capturing subpattern count = 0
2055: Options: anchored
2056: No first char
2057: No need char
2058:
2059: /^[[:word:]]/DZ
2060: ------------------------------------------------------------------
2061: Bra
2062: ^
2063: [0-9A-Z_a-z]
2064: Ket
2065: End
2066: ------------------------------------------------------------------
2067: Capturing subpattern count = 0
2068: Options: anchored
2069: No first char
2070: No need char
2071:
2072: /^[[:^cntrl:]]/DZ
2073: ------------------------------------------------------------------
2074: Bra
2075: ^
2076: [ -~\x80-\xff] (neg)
2077: Ket
2078: End
2079: ------------------------------------------------------------------
2080: Capturing subpattern count = 0
2081: Options: anchored
2082: No first char
2083: No need char
2084:
2085: /^[12[:^digit:]]/DZ
2086: ------------------------------------------------------------------
2087: Bra
2088: ^
2089: [\x00-/12:-\xff] (neg)
2090: Ket
2091: End
2092: ------------------------------------------------------------------
2093: Capturing subpattern count = 0
2094: Options: anchored
2095: No first char
2096: No need char
2097:
2098: /^[[:^blank:]]/DZ
2099: ------------------------------------------------------------------
2100: Bra
2101: ^
2102: [\x00-\x08\x0a-\x1f!-\xff] (neg)
2103: Ket
2104: End
2105: ------------------------------------------------------------------
2106: Capturing subpattern count = 0
2107: Options: anchored
2108: No first char
2109: No need char
2110:
2111: /[01[:alpha:]%]/DZ
2112: ------------------------------------------------------------------
2113: Bra
2114: [%01A-Za-z]
2115: Ket
2116: End
2117: ------------------------------------------------------------------
2118: Capturing subpattern count = 0
2119: No options
2120: No first char
2121: No need char
2122:
2123: /[[.ch.]]/I
2124: Failed: POSIX collating elements are not supported at offset 1
2125:
2126: /[[=ch=]]/I
2127: Failed: POSIX collating elements are not supported at offset 1
2128:
2129: /[[:rhubarb:]]/I
2130: Failed: unknown POSIX class name at offset 3
2131:
2132: /[[:upper:]]/Ii
2133: Capturing subpattern count = 0
2134: Options: caseless
2135: No first char
2136: No need char
2137: A
2138: 0: A
2139: a
2140: 0: a
2141:
2142: /[[:lower:]]/Ii
2143: Capturing subpattern count = 0
2144: Options: caseless
2145: No first char
2146: No need char
2147: A
2148: 0: A
2149: a
2150: 0: a
2151:
2152: /((?-i)[[:lower:]])[[:lower:]]/Ii
2153: Capturing subpattern count = 1
2154: Options: caseless
2155: No first char
2156: No need char
2157: ab
2158: 0: ab
2159: 1: a
2160: aB
2161: 0: aB
2162: 1: a
2163: *** Failers
2164: 0: ai
2165: 1: a
2166: Ab
2167: No match
2168: AB
2169: No match
2170:
2171: /[\200-\110]/I
2172: Failed: range out of order in character class at offset 9
2173:
2174: /^(?(0)f|b)oo/I
2175: Failed: invalid condition (?(0) at offset 6
2176:
2177: /This one's here because of the large output vector needed/I
2178: Capturing subpattern count = 0
2179: No options
2180: First char = 'T'
2181: Need char = 'd'
2182:
2183: /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2184: Capturing subpattern count = 271
2185: Max back reference = 270
2186: No options
2187: No first char
2188: No need char
2189: \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
2190: 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
2191: 1: 1
2192: 2: 2
2193: 3: 3
2194: 4: 4
2195: 5: 5
2196: 6: 6
2197: 7: 7
2198: 8: 8
2199: 9: 9
2200: 10: 10
2201: 11: 11
2202: 12: 12
2203: 13: 13
2204: 14: 14
2205: 15: 15
2206: 16: 16
2207: 17: 17
2208: 18: 18
2209: 19: 19
2210: 20: 20
2211: 21: 21
2212: 22: 22
2213: 23: 23
2214: 24: 24
2215: 25: 25
2216: 26: 26
2217: 27: 27
2218: 28: 28
2219: 29: 29
2220: 30: 30
2221: 31: 31
2222: 32: 32
2223: 33: 33
2224: 34: 34
2225: 35: 35
2226: 36: 36
2227: 37: 37
2228: 38: 38
2229: 39: 39
2230: 40: 40
2231: 41: 41
2232: 42: 42
2233: 43: 43
2234: 44: 44
2235: 45: 45
2236: 46: 46
2237: 47: 47
2238: 48: 48
2239: 49: 49
2240: 50: 50
2241: 51: 51
2242: 52: 52
2243: 53: 53
2244: 54: 54
2245: 55: 55
2246: 56: 56
2247: 57: 57
2248: 58: 58
2249: 59: 59
2250: 60: 60
2251: 61: 61
2252: 62: 62
2253: 63: 63
2254: 64: 64
2255: 65: 65
2256: 66: 66
2257: 67: 67
2258: 68: 68
2259: 69: 69
2260: 70: 70
2261: 71: 71
2262: 72: 72
2263: 73: 73
2264: 74: 74
2265: 75: 75
2266: 76: 76
2267: 77: 77
2268: 78: 78
2269: 79: 79
2270: 80: 80
2271: 81: 81
2272: 82: 82
2273: 83: 83
2274: 84: 84
2275: 85: 85
2276: 86: 86
2277: 87: 87
2278: 88: 88
2279: 89: 89
2280: 90: 90
2281: 91: 91
2282: 92: 92
2283: 93: 93
2284: 94: 94
2285: 95: 95
2286: 96: 96
2287: 97: 97
2288: 98: 98
2289: 99: 99
2290: 100: 100
2291: 101: 101
2292: 102: 102
2293: 103: 103
2294: 104: 104
2295: 105: 105
2296: 106: 106
2297: 107: 107
2298: 108: 108
2299: 109: 109
2300: 110: 110
2301: 111: 111
2302: 112: 112
2303: 113: 113
2304: 114: 114
2305: 115: 115
2306: 116: 116
2307: 117: 117
2308: 118: 118
2309: 119: 119
2310: 120: 120
2311: 121: 121
2312: 122: 122
2313: 123: 123
2314: 124: 124
2315: 125: 125
2316: 126: 126
2317: 127: 127
2318: 128: 128
2319: 129: 129
2320: 130: 130
2321: 131: 131
2322: 132: 132
2323: 133: 133
2324: 134: 134
2325: 135: 135
2326: 136: 136
2327: 137: 137
2328: 138: 138
2329: 139: 139
2330: 140: 140
2331: 141: 141
2332: 142: 142
2333: 143: 143
2334: 144: 144
2335: 145: 145
2336: 146: 146
2337: 147: 147
2338: 148: 148
2339: 149: 149
2340: 150: 150
2341: 151: 151
2342: 152: 152
2343: 153: 153
2344: 154: 154
2345: 155: 155
2346: 156: 156
2347: 157: 157
2348: 158: 158
2349: 159: 159
2350: 160: 160
2351: 161: 161
2352: 162: 162
2353: 163: 163
2354: 164: 164
2355: 165: 165
2356: 166: 166
2357: 167: 167
2358: 168: 168
2359: 169: 169
2360: 170: 170
2361: 171: 171
2362: 172: 172
2363: 173: 173
2364: 174: 174
2365: 175: 175
2366: 176: 176
2367: 177: 177
2368: 178: 178
2369: 179: 179
2370: 180: 180
2371: 181: 181
2372: 182: 182
2373: 183: 183
2374: 184: 184
2375: 185: 185
2376: 186: 186
2377: 187: 187
2378: 188: 188
2379: 189: 189
2380: 190: 190
2381: 191: 191
2382: 192: 192
2383: 193: 193
2384: 194: 194
2385: 195: 195
2386: 196: 196
2387: 197: 197
2388: 198: 198
2389: 199: 199
2390: 200: 200
2391: 201: 201
2392: 202: 202
2393: 203: 203
2394: 204: 204
2395: 205: 205
2396: 206: 206
2397: 207: 207
2398: 208: 208
2399: 209: 209
2400: 210: 210
2401: 211: 211
2402: 212: 212
2403: 213: 213
2404: 214: 214
2405: 215: 215
2406: 216: 216
2407: 217: 217
2408: 218: 218
2409: 219: 219
2410: 220: 220
2411: 221: 221
2412: 222: 222
2413: 223: 223
2414: 224: 224
2415: 225: 225
2416: 226: 226
2417: 227: 227
2418: 228: 228
2419: 229: 229
2420: 230: 230
2421: 231: 231
2422: 232: 232
2423: 233: 233
2424: 234: 234
2425: 235: 235
2426: 236: 236
2427: 237: 237
2428: 238: 238
2429: 239: 239
2430: 240: 240
2431: 241: 241
2432: 242: 242
2433: 243: 243
2434: 244: 244
2435: 245: 245
2436: 246: 246
2437: 247: 247
2438: 248: 248
2439: 249: 249
2440: 250: 250
2441: 251: 251
2442: 252: 252
2443: 253: 253
2444: 254: 254
2445: 255: 255
2446: 256: 256
2447: 257: 257
2448: 258: 258
2449: 259: 259
2450: 260: 260
2451: 261: 261
2452: 262: 262
2453: 263: 263
2454: 264: 264
2455: 265: 265
2456: 266: 266
2457: 267: 267
2458: 268: 268
2459: 269: 269
2460: 270: ABC
2461: 271: ABC
2462:
2463: /This one's here because Perl does this differently and PCRE can't at present/I
2464: Capturing subpattern count = 0
2465: No options
2466: First char = 'T'
2467: Need char = 't'
2468:
2469: /(main(O)?)+/I
2470: Capturing subpattern count = 2
2471: No options
2472: First char = 'm'
2473: Need char = 'n'
2474: mainmain
2475: 0: mainmain
2476: 1: main
2477: mainOmain
2478: 0: mainOmain
2479: 1: main
2480: 2: O
2481:
2482: /These are all cases where Perl does it differently (nested captures)/I
2483: Capturing subpattern count = 1
2484: No options
2485: First char = 'T'
2486: Need char = 's'
2487:
2488: /^(a(b)?)+$/I
2489: Capturing subpattern count = 2
2490: Options: anchored
2491: No first char
2492: No need char
2493: aba
2494: 0: aba
2495: 1: a
2496: 2: b
2497:
2498: /^(aa(bb)?)+$/I
2499: Capturing subpattern count = 2
2500: Options: anchored
2501: No first char
2502: No need char
2503: aabbaa
2504: 0: aabbaa
2505: 1: aa
2506: 2: bb
2507:
2508: /^(aa|aa(bb))+$/I
2509: Capturing subpattern count = 2
2510: Options: anchored
2511: No first char
2512: No need char
2513: aabbaa
2514: 0: aabbaa
2515: 1: aa
2516: 2: bb
2517:
2518: /^(aa(bb)??)+$/I
2519: Capturing subpattern count = 2
2520: Options: anchored
2521: No first char
2522: No need char
2523: aabbaa
2524: 0: aabbaa
2525: 1: aa
2526: 2: bb
2527:
2528: /^(?:aa(bb)?)+$/I
2529: Capturing subpattern count = 1
2530: Options: anchored
2531: No first char
2532: No need char
2533: aabbaa
2534: 0: aabbaa
2535: 1: bb
2536:
2537: /^(aa(b(b))?)+$/I
2538: Capturing subpattern count = 3
2539: Options: anchored
2540: No first char
2541: No need char
2542: aabbaa
2543: 0: aabbaa
2544: 1: aa
2545: 2: bb
2546: 3: b
2547:
2548: /^(?:aa(b(b))?)+$/I
2549: Capturing subpattern count = 2
2550: Options: anchored
2551: No first char
2552: No need char
2553: aabbaa
2554: 0: aabbaa
2555: 1: bb
2556: 2: b
2557:
2558: /^(?:aa(b(?:b))?)+$/I
2559: Capturing subpattern count = 1
2560: Options: anchored
2561: No first char
2562: No need char
2563: aabbaa
2564: 0: aabbaa
2565: 1: bb
2566:
2567: /^(?:aa(bb(?:b))?)+$/I
2568: Capturing subpattern count = 1
2569: Options: anchored
2570: No first char
2571: No need char
2572: aabbbaa
2573: 0: aabbbaa
2574: 1: bbb
2575:
2576: /^(?:aa(b(?:bb))?)+$/I
2577: Capturing subpattern count = 1
2578: Options: anchored
2579: No first char
2580: No need char
2581: aabbbaa
2582: 0: aabbbaa
2583: 1: bbb
2584:
2585: /^(?:aa(?:b(b))?)+$/I
2586: Capturing subpattern count = 1
2587: Options: anchored
2588: No first char
2589: No need char
2590: aabbaa
2591: 0: aabbaa
2592: 1: b
2593:
2594: /^(?:aa(?:b(bb))?)+$/I
2595: Capturing subpattern count = 1
2596: Options: anchored
2597: No first char
2598: No need char
2599: aabbbaa
2600: 0: aabbbaa
2601: 1: bb
2602:
2603: /^(aa(b(bb))?)+$/I
2604: Capturing subpattern count = 3
2605: Options: anchored
2606: No first char
2607: No need char
2608: aabbbaa
2609: 0: aabbbaa
2610: 1: aa
2611: 2: bbb
2612: 3: bb
2613:
2614: /^(aa(bb(bb))?)+$/I
2615: Capturing subpattern count = 3
2616: Options: anchored
2617: No first char
2618: No need char
2619: aabbbbaa
2620: 0: aabbbbaa
2621: 1: aa
2622: 2: bbbb
2623: 3: bb
2624:
2625: /--------------------------------------------------------------------/I
2626: Capturing subpattern count = 0
2627: No options
2628: First char = '-'
2629: Need char = '-'
2630:
2631: /#/IxDZ
2632: ------------------------------------------------------------------
2633: Bra
2634: Ket
2635: End
2636: ------------------------------------------------------------------
2637: Capturing subpattern count = 0
1.1.1.5 ! misho 2638: May match empty string
1.1 misho 2639: Options: extended
2640: No first char
2641: No need char
2642:
2643: /a#/IxDZ
2644: ------------------------------------------------------------------
2645: Bra
2646: a
2647: Ket
2648: End
2649: ------------------------------------------------------------------
2650: Capturing subpattern count = 0
2651: Options: extended
2652: First char = 'a'
2653: No need char
2654:
2655: /[\s]/DZ
2656: ------------------------------------------------------------------
2657: Bra
1.1.1.5 ! misho 2658: [\x09-\x0d ]
1.1 misho 2659: Ket
2660: End
2661: ------------------------------------------------------------------
2662: Capturing subpattern count = 0
2663: No options
2664: No first char
2665: No need char
2666:
2667: /[\S]/DZ
2668: ------------------------------------------------------------------
2669: Bra
1.1.1.5 ! misho 2670: [\x00-\x08\x0e-\x1f!-\xff] (neg)
1.1 misho 2671: Ket
2672: End
2673: ------------------------------------------------------------------
2674: Capturing subpattern count = 0
2675: No options
2676: No first char
2677: No need char
2678:
2679: /a(?i)b/DZ
2680: ------------------------------------------------------------------
2681: Bra
2682: a
2683: /i b
2684: Ket
2685: End
2686: ------------------------------------------------------------------
2687: Capturing subpattern count = 0
2688: No options
2689: First char = 'a'
2690: Need char = 'b' (caseless)
2691: ab
2692: 0: ab
2693: aB
2694: 0: aB
2695: *** Failers
2696: No match
2697: AB
2698: No match
2699:
2700: /(a(?i)b)/DZ
2701: ------------------------------------------------------------------
2702: Bra
2703: CBra 1
2704: a
2705: /i b
2706: Ket
2707: Ket
2708: End
2709: ------------------------------------------------------------------
2710: Capturing subpattern count = 1
2711: No options
2712: First char = 'a'
2713: Need char = 'b' (caseless)
2714: ab
2715: 0: ab
2716: 1: ab
2717: aB
2718: 0: aB
2719: 1: aB
2720: *** Failers
2721: No match
2722: AB
2723: No match
2724:
2725: / (?i)abc/IxDZ
2726: ------------------------------------------------------------------
2727: Bra
2728: /i abc
2729: Ket
2730: End
2731: ------------------------------------------------------------------
2732: Capturing subpattern count = 0
2733: Options: caseless extended
2734: First char = 'a' (caseless)
2735: Need char = 'c' (caseless)
2736:
2737: /#this is a comment
2738: (?i)abc/IxDZ
2739: ------------------------------------------------------------------
2740: Bra
2741: /i abc
2742: Ket
2743: End
2744: ------------------------------------------------------------------
2745: Capturing subpattern count = 0
2746: Options: caseless extended
2747: First char = 'a' (caseless)
2748: Need char = 'c' (caseless)
2749:
2750: /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2751: ------------------------------------------------------------------
2752: Bra
2753: 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2754: Ket
2755: End
2756: ------------------------------------------------------------------
2757: Capturing subpattern count = 0
2758: No options
2759: First char = '1'
2760: Need char = '0'
2761:
2762: /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2763: ------------------------------------------------------------------
2764: Bra
2765: 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2766: Ket
2767: End
2768: ------------------------------------------------------------------
2769: Capturing subpattern count = 0
2770: No options
2771: First char = '1'
2772: Need char = '0'
2773:
2774: /\Q\E/DZ
2775: ------------------------------------------------------------------
2776: Bra
2777: Ket
2778: End
2779: ------------------------------------------------------------------
2780: Capturing subpattern count = 0
1.1.1.5 ! misho 2781: May match empty string
1.1 misho 2782: No options
2783: No first char
2784: No need char
2785: \
2786: 0:
2787:
2788: /\Q\Ex/DZ
2789: ------------------------------------------------------------------
2790: Bra
2791: x
2792: Ket
2793: End
2794: ------------------------------------------------------------------
2795: Capturing subpattern count = 0
2796: No options
2797: First char = 'x'
2798: No need char
2799:
2800: / \Q\E/DZ
2801: ------------------------------------------------------------------
2802: Bra
2803:
2804: Ket
2805: End
2806: ------------------------------------------------------------------
2807: Capturing subpattern count = 0
2808: No options
2809: First char = ' '
2810: No need char
2811:
2812: /a\Q\E/DZ
2813: ------------------------------------------------------------------
2814: Bra
2815: a
2816: Ket
2817: End
2818: ------------------------------------------------------------------
2819: Capturing subpattern count = 0
2820: No options
2821: First char = 'a'
2822: No need char
2823: abc
2824: 0: a
2825: bca
2826: 0: a
2827: bac
2828: 0: a
2829:
2830: /a\Q\Eb/DZ
2831: ------------------------------------------------------------------
2832: Bra
2833: ab
2834: Ket
2835: End
2836: ------------------------------------------------------------------
2837: Capturing subpattern count = 0
2838: No options
2839: First char = 'a'
2840: Need char = 'b'
2841: abc
2842: 0: ab
2843:
2844: /\Q\Eabc/DZ
2845: ------------------------------------------------------------------
2846: Bra
2847: abc
2848: Ket
2849: End
2850: ------------------------------------------------------------------
2851: Capturing subpattern count = 0
2852: No options
2853: First char = 'a'
2854: Need char = 'c'
2855:
2856: /x*+\w/DZ
2857: ------------------------------------------------------------------
2858: Bra
2859: x*+
2860: \w
2861: Ket
2862: End
2863: ------------------------------------------------------------------
2864: Capturing subpattern count = 0
2865: No options
2866: No first char
2867: No need char
2868: *** Failers
2869: 0: F
2870: xxxxx
2871: No match
2872:
2873: /x?+/DZ
2874: ------------------------------------------------------------------
2875: Bra
2876: x?+
2877: Ket
2878: End
2879: ------------------------------------------------------------------
2880: Capturing subpattern count = 0
1.1.1.5 ! misho 2881: May match empty string
1.1 misho 2882: No options
2883: No first char
2884: No need char
2885:
2886: /x++/DZ
2887: ------------------------------------------------------------------
2888: Bra
2889: x++
2890: Ket
2891: End
2892: ------------------------------------------------------------------
2893: Capturing subpattern count = 0
2894: No options
2895: First char = 'x'
2896: No need char
2897:
1.1.1.5 ! misho 2898: /x{1,3}+/BZO
1.1 misho 2899: ------------------------------------------------------------------
2900: Bra
2901: x
1.1.1.5 ! misho 2902: x{0,2}+
1.1 misho 2903: Ket
1.1.1.5 ! misho 2904: End
! 2905: ------------------------------------------------------------------
! 2906:
! 2907: /x{1,3}+/BZOi
! 2908: ------------------------------------------------------------------
! 2909: Bra
! 2910: /i x
! 2911: /i x{0,2}+
! 2912: Ket
! 2913: End
! 2914: ------------------------------------------------------------------
! 2915:
! 2916: /[^x]{1,3}+/BZO
! 2917: ------------------------------------------------------------------
! 2918: Bra
! 2919: [^x]
! 2920: [^x]{0,2}+
! 2921: Ket
! 2922: End
! 2923: ------------------------------------------------------------------
! 2924:
! 2925: /[^x]{1,3}+/BZOi
! 2926: ------------------------------------------------------------------
! 2927: Bra
! 2928: /i [^x]
! 2929: /i [^x]{0,2}+
1.1 misho 2930: Ket
2931: End
2932: ------------------------------------------------------------------
2933:
2934: /(x)*+/DZ
2935: ------------------------------------------------------------------
2936: Bra
2937: Braposzero
2938: CBraPos 1
2939: x
2940: KetRpos
2941: Ket
2942: End
2943: ------------------------------------------------------------------
2944: Capturing subpattern count = 1
1.1.1.5 ! misho 2945: May match empty string
1.1 misho 2946: No options
2947: No first char
2948: No need char
2949:
2950: /^(\w++|\s++)*$/I
2951: Capturing subpattern count = 1
1.1.1.5 ! misho 2952: May match empty string
1.1 misho 2953: Options: anchored
2954: No first char
2955: No need char
2956: now is the time for all good men to come to the aid of the party
2957: 0: now is the time for all good men to come to the aid of the party
2958: 1: party
2959: *** Failers
2960: No match
2961: this is not a line with only words and spaces!
2962: No match
2963:
2964: /(\d++)(\w)/I
2965: Capturing subpattern count = 2
2966: No options
2967: No first char
2968: No need char
2969: 12345a
2970: 0: 12345a
2971: 1: 12345
2972: 2: a
2973: *** Failers
2974: No match
2975: 12345+
2976: No match
2977:
2978: /a++b/I
2979: Capturing subpattern count = 0
2980: No options
2981: First char = 'a'
2982: Need char = 'b'
2983: aaab
2984: 0: aaab
2985:
2986: /(a++b)/I
2987: Capturing subpattern count = 1
2988: No options
2989: First char = 'a'
2990: Need char = 'b'
2991: aaab
2992: 0: aaab
2993: 1: aaab
2994:
2995: /(a++)b/I
2996: Capturing subpattern count = 1
2997: No options
2998: First char = 'a'
2999: Need char = 'b'
3000: aaab
3001: 0: aaab
3002: 1: aaa
3003:
3004: /([^()]++|\([^()]*\))+/I
3005: Capturing subpattern count = 1
3006: No options
3007: No first char
3008: No need char
3009: ((abc(ade)ufh()()x
3010: 0: abc(ade)ufh()()x
3011: 1: x
3012:
3013: /\(([^()]++|\([^()]+\))+\)/I
3014: Capturing subpattern count = 1
3015: No options
3016: First char = '('
3017: Need char = ')'
3018: (abc)
3019: 0: (abc)
3020: 1: abc
3021: (abc(def)xyz)
3022: 0: (abc(def)xyz)
3023: 1: xyz
3024: *** Failers
3025: No match
3026: ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3027: No match
3028:
3029: /(abc){1,3}+/DZ
3030: ------------------------------------------------------------------
3031: Bra
3032: Once
3033: CBra 1
3034: abc
3035: Ket
3036: Brazero
3037: Bra
3038: CBra 1
3039: abc
3040: Ket
3041: Brazero
3042: CBra 1
3043: abc
3044: Ket
3045: Ket
3046: Ket
3047: Ket
3048: End
3049: ------------------------------------------------------------------
3050: Capturing subpattern count = 1
3051: No options
3052: First char = 'a'
3053: Need char = 'c'
3054:
3055: /a+?+/I
3056: Failed: nothing to repeat at offset 3
3057:
3058: /a{2,3}?+b/I
3059: Failed: nothing to repeat at offset 7
3060:
3061: /(?U)a+?+/I
3062: Failed: nothing to repeat at offset 7
3063:
3064: /a{2,3}?+b/IU
3065: Failed: nothing to repeat at offset 7
3066:
3067: /x(?U)a++b/DZ
3068: ------------------------------------------------------------------
3069: Bra
3070: x
3071: a++
3072: b
3073: Ket
3074: End
3075: ------------------------------------------------------------------
3076: Capturing subpattern count = 0
3077: No options
3078: First char = 'x'
3079: Need char = 'b'
3080: xaaaab
3081: 0: xaaaab
3082:
3083: /(?U)xa++b/DZ
3084: ------------------------------------------------------------------
3085: Bra
3086: x
3087: a++
3088: b
3089: Ket
3090: End
3091: ------------------------------------------------------------------
3092: Capturing subpattern count = 0
3093: Options: ungreedy
3094: First char = 'x'
3095: Need char = 'b'
3096: xaaaab
3097: 0: xaaaab
3098:
3099: /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3100: ------------------------------------------------------------------
3101: Bra
3102: ^
3103: CBra 1
3104: CBra 2
3105: a+
3106: Ket
3107: CBra 3
3108: [ab]+?
3109: Ket
3110: CBra 4
3111: [bc]+
3112: Ket
3113: CBra 5
1.1.1.5 ! misho 3114: \w*+
1.1 misho 3115: Ket
3116: Ket
3117: Ket
3118: End
3119: ------------------------------------------------------------------
3120: Capturing subpattern count = 5
3121: Options: anchored
3122: No first char
3123: No need char
3124:
3125: /^x(?U)a+b/DZ
3126: ------------------------------------------------------------------
3127: Bra
3128: ^
3129: x
3130: a++
3131: b
3132: Ket
3133: End
3134: ------------------------------------------------------------------
3135: Capturing subpattern count = 0
3136: Options: anchored
3137: No first char
3138: Need char = 'b'
3139:
3140: /^x(?U)(a+)b/DZ
3141: ------------------------------------------------------------------
3142: Bra
3143: ^
3144: x
3145: CBra 1
3146: a+?
3147: Ket
3148: b
3149: Ket
3150: End
3151: ------------------------------------------------------------------
3152: Capturing subpattern count = 1
3153: Options: anchored
3154: No first char
3155: Need char = 'b'
3156:
3157: /[.x.]/I
3158: Failed: POSIX collating elements are not supported at offset 0
3159:
3160: /[=x=]/I
3161: Failed: POSIX collating elements are not supported at offset 0
3162:
3163: /[:x:]/I
3164: Failed: POSIX named classes are supported only within a class at offset 0
3165:
3166: /\l/I
3167: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3168:
3169: /\L/I
3170: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3171:
3172: /\N{name}/I
3173: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3174:
3175: /\u/I
3176: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3177:
3178: /\U/I
3179: Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3180:
3181: /[/I
3182: Failed: missing terminating ] for character class at offset 1
3183:
3184: /[a-/I
3185: Failed: missing terminating ] for character class at offset 3
3186:
3187: /[[:space:]/I
3188: Failed: missing terminating ] for character class at offset 10
3189:
3190: /[\s]/IDZ
3191: ------------------------------------------------------------------
3192: Bra
1.1.1.5 ! misho 3193: [\x09-\x0d ]
1.1 misho 3194: Ket
3195: End
3196: ------------------------------------------------------------------
3197: Capturing subpattern count = 0
3198: No options
3199: No first char
3200: No need char
3201:
3202: /[[:space:]]/IDZ
3203: ------------------------------------------------------------------
3204: Bra
3205: [\x09-\x0d ]
3206: Ket
3207: End
3208: ------------------------------------------------------------------
3209: Capturing subpattern count = 0
3210: No options
3211: No first char
3212: No need char
3213:
3214: /[[:space:]abcde]/IDZ
3215: ------------------------------------------------------------------
3216: Bra
3217: [\x09-\x0d a-e]
3218: Ket
3219: End
3220: ------------------------------------------------------------------
3221: Capturing subpattern count = 0
3222: No options
3223: No first char
3224: No need char
3225:
3226: /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix
3227: Capturing subpattern count = 0
3228: Options: extended
3229: First char = '<'
3230: Need char = '>'
3231: <>
3232: 0: <>
3233: <abcd>
3234: 0: <abcd>
3235: <abc <123> hij>
3236: 0: <abc <123> hij>
3237: <abc <def> hij>
3238: 0: <def>
3239: <abc<>def>
3240: 0: <abc<>def>
3241: <abc<>
3242: 0: <>
3243: *** Failers
3244: No match
3245: <abc
3246: No match
3247:
3248: |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
3249: ------------------------------------------------------------------
3250: Bra
3251: 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
3252: \b
3253: Ket
3254: End
3255: ------------------------------------------------------------------
3256: Capturing subpattern count = 0
1.1.1.4 misho 3257: Max lookbehind = 1
1.1 misho 3258: No options
3259: First char = '8'
3260: Need char = 'X'
3261:
3262: |\$\<\.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
3263: ------------------------------------------------------------------
3264: Bra
3265: $<.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
3266: \b
3267: Ket
3268: End
3269: ------------------------------------------------------------------
3270: Capturing subpattern count = 0
1.1.1.4 misho 3271: Max lookbehind = 1
1.1 misho 3272: No options
3273: First char = '$'
3274: Need char = 'X'
3275:
3276: /(.*)\d+\1/I
3277: Capturing subpattern count = 1
3278: Max back reference = 1
3279: No options
3280: No first char
3281: No need char
3282:
3283: /(.*)\d+/I
3284: Capturing subpattern count = 1
3285: No options
3286: First char at start or follows newline
3287: No need char
3288:
3289: /(.*)\d+\1/Is
3290: Capturing subpattern count = 1
3291: Max back reference = 1
3292: Options: dotall
3293: No first char
3294: No need char
3295:
3296: /(.*)\d+/Is
3297: Capturing subpattern count = 1
3298: Options: anchored dotall
3299: No first char
3300: No need char
3301:
3302: /(.*(xyz))\d+\2/I
3303: Capturing subpattern count = 2
3304: Max back reference = 2
3305: No options
3306: First char at start or follows newline
3307: Need char = 'z'
3308:
3309: /((.*))\d+\1/I
3310: Capturing subpattern count = 2
3311: Max back reference = 1
3312: No options
3313: No first char
3314: No need char
3315: abc123bc
3316: 0: bc123bc
3317: 1: bc
3318: 2: bc
3319:
3320: /a[b]/I
3321: Capturing subpattern count = 0
3322: No options
3323: First char = 'a'
3324: Need char = 'b'
3325:
3326: /(?=a).*/I
3327: Capturing subpattern count = 0
1.1.1.5 ! misho 3328: May match empty string
1.1 misho 3329: No options
3330: First char = 'a'
3331: No need char
3332:
3333: /(?=abc).xyz/IiI
3334: Capturing subpattern count = 0
3335: Options: caseless
3336: First char = 'a' (caseless)
3337: Need char = 'z' (caseless)
3338:
3339: /(?=abc)(?i).xyz/I
3340: Capturing subpattern count = 0
3341: No options
3342: First char = 'a'
3343: Need char = 'z' (caseless)
3344:
3345: /(?=a)(?=b)/I
3346: Capturing subpattern count = 0
1.1.1.5 ! misho 3347: May match empty string
1.1 misho 3348: No options
3349: First char = 'a'
3350: No need char
3351:
3352: /(?=.)a/I
3353: Capturing subpattern count = 0
3354: No options
3355: First char = 'a'
3356: No need char
3357:
3358: /((?=abcda)a)/I
3359: Capturing subpattern count = 1
3360: No options
3361: First char = 'a'
3362: Need char = 'a'
3363:
3364: /((?=abcda)ab)/I
3365: Capturing subpattern count = 1
3366: No options
3367: First char = 'a'
3368: Need char = 'b'
3369:
3370: /()a/I
3371: Capturing subpattern count = 1
3372: No options
3373: No first char
3374: Need char = 'a'
3375:
3376: /(?(1)ab|ac)(.)/I
3377: Capturing subpattern count = 1
3378: No options
3379: First char = 'a'
3380: No need char
3381:
3382: /(?(1)abz|acz)(.)/I
3383: Capturing subpattern count = 1
3384: No options
3385: First char = 'a'
3386: Need char = 'z'
3387:
3388: /(?(1)abz)(.)/I
3389: Capturing subpattern count = 1
3390: No options
3391: No first char
3392: No need char
3393:
3394: /(?(1)abz)(1)23/I
3395: Capturing subpattern count = 1
3396: No options
3397: No first char
3398: Need char = '3'
3399:
3400: /(a)+/I
3401: Capturing subpattern count = 1
3402: No options
3403: First char = 'a'
3404: No need char
3405:
3406: /(a){2,3}/I
3407: Capturing subpattern count = 1
3408: No options
3409: First char = 'a'
3410: Need char = 'a'
3411:
3412: /(a)*/I
3413: Capturing subpattern count = 1
1.1.1.5 ! misho 3414: May match empty string
1.1 misho 3415: No options
3416: No first char
3417: No need char
3418:
3419: /[a]/I
3420: Capturing subpattern count = 0
3421: No options
3422: First char = 'a'
3423: No need char
3424:
3425: /[ab]/I
3426: Capturing subpattern count = 0
3427: No options
3428: No first char
3429: No need char
3430:
3431: /[ab]/IS
3432: Capturing subpattern count = 0
3433: No options
3434: No first char
3435: No need char
3436: Subject length lower bound = 1
3437: Starting byte set: a b
3438:
3439: /[^a]/I
3440: Capturing subpattern count = 0
3441: No options
3442: No first char
3443: No need char
3444:
3445: /\d456/I
3446: Capturing subpattern count = 0
3447: No options
3448: No first char
3449: Need char = '6'
3450:
3451: /\d456/IS
3452: Capturing subpattern count = 0
3453: No options
3454: No first char
3455: Need char = '6'
3456: Subject length lower bound = 4
3457: Starting byte set: 0 1 2 3 4 5 6 7 8 9
3458:
3459: /a^b/I
3460: Capturing subpattern count = 0
3461: No options
3462: First char = 'a'
3463: Need char = 'b'
3464:
3465: /^a/Im
3466: Capturing subpattern count = 0
3467: Options: multiline
3468: First char at start or follows newline
3469: Need char = 'a'
3470: abcde
3471: 0: a
3472: xy\nabc
3473: 0: a
3474: *** Failers
3475: No match
3476: xyabc
3477: No match
3478:
3479: /c|abc/I
3480: Capturing subpattern count = 0
3481: No options
3482: No first char
3483: Need char = 'c'
3484:
3485: /(?i)[ab]/IS
3486: Capturing subpattern count = 0
3487: Options: caseless
3488: No first char
3489: No need char
3490: Subject length lower bound = 1
3491: Starting byte set: A B a b
3492:
3493: /[ab](?i)cd/IS
3494: Capturing subpattern count = 0
3495: No options
3496: No first char
3497: Need char = 'd' (caseless)
3498: Subject length lower bound = 3
3499: Starting byte set: a b
3500:
3501: /abc(?C)def/I
3502: Capturing subpattern count = 0
3503: No options
3504: First char = 'a'
3505: Need char = 'f'
3506: abcdef
3507: --->abcdef
3508: 0 ^ ^ d
3509: 0: abcdef
3510: 1234abcdef
3511: --->1234abcdef
3512: 0 ^ ^ d
3513: 0: abcdef
3514: *** Failers
3515: No match
3516: abcxyz
3517: No match
3518: abcxyzf
3519: --->abcxyzf
3520: 0 ^ ^ d
3521: No match
3522:
3523: /abc(?C)de(?C1)f/I
3524: Capturing subpattern count = 0
3525: No options
3526: First char = 'a'
3527: Need char = 'f'
3528: 123abcdef
3529: --->123abcdef
3530: 0 ^ ^ d
3531: 1 ^ ^ f
3532: 0: abcdef
3533:
3534: /(?C1)\dabc(?C2)def/IS
3535: Capturing subpattern count = 0
3536: No options
3537: No first char
3538: Need char = 'f'
3539: Subject length lower bound = 7
3540: Starting byte set: 0 1 2 3 4 5 6 7 8 9
3541: 1234abcdef
3542: --->1234abcdef
3543: 1 ^ \d
3544: 1 ^ \d
3545: 1 ^ \d
3546: 1 ^ \d
3547: 2 ^ ^ d
3548: 0: 4abcdef
3549: *** Failers
3550: No match
3551: abcdef
3552: No match
3553:
3554: /(?C1)\dabc(?C2)def/ISS
3555: Capturing subpattern count = 0
3556: No options
3557: No first char
3558: Need char = 'f'
3559: 1234abcdef
3560: --->1234abcdef
3561: 1 ^ \d
3562: 1 ^ \d
3563: 1 ^ \d
3564: 1 ^ \d
3565: 2 ^ ^ d
3566: 0: 4abcdef
3567: *** Failers
3568: No match
3569: abcdef
3570: --->abcdef
3571: 1 ^ \d
3572: 1 ^ \d
3573: 1 ^ \d
3574: 1 ^ \d
3575: 1 ^ \d
3576: 1 ^ \d
3577: No match
3578:
3579: /(?C255)ab/I
3580: Capturing subpattern count = 0
3581: No options
3582: First char = 'a'
3583: Need char = 'b'
3584:
3585: /(?C256)ab/I
3586: Failed: number after (?C is > 255 at offset 6
3587:
3588: /(?Cab)xx/I
3589: Failed: closing ) for (?C expected at offset 3
3590:
3591: /(?C12vr)x/I
3592: Failed: closing ) for (?C expected at offset 5
3593:
3594: /abc(?C)def/I
3595: Capturing subpattern count = 0
3596: No options
3597: First char = 'a'
3598: Need char = 'f'
3599: *** Failers
3600: No match
3601: \x83\x0\x61bcdef
3602: --->\x83\x00abcdef
3603: 0 ^ ^ d
3604: 0: abcdef
3605:
3606: /(abc)(?C)de(?C1)f/I
3607: Capturing subpattern count = 1
3608: No options
3609: First char = 'a'
3610: Need char = 'f'
3611: 123abcdef
3612: --->123abcdef
3613: 0 ^ ^ d
3614: 1 ^ ^ f
3615: 0: abcdef
3616: 1: abc
3617: 123abcdef\C+
3618: Callout 0: last capture = 1
3619: 0: <unset>
3620: 1: abc
3621: --->123abcdef
3622: ^ ^ d
3623: Callout 1: last capture = 1
3624: 0: <unset>
3625: 1: abc
3626: --->123abcdef
3627: ^ ^ f
3628: 0: abcdef
3629: 1: abc
3630: 123abcdef\C-
3631: 0: abcdef
3632: 1: abc
3633: *** Failers
3634: No match
3635: 123abcdef\C!1
3636: --->123abcdef
3637: 0 ^ ^ d
3638: 1 ^ ^ f
3639: No match
3640:
3641: /(?C0)(abc(?C1))*/I
3642: Capturing subpattern count = 1
1.1.1.5 ! misho 3643: May match empty string
1.1 misho 3644: No options
3645: No first char
3646: No need char
3647: abcabcabc
3648: --->abcabcabc
3649: 0 ^ (abc(?C1))*
3650: 1 ^ ^ )
3651: 1 ^ ^ )
3652: 1 ^ ^ )
3653: 0: abcabcabc
3654: 1: abc
3655: abcabc\C!1!3
3656: --->abcabc
3657: 0 ^ (abc(?C1))*
3658: 1 ^ ^ )
3659: 1 ^ ^ )
3660: 0: abcabc
3661: 1: abc
3662: *** Failers
3663: --->*** Failers
3664: 0 ^ (abc(?C1))*
3665: 0:
3666: abcabcabc\C!1!3
3667: --->abcabcabc
3668: 0 ^ (abc(?C1))*
3669: 1 ^ ^ )
3670: 1 ^ ^ )
3671: 1 ^ ^ )
3672: 0: abcabc
3673: 1: abc
3674:
3675: /(\d{3}(?C))*/I
3676: Capturing subpattern count = 1
1.1.1.5 ! misho 3677: May match empty string
1.1 misho 3678: No options
3679: No first char
3680: No need char
3681: 123\C+
3682: Callout 0: last capture = -1
3683: 0: <unset>
3684: --->123
3685: ^ ^ )
3686: 0: 123
3687: 1: 123
3688: 123456\C+
3689: Callout 0: last capture = -1
3690: 0: <unset>
3691: --->123456
3692: ^ ^ )
3693: Callout 0: last capture = 1
3694: 0: <unset>
3695: 1: 123
3696: --->123456
3697: ^ ^ )
3698: 0: 123456
3699: 1: 456
3700: 123456789\C+
3701: Callout 0: last capture = -1
3702: 0: <unset>
3703: --->123456789
3704: ^ ^ )
3705: Callout 0: last capture = 1
3706: 0: <unset>
3707: 1: 123
3708: --->123456789
3709: ^ ^ )
3710: Callout 0: last capture = 1
3711: 0: <unset>
3712: 1: 456
3713: --->123456789
3714: ^ ^ )
3715: 0: 123456789
3716: 1: 789
3717:
3718: /((xyz)(?C)p|(?C1)xyzabc)/I
3719: Capturing subpattern count = 2
3720: No options
3721: First char = 'x'
3722: No need char
3723: xyzabc\C+
3724: Callout 0: last capture = 2
3725: 0: <unset>
3726: 1: <unset>
3727: 2: xyz
3728: --->xyzabc
3729: ^ ^ p
3730: Callout 1: last capture = -1
3731: 0: <unset>
3732: --->xyzabc
3733: ^ x
3734: 0: xyzabc
3735: 1: xyzabc
3736:
3737: /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3738: Capturing subpattern count = 3
3739: No options
3740: First char = 'X'
3741: Need char = 'x'
3742: Xxyzabc\C+
3743: Callout 0: last capture = 3
3744: 0: <unset>
3745: 1: X
3746: 2: <unset>
3747: 3: xyz
3748: --->Xxyzabc
3749: ^ ^ p
3750: Callout 1: last capture = 1
3751: 0: <unset>
3752: 1: X
3753: --->Xxyzabc
3754: ^^ x
3755: 0: Xxyzabc
3756: 1: X
3757: 2: xyzabc
3758:
3759: /(?=(abc))(?C)abcdef/I
3760: Capturing subpattern count = 1
3761: No options
3762: First char = 'a'
3763: Need char = 'f'
3764: abcdef\C+
3765: Callout 0: last capture = 1
3766: 0: <unset>
3767: 1: abc
3768: --->abcdef
3769: ^ a
3770: 0: abcdef
3771: 1: abc
3772:
3773: /(?!(abc)(?C1)d)(?C2)abcxyz/I
3774: Capturing subpattern count = 1
3775: No options
3776: First char = 'a'
3777: Need char = 'z'
3778: abcxyz\C+
3779: Callout 1: last capture = 1
3780: 0: <unset>
3781: 1: abc
3782: --->abcxyz
3783: ^ ^ d
3784: Callout 2: last capture = -1
3785: 0: <unset>
3786: --->abcxyz
3787: ^ a
3788: 0: abcxyz
3789:
3790: /(?<=(abc)(?C))xyz/I
3791: Capturing subpattern count = 1
1.1.1.4 misho 3792: Max lookbehind = 3
1.1 misho 3793: No options
3794: First char = 'x'
3795: Need char = 'z'
3796: abcxyz\C+
3797: Callout 0: last capture = 1
3798: 0: <unset>
3799: 1: abc
3800: --->abcxyz
3801: ^ )
3802: 0: xyz
3803: 1: abc
3804:
3805: /a(b+)(c*)(?C1)/I
3806: Capturing subpattern count = 2
3807: No options
3808: First char = 'a'
3809: Need char = 'b'
3810: abbbbbccc\C*1
3811: --->abbbbbccc
3812: 1 ^ ^
3813: Callout data = 1
3814: No match
3815:
3816: /a(b+?)(c*?)(?C1)/I
3817: Capturing subpattern count = 2
3818: No options
3819: First char = 'a'
3820: Need char = 'b'
3821: abbbbbccc\C*1
3822: --->abbbbbccc
3823: 1 ^ ^
3824: Callout data = 1
3825: 1 ^ ^
3826: Callout data = 1
3827: 1 ^ ^
3828: Callout data = 1
3829: 1 ^ ^
3830: Callout data = 1
3831: 1 ^ ^
3832: Callout data = 1
3833: 1 ^ ^
3834: Callout data = 1
3835: 1 ^ ^
3836: Callout data = 1
3837: 1 ^ ^
3838: Callout data = 1
3839: No match
3840:
3841: /(?C)abc/I
3842: Capturing subpattern count = 0
3843: No options
3844: First char = 'a'
3845: Need char = 'c'
3846:
3847: /(?C)^abc/I
3848: Capturing subpattern count = 0
3849: Options: anchored
3850: No first char
3851: No need char
3852:
3853: /(?C)a|b/IS
3854: Capturing subpattern count = 0
3855: No options
3856: No first char
3857: No need char
3858: Subject length lower bound = 1
3859: Starting byte set: a b
3860:
3861: /(?R)/I
3862: Failed: recursive call could loop indefinitely at offset 3
3863:
3864: /(a|(?R))/I
3865: Failed: recursive call could loop indefinitely at offset 6
3866:
3867: /(ab|(bc|(de|(?R))))/I
3868: Failed: recursive call could loop indefinitely at offset 15
3869:
3870: /x(ab|(bc|(de|(?R))))/I
3871: Capturing subpattern count = 3
3872: No options
3873: First char = 'x'
3874: No need char
3875: xab
3876: 0: xab
3877: 1: ab
3878: xbc
3879: 0: xbc
3880: 1: bc
3881: 2: bc
3882: xde
3883: 0: xde
3884: 1: de
3885: 2: de
3886: 3: de
3887: xxab
3888: 0: xxab
3889: 1: xab
3890: 2: xab
3891: 3: xab
3892: xxxab
3893: 0: xxxab
3894: 1: xxab
3895: 2: xxab
3896: 3: xxab
3897: *** Failers
3898: No match
3899: xyab
3900: No match
3901:
3902: /(ab|(bc|(de|(?1))))/I
3903: Failed: recursive call could loop indefinitely at offset 15
3904:
3905: /x(ab|(bc|(de|(?1)x)x)x)/I
3906: Failed: recursive call could loop indefinitely at offset 16
3907:
3908: /^([^()]|\((?1)*\))*$/I
3909: Capturing subpattern count = 1
1.1.1.5 ! misho 3910: May match empty string
1.1 misho 3911: Options: anchored
3912: No first char
3913: No need char
3914: abc
3915: 0: abc
3916: 1: c
3917: a(b)c
3918: 0: a(b)c
3919: 1: c
3920: a(b(c))d
3921: 0: a(b(c))d
3922: 1: d
3923: *** Failers)
3924: No match
3925: a(b(c)d
3926: No match
3927:
3928: /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3929: Capturing subpattern count = 1
3930: Options: anchored
3931: No first char
3932: Need char = '<'
3933: >abc>123<xyz<
3934: 0: >abc>123<xyz<
3935: 1: 3
3936: >abc>1(2)3<xyz<
3937: 0: >abc>1(2)3<xyz<
3938: 1: 3
3939: >abc>(1(2)3)<xyz<
3940: 0: >abc>(1(2)3)<xyz<
3941: 1: (1(2)3)
3942:
3943: /(a(?1)b)/DZ
3944: ------------------------------------------------------------------
3945: Bra
3946: CBra 1
3947: a
3948: Recurse
3949: b
3950: Ket
3951: Ket
3952: End
3953: ------------------------------------------------------------------
3954: Capturing subpattern count = 1
3955: No options
3956: First char = 'a'
3957: Need char = 'b'
3958:
3959: /(a(?1)+b)/DZ
3960: ------------------------------------------------------------------
3961: Bra
3962: CBra 1
3963: a
3964: Once
3965: Recurse
3966: KetRmax
3967: b
3968: Ket
3969: Ket
3970: End
3971: ------------------------------------------------------------------
3972: Capturing subpattern count = 1
3973: No options
3974: First char = 'a'
3975: Need char = 'b'
3976:
3977: /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3978: Capturing subpattern count = 2
3979: Options: anchored
3980: No first char
3981: No need char
3982: 12
3983: 0: 12
3984: 1: 12
3985: (((2+2)*-3)-7)
3986: 0: (((2+2)*-3)-7)
3987: 1: (((2+2)*-3)-7)
3988: 2: -
3989: -12
3990: 0: -12
3991: 1: -12
3992: *** Failers
3993: No match
3994: ((2+2)*-3)-7)
3995: No match
3996:
3997: /^(x(y|(?1){2})z)/I
3998: Capturing subpattern count = 2
3999: Options: anchored
4000: No first char
4001: No need char
4002: xyz
4003: 0: xyz
4004: 1: xyz
4005: 2: y
4006: xxyzxyzz
4007: 0: xxyzxyzz
4008: 1: xxyzxyzz
4009: 2: xyzxyz
4010: *** Failers
4011: No match
4012: xxyzz
4013: No match
4014: xxyzxyzxyzz
4015: No match
4016:
4017: /((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix
4018: Capturing subpattern count = 2
4019: Options: extended
4020: First char = '<'
4021: Need char = '>'
4022: <>
4023: 0: <>
4024: 1: <>
4025: 2: <>
4026: <abcd>
4027: 0: <abcd>
4028: 1: <abcd>
4029: 2: <abcd>
4030: <abc <123> hij>
4031: 0: <abc <123> hij>
4032: 1: <abc <123> hij>
4033: 2: <abc <123> hij>
4034: <abc <def> hij>
4035: 0: <def>
4036: 1: <def>
4037: 2: <def>
4038: <abc<>def>
4039: 0: <abc<>def>
4040: 1: <abc<>def>
4041: 2: <abc<>def>
4042: <abc<>
4043: 0: <>
4044: 1: <>
4045: 2: <>
4046: *** Failers
4047: No match
4048: <abc
4049: No match
4050:
4051: /(?1)/I
4052: Failed: reference to non-existent subpattern at offset 3
4053:
4054: /((?2)(abc)/I
4055: Failed: missing ) at offset 10
4056:
4057: /^(abc)def(?1)/I
4058: Capturing subpattern count = 1
4059: Options: anchored
4060: No first char
4061: No need char
4062: abcdefabc
4063: 0: abcdefabc
4064: 1: abc
4065:
4066: /^(a|b|c)=(?1)+/I
4067: Capturing subpattern count = 1
4068: Options: anchored
4069: No first char
4070: No need char
4071: a=a
4072: 0: a=a
4073: 1: a
4074: a=b
4075: 0: a=b
4076: 1: a
4077: a=bc
4078: 0: a=bc
4079: 1: a
4080:
4081: /^(a|b|c)=((?1))+/I
4082: Capturing subpattern count = 2
4083: Options: anchored
4084: No first char
4085: No need char
4086: a=a
4087: 0: a=a
4088: 1: a
4089: 2: a
4090: a=b
4091: 0: a=b
4092: 1: a
4093: 2: b
4094: a=bc
4095: 0: a=bc
4096: 1: a
4097: 2: c
4098:
4099: /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4100: ------------------------------------------------------------------
4101: Bra
4102: a
4103: CBra 1
4104: b
4105: Alt
4106: c
4107: Ket
4108: d
4109: CBra 2
4110: e
4111: Ket
4112: Ket
4113: End
4114: ------------------------------------------------------------------
4115: Capturing subpattern count = 2
4116: Named capturing subpatterns:
4117: longername2 2
4118: name1 1
4119: No options
4120: First char = 'a'
4121: Need char = 'e'
4122: abde
4123: 0: abde
4124: 1: b
4125: 2: e
4126: acde
4127: 0: acde
4128: 1: c
4129: 2: e
4130:
4131: /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4132: ------------------------------------------------------------------
4133: Bra
4134: Bra
4135: a
4136: CBra 1
4137: c
4138: CBra 2
4139: d
4140: Ket
4141: Ket
4142: Ket
4143: CBra 3
4144: a
4145: Ket
4146: Ket
4147: End
4148: ------------------------------------------------------------------
4149: Capturing subpattern count = 3
4150: Named capturing subpatterns:
4151: a 3
4152: c 1
4153: d 2
4154: No options
4155: First char = 'a'
4156: Need char = 'a'
4157:
4158: /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4159: ------------------------------------------------------------------
4160: Bra
4161: CBra 1
4162: a
4163: Ket
4164: Any
4165: Any
4166: Any
4167: \1
4168: bbb
4169: Recurse
4170: d
4171: Ket
4172: End
4173: ------------------------------------------------------------------
4174: Capturing subpattern count = 1
4175: Max back reference = 1
4176: Named capturing subpatterns:
4177: a 1
4178: No options
4179: First char = 'a'
4180: Need char = 'd'
4181:
4182: /^\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
4183: Capturing subpattern count = 4
4184: Max back reference = 4
4185: Named capturing subpatterns:
4186: four 4
4187: one 1
4188: three 3
4189: two 2
1.1.1.5 ! misho 4190: May match empty string
1.1 misho 4191: Options: anchored caseless
4192: No first char
4193: No need char
4194: 1221
4195: 0: 1221
4196: 1: 1221
4197: 2: 1
4198: Satan, oscillate my metallic sonatas!
4199: 0: Satan, oscillate my metallic sonatas!
4200: 1: <unset>
4201: 2: <unset>
4202: 3: Satan, oscillate my metallic sonatas
4203: 4: S
4204: A man, a plan, a canal: Panama!
4205: 0: A man, a plan, a canal: Panama!
4206: 1: <unset>
4207: 2: <unset>
4208: 3: A man, a plan, a canal: Panama
4209: 4: A
4210: Able was I ere I saw Elba.
4211: 0: Able was I ere I saw Elba.
4212: 1: <unset>
4213: 2: <unset>
4214: 3: Able was I ere I saw Elba
4215: 4: A
4216: *** Failers
4217: No match
4218: The quick brown fox
4219: No match
4220:
4221: /((?(R)a|b))\1(?1)?/I
4222: Capturing subpattern count = 1
4223: Max back reference = 1
4224: No options
4225: No first char
4226: No need char
4227: bb
4228: 0: bb
4229: 1: b
4230: bbaa
4231: 0: bba
4232: 1: b
4233:
4234: /(.*)a/Is
4235: Capturing subpattern count = 1
4236: Options: anchored dotall
4237: No first char
4238: Need char = 'a'
4239:
4240: /(.*)a\1/Is
4241: Capturing subpattern count = 1
4242: Max back reference = 1
4243: Options: dotall
4244: No first char
4245: Need char = 'a'
4246:
4247: /(.*)a(b)\2/Is
4248: Capturing subpattern count = 2
4249: Max back reference = 2
4250: Options: anchored dotall
4251: No first char
4252: Need char = 'b'
4253:
4254: /((.*)a|(.*)b)z/Is
4255: Capturing subpattern count = 3
4256: Options: anchored dotall
4257: No first char
4258: Need char = 'z'
4259:
4260: /((.*)a|(.*)b)z\1/Is
4261: Capturing subpattern count = 3
4262: Max back reference = 1
4263: Options: dotall
4264: No first char
4265: Need char = 'z'
4266:
4267: /((.*)a|(.*)b)z\2/Is
4268: Capturing subpattern count = 3
4269: Max back reference = 2
4270: Options: dotall
4271: No first char
4272: Need char = 'z'
4273:
4274: /((.*)a|(.*)b)z\3/Is
4275: Capturing subpattern count = 3
4276: Max back reference = 3
4277: Options: dotall
4278: No first char
4279: Need char = 'z'
4280:
4281: /((.*)a|^(.*)b)z\3/Is
4282: Capturing subpattern count = 3
4283: Max back reference = 3
4284: Options: anchored dotall
4285: No first char
4286: Need char = 'z'
4287:
4288: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4289: Capturing subpattern count = 31
1.1.1.5 ! misho 4290: May match empty string
1.1 misho 4291: Options: anchored dotall
4292: No first char
4293: No need char
4294:
4295: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4296: Capturing subpattern count = 31
4297: Max back reference = 31
1.1.1.5 ! misho 4298: May match empty string
1.1 misho 4299: Options: dotall
4300: No first char
4301: No need char
4302:
4303: /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4304: Capturing subpattern count = 32
4305: Max back reference = 32
1.1.1.5 ! misho 4306: May match empty string
1.1 misho 4307: Options: dotall
4308: No first char
4309: No need char
4310:
4311: /(a)(bc)/INDZ
4312: ------------------------------------------------------------------
4313: Bra
4314: Bra
4315: a
4316: Ket
4317: Bra
4318: bc
4319: Ket
4320: Ket
4321: End
4322: ------------------------------------------------------------------
4323: Capturing subpattern count = 0
4324: Options: no_auto_capture
4325: First char = 'a'
4326: Need char = 'c'
4327: abc
4328: 0: abc
4329:
4330: /(?P<one>a)(bc)/INDZ
4331: ------------------------------------------------------------------
4332: Bra
4333: CBra 1
4334: a
4335: Ket
4336: Bra
4337: bc
4338: Ket
4339: Ket
4340: End
4341: ------------------------------------------------------------------
4342: Capturing subpattern count = 1
4343: Named capturing subpatterns:
4344: one 1
4345: Options: no_auto_capture
4346: First char = 'a'
4347: Need char = 'c'
4348: abc
4349: 0: abc
4350: 1: a
4351:
4352: /(a)(?P<named>bc)/INDZ
4353: ------------------------------------------------------------------
4354: Bra
4355: Bra
4356: a
4357: Ket
4358: CBra 1
4359: bc
4360: Ket
4361: Ket
4362: End
4363: ------------------------------------------------------------------
4364: Capturing subpattern count = 1
4365: Named capturing subpatterns:
4366: named 1
4367: Options: no_auto_capture
4368: First char = 'a'
4369: Need char = 'c'
4370:
4371: /(a+)*zz/I
4372: Capturing subpattern count = 1
4373: No options
4374: No first char
4375: Need char = 'z'
4376: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4377: Minimum match() limit = 8
4378: Minimum match() recursion limit = 6
4379: 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4380: 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4381: aaaaaaaaaaaaaz\M
4382: Minimum match() limit = 32768
1.1.1.4 misho 4383: Minimum match() recursion limit = 29
1.1 misho 4384: No match
4385:
4386: /(aaa(?C1)bbb|ab)/I
4387: Capturing subpattern count = 1
4388: No options
4389: First char = 'a'
4390: Need char = 'b'
4391: aaabbb
4392: --->aaabbb
4393: 1 ^ ^ b
4394: 0: aaabbb
4395: 1: aaabbb
4396: aaabbb\C*0
4397: --->aaabbb
4398: 1 ^ ^ b
4399: 0: aaabbb
4400: 1: aaabbb
4401: aaabbb\C*1
4402: --->aaabbb
4403: 1 ^ ^ b
4404: Callout data = 1
4405: 0: ab
4406: 1: ab
4407: aaabbb\C*-1
4408: --->aaabbb
4409: 1 ^ ^ b
4410: Callout data = -1
4411: No match
4412:
4413: /ab(?P<one>cd)ef(?P<two>gh)/I
4414: Capturing subpattern count = 2
4415: Named capturing subpatterns:
4416: one 1
4417: two 2
4418: No options
4419: First char = 'a'
4420: Need char = 'h'
4421: abcdefgh
4422: 0: abcdefgh
4423: 1: cd
4424: 2: gh
4425: abcdefgh\C1\Gtwo
4426: 0: abcdefgh
4427: 1: cd
4428: 2: gh
4429: 1C cd (2)
4430: G gh (2) two
4431: abcdefgh\Cone\Ctwo
4432: 0: abcdefgh
4433: 1: cd
4434: 2: gh
4435: C cd (2) one
4436: C gh (2) two
4437: abcdefgh\Cthree
4438: no parentheses with name "three"
4439: 0: abcdefgh
4440: 1: cd
4441: 2: gh
4442: copy substring three failed -7
4443:
4444: /(?P<Tes>)(?P<Test>)/DZ
4445: ------------------------------------------------------------------
4446: Bra
4447: CBra 1
4448: Ket
4449: CBra 2
4450: Ket
4451: Ket
4452: End
4453: ------------------------------------------------------------------
4454: Capturing subpattern count = 2
4455: Named capturing subpatterns:
4456: Tes 1
4457: Test 2
1.1.1.5 ! misho 4458: May match empty string
1.1 misho 4459: No options
4460: No first char
4461: No need char
4462:
4463: /(?P<Test>)(?P<Tes>)/DZ
4464: ------------------------------------------------------------------
4465: Bra
4466: CBra 1
4467: Ket
4468: CBra 2
4469: Ket
4470: Ket
4471: End
4472: ------------------------------------------------------------------
4473: Capturing subpattern count = 2
4474: Named capturing subpatterns:
4475: Tes 2
4476: Test 1
1.1.1.5 ! misho 4477: May match empty string
1.1 misho 4478: No options
4479: No first char
4480: No need char
4481:
4482: /(?P<Z>zz)(?P<A>aa)/I
4483: Capturing subpattern count = 2
4484: Named capturing subpatterns:
4485: A 2
4486: Z 1
4487: No options
4488: First char = 'z'
4489: Need char = 'a'
4490: zzaa\CZ
4491: 0: zzaa
4492: 1: zz
4493: 2: aa
4494: C zz (2) Z
4495: zzaa\CA
4496: 0: zzaa
4497: 1: zz
4498: 2: aa
4499: C aa (2) A
4500:
4501: /(?P<x>eks)(?P<x>eccs)/I
4502: Failed: two named subpatterns have the same name at offset 15
4503:
4504: /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
4505: Failed: two named subpatterns have the same name at offset 30
4506:
4507: "\[((?P<elem>\d+)(,(?P>elem))*)\]"I
4508: Capturing subpattern count = 3
4509: Named capturing subpatterns:
4510: elem 2
4511: No options
4512: First char = '['
4513: Need char = ']'
4514: [10,20,30,5,5,4,4,2,43,23,4234]
4515: 0: [10,20,30,5,5,4,4,2,43,23,4234]
4516: 1: 10,20,30,5,5,4,4,2,43,23,4234
4517: 2: 10
4518: 3: ,4234
4519: *** Failers
4520: No match
4521: []
4522: No match
4523:
4524: "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
4525: Capturing subpattern count = 3
4526: Named capturing subpatterns:
4527: elem 2
4528: No options
4529: First char = '['
4530: Need char = ']'
4531: [10,20,30,5,5,4,4,2,43,23,4234]
4532: 0: [10,20,30,5,5,4,4,2,43,23,4234]
4533: 1: 10,20,30,5,5,4,4,2,43,23,4234
4534: 2: 10
4535: 3: ,4234
4536: []
4537: 0: []
4538:
4539: /(a(b(?2)c))?/DZ
4540: ------------------------------------------------------------------
4541: Bra
4542: Brazero
4543: CBra 1
4544: a
4545: CBra 2
4546: b
4547: Recurse
4548: c
4549: Ket
4550: Ket
4551: Ket
4552: End
4553: ------------------------------------------------------------------
4554: Capturing subpattern count = 2
1.1.1.5 ! misho 4555: May match empty string
1.1 misho 4556: No options
4557: No first char
4558: No need char
4559:
4560: /(a(b(?2)c))*/DZ
4561: ------------------------------------------------------------------
4562: Bra
4563: Brazero
4564: CBra 1
4565: a
4566: CBra 2
4567: b
4568: Recurse
4569: c
4570: Ket
4571: KetRmax
4572: Ket
4573: End
4574: ------------------------------------------------------------------
4575: Capturing subpattern count = 2
1.1.1.5 ! misho 4576: May match empty string
1.1 misho 4577: No options
4578: No first char
4579: No need char
4580:
4581: /(a(b(?2)c)){0,2}/DZ
4582: ------------------------------------------------------------------
4583: Bra
4584: Brazero
4585: Bra
4586: CBra 1
4587: a
4588: CBra 2
4589: b
4590: Recurse
4591: c
4592: Ket
4593: Ket
4594: Brazero
4595: CBra 1
4596: a
4597: CBra 2
4598: b
4599: Recurse
4600: c
4601: Ket
4602: Ket
4603: Ket
4604: Ket
4605: End
4606: ------------------------------------------------------------------
4607: Capturing subpattern count = 2
1.1.1.5 ! misho 4608: May match empty string
1.1 misho 4609: No options
4610: No first char
4611: No need char
4612:
4613: /[ab]{1}+/DZ
4614: ------------------------------------------------------------------
4615: Bra
1.1.1.5 ! misho 4616: [ab]{1,1}+
1.1 misho 4617: Ket
4618: End
4619: ------------------------------------------------------------------
4620: Capturing subpattern count = 0
4621: No options
4622: No first char
4623: No need char
4624:
4625: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4626: Capturing subpattern count = 3
4627: Options: caseless
4628: No first char
4629: Need char = 'g' (caseless)
4630: Baby Bjorn Active Carrier - With free SHIPPING!!
4631: 0: Baby Bjorn Active Carrier - With free SHIPPING!!
4632: 1: Baby Bjorn Active Carrier - With free SHIPPING!!
4633:
4634: /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4635: Capturing subpattern count = 3
4636: Options: caseless
4637: No first char
4638: Need char = 'g' (caseless)
4639: Subject length lower bound = 8
4640: No set of starting bytes
4641: Baby Bjorn Active Carrier - With free SHIPPING!!
4642: 0: Baby Bjorn Active Carrier - With free SHIPPING!!
4643: 1: Baby Bjorn Active Carrier - With free SHIPPING!!
4644:
4645: /a*.*b/ISDZ
4646: ------------------------------------------------------------------
4647: Bra
4648: a*
4649: Any*
4650: b
4651: Ket
4652: End
4653: ------------------------------------------------------------------
4654: Capturing subpattern count = 0
4655: No options
4656: No first char
4657: Need char = 'b'
4658: Subject length lower bound = 1
4659: No set of starting bytes
4660:
4661: /(a|b)*.?c/ISDZ
4662: ------------------------------------------------------------------
4663: Bra
4664: Brazero
4665: CBra 1
4666: a
4667: Alt
4668: b
4669: KetRmax
4670: Any?
4671: c
4672: Ket
4673: End
4674: ------------------------------------------------------------------
4675: Capturing subpattern count = 1
4676: No options
4677: No first char
4678: Need char = 'c'
4679: Subject length lower bound = 1
4680: No set of starting bytes
4681:
4682: /abc(?C255)de(?C)f/DZ
4683: ------------------------------------------------------------------
4684: Bra
4685: abc
4686: Callout 255 10 1
4687: de
4688: Callout 0 16 1
4689: f
4690: Ket
4691: End
4692: ------------------------------------------------------------------
4693: Capturing subpattern count = 0
4694: No options
4695: First char = 'a'
4696: Need char = 'f'
4697:
4698: /abcde/ICDZ
4699: ------------------------------------------------------------------
4700: Bra
4701: Callout 255 0 1
4702: a
4703: Callout 255 1 1
4704: b
4705: Callout 255 2 1
4706: c
4707: Callout 255 3 1
4708: d
4709: Callout 255 4 1
4710: e
4711: Callout 255 5 0
4712: Ket
4713: End
4714: ------------------------------------------------------------------
4715: Capturing subpattern count = 0
4716: Options:
4717: First char = 'a'
4718: Need char = 'e'
4719: abcde
4720: --->abcde
4721: +0 ^ a
4722: +1 ^^ b
4723: +2 ^ ^ c
4724: +3 ^ ^ d
4725: +4 ^ ^ e
4726: +5 ^ ^
4727: 0: abcde
4728: abcdfe
4729: --->abcdfe
4730: +0 ^ a
4731: +1 ^^ b
4732: +2 ^ ^ c
4733: +3 ^ ^ d
4734: +4 ^ ^ e
4735: No match
4736:
4737: /a*b/ICDZS
4738: ------------------------------------------------------------------
4739: Bra
4740: Callout 255 0 2
4741: a*+
4742: Callout 255 2 1
4743: b
4744: Callout 255 3 0
4745: Ket
4746: End
4747: ------------------------------------------------------------------
4748: Capturing subpattern count = 0
4749: Options:
4750: No first char
4751: Need char = 'b'
4752: Subject length lower bound = 1
4753: Starting byte set: a b
4754: ab
4755: --->ab
4756: +0 ^ a*
4757: +2 ^^ b
4758: +3 ^ ^
4759: 0: ab
4760: aaaab
4761: --->aaaab
4762: +0 ^ a*
4763: +2 ^ ^ b
4764: +3 ^ ^
4765: 0: aaaab
4766: aaaacb
4767: --->aaaacb
4768: +0 ^ a*
4769: +2 ^ ^ b
4770: +0 ^ a*
4771: +2 ^ ^ b
4772: +0 ^ a*
4773: +2 ^ ^ b
4774: +0 ^ a*
4775: +2 ^^ b
4776: +0 ^ a*
4777: +2 ^ b
4778: +3 ^^
4779: 0: b
4780:
4781: /a*b/ICDZSS
4782: ------------------------------------------------------------------
4783: Bra
4784: Callout 255 0 2
4785: a*+
4786: Callout 255 2 1
4787: b
4788: Callout 255 3 0
4789: Ket
4790: End
4791: ------------------------------------------------------------------
4792: Capturing subpattern count = 0
4793: Options:
4794: No first char
4795: Need char = 'b'
4796: ab
4797: --->ab
4798: +0 ^ a*
4799: +2 ^^ b
4800: +3 ^ ^
4801: 0: ab
4802: aaaab
4803: --->aaaab
4804: +0 ^ a*
4805: +2 ^ ^ b
4806: +3 ^ ^
4807: 0: aaaab
4808: aaaacb
4809: --->aaaacb
4810: +0 ^ a*
4811: +2 ^ ^ b
4812: +0 ^ a*
4813: +2 ^ ^ b
4814: +0 ^ a*
4815: +2 ^ ^ b
4816: +0 ^ a*
4817: +2 ^^ b
4818: +0 ^ a*
4819: +2 ^ b
4820: +0 ^ a*
4821: +2 ^ b
4822: +3 ^^
4823: 0: b
4824:
4825: /a+b/ICDZ
4826: ------------------------------------------------------------------
4827: Bra
4828: Callout 255 0 2
4829: a++
4830: Callout 255 2 1
4831: b
4832: Callout 255 3 0
4833: Ket
4834: End
4835: ------------------------------------------------------------------
4836: Capturing subpattern count = 0
4837: Options:
4838: First char = 'a'
4839: Need char = 'b'
4840: ab
4841: --->ab
4842: +0 ^ a+
4843: +2 ^^ b
4844: +3 ^ ^
4845: 0: ab
4846: aaaab
4847: --->aaaab
4848: +0 ^ a+
4849: +2 ^ ^ b
4850: +3 ^ ^
4851: 0: aaaab
4852: aaaacb
4853: --->aaaacb
4854: +0 ^ a+
4855: +2 ^ ^ b
4856: +0 ^ a+
4857: +2 ^ ^ b
4858: +0 ^ a+
4859: +2 ^ ^ b
4860: +0 ^ a+
4861: +2 ^^ b
4862: No match
4863:
4864: /(abc|def)x/ICDZS
4865: ------------------------------------------------------------------
4866: Bra
4867: Callout 255 0 9
4868: CBra 1
4869: Callout 255 1 1
4870: a
4871: Callout 255 2 1
4872: b
4873: Callout 255 3 1
4874: c
4875: Callout 255 4 0
4876: Alt
4877: Callout 255 5 1
4878: d
4879: Callout 255 6 1
4880: e
4881: Callout 255 7 1
4882: f
4883: Callout 255 8 0
4884: Ket
4885: Callout 255 9 1
4886: x
4887: Callout 255 10 0
4888: Ket
4889: End
4890: ------------------------------------------------------------------
4891: Capturing subpattern count = 1
4892: Options:
4893: No first char
4894: Need char = 'x'
4895: Subject length lower bound = 4
4896: Starting byte set: a d
4897: abcx
4898: --->abcx
4899: +0 ^ (abc|def)
4900: +1 ^ a
4901: +2 ^^ b
4902: +3 ^ ^ c
4903: +4 ^ ^ |
4904: +9 ^ ^ x
4905: +10 ^ ^
4906: 0: abcx
4907: 1: abc
4908: defx
4909: --->defx
4910: +0 ^ (abc|def)
4911: +1 ^ a
4912: +5 ^ d
4913: +6 ^^ e
4914: +7 ^ ^ f
4915: +8 ^ ^ )
4916: +9 ^ ^ x
4917: +10 ^ ^
4918: 0: defx
4919: 1: def
4920: ** Failers
4921: No match
4922: abcdefzx
4923: --->abcdefzx
4924: +0 ^ (abc|def)
4925: +1 ^ a
4926: +2 ^^ b
4927: +3 ^ ^ c
4928: +4 ^ ^ |
4929: +9 ^ ^ x
4930: +5 ^ d
4931: +0 ^ (abc|def)
4932: +1 ^ a
4933: +5 ^ d
4934: +6 ^^ e
4935: +7 ^ ^ f
4936: +8 ^ ^ )
4937: +9 ^ ^ x
4938: No match
4939:
4940: /(abc|def)x/ICDZSS
4941: ------------------------------------------------------------------
4942: Bra
4943: Callout 255 0 9
4944: CBra 1
4945: Callout 255 1 1
4946: a
4947: Callout 255 2 1
4948: b
4949: Callout 255 3 1
4950: c
4951: Callout 255 4 0
4952: Alt
4953: Callout 255 5 1
4954: d
4955: Callout 255 6 1
4956: e
4957: Callout 255 7 1
4958: f
4959: Callout 255 8 0
4960: Ket
4961: Callout 255 9 1
4962: x
4963: Callout 255 10 0
4964: Ket
4965: End
4966: ------------------------------------------------------------------
4967: Capturing subpattern count = 1
4968: Options:
4969: No first char
4970: Need char = 'x'
4971: abcx
4972: --->abcx
4973: +0 ^ (abc|def)
4974: +1 ^ a
4975: +2 ^^ b
4976: +3 ^ ^ c
4977: +4 ^ ^ |
4978: +9 ^ ^ x
4979: +10 ^ ^
4980: 0: abcx
4981: 1: abc
4982: defx
4983: --->defx
4984: +0 ^ (abc|def)
4985: +1 ^ a
4986: +5 ^ d
4987: +6 ^^ e
4988: +7 ^ ^ f
4989: +8 ^ ^ )
4990: +9 ^ ^ x
4991: +10 ^ ^
4992: 0: defx
4993: 1: def
4994: ** Failers
4995: No match
4996: abcdefzx
4997: --->abcdefzx
4998: +0 ^ (abc|def)
4999: +1 ^ a
5000: +2 ^^ b
5001: +3 ^ ^ c
5002: +4 ^ ^ |
5003: +9 ^ ^ x
5004: +5 ^ d
5005: +0 ^ (abc|def)
5006: +1 ^ a
5007: +5 ^ d
5008: +0 ^ (abc|def)
5009: +1 ^ a
5010: +5 ^ d
5011: +0 ^ (abc|def)
5012: +1 ^ a
5013: +5 ^ d
5014: +6 ^^ e
5015: +7 ^ ^ f
5016: +8 ^ ^ )
5017: +9 ^ ^ x
5018: +0 ^ (abc|def)
5019: +1 ^ a
5020: +5 ^ d
5021: +0 ^ (abc|def)
5022: +1 ^ a
5023: +5 ^ d
5024: +0 ^ (abc|def)
5025: +1 ^ a
5026: +5 ^ d
5027: +0 ^ (abc|def)
5028: +1 ^ a
5029: +5 ^ d
5030: No match
5031:
5032: /(ab|cd){3,4}/IC
5033: Capturing subpattern count = 1
5034: Options:
5035: No first char
5036: No need char
5037: ababab
5038: --->ababab
5039: +0 ^ (ab|cd){3,4}
5040: +1 ^ a
5041: +2 ^^ b
5042: +3 ^ ^ |
5043: +1 ^ ^ a
5044: +2 ^ ^ b
5045: +3 ^ ^ |
5046: +1 ^ ^ a
5047: +2 ^ ^ b
5048: +3 ^ ^ |
5049: +1 ^ ^ a
5050: +4 ^ ^ c
5051: +12 ^ ^
5052: 0: ababab
5053: 1: ab
5054: abcdabcd
5055: --->abcdabcd
5056: +0 ^ (ab|cd){3,4}
5057: +1 ^ a
5058: +2 ^^ b
5059: +3 ^ ^ |
5060: +1 ^ ^ a
5061: +4 ^ ^ c
5062: +5 ^ ^ d
5063: +6 ^ ^ )
5064: +1 ^ ^ a
5065: +2 ^ ^ b
5066: +3 ^ ^ |
5067: +1 ^ ^ a
5068: +4 ^ ^ c
5069: +5 ^ ^ d
5070: +6 ^ ^ )
5071: +12 ^ ^
5072: 0: abcdabcd
5073: 1: cd
5074: abcdcdcdcdcd
5075: --->abcdcdcdcdcd
5076: +0 ^ (ab|cd){3,4}
5077: +1 ^ a
5078: +2 ^^ b
5079: +3 ^ ^ |
5080: +1 ^ ^ a
5081: +4 ^ ^ c
5082: +5 ^ ^ d
5083: +6 ^ ^ )
5084: +1 ^ ^ a
5085: +4 ^ ^ c
5086: +5 ^ ^ d
5087: +6 ^ ^ )
5088: +1 ^ ^ a
5089: +4 ^ ^ c
5090: +5 ^ ^ d
5091: +6 ^ ^ )
5092: +12 ^ ^
5093: 0: abcdcdcd
5094: 1: cd
5095:
5096: /([ab]{,4}c|xy)/ICDZS
5097: ------------------------------------------------------------------
5098: Bra
5099: Callout 255 0 14
5100: CBra 1
5101: Callout 255 1 4
5102: [ab]
5103: Callout 255 5 1
5104: {
5105: Callout 255 6 1
5106: ,
5107: Callout 255 7 1
5108: 4
5109: Callout 255 8 1
5110: }
5111: Callout 255 9 1
5112: c
5113: Callout 255 10 0
5114: Alt
5115: Callout 255 11 1
5116: x
5117: Callout 255 12 1
5118: y
5119: Callout 255 13 0
5120: Ket
5121: Callout 255 14 0
5122: Ket
5123: End
5124: ------------------------------------------------------------------
5125: Capturing subpattern count = 1
5126: Options:
5127: No first char
5128: No need char
5129: Subject length lower bound = 2
5130: Starting byte set: a b x
5131: Note: that { does NOT introduce a quantifier
5132: --->Note: that { does NOT introduce a quantifier
5133: +0 ^ ([ab]{,4}c|xy)
5134: +1 ^ [ab]
5135: +5 ^^ {
5136: +11 ^ x
5137: +0 ^ ([ab]{,4}c|xy)
5138: +1 ^ [ab]
5139: +5 ^^ {
5140: +11 ^ x
5141: +0 ^ ([ab]{,4}c|xy)
5142: +1 ^ [ab]
5143: +5 ^^ {
5144: +11 ^ x
5145: No match
5146:
5147: /([ab]{,4}c|xy)/ICDZSS
5148: ------------------------------------------------------------------
5149: Bra
5150: Callout 255 0 14
5151: CBra 1
5152: Callout 255 1 4
5153: [ab]
5154: Callout 255 5 1
5155: {
5156: Callout 255 6 1
5157: ,
5158: Callout 255 7 1
5159: 4
5160: Callout 255 8 1
5161: }
5162: Callout 255 9 1
5163: c
5164: Callout 255 10 0
5165: Alt
5166: Callout 255 11 1
5167: x
5168: Callout 255 12 1
5169: y
5170: Callout 255 13 0
5171: Ket
5172: Callout 255 14 0
5173: Ket
5174: End
5175: ------------------------------------------------------------------
5176: Capturing subpattern count = 1
5177: Options:
5178: No first char
5179: No need char
5180: Note: that { does NOT introduce a quantifier
5181: --->Note: that { does NOT introduce a quantifier
5182: +0 ^ ([ab]{,4}c|xy)
5183: +1 ^ [ab]
5184: +11 ^ x
5185: +0 ^ ([ab]{,4}c|xy)
5186: +1 ^ [ab]
5187: +11 ^ x
5188: +0 ^ ([ab]{,4}c|xy)
5189: +1 ^ [ab]
5190: +11 ^ x
5191: +0 ^ ([ab]{,4}c|xy)
5192: +1 ^ [ab]
5193: +11 ^ x
5194: +0 ^ ([ab]{,4}c|xy)
5195: +1 ^ [ab]
5196: +11 ^ x
5197: +0 ^ ([ab]{,4}c|xy)
5198: +1 ^ [ab]
5199: +11 ^ x
5200: +0 ^ ([ab]{,4}c|xy)
5201: +1 ^ [ab]
5202: +11 ^ x
5203: +0 ^ ([ab]{,4}c|xy)
5204: +1 ^ [ab]
5205: +11 ^ x
5206: +0 ^ ([ab]{,4}c|xy)
5207: +1 ^ [ab]
5208: +5 ^^ {
5209: +11 ^ x
5210: +0 ^ ([ab]{,4}c|xy)
5211: +1 ^ [ab]
5212: +11 ^ x
5213: +0 ^ ([ab]{,4}c|xy)
5214: +1 ^ [ab]
5215: +11 ^ x
5216: +0 ^ ([ab]{,4}c|xy)
5217: +1 ^ [ab]
5218: +11 ^ x
5219: +0 ^ ([ab]{,4}c|xy)
5220: +1 ^ [ab]
5221: +11 ^ x
5222: +0 ^ ([ab]{,4}c|xy)
5223: +1 ^ [ab]
5224: +11 ^ x
5225: +0 ^ ([ab]{,4}c|xy)
5226: +1 ^ [ab]
5227: +11 ^ x
5228: +0 ^ ([ab]{,4}c|xy)
5229: +1 ^ [ab]
5230: +11 ^ x
5231: +0 ^ ([ab]{,4}c|xy)
5232: +1 ^ [ab]
5233: +11 ^ x
5234: +0 ^ ([ab]{,4}c|xy)
5235: +1 ^ [ab]
5236: +11 ^ x
5237: +0 ^ ([ab]{,4}c|xy)
5238: +1 ^ [ab]
5239: +11 ^ x
5240: +0 ^ ([ab]{,4}c|xy)
5241: +1 ^ [ab]
5242: +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: +11 ^ x
5264: +0 ^ ([ab]{,4}c|xy)
5265: +1 ^ [ab]
5266: +11 ^ x
5267: +0 ^ ([ab]{,4}c|xy)
5268: +1 ^ [ab]
5269: +11 ^ x
5270: +0 ^ ([ab]{,4}c|xy)
5271: +1 ^ [ab]
5272: +11 ^ x
5273: +0 ^ ([ab]{,4}c|xy)
5274: +1 ^ [ab]
5275: +11 ^ x
5276: +0 ^ ([ab]{,4}c|xy)
5277: +1 ^ [ab]
5278: +11 ^ x
5279: +0 ^ ([ab]{,4}c|xy)
5280: +1 ^ [ab]
5281: +5 ^^ {
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: +5 ^^ {
5295: +11 ^ x
5296: +0 ^ ([ab]{,4}c|xy)
5297: +1 ^ [ab]
5298: +11 ^ x
5299: +0 ^ ([ab]{,4}c|xy)
5300: +1 ^ [ab]
5301: +11 ^ x
5302: +0 ^ ([ab]{,4}c|xy)
5303: +1 ^ [ab]
5304: +11 ^ x
5305: +0 ^ ([ab]{,4}c|xy)
5306: +1 ^ [ab]
5307: +11 ^ x
5308: +0 ^ ([ab]{,4}c|xy)
5309: +1 ^ [ab]
5310: +11 ^ x
5311: +0 ^ ([ab]{,4}c|xy)
5312: +1 ^ [ab]
5313: +11 ^ x
5314: +0 ^ ([ab]{,4}c|xy)
5315: +1 ^ [ab]
5316: +11 ^ x
5317: +0 ^ ([ab]{,4}c|xy)
5318: +1 ^ [ab]
5319: +11 ^ x
5320: No match
5321:
5322: /([ab]{1,4}c|xy){4,5}?123/ICDZ
5323: ------------------------------------------------------------------
5324: Bra
5325: Callout 255 0 21
5326: CBra 1
5327: Callout 255 1 9
1.1.1.5 ! misho 5328: [ab]{1,4}+
1.1 misho 5329: Callout 255 10 1
5330: c
5331: Callout 255 11 0
5332: Alt
5333: Callout 255 12 1
5334: x
5335: Callout 255 13 1
5336: y
5337: Callout 255 14 0
5338: Ket
5339: CBra 1
5340: Callout 255 1 9
1.1.1.5 ! misho 5341: [ab]{1,4}+
1.1 misho 5342: Callout 255 10 1
5343: c
5344: Callout 255 11 0
5345: Alt
5346: Callout 255 12 1
5347: x
5348: Callout 255 13 1
5349: y
5350: Callout 255 14 0
5351: Ket
5352: CBra 1
5353: Callout 255 1 9
1.1.1.5 ! misho 5354: [ab]{1,4}+
1.1 misho 5355: Callout 255 10 1
5356: c
5357: Callout 255 11 0
5358: Alt
5359: Callout 255 12 1
5360: x
5361: Callout 255 13 1
5362: y
5363: Callout 255 14 0
5364: Ket
5365: CBra 1
5366: Callout 255 1 9
1.1.1.5 ! misho 5367: [ab]{1,4}+
1.1 misho 5368: Callout 255 10 1
5369: c
5370: Callout 255 11 0
5371: Alt
5372: Callout 255 12 1
5373: x
5374: Callout 255 13 1
5375: y
5376: Callout 255 14 0
5377: Ket
5378: Braminzero
5379: CBra 1
5380: Callout 255 1 9
1.1.1.5 ! misho 5381: [ab]{1,4}+
1.1 misho 5382: Callout 255 10 1
5383: c
5384: Callout 255 11 0
5385: Alt
5386: Callout 255 12 1
5387: x
5388: Callout 255 13 1
5389: y
5390: Callout 255 14 0
5391: Ket
5392: Callout 255 21 1
5393: 1
5394: Callout 255 22 1
5395: 2
5396: Callout 255 23 1
5397: 3
5398: Callout 255 24 0
5399: Ket
5400: End
5401: ------------------------------------------------------------------
5402: Capturing subpattern count = 1
5403: Options:
5404: No first char
5405: Need char = '3'
5406: aacaacaacaacaac123
5407: --->aacaacaacaacaac123
5408: +0 ^ ([ab]{1,4}c|xy){4,5}?
5409: +1 ^ [ab]{1,4}
5410: +10 ^ ^ c
5411: +11 ^ ^ |
5412: +1 ^ ^ [ab]{1,4}
5413: +10 ^ ^ c
5414: +11 ^ ^ |
5415: +1 ^ ^ [ab]{1,4}
5416: +10 ^ ^ c
5417: +11 ^ ^ |
5418: +1 ^ ^ [ab]{1,4}
5419: +10 ^ ^ c
5420: +11 ^ ^ |
5421: +21 ^ ^ 1
5422: +1 ^ ^ [ab]{1,4}
5423: +10 ^ ^ c
5424: +11 ^ ^ |
5425: +21 ^ ^ 1
5426: +22 ^ ^ 2
5427: +23 ^ ^ 3
5428: +24 ^ ^
5429: 0: aacaacaacaacaac123
5430: 1: aac
5431:
5432: /\b.*/I
5433: Capturing subpattern count = 0
1.1.1.4 misho 5434: Max lookbehind = 1
1.1.1.5 ! misho 5435: May match empty string
1.1 misho 5436: No options
5437: No first char
5438: No need char
5439: ab cd\>1
5440: 0: cd
5441:
5442: /\b.*/Is
5443: Capturing subpattern count = 0
1.1.1.4 misho 5444: Max lookbehind = 1
1.1.1.5 ! misho 5445: May match empty string
1.1 misho 5446: Options: dotall
5447: No first char
5448: No need char
5449: ab cd\>1
5450: 0: cd
5451:
5452: /(?!.bcd).*/I
5453: Capturing subpattern count = 0
1.1.1.5 ! misho 5454: May match empty string
1.1 misho 5455: No options
5456: No first char
5457: No need char
5458: Xbcd12345
5459: 0: bcd12345
5460:
5461: /abcde/I
5462: Capturing subpattern count = 0
5463: No options
5464: First char = 'a'
5465: Need char = 'e'
5466: ab\P
5467: Partial match: ab
5468: abc\P
5469: Partial match: abc
5470: abcd\P
5471: Partial match: abcd
5472: abcde\P
5473: 0: abcde
5474: the quick brown abc\P
5475: Partial match: abc
5476: ** Failers\P
5477: No match
5478: the quick brown abxyz fox\P
5479: No match
5480:
5481: "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
5482: Capturing subpattern count = 3
5483: Options: anchored
5484: No first char
5485: Need char = '/'
5486: 13/05/04\P
5487: 0: 13/05/04
5488: 1: 13
5489: 2: 05
5490: 13/5/2004\P
5491: 0: 13/5/2004
5492: 1: 13
5493: 2: 5
5494: 3: 20
5495: 02/05/09\P
5496: 0: 02/05/09
5497: 1: 02
5498: 2: 05
5499: 1\P
5500: Partial match: 1
5501: 1/2\P
5502: Partial match: 1/2
5503: 1/2/0\P
5504: Partial match: 1/2/0
5505: 1/2/04\P
5506: 0: 1/2/04
5507: 1: 1
5508: 2: 2
5509: 0\P
5510: Partial match: 0
5511: 02/\P
5512: Partial match: 02/
5513: 02/0\P
5514: Partial match: 02/0
5515: 02/1\P
5516: Partial match: 02/1
5517: ** Failers\P
5518: No match
5519: \P
5520: No match
5521: 123\P
5522: No match
5523: 33/4/04\P
5524: No match
5525: 3/13/04\P
5526: No match
5527: 0/1/2003\P
5528: No match
5529: 0/\P
5530: No match
5531: 02/0/\P
5532: No match
5533: 02/13\P
5534: No match
5535:
5536: /0{0,2}ABC/I
5537: Capturing subpattern count = 0
5538: No options
5539: No first char
5540: Need char = 'C'
5541:
5542: /\d{3,}ABC/I
5543: Capturing subpattern count = 0
5544: No options
5545: No first char
5546: Need char = 'C'
5547:
5548: /\d*ABC/I
5549: Capturing subpattern count = 0
5550: No options
5551: No first char
5552: Need char = 'C'
5553:
5554: /[abc]+DE/I
5555: Capturing subpattern count = 0
5556: No options
5557: No first char
5558: Need char = 'E'
5559:
5560: /[abc]?123/I
5561: Capturing subpattern count = 0
5562: No options
5563: No first char
5564: Need char = '3'
5565: 123\P
5566: 0: 123
5567: a\P
5568: Partial match: a
5569: b\P
5570: Partial match: b
5571: c\P
5572: Partial match: c
5573: c12\P
5574: Partial match: c12
5575: c123\P
5576: 0: c123
5577:
5578: /^(?:\d){3,5}X/I
5579: Capturing subpattern count = 0
5580: Options: anchored
5581: No first char
5582: Need char = 'X'
5583: 1\P
5584: Partial match: 1
5585: 123\P
5586: Partial match: 123
5587: 123X
5588: 0: 123X
5589: 1234\P
5590: Partial match: 1234
5591: 1234X
5592: 0: 1234X
5593: 12345\P
5594: Partial match: 12345
5595: 12345X
5596: 0: 12345X
5597: *** Failers
5598: No match
5599: 1X
5600: No match
5601: 123456\P
5602: No match
5603:
5604: /abc/IS>testsavedregex
5605: Capturing subpattern count = 0
5606: No options
5607: First char = 'a'
5608: Need char = 'c'
5609: Subject length lower bound = 3
5610: No set of starting bytes
5611: Compiled pattern written to testsavedregex
5612: Study data written to testsavedregex
5613: <testsavedregex
5614: Compiled pattern loaded from testsavedregex
5615: Study data loaded from testsavedregex
5616: abc
5617: 0: abc
5618: ** Failers
5619: No match
5620: bca
5621: No match
5622:
5623: /abc/ISS>testsavedregex
5624: Capturing subpattern count = 0
5625: No options
5626: First char = 'a'
5627: Need char = 'c'
5628: Compiled pattern written to testsavedregex
5629: <testsavedregex
5630: Compiled pattern loaded from testsavedregex
5631: No study data
5632: abc
5633: 0: abc
5634: ** Failers
5635: No match
5636: bca
5637: No match
5638:
5639: /abc/IFS>testsavedregex
5640: Capturing subpattern count = 0
5641: No options
5642: First char = 'a'
5643: Need char = 'c'
5644: Subject length lower bound = 3
5645: No set of starting bytes
5646: Compiled pattern written to testsavedregex
5647: Study data written to testsavedregex
5648: <testsavedregex
5649: Compiled pattern (byte-inverted) loaded from testsavedregex
5650: Study data loaded from testsavedregex
5651: abc
5652: 0: abc
5653: ** Failers
5654: No match
5655: bca
5656: No match
5657:
5658: /abc/IFSS>testsavedregex
5659: Capturing subpattern count = 0
5660: No options
5661: First char = 'a'
5662: Need char = 'c'
5663: Compiled pattern written to testsavedregex
5664: <testsavedregex
5665: Compiled pattern (byte-inverted) loaded from testsavedregex
5666: No study data
5667: abc
5668: 0: abc
5669: ** Failers
5670: No match
5671: bca
5672: No match
5673:
5674: /(a|b)/IS>testsavedregex
5675: Capturing subpattern count = 1
5676: No options
5677: No first char
5678: No need char
5679: Subject length lower bound = 1
5680: Starting byte set: a b
5681: Compiled pattern written to testsavedregex
5682: Study data written to testsavedregex
5683: <testsavedregex
5684: Compiled pattern loaded from testsavedregex
5685: Study data loaded from testsavedregex
5686: abc
5687: 0: a
5688: 1: a
5689: ** Failers
5690: 0: a
5691: 1: a
5692: def
5693: No match
5694:
5695: /(a|b)/ISS>testsavedregex
5696: Capturing subpattern count = 1
5697: No options
5698: No first char
5699: No need char
5700: Compiled pattern written to testsavedregex
5701: <testsavedregex
5702: Compiled pattern loaded from testsavedregex
5703: No study data
5704: abc
5705: 0: a
5706: 1: a
5707: ** Failers
5708: 0: a
5709: 1: a
5710: def
5711: No match
5712:
5713: /(a|b)/ISF>testsavedregex
5714: Capturing subpattern count = 1
5715: No options
5716: No first char
5717: No need char
5718: Subject length lower bound = 1
5719: Starting byte set: a b
5720: Compiled pattern written to testsavedregex
5721: Study data written to testsavedregex
5722: <testsavedregex
5723: Compiled pattern (byte-inverted) loaded from testsavedregex
5724: Study data loaded from testsavedregex
5725: abc
5726: 0: a
5727: 1: a
5728: ** Failers
5729: 0: a
5730: 1: a
5731: def
5732: No match
5733:
5734: /(a|b)/ISSF>testsavedregex
5735: Capturing subpattern count = 1
5736: No options
5737: No first char
5738: No need char
5739: Compiled pattern written to testsavedregex
5740: <testsavedregex
5741: Compiled pattern (byte-inverted) loaded from testsavedregex
5742: No study data
5743: abc
5744: 0: a
5745: 1: a
5746: ** Failers
5747: 0: a
5748: 1: a
5749: def
5750: No match
5751:
5752: ~<(\w+)/?>(.)*</(\1)>~smgI
5753: Capturing subpattern count = 3
5754: Max back reference = 1
5755: Options: multiline dotall
5756: First char = '<'
5757: Need char = '>'
5758: \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>
5759: 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>
5760: 1: seite
5761: 2: \x0a
5762: 3: seite
5763:
5764: /^a/IF
5765: Capturing subpattern count = 0
5766: Options: anchored
5767: No first char
5768: No need char
5769:
5770: /line\nbreak/I
5771: Capturing subpattern count = 0
5772: Contains explicit CR or LF match
5773: No options
5774: First char = 'l'
5775: Need char = 'k'
5776: this is a line\nbreak
5777: 0: line\x0abreak
5778: line one\nthis is a line\nbreak in the second line
5779: 0: line\x0abreak
5780:
5781: /line\nbreak/If
5782: Capturing subpattern count = 0
5783: Contains explicit CR or LF match
5784: Options: firstline
5785: First char = 'l'
5786: Need char = 'k'
5787: this is a line\nbreak
5788: 0: line\x0abreak
5789: ** Failers
5790: No match
5791: line one\nthis is a line\nbreak in the second line
5792: No match
5793:
5794: /line\nbreak/Imf
5795: Capturing subpattern count = 0
5796: Contains explicit CR or LF match
5797: Options: multiline firstline
5798: First char = 'l'
5799: Need char = 'k'
5800: this is a line\nbreak
5801: 0: line\x0abreak
5802: ** Failers
5803: No match
5804: line one\nthis is a line\nbreak in the second line
5805: No match
5806:
5807: /(?i)(?-i)AbCd/I
5808: Capturing subpattern count = 0
5809: No options
5810: First char = 'A'
5811: Need char = 'd'
5812: AbCd
5813: 0: AbCd
5814: ** Failers
5815: No match
5816: abcd
5817: No match
5818:
5819: /a{11111111111111111111}/I
5820: Failed: number too big in {} quantifier at offset 22
5821:
5822: /(){64294967295}/I
5823: Failed: number too big in {} quantifier at offset 14
5824:
5825: /(){2,4294967295}/I
5826: Failed: number too big in {} quantifier at offset 15
5827:
5828: "(?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
5829: Capturing subpattern count = 1
5830: Max back reference = 1
5831: No options
5832: First char = 'a' (caseless)
5833: Need char = 'B'
5834: abcdefghijklAkB
5835: 0: abcdefghijklAkB
5836: 1: k
5837:
5838: "(?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
5839: Capturing subpattern count = 12
5840: Max back reference = 11
5841: Named capturing subpatterns:
5842: n0 1
5843: n1 2
5844: n10 11
5845: n11 12
5846: n2 3
5847: n3 4
5848: n4 5
5849: n5 6
5850: n6 7
5851: n7 8
5852: n8 9
5853: n9 10
5854: No options
5855: First char = 'a'
5856: Need char = 'B'
5857: abcdefghijklAkB
5858: 0: abcdefghijklAkB
5859: 1: a
5860: 2: b
5861: 3: c
5862: 4: d
5863: 5: e
5864: 6: f
5865: 7: g
5866: 8: h
5867: 9: i
5868: 10: j
5869: 11: k
5870: 12: l
5871:
5872: "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
5873: Capturing subpattern count = 12
5874: Max back reference = 11
5875: No options
5876: First char = 'a'
5877: Need char = 'B'
5878: abcdefghijklAkB
5879: 0: abcdefghijklAkB
5880: 1: a
5881: 2: b
5882: 3: c
5883: 4: d
5884: 5: e
5885: 6: f
5886: 7: g
5887: 8: h
5888: 9: i
5889: 10: j
5890: 11: k
5891: 12: l
5892:
5893: "(?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
5894: Capturing subpattern count = 101
5895: Named capturing subpatterns:
5896: name0 1
5897: name1 2
5898: name10 11
5899: name100 101
5900: name11 12
5901: name12 13
5902: name13 14
5903: name14 15
5904: name15 16
5905: name16 17
5906: name17 18
5907: name18 19
5908: name19 20
5909: name2 3
5910: name20 21
5911: name21 22
5912: name22 23
5913: name23 24
5914: name24 25
5915: name25 26
5916: name26 27
5917: name27 28
5918: name28 29
5919: name29 30
5920: name3 4
5921: name30 31
5922: name31 32
5923: name32 33
5924: name33 34
5925: name34 35
5926: name35 36
5927: name36 37
5928: name37 38
5929: name38 39
5930: name39 40
5931: name4 5
5932: name40 41
5933: name41 42
5934: name42 43
5935: name43 44
5936: name44 45
5937: name45 46
5938: name46 47
5939: name47 48
5940: name48 49
5941: name49 50
5942: name5 6
5943: name50 51
5944: name51 52
5945: name52 53
5946: name53 54
5947: name54 55
5948: name55 56
5949: name56 57
5950: name57 58
5951: name58 59
5952: name59 60
5953: name6 7
5954: name60 61
5955: name61 62
5956: name62 63
5957: name63 64
5958: name64 65
5959: name65 66
5960: name66 67
5961: name67 68
5962: name68 69
5963: name69 70
5964: name7 8
5965: name70 71
5966: name71 72
5967: name72 73
5968: name73 74
5969: name74 75
5970: name75 76
5971: name76 77
5972: name77 78
5973: name78 79
5974: name79 80
5975: name8 9
5976: name80 81
5977: name81 82
5978: name82 83
5979: name83 84
5980: name84 85
5981: name85 86
5982: name86 87
5983: name87 88
5984: name88 89
5985: name89 90
5986: name9 10
5987: name90 91
5988: name91 92
5989: name92 93
5990: name93 94
5991: name94 95
5992: name95 96
5993: name96 97
5994: name97 98
5995: name98 99
5996: name99 100
5997: No options
5998: First char = 'a'
5999: Need char = 'a'
6000: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6001: Matched, but too many substrings
6002: 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6003: 1: a
6004: 2: a
6005: 3: a
6006: 4: a
6007: 5: a
6008: 6: a
6009: 7: a
6010: 8: a
6011: 9: a
6012: 10: a
6013: 11: a
6014: 12: a
6015: 13: a
6016: 14: a
6017:
6018: "(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(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
6019: Capturing subpattern count = 101
6020: No options
6021: First char = 'a'
6022: Need char = 'a'
6023: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6024: Matched, but too many substrings
6025: 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6026: 1: a
6027: 2: a
6028: 3: a
6029: 4: a
6030: 5: a
6031: 6: a
6032: 7: a
6033: 8: a
6034: 9: a
6035: 10: a
6036: 11: a
6037: 12: a
6038: 13: a
6039: 14: a
6040:
6041: /[^()]*(?:\((?R)\)[^()]*)*/I
6042: Capturing subpattern count = 0
1.1.1.5 ! misho 6043: May match empty string
1.1 misho 6044: No options
6045: No first char
6046: No need char
6047: (this(and)that
6048: 0:
6049: (this(and)that)
6050: 0: (this(and)that)
6051: (this(and)that)stuff
6052: 0: (this(and)that)stuff
6053:
6054: /[^()]*(?:\((?>(?R))\)[^()]*)*/I
6055: Capturing subpattern count = 0
1.1.1.5 ! misho 6056: May match empty string
1.1 misho 6057: No options
6058: No first char
6059: No need char
6060: (this(and)that
6061: 0:
6062: (this(and)that)
6063: 0: (this(and)that)
6064:
6065: /[^()]*(?:\((?R)\))*[^()]*/I
6066: Capturing subpattern count = 0
1.1.1.5 ! misho 6067: May match empty string
1.1 misho 6068: No options
6069: No first char
6070: No need char
6071: (this(and)that
6072: 0:
6073: (this(and)that)
6074: 0: (this(and)that)
6075:
6076: /(?:\((?R)\))*[^()]*/I
6077: Capturing subpattern count = 0
1.1.1.5 ! misho 6078: May match empty string
1.1 misho 6079: No options
6080: No first char
6081: No need char
6082: (this(and)that
6083: 0:
6084: (this(and)that)
6085: 0:
6086: ((this))
6087: 0: ((this))
6088:
6089: /(?:\((?R)\))|[^()]*/I
6090: Capturing subpattern count = 0
1.1.1.5 ! misho 6091: May match empty string
1.1 misho 6092: No options
6093: No first char
6094: No need char
6095: (this(and)that
6096: 0:
6097: (this(and)that)
6098: 0:
6099: (this)
6100: 0: (this)
6101: ((this))
6102: 0: ((this))
6103:
6104: /\x{0000ff}/I
6105: Capturing subpattern count = 0
6106: No options
1.1.1.2 misho 6107: First char = \xff
1.1 misho 6108: No need char
6109:
6110: /^((?P<A>a1)|(?P<A>a2)b)/I
6111: Failed: two named subpatterns have the same name at offset 17
6112:
6113: /^((?P<A>a1)|(?P<A>a2)b)/IJ
6114: Capturing subpattern count = 3
6115: Named capturing subpatterns:
6116: A 2
6117: A 3
6118: Options: anchored dupnames
6119: No first char
6120: No need char
6121: a1b\CA
6122: 0: a1
6123: 1: a1
6124: 2: a1
6125: C a1 (2) A
6126: a2b\CA
6127: 0: a2b
6128: 1: a2b
6129: 2: <unset>
6130: 3: a2
6131: C a2 (2) A
6132: ** Failers
6133: No match
6134: a1b\CZ\CA
6135: no parentheses with name "Z"
6136: 0: a1
6137: 1: a1
6138: 2: a1
6139: copy substring Z failed -7
6140: C a1 (2) A
1.1.1.5 ! misho 6141:
! 6142: /(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ
! 6143: Capturing subpattern count = 3
! 6144: Named capturing subpatterns:
! 6145: a 1
! 6146: a 3
! 6147: b 2
! 6148: May match empty string
! 6149: Options: dupnames
! 6150: No first char
! 6151: No need char
1.1 misho 6152:
6153: /^(?P<A>a)(?P<A>b)/IJ
6154: Capturing subpattern count = 2
6155: Named capturing subpatterns:
6156: A 1
6157: A 2
6158: Options: anchored dupnames
6159: No first char
6160: No need char
6161: ab\CA
6162: 0: ab
6163: 1: a
6164: 2: b
6165: C a (1) A
6166:
6167: /^(?P<A>a)(?P<A>b)|cd/IJ
6168: Capturing subpattern count = 2
6169: Named capturing subpatterns:
6170: A 1
6171: A 2
6172: Options: dupnames
6173: No first char
6174: No need char
6175: ab\CA
6176: 0: ab
6177: 1: a
6178: 2: b
6179: C a (1) A
6180: cd\CA
6181: 0: cd
6182: copy substring A failed -7
6183:
6184: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6185: Capturing subpattern count = 4
6186: Named capturing subpatterns:
6187: A 1
6188: A 2
6189: A 3
6190: A 4
6191: Options: dupnames
6192: No first char
6193: No need char
6194: cdefgh\CA
6195: 0: cdefgh
6196: 1: <unset>
6197: 2: <unset>
6198: 3: ef
6199: 4: gh
6200: C ef (2) A
6201:
6202: /^((?P<A>a1)|(?P<A>a2)b)/IJ
6203: Capturing subpattern count = 3
6204: Named capturing subpatterns:
6205: A 2
6206: A 3
6207: Options: anchored dupnames
6208: No first char
6209: No need char
6210: a1b\GA
6211: 0: a1
6212: 1: a1
6213: 2: a1
6214: G a1 (2) A
6215: a2b\GA
6216: 0: a2b
6217: 1: a2b
6218: 2: <unset>
6219: 3: a2
6220: G a2 (2) A
6221: ** Failers
6222: No match
6223: a1b\GZ\GA
6224: no parentheses with name "Z"
6225: 0: a1
6226: 1: a1
6227: 2: a1
1.1.1.2 misho 6228: get substring Z failed -7
1.1 misho 6229: G a1 (2) A
6230:
6231: /^(?P<A>a)(?P<A>b)/IJ
6232: Capturing subpattern count = 2
6233: Named capturing subpatterns:
6234: A 1
6235: A 2
6236: Options: anchored dupnames
6237: No first char
6238: No need char
6239: ab\GA
6240: 0: ab
6241: 1: a
6242: 2: b
6243: G a (1) A
6244:
6245: /^(?P<A>a)(?P<A>b)|cd/IJ
6246: Capturing subpattern count = 2
6247: Named capturing subpatterns:
6248: A 1
6249: A 2
6250: Options: dupnames
6251: No first char
6252: No need char
6253: ab\GA
6254: 0: ab
6255: 1: a
6256: 2: b
6257: G a (1) A
6258: cd\GA
6259: 0: cd
1.1.1.2 misho 6260: get substring A failed -7
1.1 misho 6261:
6262: /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6263: Capturing subpattern count = 4
6264: Named capturing subpatterns:
6265: A 1
6266: A 2
6267: A 3
6268: A 4
6269: Options: dupnames
6270: No first char
6271: No need char
6272: cdefgh\GA
6273: 0: cdefgh
6274: 1: <unset>
6275: 2: <unset>
6276: 3: ef
6277: 4: gh
6278: G ef (2) A
6279:
6280: /(?J)^((?P<A>a1)|(?P<A>a2)b)/I
6281: Capturing subpattern count = 3
6282: Named capturing subpatterns:
6283: A 2
6284: A 3
6285: Options: anchored dupnames
6286: Duplicate name status changes
6287: No first char
6288: No need char
6289: a1b\CA
6290: 0: a1
6291: 1: a1
6292: 2: a1
6293: C a1 (2) A
6294: a2b\CA
6295: 0: a2b
6296: 1: a2b
6297: 2: <unset>
6298: 3: a2
6299: C a2 (2) A
6300:
6301: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
6302: Failed: two named subpatterns have the same name at offset 37
6303:
6304: / In this next test, J is not set at the outer level; consequently it isn't
6305: set in the pattern's options; consequently pcre_get_named_substring() produces
6306: a random value. /Ix
6307: Capturing subpattern count = 1
6308: Options: extended
6309: First char = 'I'
6310: Need char = 'e'
6311:
6312: /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
6313: Capturing subpattern count = 4
6314: Named capturing subpatterns:
6315: A 1
6316: B 2
6317: B 3
6318: C 4
6319: Options: anchored
6320: Duplicate name status changes
6321: No first char
6322: No need char
6323: a bc d\CA\CB\CC
6324: 0: a bc d
6325: 1: a
6326: 2: b
6327: 3: c
6328: 4: d
6329: C a (1) A
6330: C b (1) B
6331: C d (1) C
6332:
6333: /^(?P<A>a)?(?(A)a|b)/I
6334: Capturing subpattern count = 1
6335: Named capturing subpatterns:
6336: A 1
6337: Options: anchored
6338: No first char
6339: No need char
6340: aabc
6341: 0: aa
6342: 1: a
6343: bc
6344: 0: b
6345: ** Failers
6346: No match
6347: abc
6348: No match
6349:
6350: /(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
6351: Capturing subpattern count = 1
6352: Named capturing subpatterns:
6353: ZZ 1
6354: No options
6355: No first char
6356: Need char = 'X'
6357: bXaX
6358: 0: bXaX
6359: 1: X
6360:
6361: /(?:(?(2y)a|b)(X))+/I
1.1.1.5 ! misho 6362: Failed: malformed number or name after (?( at offset 7
1.1 misho 6363:
6364: /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
6365: Failed: reference to non-existent subpattern at offset 9
6366:
6367: /(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
6368: Capturing subpattern count = 1
6369: Named capturing subpatterns:
6370: ZZ 1
6371: No options
6372: No first char
6373: Need char = 'X'
6374: bbXaaX
6375: 0: bbXaaX
6376: 1: X
6377:
6378: /(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
6379: Capturing subpattern count = 1
6380: Named capturing subpatterns:
6381: ZZ 1
6382: No options
6383: No first char
6384: Need char = 'X'
6385: (b)\\Xa\\X
6386: 0: (b)\Xa\X
6387: 1: X
6388:
6389: /(?P<ABC/I
6390: Failed: syntax error in subpattern name (missing terminator) at offset 7
6391:
6392: /(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6393: Capturing subpattern count = 1
6394: Max back reference = 1
6395: Named capturing subpatterns:
6396: A 1
6397: No options
6398: No first char
6399: No need char
6400: bXXaYYaY
6401: 0: bXXaYYaY
6402: 1: Y
6403: bXYaXXaX
6404: 0: bX
6405: 1: X
6406:
6407: /()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6408: Capturing subpattern count = 10
6409: Max back reference = 10
6410: Named capturing subpatterns:
6411: A 10
6412: No options
6413: No first char
6414: No need char
6415: bXXaYYaY
6416: 0: bXXaYYaY
6417: 1:
6418: 2:
6419: 3:
6420: 4:
6421: 5:
6422: 6:
6423: 7:
6424: 8:
6425: 9:
6426: 10: Y
6427:
6428: /\s*,\s*/IS
6429: Capturing subpattern count = 0
6430: No options
6431: No first char
6432: Need char = ','
6433: Subject length lower bound = 1
1.1.1.5 ! misho 6434: Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 ,
1.1 misho 6435: \x0b,\x0b
1.1.1.5 ! misho 6436: 0: \x0b,\x0b
1.1 misho 6437: \x0c,\x0d
6438: 0: \x0c,\x0d
6439:
6440: /^abc/Im
6441: Capturing subpattern count = 0
6442: Options: multiline
6443: First char at start or follows newline
6444: Need char = 'c'
6445: xyz\nabc
6446: 0: abc
6447: xyz\nabc\<lf>
6448: 0: abc
6449: xyz\r\nabc\<lf>
6450: 0: abc
6451: xyz\rabc\<cr>
6452: 0: abc
6453: xyz\r\nabc\<crlf>
6454: 0: abc
6455: ** Failers
6456: No match
6457: xyz\nabc\<cr>
6458: No match
6459: xyz\r\nabc\<cr>
6460: No match
6461: xyz\nabc\<crlf>
6462: No match
6463: xyz\rabc\<crlf>
6464: No match
6465: xyz\rabc\<lf>
6466: No match
6467:
6468: /abc$/Im<lf>
6469: Capturing subpattern count = 0
6470: Options: multiline
6471: Forced newline sequence: LF
6472: First char = 'a'
6473: Need char = 'c'
6474: xyzabc
6475: 0: abc
6476: xyzabc\n
6477: 0: abc
6478: xyzabc\npqr
6479: 0: abc
6480: xyzabc\r\<cr>
6481: 0: abc
6482: xyzabc\rpqr\<cr>
6483: 0: abc
6484: xyzabc\r\n\<crlf>
6485: 0: abc
6486: xyzabc\r\npqr\<crlf>
6487: 0: abc
6488: ** Failers
6489: No match
6490: xyzabc\r
6491: No match
6492: xyzabc\rpqr
6493: No match
6494: xyzabc\r\n
6495: No match
6496: xyzabc\r\npqr
6497: No match
6498:
6499: /^abc/Im<cr>
6500: Capturing subpattern count = 0
6501: Options: multiline
6502: Forced newline sequence: CR
6503: First char at start or follows newline
6504: Need char = 'c'
6505: xyz\rabcdef
6506: 0: abc
6507: xyz\nabcdef\<lf>
6508: 0: abc
6509: ** Failers
6510: No match
6511: xyz\nabcdef
6512: No match
6513:
6514: /^abc/Im<lf>
6515: Capturing subpattern count = 0
6516: Options: multiline
6517: Forced newline sequence: LF
6518: First char at start or follows newline
6519: Need char = 'c'
6520: xyz\nabcdef
6521: 0: abc
6522: xyz\rabcdef\<cr>
6523: 0: abc
6524: ** Failers
6525: No match
6526: xyz\rabcdef
6527: No match
6528:
6529: /^abc/Im<crlf>
6530: Capturing subpattern count = 0
6531: Options: multiline
6532: Forced newline sequence: CRLF
6533: First char at start or follows newline
6534: Need char = 'c'
6535: xyz\r\nabcdef
6536: 0: abc
6537: xyz\rabcdef\<cr>
6538: 0: abc
6539: ** Failers
6540: No match
6541: xyz\rabcdef
6542: No match
6543:
6544: /^abc/Im<bad>
1.1.1.5 ! misho 6545: Unknown modifier at: <bad>
1.1 misho 6546:
6547:
6548: /abc/I
6549: Capturing subpattern count = 0
6550: No options
6551: First char = 'a'
6552: Need char = 'c'
6553: xyz\rabc\<bad>
1.1.1.5 ! misho 6554: Unknown escape sequence at: <bad>
1.1 misho 6555: abc
6556: 0: abc
6557:
6558: /.*/I<lf>
6559: Capturing subpattern count = 0
1.1.1.5 ! misho 6560: May match empty string
1.1 misho 6561: Options:
6562: Forced newline sequence: LF
6563: First char at start or follows newline
6564: No need char
6565: abc\ndef
6566: 0: abc
6567: abc\rdef
6568: 0: abc\x0ddef
6569: abc\r\ndef
6570: 0: abc\x0d
6571: \<cr>abc\ndef
6572: 0: abc\x0adef
6573: \<cr>abc\rdef
6574: 0: abc
6575: \<cr>abc\r\ndef
6576: 0: abc
6577: \<crlf>abc\ndef
6578: 0: abc\x0adef
6579: \<crlf>abc\rdef
6580: 0: abc\x0ddef
6581: \<crlf>abc\r\ndef
6582: 0: abc
6583:
6584: /\w+(.)(.)?def/Is
6585: Capturing subpattern count = 2
6586: Options: dotall
6587: No first char
6588: Need char = 'f'
6589: abc\ndef
6590: 0: abc\x0adef
6591: 1: \x0a
6592: abc\rdef
6593: 0: abc\x0ddef
6594: 1: \x0d
6595: abc\r\ndef
6596: 0: abc\x0d\x0adef
6597: 1: \x0d
6598: 2: \x0a
6599:
6600: +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6601: Capturing subpattern count = 1
1.1.1.5 ! misho 6602: May match empty string
1.1 misho 6603: No options
6604: No first char
6605: No need char
6606: /* this is a C style comment */\M
6607: Minimum match() limit = 120
6608: Minimum match() recursion limit = 6
6609: 0: /* this is a C style comment */
6610: 1: /* this is a C style comment */
6611:
6612: /(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
6613: Capturing subpattern count = 1
6614: Named capturing subpatterns:
6615: B 1
6616: No options
6617: No first char
6618: Need char = '.'
6619:
6620: /()()()()()()()()()()()()()()()()()()()()
6621: ()()()()()()()()()()()()()()()()()()()()
6622: ()()()()()()()()()()()()()()()()()()()()
6623: ()()()()()()()()()()()()()()()()()()()()
6624: ()()()()()()()()()()()()()()()()()()()()
6625: (.(.))/Ix
6626: Capturing subpattern count = 102
6627: Options: extended
6628: No first char
6629: No need char
6630: XY\O400
6631: 0: XY
6632: 1:
6633: 2:
6634: 3:
6635: 4:
6636: 5:
6637: 6:
6638: 7:
6639: 8:
6640: 9:
6641: 10:
6642: 11:
6643: 12:
6644: 13:
6645: 14:
6646: 15:
6647: 16:
6648: 17:
6649: 18:
6650: 19:
6651: 20:
6652: 21:
6653: 22:
6654: 23:
6655: 24:
6656: 25:
6657: 26:
6658: 27:
6659: 28:
6660: 29:
6661: 30:
6662: 31:
6663: 32:
6664: 33:
6665: 34:
6666: 35:
6667: 36:
6668: 37:
6669: 38:
6670: 39:
6671: 40:
6672: 41:
6673: 42:
6674: 43:
6675: 44:
6676: 45:
6677: 46:
6678: 47:
6679: 48:
6680: 49:
6681: 50:
6682: 51:
6683: 52:
6684: 53:
6685: 54:
6686: 55:
6687: 56:
6688: 57:
6689: 58:
6690: 59:
6691: 60:
6692: 61:
6693: 62:
6694: 63:
6695: 64:
6696: 65:
6697: 66:
6698: 67:
6699: 68:
6700: 69:
6701: 70:
6702: 71:
6703: 72:
6704: 73:
6705: 74:
6706: 75:
6707: 76:
6708: 77:
6709: 78:
6710: 79:
6711: 80:
6712: 81:
6713: 82:
6714: 83:
6715: 84:
6716: 85:
6717: 86:
6718: 87:
6719: 88:
6720: 89:
6721: 90:
6722: 91:
6723: 92:
6724: 93:
6725: 94:
6726: 95:
6727: 96:
6728: 97:
6729: 98:
6730: 99:
6731: 100:
6732: 101: XY
6733: 102: Y
6734:
6735: /(a*b|(?i:c*(?-i)d))/IS
6736: Capturing subpattern count = 1
6737: No options
6738: No first char
6739: No need char
6740: Subject length lower bound = 1
6741: Starting byte set: C a b c d
6742:
6743: /()[ab]xyz/IS
6744: Capturing subpattern count = 1
6745: No options
6746: No first char
6747: Need char = 'z'
6748: Subject length lower bound = 4
6749: Starting byte set: a b
6750:
6751: /(|)[ab]xyz/IS
6752: Capturing subpattern count = 1
6753: No options
6754: No first char
6755: Need char = 'z'
6756: Subject length lower bound = 4
6757: Starting byte set: a b
6758:
6759: /(|c)[ab]xyz/IS
6760: Capturing subpattern count = 1
6761: No options
6762: No first char
6763: Need char = 'z'
6764: Subject length lower bound = 4
6765: Starting byte set: a b c
6766:
6767: /(|c?)[ab]xyz/IS
6768: Capturing subpattern count = 1
6769: No options
6770: No first char
6771: Need char = 'z'
6772: Subject length lower bound = 4
6773: Starting byte set: a b c
6774:
6775: /(d?|c?)[ab]xyz/IS
6776: Capturing subpattern count = 1
6777: No options
6778: No first char
6779: Need char = 'z'
6780: Subject length lower bound = 4
6781: Starting byte set: a b c d
6782:
6783: /(d?|c)[ab]xyz/IS
6784: Capturing subpattern count = 1
6785: No options
6786: No first char
6787: Need char = 'z'
6788: Subject length lower bound = 4
6789: Starting byte set: a b c d
6790:
6791: /^a*b\d/DZ
6792: ------------------------------------------------------------------
6793: Bra
6794: ^
6795: a*+
6796: b
6797: \d
6798: Ket
6799: End
6800: ------------------------------------------------------------------
6801: Capturing subpattern count = 0
6802: Options: anchored
6803: No first char
6804: Need char = 'b'
6805:
6806: /^a*+b\d/DZ
6807: ------------------------------------------------------------------
6808: Bra
6809: ^
6810: a*+
6811: b
6812: \d
6813: Ket
6814: End
6815: ------------------------------------------------------------------
6816: Capturing subpattern count = 0
6817: Options: anchored
6818: No first char
6819: Need char = 'b'
6820:
6821: /^a*?b\d/DZ
6822: ------------------------------------------------------------------
6823: Bra
6824: ^
6825: a*+
6826: b
6827: \d
6828: Ket
6829: End
6830: ------------------------------------------------------------------
6831: Capturing subpattern count = 0
6832: Options: anchored
6833: No first char
6834: Need char = 'b'
6835:
6836: /^a+A\d/DZ
6837: ------------------------------------------------------------------
6838: Bra
6839: ^
6840: a++
6841: A
6842: \d
6843: Ket
6844: End
6845: ------------------------------------------------------------------
6846: Capturing subpattern count = 0
6847: Options: anchored
6848: No first char
6849: Need char = 'A'
6850: aaaA5
6851: 0: aaaA5
6852: ** Failers
6853: No match
6854: aaaa5
6855: No match
6856:
6857: /^a*A\d/IiDZ
6858: ------------------------------------------------------------------
6859: Bra
6860: ^
6861: /i a*
6862: /i A
6863: \d
6864: Ket
6865: End
6866: ------------------------------------------------------------------
6867: Capturing subpattern count = 0
6868: Options: anchored caseless
6869: No first char
6870: Need char = 'A' (caseless)
6871: aaaA5
6872: 0: aaaA5
6873: aaaa5
6874: 0: aaaa5
6875:
6876: /(a*|b*)[cd]/IS
6877: Capturing subpattern count = 1
6878: No options
6879: No first char
6880: No need char
6881: Subject length lower bound = 1
6882: Starting byte set: a b c d
6883:
6884: /(a+|b*)[cd]/IS
6885: Capturing subpattern count = 1
6886: No options
6887: No first char
6888: No need char
6889: Subject length lower bound = 1
6890: Starting byte set: a b c d
6891:
6892: /(a*|b+)[cd]/IS
6893: Capturing subpattern count = 1
6894: No options
6895: No first char
6896: No need char
6897: Subject length lower bound = 1
6898: Starting byte set: a b c d
6899:
6900: /(a+|b+)[cd]/IS
6901: Capturing subpattern count = 1
6902: No options
6903: No first char
6904: No need char
6905: Subject length lower bound = 2
6906: Starting byte set: a b
6907:
6908: /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6909: ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6910: (((
6911: a
6912: ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6913: ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6914: )))
6915: /Ix
6916: Capturing subpattern count = 203
6917: Options: extended
6918: First char = 'a'
6919: No need char
6920: large nest
6921: Matched, but too many substrings
6922: 0: a
6923: 1: a
6924: 2: a
6925: 3: a
6926: 4: a
6927: 5: a
6928: 6: a
6929: 7: a
6930: 8: a
6931: 9: a
6932: 10: a
6933: 11: a
6934: 12: a
6935: 13: a
6936: 14: a
6937:
6938: /a*\d/BZ
6939: ------------------------------------------------------------------
6940: Bra
6941: a*+
6942: \d
6943: Ket
6944: End
6945: ------------------------------------------------------------------
6946:
6947: /a*\D/BZ
6948: ------------------------------------------------------------------
6949: Bra
6950: a*
6951: \D
6952: Ket
6953: End
6954: ------------------------------------------------------------------
6955:
6956: /0*\d/BZ
6957: ------------------------------------------------------------------
6958: Bra
6959: 0*
6960: \d
6961: Ket
6962: End
6963: ------------------------------------------------------------------
6964:
6965: /0*\D/BZ
6966: ------------------------------------------------------------------
6967: Bra
6968: 0*+
6969: \D
6970: Ket
6971: End
6972: ------------------------------------------------------------------
6973:
6974: /a*\s/BZ
6975: ------------------------------------------------------------------
6976: Bra
6977: a*+
6978: \s
6979: Ket
6980: End
6981: ------------------------------------------------------------------
6982:
6983: /a*\S/BZ
6984: ------------------------------------------------------------------
6985: Bra
6986: a*
6987: \S
6988: Ket
6989: End
6990: ------------------------------------------------------------------
6991:
6992: / *\s/BZ
6993: ------------------------------------------------------------------
6994: Bra
6995: *
6996: \s
6997: Ket
6998: End
6999: ------------------------------------------------------------------
7000:
7001: / *\S/BZ
7002: ------------------------------------------------------------------
7003: Bra
7004: *+
7005: \S
7006: Ket
7007: End
7008: ------------------------------------------------------------------
7009:
7010: /a*\w/BZ
7011: ------------------------------------------------------------------
7012: Bra
7013: a*
7014: \w
7015: Ket
7016: End
7017: ------------------------------------------------------------------
7018:
7019: /a*\W/BZ
7020: ------------------------------------------------------------------
7021: Bra
7022: a*+
7023: \W
7024: Ket
7025: End
7026: ------------------------------------------------------------------
7027:
7028: /=*\w/BZ
7029: ------------------------------------------------------------------
7030: Bra
7031: =*+
7032: \w
7033: Ket
7034: End
7035: ------------------------------------------------------------------
7036:
7037: /=*\W/BZ
7038: ------------------------------------------------------------------
7039: Bra
7040: =*
7041: \W
7042: Ket
7043: End
7044: ------------------------------------------------------------------
7045:
7046: /\d*a/BZ
7047: ------------------------------------------------------------------
7048: Bra
7049: \d*+
7050: a
7051: Ket
7052: End
7053: ------------------------------------------------------------------
7054:
7055: /\d*2/BZ
7056: ------------------------------------------------------------------
7057: Bra
7058: \d*
7059: 2
7060: Ket
7061: End
7062: ------------------------------------------------------------------
7063:
7064: /\d*\d/BZ
7065: ------------------------------------------------------------------
7066: Bra
7067: \d*
7068: \d
7069: Ket
7070: End
7071: ------------------------------------------------------------------
7072:
7073: /\d*\D/BZ
7074: ------------------------------------------------------------------
7075: Bra
7076: \d*+
7077: \D
7078: Ket
7079: End
7080: ------------------------------------------------------------------
7081:
7082: /\d*\s/BZ
7083: ------------------------------------------------------------------
7084: Bra
7085: \d*+
7086: \s
7087: Ket
7088: End
7089: ------------------------------------------------------------------
7090:
7091: /\d*\S/BZ
7092: ------------------------------------------------------------------
7093: Bra
7094: \d*
7095: \S
7096: Ket
7097: End
7098: ------------------------------------------------------------------
7099:
7100: /\d*\w/BZ
7101: ------------------------------------------------------------------
7102: Bra
7103: \d*
7104: \w
7105: Ket
7106: End
7107: ------------------------------------------------------------------
7108:
7109: /\d*\W/BZ
7110: ------------------------------------------------------------------
7111: Bra
7112: \d*+
7113: \W
7114: Ket
7115: End
7116: ------------------------------------------------------------------
7117:
7118: /\D*a/BZ
7119: ------------------------------------------------------------------
7120: Bra
7121: \D*
7122: a
7123: Ket
7124: End
7125: ------------------------------------------------------------------
7126:
7127: /\D*2/BZ
7128: ------------------------------------------------------------------
7129: Bra
7130: \D*+
7131: 2
7132: Ket
7133: End
7134: ------------------------------------------------------------------
7135:
7136: /\D*\d/BZ
7137: ------------------------------------------------------------------
7138: Bra
7139: \D*+
7140: \d
7141: Ket
7142: End
7143: ------------------------------------------------------------------
7144:
7145: /\D*\D/BZ
7146: ------------------------------------------------------------------
7147: Bra
7148: \D*
7149: \D
7150: Ket
7151: End
7152: ------------------------------------------------------------------
7153:
7154: /\D*\s/BZ
7155: ------------------------------------------------------------------
7156: Bra
7157: \D*
7158: \s
7159: Ket
7160: End
7161: ------------------------------------------------------------------
7162:
7163: /\D*\S/BZ
7164: ------------------------------------------------------------------
7165: Bra
7166: \D*
7167: \S
7168: Ket
7169: End
7170: ------------------------------------------------------------------
7171:
7172: /\D*\w/BZ
7173: ------------------------------------------------------------------
7174: Bra
7175: \D*
7176: \w
7177: Ket
7178: End
7179: ------------------------------------------------------------------
7180:
7181: /\D*\W/BZ
7182: ------------------------------------------------------------------
7183: Bra
7184: \D*
7185: \W
7186: Ket
7187: End
7188: ------------------------------------------------------------------
7189:
7190: /\s*a/BZ
7191: ------------------------------------------------------------------
7192: Bra
7193: \s*+
7194: a
7195: Ket
7196: End
7197: ------------------------------------------------------------------
7198:
7199: /\s*2/BZ
7200: ------------------------------------------------------------------
7201: Bra
7202: \s*+
7203: 2
7204: Ket
7205: End
7206: ------------------------------------------------------------------
7207:
7208: /\s*\d/BZ
7209: ------------------------------------------------------------------
7210: Bra
7211: \s*+
7212: \d
7213: Ket
7214: End
7215: ------------------------------------------------------------------
7216:
7217: /\s*\D/BZ
7218: ------------------------------------------------------------------
7219: Bra
7220: \s*
7221: \D
7222: Ket
7223: End
7224: ------------------------------------------------------------------
7225:
7226: /\s*\s/BZ
7227: ------------------------------------------------------------------
7228: Bra
7229: \s*
7230: \s
7231: Ket
7232: End
7233: ------------------------------------------------------------------
7234:
7235: /\s*\S/BZ
7236: ------------------------------------------------------------------
7237: Bra
7238: \s*+
7239: \S
7240: Ket
7241: End
7242: ------------------------------------------------------------------
7243:
7244: /\s*\w/BZ
7245: ------------------------------------------------------------------
7246: Bra
7247: \s*+
7248: \w
7249: Ket
7250: End
7251: ------------------------------------------------------------------
7252:
7253: /\s*\W/BZ
7254: ------------------------------------------------------------------
7255: Bra
7256: \s*
7257: \W
7258: Ket
7259: End
7260: ------------------------------------------------------------------
7261:
7262: /\S*a/BZ
7263: ------------------------------------------------------------------
7264: Bra
7265: \S*
7266: a
7267: Ket
7268: End
7269: ------------------------------------------------------------------
7270:
7271: /\S*2/BZ
7272: ------------------------------------------------------------------
7273: Bra
7274: \S*
7275: 2
7276: Ket
7277: End
7278: ------------------------------------------------------------------
7279:
7280: /\S*\d/BZ
7281: ------------------------------------------------------------------
7282: Bra
7283: \S*
7284: \d
7285: Ket
7286: End
7287: ------------------------------------------------------------------
7288:
7289: /\S*\D/BZ
7290: ------------------------------------------------------------------
7291: Bra
7292: \S*
7293: \D
7294: Ket
7295: End
7296: ------------------------------------------------------------------
7297:
7298: /\S*\s/BZ
7299: ------------------------------------------------------------------
7300: Bra
7301: \S*+
7302: \s
7303: Ket
7304: End
7305: ------------------------------------------------------------------
7306:
7307: /\S*\S/BZ
7308: ------------------------------------------------------------------
7309: Bra
7310: \S*
7311: \S
7312: Ket
7313: End
7314: ------------------------------------------------------------------
7315:
7316: /\S*\w/BZ
7317: ------------------------------------------------------------------
7318: Bra
7319: \S*
7320: \w
7321: Ket
7322: End
7323: ------------------------------------------------------------------
7324:
7325: /\S*\W/BZ
7326: ------------------------------------------------------------------
7327: Bra
7328: \S*
7329: \W
7330: Ket
7331: End
7332: ------------------------------------------------------------------
7333:
7334: /\w*a/BZ
7335: ------------------------------------------------------------------
7336: Bra
7337: \w*
7338: a
7339: Ket
7340: End
7341: ------------------------------------------------------------------
7342:
7343: /\w*2/BZ
7344: ------------------------------------------------------------------
7345: Bra
7346: \w*
7347: 2
7348: Ket
7349: End
7350: ------------------------------------------------------------------
7351:
7352: /\w*\d/BZ
7353: ------------------------------------------------------------------
7354: Bra
7355: \w*
7356: \d
7357: Ket
7358: End
7359: ------------------------------------------------------------------
7360:
7361: /\w*\D/BZ
7362: ------------------------------------------------------------------
7363: Bra
7364: \w*
7365: \D
7366: Ket
7367: End
7368: ------------------------------------------------------------------
7369:
7370: /\w*\s/BZ
7371: ------------------------------------------------------------------
7372: Bra
7373: \w*+
7374: \s
7375: Ket
7376: End
7377: ------------------------------------------------------------------
7378:
7379: /\w*\S/BZ
7380: ------------------------------------------------------------------
7381: Bra
7382: \w*
7383: \S
7384: Ket
7385: End
7386: ------------------------------------------------------------------
7387:
7388: /\w*\w/BZ
7389: ------------------------------------------------------------------
7390: Bra
7391: \w*
7392: \w
7393: Ket
7394: End
7395: ------------------------------------------------------------------
7396:
7397: /\w*\W/BZ
7398: ------------------------------------------------------------------
7399: Bra
7400: \w*+
7401: \W
7402: Ket
7403: End
7404: ------------------------------------------------------------------
7405:
7406: /\W*a/BZ
7407: ------------------------------------------------------------------
7408: Bra
7409: \W*+
7410: a
7411: Ket
7412: End
7413: ------------------------------------------------------------------
7414:
7415: /\W*2/BZ
7416: ------------------------------------------------------------------
7417: Bra
7418: \W*+
7419: 2
7420: Ket
7421: End
7422: ------------------------------------------------------------------
7423:
7424: /\W*\d/BZ
7425: ------------------------------------------------------------------
7426: Bra
7427: \W*+
7428: \d
7429: Ket
7430: End
7431: ------------------------------------------------------------------
7432:
7433: /\W*\D/BZ
7434: ------------------------------------------------------------------
7435: Bra
7436: \W*
7437: \D
7438: Ket
7439: End
7440: ------------------------------------------------------------------
7441:
7442: /\W*\s/BZ
7443: ------------------------------------------------------------------
7444: Bra
7445: \W*
7446: \s
7447: Ket
7448: End
7449: ------------------------------------------------------------------
7450:
7451: /\W*\S/BZ
7452: ------------------------------------------------------------------
7453: Bra
7454: \W*
7455: \S
7456: Ket
7457: End
7458: ------------------------------------------------------------------
7459:
7460: /\W*\w/BZ
7461: ------------------------------------------------------------------
7462: Bra
7463: \W*+
7464: \w
7465: Ket
7466: End
7467: ------------------------------------------------------------------
7468:
7469: /\W*\W/BZ
7470: ------------------------------------------------------------------
7471: Bra
7472: \W*
7473: \W
7474: Ket
7475: End
7476: ------------------------------------------------------------------
7477:
7478: /[^a]+a/BZ
7479: ------------------------------------------------------------------
7480: Bra
7481: [^a]++
7482: a
7483: Ket
7484: End
7485: ------------------------------------------------------------------
7486:
7487: /[^a]+a/BZi
7488: ------------------------------------------------------------------
7489: Bra
1.1.1.2 misho 7490: /i [^a]++
1.1 misho 7491: /i a
7492: Ket
7493: End
7494: ------------------------------------------------------------------
7495:
7496: /[^a]+A/BZi
7497: ------------------------------------------------------------------
7498: Bra
1.1.1.2 misho 7499: /i [^a]++
1.1 misho 7500: /i A
7501: Ket
7502: End
7503: ------------------------------------------------------------------
7504:
7505: /[^a]+b/BZ
7506: ------------------------------------------------------------------
7507: Bra
7508: [^a]+
7509: b
7510: Ket
7511: End
7512: ------------------------------------------------------------------
7513:
7514: /[^a]+\d/BZ
7515: ------------------------------------------------------------------
7516: Bra
7517: [^a]+
7518: \d
7519: Ket
7520: End
7521: ------------------------------------------------------------------
7522:
7523: /a*[^a]/BZ
7524: ------------------------------------------------------------------
7525: Bra
1.1.1.5 ! misho 7526: a*+
1.1 misho 7527: [^a]
7528: Ket
7529: End
7530: ------------------------------------------------------------------
7531:
7532: /(?P<abc>x)(?P<xyz>y)/I
7533: Capturing subpattern count = 2
7534: Named capturing subpatterns:
7535: abc 1
7536: xyz 2
7537: No options
7538: First char = 'x'
7539: Need char = 'y'
7540: xy\Cabc\Cxyz
7541: 0: xy
7542: 1: x
7543: 2: y
7544: C x (1) abc
7545: C y (1) xyz
7546:
7547: /(?<abc>x)(?'xyz'y)/I
7548: Capturing subpattern count = 2
7549: Named capturing subpatterns:
7550: abc 1
7551: xyz 2
7552: No options
7553: First char = 'x'
7554: Need char = 'y'
7555: xy\Cabc\Cxyz
7556: 0: xy
7557: 1: x
7558: 2: y
7559: C x (1) abc
7560: C y (1) xyz
7561:
7562: /(?<abc'x)(?'xyz'y)/I
7563: Failed: syntax error in subpattern name (missing terminator) at offset 6
7564:
7565: /(?<abc>x)(?'xyz>y)/I
7566: Failed: syntax error in subpattern name (missing terminator) at offset 15
7567:
7568: /(?P'abc'x)(?P<xyz>y)/I
7569: Failed: unrecognized character after (?P at offset 3
7570:
7571: /^(?:(?(ZZ)a|b)(?<ZZ>X))+/
7572: bXaX
7573: 0: bXaX
7574: 1: X
7575: bXbX
7576: 0: bX
7577: 1: X
7578: ** Failers
7579: No match
7580: aXaX
7581: No match
7582: aXbX
7583: No match
7584:
7585: /^(?P>abc)(?<abcd>xxx)/
7586: Failed: reference to non-existent subpattern at offset 8
7587:
7588: /^(?P>abc)(?<abc>x|y)/
7589: xx
7590: 0: xx
7591: 1: x
7592: xy
7593: 0: xy
7594: 1: y
7595: yy
7596: 0: yy
7597: 1: y
7598: yx
7599: 0: yx
7600: 1: x
7601:
7602: /^(?P>abc)(?P<abc>x|y)/
7603: xx
7604: 0: xx
7605: 1: x
7606: xy
7607: 0: xy
7608: 1: y
7609: yy
7610: 0: yy
7611: 1: y
7612: yx
7613: 0: yx
7614: 1: x
7615:
7616: /^((?(abc)a|b)(?<abc>x|y))+/
7617: bxay
7618: 0: bxay
7619: 1: ay
7620: 2: y
7621: bxby
7622: 0: bx
7623: 1: bx
7624: 2: x
7625: ** Failers
7626: No match
7627: axby
7628: No match
7629:
7630: /^(((?P=abc)|X)(?<abc>x|y))+/
7631: XxXxxx
7632: 0: XxXxxx
7633: 1: xx
7634: 2: x
7635: 3: x
7636: XxXyyx
7637: 0: XxXyyx
7638: 1: yx
7639: 2: y
7640: 3: x
7641: XxXyxx
7642: 0: XxXy
7643: 1: Xy
7644: 2: X
7645: 3: y
7646: ** Failers
7647: No match
7648: x
7649: No match
7650:
7651: /^(?1)(abc)/
7652: abcabc
7653: 0: abcabc
7654: 1: abc
7655:
7656: /^(?:(?:\1|X)(a|b))+/
7657: Xaaa
7658: 0: Xaaa
7659: 1: a
7660: Xaba
7661: 0: Xa
7662: 1: a
7663:
7664: /^[\E\Qa\E-\Qz\E]+/BZ
7665: ------------------------------------------------------------------
7666: Bra
7667: ^
1.1.1.5 ! misho 7668: [a-z]++
1.1 misho 7669: Ket
7670: End
7671: ------------------------------------------------------------------
7672:
7673: /^[a\Q]bc\E]/BZ
7674: ------------------------------------------------------------------
7675: Bra
7676: ^
7677: [\]a-c]
7678: Ket
7679: End
7680: ------------------------------------------------------------------
7681:
7682: /^[a-\Q\E]/BZ
7683: ------------------------------------------------------------------
7684: Bra
7685: ^
7686: [\-a]
7687: Ket
7688: End
7689: ------------------------------------------------------------------
7690:
7691: /^(?P>abc)[()](?<abc>)/BZ
7692: ------------------------------------------------------------------
7693: Bra
7694: ^
7695: Recurse
7696: [()]
7697: CBra 1
7698: Ket
7699: Ket
7700: End
7701: ------------------------------------------------------------------
7702:
7703: /^((?(abc)y)[()](?P<abc>x))+/BZ
7704: ------------------------------------------------------------------
7705: Bra
7706: ^
7707: CBra 1
7708: Cond
1.1.1.5 ! misho 7709: 2 Cond ref
1.1 misho 7710: y
7711: Ket
7712: [()]
7713: CBra 2
7714: x
7715: Ket
7716: KetRmax
7717: Ket
7718: End
7719: ------------------------------------------------------------------
7720: (xy)x
7721: 0: (xy)x
7722: 1: y)x
7723: 2: x
7724:
7725: /^(?P>abc)\Q()\E(?<abc>)/BZ
7726: ------------------------------------------------------------------
7727: Bra
7728: ^
7729: Recurse
7730: ()
7731: CBra 1
7732: Ket
7733: Ket
7734: End
7735: ------------------------------------------------------------------
7736:
7737: /^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
7738: ------------------------------------------------------------------
7739: Bra
7740: ^
7741: Recurse
7742: [(\]a]
7743: CBra 1
7744: Ket
7745: Ket
7746: End
7747: ------------------------------------------------------------------
7748:
7749: /^(?P>abc) # this is (a comment)
7750: (?<abc>)/BZx
7751: ------------------------------------------------------------------
7752: Bra
7753: ^
7754: Recurse
7755: CBra 1
7756: Ket
7757: Ket
7758: End
7759: ------------------------------------------------------------------
7760:
7761: /^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
7762: Capturing subpattern count = 4
7763: Max back reference = 4
7764: Named capturing subpatterns:
7765: four 4
7766: one 1
7767: three 3
7768: two 2
1.1.1.5 ! misho 7769: May match empty string
1.1 misho 7770: Options: anchored caseless
7771: No first char
7772: No need char
7773: 1221
7774: 0: 1221
7775: 1: 1221
7776: 2: 1
7777: Satan, oscillate my metallic sonatas!
7778: 0: Satan, oscillate my metallic sonatas!
7779: 1: <unset>
7780: 2: <unset>
7781: 3: Satan, oscillate my metallic sonatas
7782: 4: S
7783: A man, a plan, a canal: Panama!
7784: 0: A man, a plan, a canal: Panama!
7785: 1: <unset>
7786: 2: <unset>
7787: 3: A man, a plan, a canal: Panama
7788: 4: A
7789: Able was I ere I saw Elba.
7790: 0: Able was I ere I saw Elba.
7791: 1: <unset>
7792: 2: <unset>
7793: 3: Able was I ere I saw Elba
7794: 4: A
7795: *** Failers
7796: No match
7797: The quick brown fox
7798: No match
7799:
7800: /(?=(\w+))\1:/I
7801: Capturing subpattern count = 1
7802: Max back reference = 1
7803: No options
7804: No first char
7805: Need char = ':'
7806: abcd:
7807: 0: abcd:
7808: 1: abcd
7809:
7810: /(?=(?'abc'\w+))\k<abc>:/I
7811: Capturing subpattern count = 1
7812: Max back reference = 1
7813: Named capturing subpatterns:
7814: abc 1
7815: No options
7816: No first char
7817: Need char = ':'
7818: abcd:
7819: 0: abcd:
7820: 1: abcd
7821:
7822: /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7823: adaa
7824: 0: adaa
7825: 1: a
7826: 2: d
7827: ** Failers
7828: No match
7829: addd
7830: No match
7831: adbb
7832: No match
7833:
7834: /(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
7835: bdaa
7836: 0: bdaa
7837: 1: b
7838: 2: d
7839: bdab
7840: 0: bdab
7841: 1: b
7842: 2: d
7843: ** Failers
7844: No match
7845: bddd
7846: No match
7847:
7848: /(?(<bc))/
7849: Failed: malformed number or name after (?( at offset 6
7850:
7851: /(?(''))/
7852: Failed: assertion expected after (?( at offset 4
7853:
7854: /(?('R')stuff)/
7855: Failed: reference to non-existent subpattern at offset 7
7856:
7857: /((abc (?(R) (?(R1)1) (?(R2)2) X | (?1) (?2) (?R) ))) /x
7858: abcabc1Xabc2XabcXabcabc
7859: 0: abcabc1Xabc2XabcX
7860: 1: abcabc1Xabc2XabcX
7861: 2: abcabc1Xabc2XabcX
7862:
7863: /(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
7864: abcabc1Xabc2XabcXabcabc
7865: 0: abcabc1Xabc2XabcX
7866: 1: abcabc1Xabc2XabcX
7867: 2: abcabc1Xabc2XabcX
7868:
1.1.1.5 ! misho 7869: /(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
1.1 misho 7870: Failed: reference to non-existent subpattern at offset 29
7871:
7872: /^(?(DEFINE) abc | xyz ) /x
7873: Failed: DEFINE group contains more than one branch at offset 22
7874:
7875: /(?(DEFINE) abc) xyz/xI
7876: Capturing subpattern count = 0
7877: Options: extended
7878: First char = 'x'
7879: Need char = 'z'
7880:
7881: /(a|)*\d/
7882: \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7883: No match
7884: \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
7885: Matched, but too many substrings
7886:
7887: /^a.b/<lf>
7888: a\rb
7889: 0: a\x0db
7890: a\nb\<cr>
7891: 0: a\x0ab
7892: a\x85b\<anycrlf>
7893: 0: a\x85b
7894: ** Failers
7895: No match
7896: a\nb
7897: No match
7898: a\nb\<any>
7899: No match
7900: a\rb\<cr>
7901: No match
7902: a\rb\<any>
7903: No match
7904: a\x85b\<any>
7905: No match
7906: a\rb\<anycrlf>
7907: No match
7908:
7909: /^abc./mgx<any>
7910: abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7911: 0: abc1
7912: 0: abc2
7913: 0: abc3
7914: 0: abc4
7915: 0: abc5
7916: 0: abc6
7917: 0: abc7
7918:
7919: /abc.$/mgx<any>
7920: abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
7921: 0: abc1
7922: 0: abc2
7923: 0: abc3
7924: 0: abc4
7925: 0: abc5
7926: 0: abc6
7927: 0: abc9
7928:
7929: /a/<cr><any>
7930:
7931: /a/<any><crlf>
7932: Failed: inconsistent NEWLINE options at offset 0
7933:
7934: /^a\Rb/<bsr_unicode>
7935: a\nb
7936: 0: a\x0ab
7937: a\rb
7938: 0: a\x0db
7939: a\r\nb
7940: 0: a\x0d\x0ab
7941: a\x0bb
7942: 0: a\x0bb
7943: a\x0cb
7944: 0: a\x0cb
7945: a\x85b
7946: 0: a\x85b
7947: ** Failers
7948: No match
7949: a\n\rb
7950: No match
7951:
7952: /^a\R*b/<bsr_unicode>
7953: ab
7954: 0: ab
7955: a\nb
7956: 0: a\x0ab
7957: a\rb
7958: 0: a\x0db
7959: a\r\nb
7960: 0: a\x0d\x0ab
7961: a\x0bb
7962: 0: a\x0bb
7963: a\x0cb
7964: 0: a\x0cb
7965: a\x85b
7966: 0: a\x85b
7967: a\n\rb
7968: 0: a\x0a\x0db
7969: a\n\r\x85\x0cb
7970: 0: a\x0a\x0d\x85\x0cb
7971:
7972: /^a\R+b/<bsr_unicode>
7973: a\nb
7974: 0: a\x0ab
7975: a\rb
7976: 0: a\x0db
7977: a\r\nb
7978: 0: a\x0d\x0ab
7979: a\x0bb
7980: 0: a\x0bb
7981: a\x0cb
7982: 0: a\x0cb
7983: a\x85b
7984: 0: a\x85b
7985: a\n\rb
7986: 0: a\x0a\x0db
7987: a\n\r\x85\x0cb
7988: 0: a\x0a\x0d\x85\x0cb
7989: ** Failers
7990: No match
7991: ab
7992: No match
7993:
7994: /^a\R{1,3}b/<bsr_unicode>
7995: a\nb
7996: 0: a\x0ab
7997: a\n\rb
7998: 0: a\x0a\x0db
7999: a\n\r\x85b
8000: 0: a\x0a\x0d\x85b
8001: a\r\n\r\nb
8002: 0: a\x0d\x0a\x0d\x0ab
8003: a\r\n\r\n\r\nb
8004: 0: a\x0d\x0a\x0d\x0a\x0d\x0ab
8005: a\n\r\n\rb
8006: 0: a\x0a\x0d\x0a\x0db
8007: a\n\n\r\nb
8008: 0: a\x0a\x0a\x0d\x0ab
8009: ** Failers
8010: No match
8011: a\n\n\n\rb
8012: No match
8013: a\r
8014: No match
8015:
8016: /^a[\R]b/<bsr_unicode>
8017: aRb
8018: 0: aRb
8019: ** Failers
8020: No match
8021: a\nb
8022: No match
8023:
8024: /(?&abc)X(?<abc>P)/I
8025: Capturing subpattern count = 1
8026: Named capturing subpatterns:
8027: abc 1
8028: No options
8029: No first char
8030: Need char = 'P'
8031: abcPXP123
8032: 0: PXP
8033: 1: P
8034:
8035: /(?1)X(?<abc>P)/I
8036: Capturing subpattern count = 1
8037: Named capturing subpatterns:
8038: abc 1
8039: No options
8040: No first char
8041: Need char = 'P'
8042: abcPXP123
8043: 0: PXP
8044: 1: P
8045:
8046: /(?:a(?&abc)b)*(?<abc>x)/
8047: 123axbaxbaxbx456
8048: 0: axbaxbaxbx
8049: 1: x
8050: 123axbaxbaxb456
8051: 0: x
8052: 1: x
8053:
8054: /(?:a(?&abc)b){1,5}(?<abc>x)/
8055: 123axbaxbaxbx456
8056: 0: axbaxbaxbx
8057: 1: x
8058:
8059: /(?:a(?&abc)b){2,5}(?<abc>x)/
8060: 123axbaxbaxbx456
8061: 0: axbaxbaxbx
8062: 1: x
8063:
8064: /(?:a(?&abc)b){2,}(?<abc>x)/
8065: 123axbaxbaxbx456
8066: 0: axbaxbaxbx
8067: 1: x
8068:
8069: /(abc)(?i:(?1))/
8070: defabcabcxyz
8071: 0: abcabc
8072: 1: abc
8073: DEFabcABCXYZ
8074: No match
8075:
8076: /(abc)(?:(?i)(?1))/
8077: defabcabcxyz
8078: 0: abcabc
8079: 1: abc
8080: DEFabcABCXYZ
8081: No match
8082:
8083: /^(a)\g-2/
8084: Failed: reference to non-existent subpattern at offset 7
8085:
8086: /^(a)\g/
8087: Failed: a numbered reference must not be zero at offset 5
8088:
8089: /^(a)\g{0}/
8090: Failed: a numbered reference must not be zero at offset 8
8091:
8092: /^(a)\g{3/
8093: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
8094:
1.1.1.5 ! misho 8095: /^(a)\g{aa}/
1.1 misho 8096: Failed: reference to non-existent subpattern at offset 9
8097:
8098: /^a.b/<lf>
8099: a\rb
8100: 0: a\x0db
8101: *** Failers
8102: No match
8103: a\nb
8104: No match
8105:
8106: /.+foo/
8107: afoo
8108: 0: afoo
8109: ** Failers
8110: No match
8111: \r\nfoo
8112: No match
8113: \nfoo
8114: No match
8115:
8116: /.+foo/<crlf>
8117: afoo
8118: 0: afoo
8119: \nfoo
8120: 0: \x0afoo
8121: ** Failers
8122: No match
8123: \r\nfoo
8124: No match
8125:
8126: /.+foo/<any>
8127: afoo
8128: 0: afoo
8129: ** Failers
8130: No match
8131: \nfoo
8132: No match
8133: \r\nfoo
8134: No match
8135:
8136: /.+foo/s
8137: afoo
8138: 0: afoo
8139: \r\nfoo
8140: 0: \x0d\x0afoo
8141: \nfoo
8142: 0: \x0afoo
8143:
8144: /^$/mg<any>
8145: abc\r\rxyz
8146: 0:
8147: abc\n\rxyz
8148: 0:
8149: ** Failers
8150: No match
8151: abc\r\nxyz
8152: No match
8153:
8154: /(?m)^$/<any>g+
8155: abc\r\n\r\n
8156: 0:
8157: 0+ \x0d\x0a
8158:
8159: /(?m)^$|^\r\n/<any>g+
8160: abc\r\n\r\n
8161: 0:
8162: 0+ \x0d\x0a
8163: 0: \x0d\x0a
8164: 0+
8165:
8166: /(?m)$/<any>g+
8167: abc\r\n\r\n
8168: 0:
8169: 0+ \x0d\x0a\x0d\x0a
8170: 0:
8171: 0+ \x0d\x0a
8172: 0:
8173: 0+
8174:
8175: /abc.$/mgx<anycrlf>
8176: abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
8177: 0: abc1
8178: 0: abc4
8179: 0: abc5
8180: 0: abc9
8181:
8182: /^X/m
8183: XABC
8184: 0: X
8185: ** Failers
8186: No match
8187: XABC\B
8188: No match
8189:
8190: /(ab|c)(?-1)/BZ
8191: ------------------------------------------------------------------
8192: Bra
8193: CBra 1
8194: ab
8195: Alt
8196: c
8197: Ket
8198: Recurse
8199: Ket
8200: End
8201: ------------------------------------------------------------------
8202: abc
8203: 0: abc
8204: 1: ab
8205:
8206: /xy(?+1)(abc)/BZ
8207: ------------------------------------------------------------------
8208: Bra
8209: xy
8210: Recurse
8211: CBra 1
8212: abc
8213: Ket
8214: Ket
8215: End
8216: ------------------------------------------------------------------
8217: xyabcabc
8218: 0: xyabcabc
8219: 1: abc
8220: ** Failers
8221: No match
8222: xyabc
8223: No match
8224:
8225: /x(?-0)y/
8226: Failed: a numbered reference must not be zero at offset 5
8227:
8228: /x(?-1)y/
8229: Failed: reference to non-existent subpattern at offset 5
8230:
8231: /x(?+0)y/
8232: Failed: a numbered reference must not be zero at offset 5
8233:
8234: /x(?+1)y/
8235: Failed: reference to non-existent subpattern at offset 5
8236:
8237: /^(abc)?(?(-1)X|Y)/BZ
8238: ------------------------------------------------------------------
8239: Bra
8240: ^
8241: Brazero
8242: CBra 1
8243: abc
8244: Ket
8245: Cond
8246: 1 Cond ref
8247: X
8248: Alt
8249: Y
8250: Ket
8251: Ket
8252: End
8253: ------------------------------------------------------------------
8254: abcX
8255: 0: abcX
8256: 1: abc
8257: Y
8258: 0: Y
8259: ** Failers
8260: No match
8261: abcY
8262: No match
8263:
8264: /^((?(+1)X|Y)(abc))+/BZ
8265: ------------------------------------------------------------------
8266: Bra
8267: ^
8268: CBra 1
8269: Cond
8270: 2 Cond ref
8271: X
8272: Alt
8273: Y
8274: Ket
8275: CBra 2
8276: abc
8277: Ket
8278: KetRmax
8279: Ket
8280: End
8281: ------------------------------------------------------------------
8282: YabcXabc
8283: 0: YabcXabc
8284: 1: Xabc
8285: 2: abc
8286: YabcXabcXabc
8287: 0: YabcXabcXabc
8288: 1: Xabc
8289: 2: abc
8290: ** Failers
8291: No match
8292: XabcXabc
8293: No match
8294:
8295: /(?(-1)a)/BZ
8296: Failed: reference to non-existent subpattern at offset 6
8297:
8298: /((?(-1)a))/BZ
8299: ------------------------------------------------------------------
8300: Bra
8301: CBra 1
8302: Cond
8303: 1 Cond ref
8304: a
8305: Ket
8306: Ket
8307: Ket
8308: End
8309: ------------------------------------------------------------------
8310:
8311: /((?(-2)a))/BZ
8312: Failed: reference to non-existent subpattern at offset 7
8313:
8314: /^(?(+1)X|Y)(.)/BZ
8315: ------------------------------------------------------------------
8316: Bra
8317: ^
8318: Cond
8319: 1 Cond ref
8320: X
8321: Alt
8322: Y
8323: Ket
8324: CBra 1
8325: Any
8326: Ket
8327: Ket
8328: End
8329: ------------------------------------------------------------------
8330: Y!
8331: 0: Y!
8332: 1: !
8333:
8334: /(?<A>tom|bon)-\k{A}/
8335: tom-tom
8336: 0: tom-tom
8337: 1: tom
8338: bon-bon
8339: 0: bon-bon
8340: 1: bon
8341: ** Failers
8342: No match
8343: tom-bon
8344: No match
8345:
8346: /\g{A/
8347: Failed: syntax error in subpattern name (missing terminator) at offset 4
8348:
8349: /(?|(abc)|(xyz))/BZ
8350: ------------------------------------------------------------------
8351: Bra
8352: Bra
8353: CBra 1
8354: abc
8355: Ket
8356: Alt
8357: CBra 1
8358: xyz
8359: Ket
8360: Ket
8361: Ket
8362: End
8363: ------------------------------------------------------------------
8364: >abc<
8365: 0: abc
8366: 1: abc
8367: >xyz<
8368: 0: xyz
8369: 1: xyz
8370:
8371: /(x)(?|(abc)|(xyz))(x)/BZ
8372: ------------------------------------------------------------------
8373: Bra
8374: CBra 1
8375: x
8376: Ket
8377: Bra
8378: CBra 2
8379: abc
8380: Ket
8381: Alt
8382: CBra 2
8383: xyz
8384: Ket
8385: Ket
8386: CBra 3
8387: x
8388: Ket
8389: Ket
8390: End
8391: ------------------------------------------------------------------
8392: xabcx
8393: 0: xabcx
8394: 1: x
8395: 2: abc
8396: 3: x
8397: xxyzx
8398: 0: xxyzx
8399: 1: x
8400: 2: xyz
8401: 3: x
8402:
8403: /(x)(?|(abc)(pqr)|(xyz))(x)/BZ
8404: ------------------------------------------------------------------
8405: Bra
8406: CBra 1
8407: x
8408: Ket
8409: Bra
8410: CBra 2
8411: abc
8412: Ket
8413: CBra 3
8414: pqr
8415: Ket
8416: Alt
8417: CBra 2
8418: xyz
8419: Ket
8420: Ket
8421: CBra 4
8422: x
8423: Ket
8424: Ket
8425: End
8426: ------------------------------------------------------------------
8427: xabcpqrx
8428: 0: xabcpqrx
8429: 1: x
8430: 2: abc
8431: 3: pqr
8432: 4: x
8433: xxyzx
8434: 0: xxyzx
8435: 1: x
8436: 2: xyz
8437: 3: <unset>
8438: 4: x
8439:
8440: /\H++X/BZ
8441: ------------------------------------------------------------------
8442: Bra
8443: \H++
8444: X
8445: Ket
8446: End
8447: ------------------------------------------------------------------
8448: ** Failers
8449: No match
8450: XXXX
8451: No match
8452:
8453: /\H+\hY/BZ
8454: ------------------------------------------------------------------
8455: Bra
8456: \H++
8457: \h
8458: Y
8459: Ket
8460: End
8461: ------------------------------------------------------------------
8462: XXXX Y
8463: 0: XXXX Y
8464:
8465: /\H+ Y/BZ
8466: ------------------------------------------------------------------
8467: Bra
8468: \H++
8469: Y
8470: Ket
8471: End
8472: ------------------------------------------------------------------
8473:
8474: /\h+A/BZ
8475: ------------------------------------------------------------------
8476: Bra
8477: \h++
8478: A
8479: Ket
8480: End
8481: ------------------------------------------------------------------
8482:
8483: /\v*B/BZ
8484: ------------------------------------------------------------------
8485: Bra
8486: \v*+
8487: B
8488: Ket
8489: End
8490: ------------------------------------------------------------------
8491:
8492: /\V+\x0a/BZ
8493: ------------------------------------------------------------------
8494: Bra
8495: \V++
8496: \x0a
8497: Ket
8498: End
8499: ------------------------------------------------------------------
8500:
8501: /A+\h/BZ
8502: ------------------------------------------------------------------
8503: Bra
8504: A++
8505: \h
8506: Ket
8507: End
8508: ------------------------------------------------------------------
8509:
8510: / *\H/BZ
8511: ------------------------------------------------------------------
8512: Bra
8513: *+
8514: \H
8515: Ket
8516: End
8517: ------------------------------------------------------------------
8518:
8519: /A*\v/BZ
8520: ------------------------------------------------------------------
8521: Bra
8522: A*+
8523: \v
8524: Ket
8525: End
8526: ------------------------------------------------------------------
8527:
8528: /\x0b*\V/BZ
8529: ------------------------------------------------------------------
8530: Bra
8531: \x0b*+
8532: \V
8533: Ket
8534: End
8535: ------------------------------------------------------------------
8536:
8537: /\d+\h/BZ
8538: ------------------------------------------------------------------
8539: Bra
8540: \d++
8541: \h
8542: Ket
8543: End
8544: ------------------------------------------------------------------
8545:
8546: /\d*\v/BZ
8547: ------------------------------------------------------------------
8548: Bra
8549: \d*+
8550: \v
8551: Ket
8552: End
8553: ------------------------------------------------------------------
8554:
8555: /S+\h\S+\v/BZ
8556: ------------------------------------------------------------------
8557: Bra
8558: S++
8559: \h
8560: \S++
8561: \v
8562: Ket
8563: End
8564: ------------------------------------------------------------------
8565:
8566: /\w{3,}\h\w+\v/BZ
8567: ------------------------------------------------------------------
8568: Bra
8569: \w{3}
8570: \w*+
8571: \h
8572: \w++
8573: \v
8574: Ket
8575: End
8576: ------------------------------------------------------------------
8577:
8578: /\h+\d\h+\w\h+\S\h+\H/BZ
8579: ------------------------------------------------------------------
8580: Bra
8581: \h++
8582: \d
8583: \h++
8584: \w
8585: \h++
8586: \S
8587: \h++
8588: \H
8589: Ket
8590: End
8591: ------------------------------------------------------------------
8592:
8593: /\v+\d\v+\w\v+\S\v+\V/BZ
8594: ------------------------------------------------------------------
8595: Bra
8596: \v++
8597: \d
8598: \v++
8599: \w
1.1.1.5 ! misho 8600: \v++
1.1 misho 8601: \S
8602: \v++
8603: \V
8604: Ket
8605: End
8606: ------------------------------------------------------------------
8607:
8608: /\H+\h\H+\d/BZ
8609: ------------------------------------------------------------------
8610: Bra
8611: \H++
8612: \h
8613: \H+
8614: \d
8615: Ket
8616: End
8617: ------------------------------------------------------------------
8618:
8619: /\V+\v\V+\w/BZ
8620: ------------------------------------------------------------------
8621: Bra
8622: \V++
8623: \v
8624: \V+
8625: \w
8626: Ket
8627: End
8628: ------------------------------------------------------------------
8629:
8630: /\( (?: [^()]* | (?R) )* \)/x
8631: \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)
8632: 0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8633:
8634: /[\E]AAA/
8635: Failed: missing terminating ] for character class at offset 7
8636:
8637: /[\Q\E]AAA/
8638: Failed: missing terminating ] for character class at offset 9
8639:
8640: /[^\E]AAA/
8641: Failed: missing terminating ] for character class at offset 8
8642:
8643: /[^\Q\E]AAA/
8644: Failed: missing terminating ] for character class at offset 10
8645:
8646: /[\E^]AAA/
8647: Failed: missing terminating ] for character class at offset 8
8648:
8649: /[\Q\E^]AAA/
8650: Failed: missing terminating ] for character class at offset 10
8651:
8652: /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
8653: ------------------------------------------------------------------
8654: Bra
8655: A
8656: *PRUNE
8657: B
8658: *SKIP
8659: C
8660: *THEN
8661: D
8662: *COMMIT
8663: E
8664: *FAIL
8665: F
8666: *FAIL
8667: G
8668: *FAIL
8669: H
8670: *ACCEPT
8671: I
8672: Ket
8673: End
8674: ------------------------------------------------------------------
8675:
8676: /^a+(*FAIL)/C
8677: aaaaaa
8678: --->aaaaaa
8679: +0 ^ ^
8680: +1 ^ a+
8681: +3 ^ ^ (*FAIL)
8682: +3 ^ ^ (*FAIL)
8683: +3 ^ ^ (*FAIL)
8684: +3 ^ ^ (*FAIL)
8685: +3 ^ ^ (*FAIL)
8686: +3 ^^ (*FAIL)
8687: No match
8688:
8689: /a+b?c+(*FAIL)/C
8690: aaabccc
8691: --->aaabccc
8692: +0 ^ a+
8693: +2 ^ ^ b?
8694: +4 ^ ^ c+
8695: +6 ^ ^ (*FAIL)
8696: +6 ^ ^ (*FAIL)
8697: +6 ^ ^ (*FAIL)
8698: +0 ^ a+
8699: +2 ^ ^ b?
8700: +4 ^ ^ c+
8701: +6 ^ ^ (*FAIL)
8702: +6 ^ ^ (*FAIL)
8703: +6 ^ ^ (*FAIL)
8704: +0 ^ a+
8705: +2 ^^ b?
8706: +4 ^ ^ c+
8707: +6 ^ ^ (*FAIL)
8708: +6 ^ ^ (*FAIL)
8709: +6 ^ ^ (*FAIL)
8710: No match
8711:
8712: /a+b?(*PRUNE)c+(*FAIL)/C
8713: aaabccc
8714: --->aaabccc
8715: +0 ^ a+
8716: +2 ^ ^ b?
8717: +4 ^ ^ (*PRUNE)
8718: +12 ^ ^ c+
8719: +14 ^ ^ (*FAIL)
8720: +14 ^ ^ (*FAIL)
8721: +14 ^ ^ (*FAIL)
8722: +0 ^ a+
8723: +2 ^ ^ b?
8724: +4 ^ ^ (*PRUNE)
8725: +12 ^ ^ c+
8726: +14 ^ ^ (*FAIL)
8727: +14 ^ ^ (*FAIL)
8728: +14 ^ ^ (*FAIL)
8729: +0 ^ a+
8730: +2 ^^ b?
8731: +4 ^ ^ (*PRUNE)
8732: +12 ^ ^ c+
8733: +14 ^ ^ (*FAIL)
8734: +14 ^ ^ (*FAIL)
8735: +14 ^ ^ (*FAIL)
8736: No match
8737:
8738: /a+b?(*COMMIT)c+(*FAIL)/C
8739: aaabccc
8740: --->aaabccc
8741: +0 ^ a+
8742: +2 ^ ^ b?
8743: +4 ^ ^ (*COMMIT)
8744: +13 ^ ^ c+
8745: +15 ^ ^ (*FAIL)
8746: +15 ^ ^ (*FAIL)
8747: +15 ^ ^ (*FAIL)
8748: No match
8749:
8750: /a+b?(*SKIP)c+(*FAIL)/C
8751: aaabcccaaabccc
8752: --->aaabcccaaabccc
8753: +0 ^ a+
8754: +2 ^ ^ b?
8755: +4 ^ ^ (*SKIP)
8756: +11 ^ ^ c+
8757: +13 ^ ^ (*FAIL)
8758: +13 ^ ^ (*FAIL)
8759: +13 ^ ^ (*FAIL)
8760: +0 ^ a+
8761: +2 ^ ^ b?
8762: +4 ^ ^ (*SKIP)
8763: +11 ^ ^ c+
8764: +13 ^ ^ (*FAIL)
8765: +13 ^ ^ (*FAIL)
8766: +13 ^ ^ (*FAIL)
8767: No match
8768:
8769: /a+b?(*THEN)c+(*FAIL)/C
8770: aaabccc
8771: --->aaabccc
8772: +0 ^ a+
8773: +2 ^ ^ b?
8774: +4 ^ ^ (*THEN)
8775: +11 ^ ^ c+
8776: +13 ^ ^ (*FAIL)
8777: +13 ^ ^ (*FAIL)
8778: +13 ^ ^ (*FAIL)
8779: +0 ^ a+
8780: +2 ^ ^ b?
8781: +4 ^ ^ (*THEN)
8782: +11 ^ ^ c+
8783: +13 ^ ^ (*FAIL)
8784: +13 ^ ^ (*FAIL)
8785: +13 ^ ^ (*FAIL)
8786: +0 ^ a+
8787: +2 ^^ b?
8788: +4 ^ ^ (*THEN)
8789: +11 ^ ^ c+
8790: +13 ^ ^ (*FAIL)
8791: +13 ^ ^ (*FAIL)
8792: +13 ^ ^ (*FAIL)
8793: No match
8794:
8795: /a(*MARK)b/
8796: Failed: (*MARK) must have an argument at offset 7
8797:
8798: /(?i:A{1,}\6666666666)/
8799: Failed: number is too big at offset 19
8800:
8801: /\g6666666666/
8802: Failed: number is too big at offset 11
8803:
8804: /[\g6666666666]/BZ
8805: ------------------------------------------------------------------
8806: Bra
8807: [6g]
8808: Ket
8809: End
8810: ------------------------------------------------------------------
8811:
8812: /(?1)\c[/
8813: Failed: reference to non-existent subpattern at offset 3
8814:
8815: /.+A/<crlf>
8816: \r\nA
8817: No match
8818:
8819: /\nA/<crlf>
8820: \r\nA
8821: 0: \x0aA
8822:
8823: /[\r\n]A/<crlf>
8824: \r\nA
8825: 0: \x0aA
8826:
8827: /(\r|\n)A/<crlf>
8828: \r\nA
8829: 0: \x0aA
8830: 1: \x0a
8831:
8832: /a(*CR)b/
1.1.1.4 misho 8833: Failed: (*VERB) not recognized or malformed at offset 5
1.1 misho 8834:
8835: /(*CR)a.b/
8836: a\nb
8837: 0: a\x0ab
8838: ** Failers
8839: No match
8840: a\rb
8841: No match
8842:
8843: /(*CR)a.b/<lf>
8844: a\nb
8845: 0: a\x0ab
8846: ** Failers
8847: No match
8848: a\rb
8849: No match
8850:
8851: /(*LF)a.b/<CRLF>
8852: a\rb
8853: 0: a\x0db
8854: ** Failers
8855: No match
8856: a\nb
8857: No match
8858:
8859: /(*CRLF)a.b/
8860: a\rb
8861: 0: a\x0db
8862: a\nb
8863: 0: a\x0ab
8864: ** Failers
8865: No match
8866: a\r\nb
8867: No match
8868:
8869: /(*ANYCRLF)a.b/<CR>
8870: ** Failers
8871: No match
8872: a\rb
8873: No match
8874: a\nb
8875: No match
8876: a\r\nb
8877: No match
8878:
8879: /(*ANY)a.b/<cr>
8880: ** Failers
8881: No match
8882: a\rb
8883: No match
8884: a\nb
8885: No match
8886: a\r\nb
8887: No match
8888: a\x85b
8889: No match
8890:
8891: /(*ANY).*/g
8892: abc\r\ndef
8893: 0: abc
8894: 0:
8895: 0: def
8896: 0:
8897:
8898: /(*ANYCRLF).*/g
8899: abc\r\ndef
8900: 0: abc
8901: 0:
8902: 0: def
8903: 0:
8904:
8905: /(*CRLF).*/g
8906: abc\r\ndef
8907: 0: abc
8908: 0:
8909: 0: def
8910: 0:
8911:
8912: /a\Rb/I<bsr_anycrlf>
8913: Capturing subpattern count = 0
8914: Options: bsr_anycrlf
8915: First char = 'a'
8916: Need char = 'b'
8917: a\rb
8918: 0: a\x0db
8919: a\nb
8920: 0: a\x0ab
8921: a\r\nb
8922: 0: a\x0d\x0ab
8923: ** Failers
8924: No match
8925: a\x85b
8926: No match
8927: a\x0bb
8928: No match
8929:
8930: /a\Rb/I<bsr_unicode>
8931: Capturing subpattern count = 0
8932: Options: bsr_unicode
8933: First char = 'a'
8934: Need char = 'b'
8935: a\rb
8936: 0: a\x0db
8937: a\nb
8938: 0: a\x0ab
8939: a\r\nb
8940: 0: a\x0d\x0ab
8941: a\x85b
8942: 0: a\x85b
8943: a\x0bb
8944: 0: a\x0bb
8945: ** Failers
8946: No match
8947: a\x85b\<bsr_anycrlf>
8948: No match
8949: a\x0bb\<bsr_anycrlf>
8950: No match
8951:
8952: /a\R?b/I<bsr_anycrlf>
8953: Capturing subpattern count = 0
8954: Options: bsr_anycrlf
8955: First char = 'a'
8956: Need char = 'b'
8957: a\rb
8958: 0: a\x0db
8959: a\nb
8960: 0: a\x0ab
8961: a\r\nb
8962: 0: a\x0d\x0ab
8963: ** Failers
8964: No match
8965: a\x85b
8966: No match
8967: a\x0bb
8968: No match
8969:
8970: /a\R?b/I<bsr_unicode>
8971: Capturing subpattern count = 0
8972: Options: bsr_unicode
8973: First char = 'a'
8974: Need char = 'b'
8975: a\rb
8976: 0: a\x0db
8977: a\nb
8978: 0: a\x0ab
8979: a\r\nb
8980: 0: a\x0d\x0ab
8981: a\x85b
8982: 0: a\x85b
8983: a\x0bb
8984: 0: a\x0bb
8985: ** Failers
8986: No match
8987: a\x85b\<bsr_anycrlf>
8988: No match
8989: a\x0bb\<bsr_anycrlf>
8990: No match
8991:
8992: /a\R{2,4}b/I<bsr_anycrlf>
8993: Capturing subpattern count = 0
8994: Options: bsr_anycrlf
8995: First char = 'a'
8996: Need char = 'b'
8997: a\r\n\nb
8998: 0: a\x0d\x0a\x0ab
8999: a\n\r\rb
9000: 0: a\x0a\x0d\x0db
9001: a\r\n\r\n\r\n\r\nb
9002: 0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
9003: ** Failers
9004: No match
9005: a\x85\85b
9006: No match
9007: a\x0b\0bb
9008: No match
9009:
9010: /a\R{2,4}b/I<bsr_unicode>
9011: Capturing subpattern count = 0
9012: Options: bsr_unicode
9013: First char = 'a'
9014: Need char = 'b'
9015: a\r\rb
9016: 0: a\x0d\x0db
9017: a\n\n\nb
9018: 0: a\x0a\x0a\x0ab
9019: a\r\n\n\r\rb
9020: 0: a\x0d\x0a\x0a\x0d\x0db
9021: a\x85\85b
9022: No match
9023: a\x0b\0bb
9024: No match
9025: ** Failers
9026: No match
9027: a\r\r\r\r\rb
9028: No match
9029: a\x85\85b\<bsr_anycrlf>
9030: No match
9031: a\x0b\0bb\<bsr_anycrlf>
9032: No match
9033:
9034: /(*BSR_ANYCRLF)a\Rb/I
9035: Capturing subpattern count = 0
9036: Options: bsr_anycrlf
9037: First char = 'a'
9038: Need char = 'b'
9039: a\nb
9040: 0: a\x0ab
9041: a\rb
9042: 0: a\x0db
9043:
9044: /(*BSR_UNICODE)a\Rb/I
9045: Capturing subpattern count = 0
9046: Options: bsr_unicode
9047: First char = 'a'
9048: Need char = 'b'
9049: a\x85b
9050: 0: a\x85b
9051:
9052: /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
9053: Capturing subpattern count = 0
9054: Options: bsr_anycrlf
9055: Forced newline sequence: CRLF
9056: First char = 'a'
9057: Need char = 'b'
9058: a\nb
9059: 0: a\x0ab
9060: a\rb
9061: 0: a\x0db
9062:
9063: /(*CRLF)(*BSR_UNICODE)a\Rb/I
9064: Capturing subpattern count = 0
9065: Options: bsr_unicode
9066: Forced newline sequence: CRLF
9067: First char = 'a'
9068: Need char = 'b'
9069: a\x85b
9070: 0: a\x85b
9071:
9072: /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
9073: Capturing subpattern count = 0
9074: Options: bsr_anycrlf
9075: Forced newline sequence: CR
9076: First char = 'a'
9077: Need char = 'b'
9078:
9079: /(?<a>)(?&)/
9080: Failed: subpattern name expected at offset 9
9081:
9082: /(?<abc>)(?&a)/
9083: Failed: reference to non-existent subpattern at offset 12
9084:
9085: /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
9086: Failed: reference to non-existent subpattern at offset 32
9087:
9088: /(?+-a)/
9089: Failed: digit expected after (?+ at offset 3
9090:
9091: /(?-+a)/
9092: Failed: unrecognized character after (? or (?- at offset 3
9093:
9094: /(?(-1))/
9095: Failed: reference to non-existent subpattern at offset 6
9096:
9097: /(?(+10))/
9098: Failed: reference to non-existent subpattern at offset 7
9099:
9100: /(?(10))/
9101: Failed: reference to non-existent subpattern at offset 6
9102:
9103: /(?(+2))()()/
9104:
9105: /(?(2))()()/
9106:
9107: /\k''/
9108: Failed: subpattern name expected at offset 3
9109:
9110: /\k<>/
9111: Failed: subpattern name expected at offset 3
9112:
9113: /\k{}/
9114: Failed: subpattern name expected at offset 3
9115:
9116: /\k/
9117: Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9118:
9119: /\kabc/
9120: Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9121:
9122: /(?P=)/
9123: Failed: subpattern name expected at offset 4
9124:
9125: /(?P>)/
9126: Failed: subpattern name expected at offset 4
9127:
9128: /(?!\w)(?R)/
9129: Failed: recursive call could loop indefinitely at offset 9
9130:
9131: /(?=\w)(?R)/
9132: Failed: recursive call could loop indefinitely at offset 9
9133:
9134: /(?<!\w)(?R)/
9135: Failed: recursive call could loop indefinitely at offset 10
9136:
9137: /(?<=\w)(?R)/
9138: Failed: recursive call could loop indefinitely at offset 10
9139:
9140: /[[:foo:]]/
9141: Failed: unknown POSIX class name at offset 3
9142:
9143: /[[:1234:]]/
9144: Failed: unknown POSIX class name at offset 3
9145:
9146: /[[:f\oo:]]/
9147: Failed: unknown POSIX class name at offset 3
9148:
9149: /[[: :]]/
9150: Failed: unknown POSIX class name at offset 3
9151:
9152: /[[:...:]]/
9153: Failed: unknown POSIX class name at offset 3
9154:
9155: /[[:l\ower:]]/
9156: Failed: unknown POSIX class name at offset 3
9157:
9158: /[[:abc\:]]/
9159: Failed: unknown POSIX class name at offset 3
9160:
9161: /[abc[:x\]pqr:]]/
9162: Failed: unknown POSIX class name at offset 6
9163:
9164: /[[:a\dz:]]/
9165: Failed: unknown POSIX class name at offset 3
9166:
9167: /(^(a|b\g<-1'c))/
9168: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
9169:
9170: /^(?+1)(?<a>x|y){0}z/
9171: xzxx
9172: 0: xz
9173: yzyy
9174: 0: yz
9175: ** Failers
9176: No match
9177: xxz
9178: No match
9179:
9180: /(\3)(\1)(a)/
9181: cat
9182: No match
9183:
9184: /(\3)(\1)(a)/<JS>
9185: cat
9186: 0: a
9187: 1:
9188: 2:
9189: 3: a
9190:
9191: /TA]/
9192: The ACTA] comes
9193: 0: TA]
9194:
9195: /TA]/<JS>
9196: Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
9197:
9198: /(?2)[]a()b](abc)/
9199: Failed: reference to non-existent subpattern at offset 3
9200:
9201: /(?2)[^]a()b](abc)/
9202: Failed: reference to non-existent subpattern at offset 3
9203:
9204: /(?1)[]a()b](abc)/
9205: abcbabc
9206: 0: abcbabc
9207: 1: abc
9208: ** Failers
9209: No match
9210: abcXabc
9211: No match
9212:
9213: /(?1)[^]a()b](abc)/
9214: abcXabc
9215: 0: abcXabc
9216: 1: abc
9217: ** Failers
9218: No match
9219: abcbabc
9220: No match
9221:
9222: /(?2)[]a()b](abc)(xyz)/
9223: xyzbabcxyz
9224: 0: xyzbabcxyz
9225: 1: abc
9226: 2: xyz
9227:
9228: /(?&N)[]a(?<N>)](?<M>abc)/
9229: Failed: reference to non-existent subpattern at offset 4
9230:
9231: /(?&N)[]a(?<N>)](abc)/
9232: Failed: reference to non-existent subpattern at offset 4
9233:
9234: /a[]b/
9235: Failed: missing terminating ] for character class at offset 4
9236:
9237: /a[^]b/
9238: Failed: missing terminating ] for character class at offset 5
9239:
9240: /a[]b/<JS>
9241: ** Failers
9242: No match
9243: ab
9244: No match
9245:
9246: /a[]+b/<JS>
9247: ** Failers
9248: No match
9249: ab
9250: No match
9251:
9252: /a[]*+b/<JS>
9253: ** Failers
9254: No match
9255: ab
9256: No match
9257:
9258: /a[^]b/<JS>
9259: aXb
9260: 0: aXb
9261: a\nb
9262: 0: a\x0ab
9263: ** Failers
9264: No match
9265: ab
9266: No match
9267:
9268: /a[^]+b/<JS>
9269: aXb
9270: 0: aXb
9271: a\nX\nXb
9272: 0: a\x0aX\x0aXb
9273: ** Failers
9274: No match
9275: ab
9276: No match
9277:
1.1.1.5 ! misho 9278: /a(?!)b/BZ
! 9279: ------------------------------------------------------------------
! 9280: Bra
! 9281: a
! 9282: *FAIL
! 9283: b
! 9284: Ket
! 9285: End
! 9286: ------------------------------------------------------------------
! 9287:
! 9288: /(?!)?a/BZ
! 9289: ------------------------------------------------------------------
! 9290: Bra
! 9291: Brazero
! 9292: Assert not
! 9293: Ket
! 9294: a
! 9295: Ket
! 9296: End
! 9297: ------------------------------------------------------------------
! 9298: ab
! 9299: 0: a
1.1 misho 9300:
9301: /a(*FAIL)+b/
9302: Failed: nothing to repeat at offset 8
9303:
9304: /(abc|pqr|123){0}[xyz]/SI
9305: Capturing subpattern count = 1
9306: No options
9307: No first char
9308: No need char
9309: Subject length lower bound = 1
9310: Starting byte set: x y z
9311:
9312: /(?(?=.*b)b|^)/CI
9313: Capturing subpattern count = 0
1.1.1.5 ! misho 9314: May match empty string
1.1 misho 9315: Options:
9316: No first char
9317: No need char
9318: adc
9319: --->adc
9320: +0 ^ (?(?=.*b)b|^)
9321: +2 ^ (?=.*b)
9322: +5 ^ .*
9323: +7 ^ ^ b
9324: +7 ^ ^ b
9325: +7 ^^ b
9326: +7 ^ b
1.1.1.4 misho 9327: +11 ^ ^
1.1 misho 9328: +12 ^ )
9329: +13 ^
9330: 0:
9331: abc
9332: --->abc
9333: +0 ^ (?(?=.*b)b|^)
9334: +2 ^ (?=.*b)
9335: +5 ^ .*
9336: +7 ^ ^ b
9337: +7 ^ ^ b
9338: +7 ^^ b
9339: +8 ^ ^ )
9340: +9 ^ b
9341: +0 ^ (?(?=.*b)b|^)
9342: +2 ^ (?=.*b)
9343: +5 ^ .*
9344: +7 ^ ^ b
9345: +7 ^^ b
9346: +7 ^ b
9347: +8 ^^ )
9348: +9 ^ b
9349: +10 ^^ |
9350: +13 ^^
9351: 0: b
9352:
9353: /(?(?=b).*b|^d)/I
9354: Capturing subpattern count = 0
9355: No options
9356: No first char
9357: No need char
9358:
9359: /(?(?=.*b).*b|^d)/I
9360: Capturing subpattern count = 0
9361: No options
9362: First char at start or follows newline
9363: No need char
9364:
9365: /xyz/C
9366: xyz
9367: --->xyz
9368: +0 ^ x
9369: +1 ^^ y
9370: +2 ^ ^ z
9371: +3 ^ ^
9372: 0: xyz
9373: abcxyz
9374: --->abcxyz
9375: +0 ^ x
9376: +1 ^^ y
9377: +2 ^ ^ z
9378: +3 ^ ^
9379: 0: xyz
9380: abcxyz\Y
9381: --->abcxyz
9382: +0 ^ x
9383: +0 ^ x
9384: +0 ^ x
9385: +0 ^ x
9386: +1 ^^ y
9387: +2 ^ ^ z
9388: +3 ^ ^
9389: 0: xyz
9390: ** Failers
9391: No match
9392: abc
9393: No match
9394: abc\Y
9395: --->abc
9396: +0 ^ x
9397: +0 ^ x
9398: +0 ^ x
9399: +0 ^ x
9400: No match
9401: abcxypqr
9402: No match
9403: abcxypqr\Y
9404: --->abcxypqr
9405: +0 ^ x
9406: +0 ^ x
9407: +0 ^ x
9408: +0 ^ x
9409: +1 ^^ y
9410: +2 ^ ^ z
9411: +0 ^ x
9412: +0 ^ x
9413: +0 ^ x
9414: +0 ^ x
9415: +0 ^ x
9416: No match
9417:
9418: /(*NO_START_OPT)xyz/C
1.1.1.5 ! misho 9419: abcxyz
1.1 misho 9420: --->abcxyz
9421: +15 ^ x
9422: +15 ^ x
9423: +15 ^ x
9424: +15 ^ x
9425: +16 ^^ y
9426: +17 ^ ^ z
9427: +18 ^ ^
9428: 0: xyz
1.1.1.5 ! misho 9429:
! 9430: /(*NO_AUTO_POSSESS)a+b/BZ
! 9431: ------------------------------------------------------------------
! 9432: Bra
! 9433: a+
! 9434: b
! 9435: Ket
! 9436: End
! 9437: ------------------------------------------------------------------
1.1 misho 9438:
9439: /xyz/CY
9440: abcxyz
9441: --->abcxyz
9442: +0 ^ x
9443: +0 ^ x
9444: +0 ^ x
9445: +0 ^ x
9446: +1 ^^ y
9447: +2 ^ ^ z
9448: +3 ^ ^
9449: 0: xyz
9450:
9451: /^"((?(?=[a])[^"])|b)*"$/C
9452: "ab"
9453: --->"ab"
9454: +0 ^ ^
9455: +1 ^ "
9456: +2 ^^ ((?(?=[a])[^"])|b)*
9457: +3 ^^ (?(?=[a])[^"])
9458: +5 ^^ (?=[a])
9459: +8 ^^ [a]
9460: +11 ^ ^ )
9461: +12 ^^ [^"]
9462: +16 ^ ^ )
9463: +17 ^ ^ |
9464: +3 ^ ^ (?(?=[a])[^"])
9465: +5 ^ ^ (?=[a])
9466: +8 ^ ^ [a]
1.1.1.4 misho 9467: +17 ^ ^ |
1.1 misho 9468: +21 ^ ^ "
9469: +18 ^ ^ b
9470: +19 ^ ^ )
9471: +3 ^ ^ (?(?=[a])[^"])
9472: +5 ^ ^ (?=[a])
9473: +8 ^ ^ [a]
1.1.1.4 misho 9474: +17 ^ ^ |
1.1 misho 9475: +21 ^ ^ "
9476: +22 ^ ^ $
9477: +23 ^ ^
9478: 0: "ab"
9479: 1:
9480:
9481: /^"((?(?=[a])[^"])|b)*"$/
9482: "ab"
9483: 0: "ab"
9484: 1:
9485:
9486: /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9487: Failed: reference to non-existent subpattern at offset 5
9488:
9489: /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9490: XYabcdY
9491: 0: XYabcdY
9492: 1: a
9493: 2: b
9494: 3: c
9495: 4: d
9496: 5: Y
9497:
9498: /Xa{2,4}b/
9499: X\P
9500: Partial match: X
9501: Xa\P
9502: Partial match: Xa
9503: Xaa\P
9504: Partial match: Xaa
9505: Xaaa\P
9506: Partial match: Xaaa
9507: Xaaaa\P
9508: Partial match: Xaaaa
9509:
9510: /Xa{2,4}?b/
9511: X\P
9512: Partial match: X
9513: Xa\P
9514: Partial match: Xa
9515: Xaa\P
9516: Partial match: Xaa
9517: Xaaa\P
9518: Partial match: Xaaa
9519: Xaaaa\P
9520: Partial match: Xaaaa
9521:
9522: /Xa{2,4}+b/
9523: X\P
9524: Partial match: X
9525: Xa\P
9526: Partial match: Xa
9527: Xaa\P
9528: Partial match: Xaa
9529: Xaaa\P
9530: Partial match: Xaaa
9531: Xaaaa\P
9532: Partial match: Xaaaa
9533:
9534: /X\d{2,4}b/
9535: X\P
9536: Partial match: X
9537: X3\P
9538: Partial match: X3
9539: X33\P
9540: Partial match: X33
9541: X333\P
9542: Partial match: X333
9543: X3333\P
9544: Partial match: X3333
9545:
9546: /X\d{2,4}?b/
9547: X\P
9548: Partial match: X
9549: X3\P
9550: Partial match: X3
9551: X33\P
9552: Partial match: X33
9553: X333\P
9554: Partial match: X333
9555: X3333\P
9556: Partial match: X3333
9557:
9558: /X\d{2,4}+b/
9559: X\P
9560: Partial match: X
9561: X3\P
9562: Partial match: X3
9563: X33\P
9564: Partial match: X33
9565: X333\P
9566: Partial match: X333
9567: X3333\P
9568: Partial match: X3333
9569:
9570: /X\D{2,4}b/
9571: X\P
9572: Partial match: X
9573: Xa\P
9574: Partial match: Xa
9575: Xaa\P
9576: Partial match: Xaa
9577: Xaaa\P
9578: Partial match: Xaaa
9579: Xaaaa\P
9580: Partial match: Xaaaa
9581:
9582: /X\D{2,4}?b/
9583: X\P
9584: Partial match: X
9585: Xa\P
9586: Partial match: Xa
9587: Xaa\P
9588: Partial match: Xaa
9589: Xaaa\P
9590: Partial match: Xaaa
9591: Xaaaa\P
9592: Partial match: Xaaaa
9593:
9594: /X\D{2,4}+b/
9595: X\P
9596: Partial match: X
9597: Xa\P
9598: Partial match: Xa
9599: Xaa\P
9600: Partial match: Xaa
9601: Xaaa\P
9602: Partial match: Xaaa
9603: Xaaaa\P
9604: Partial match: Xaaaa
9605:
9606: /X[abc]{2,4}b/
9607: X\P
9608: Partial match: X
9609: Xa\P
9610: Partial match: Xa
9611: Xaa\P
9612: Partial match: Xaa
9613: Xaaa\P
9614: Partial match: Xaaa
9615: Xaaaa\P
9616: Partial match: Xaaaa
9617:
9618: /X[abc]{2,4}?b/
9619: X\P
9620: Partial match: X
9621: Xa\P
9622: Partial match: Xa
9623: Xaa\P
9624: Partial match: Xaa
9625: Xaaa\P
9626: Partial match: Xaaa
9627: Xaaaa\P
9628: Partial match: Xaaaa
9629:
9630: /X[abc]{2,4}+b/
9631: X\P
9632: Partial match: X
9633: Xa\P
9634: Partial match: Xa
9635: Xaa\P
9636: Partial match: Xaa
9637: Xaaa\P
9638: Partial match: Xaaa
9639: Xaaaa\P
9640: Partial match: Xaaaa
9641:
9642: /X[^a]{2,4}b/
9643: X\P
9644: Partial match: X
9645: Xz\P
9646: Partial match: Xz
9647: Xzz\P
9648: Partial match: Xzz
9649: Xzzz\P
9650: Partial match: Xzzz
9651: Xzzzz\P
9652: Partial match: Xzzzz
9653:
9654: /X[^a]{2,4}?b/
9655: X\P
9656: Partial match: X
9657: Xz\P
9658: Partial match: Xz
9659: Xzz\P
9660: Partial match: Xzz
9661: Xzzz\P
9662: Partial match: Xzzz
9663: Xzzzz\P
9664: Partial match: Xzzzz
9665:
9666: /X[^a]{2,4}+b/
9667: X\P
9668: Partial match: X
9669: Xz\P
9670: Partial match: Xz
9671: Xzz\P
9672: Partial match: Xzz
9673: Xzzz\P
9674: Partial match: Xzzz
9675: Xzzzz\P
9676: Partial match: Xzzzz
9677:
9678: /(Y)X\1{2,4}b/
9679: YX\P
9680: Partial match: YX
9681: YXY\P
9682: Partial match: YXY
9683: YXYY\P
9684: Partial match: YXYY
9685: YXYYY\P
9686: Partial match: YXYYY
9687: YXYYYY\P
9688: Partial match: YXYYYY
9689:
9690: /(Y)X\1{2,4}?b/
9691: YX\P
9692: Partial match: YX
9693: YXY\P
9694: Partial match: YXY
9695: YXYY\P
9696: Partial match: YXYY
9697: YXYYY\P
9698: Partial match: YXYYY
9699: YXYYYY\P
9700: Partial match: YXYYYY
9701:
9702: /(Y)X\1{2,4}+b/
9703: YX\P
9704: Partial match: YX
9705: YXY\P
9706: Partial match: YXY
9707: YXYY\P
9708: Partial match: YXYY
9709: YXYYY\P
9710: Partial match: YXYYY
9711: YXYYYY\P
9712: Partial match: YXYYYY
9713:
9714: /\++\KZ|\d+X|9+Y/
9715: ++++123999\P
9716: Partial match: 123999
9717: ++++123999Y\P
9718: 0: 999Y
9719: ++++Z1234\P
9720: 0: Z
9721:
9722: /Z(*F)/
9723: Z\P
9724: No match
9725: ZA\P
9726: No match
9727:
9728: /Z(?!)/
9729: Z\P
9730: No match
9731: ZA\P
9732: No match
9733:
9734: /dog(sbody)?/
9735: dogs\P
9736: 0: dog
9737: dogs\P\P
9738: Partial match: dogs
9739:
9740: /dog(sbody)??/
9741: dogs\P
9742: 0: dog
9743: dogs\P\P
9744: 0: dog
9745:
9746: /dog|dogsbody/
9747: dogs\P
9748: 0: dog
9749: dogs\P\P
9750: 0: dog
9751:
9752: /dogsbody|dog/
9753: dogs\P
9754: 0: dog
9755: dogs\P\P
9756: Partial match: dogs
9757:
9758: /\bthe cat\b/
9759: the cat\P
9760: 0: the cat
9761: the cat\P\P
9762: Partial match: the cat
9763:
9764: /abc/
9765: abc\P
9766: 0: abc
9767: abc\P\P
9768: 0: abc
9769:
9770: /abc\K123/
9771: xyzabc123pqr
9772: 0: 123
9773: xyzabc12\P
9774: Partial match: abc12
9775: xyzabc12\P\P
9776: Partial match: abc12
9777:
9778: /(?<=abc)123/
9779: xyzabc123pqr
9780: 0: 123
9781: xyzabc12\P
1.1.1.4 misho 9782: Partial match at offset 6: abc12
1.1 misho 9783: xyzabc12\P\P
1.1.1.4 misho 9784: Partial match at offset 6: abc12
1.1 misho 9785:
9786: /\babc\b/
9787: +++abc+++
9788: 0: abc
9789: +++ab\P
1.1.1.4 misho 9790: Partial match at offset 3: +ab
1.1 misho 9791: +++ab\P\P
1.1.1.4 misho 9792: Partial match at offset 3: +ab
1.1 misho 9793:
9794: /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9795: ------------------------------------------------------------------
9796: Bra
9797: Recurse
9798: Recurse
9799: Cond
9800: Cond def
9801: CBra 1
9802: <
9803: [^m]
9804: [^>]
9805: >
9806: [^<]
9807: Ket
9808: CBra 2
9809: \w*+
9810: Ket
9811: Ket
9812: Ket
9813: End
9814: ------------------------------------------------------------------
9815:
9816: /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9817: ------------------------------------------------------------------
9818: Bra
9819: Recurse
9820: Recurse
9821: Cond
9822: Cond def
9823: CBra 1
9824: <
9825: [\x00-/:-\xff] (neg)
9826: [^>]
9827: >
9828: [^<]
9829: Ket
9830: CBra 2
9831: \w*+
9832: Ket
9833: Ket
9834: Ket
9835: End
9836: ------------------------------------------------------------------
9837:
9838: /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9839: ------------------------------------------------------------------
9840: Bra
9841: CBra 1
9842: ab
9843: Ket
9844: CBra 2
9845: x
9846: CBra 3
9847: y
9848: Ket
9849: z
9850: CBra 4
9851: cd
9852: Close 4
9853: Close 2
9854: *ACCEPT
9855: Ket
9856: Ket
9857: pq
9858: Ket
9859: End
9860: ------------------------------------------------------------------
9861:
9862: /abc\K/+
9863: abcdef
9864: 0:
9865: 0+ def
9866: abcdef\N\N
9867: 0:
9868: 0+ def
9869: xyzabcdef\N\N
9870: 0:
9871: 0+ def
9872: ** Failers
9873: No match
9874: abcdef\N
9875: No match
9876: xyzabcdef\N
9877: No match
9878:
9879: /^(?:(?=abc)|abc\K)/+
9880: abcdef
9881: 0:
9882: 0+ abcdef
9883: abcdef\N\N
9884: 0:
9885: 0+ def
9886: ** Failers
9887: No match
9888: abcdef\N
9889: No match
9890:
9891: /a?b?/+
9892: xyz
9893: 0:
9894: 0+ xyz
9895: xyzabc
9896: 0:
9897: 0+ xyzabc
9898: xyzabc\N
9899: 0: ab
9900: 0+ c
9901: xyzabc\N\N
9902: 0:
9903: 0+ yzabc
9904: xyz\N\N
9905: 0:
9906: 0+ yz
9907: ** Failers
9908: 0:
9909: 0+ ** Failers
9910: xyz\N
9911: No match
9912:
9913: /^a?b?/+
9914: xyz
9915: 0:
9916: 0+ xyz
9917: xyzabc
9918: 0:
9919: 0+ xyzabc
9920: ** Failers
9921: 0:
9922: 0+ ** Failers
9923: xyzabc\N
9924: No match
9925: xyzabc\N\N
9926: No match
9927: xyz\N\N
9928: No match
9929: xyz\N
9930: No match
9931:
9932: /^(?<name>a|b\g<name>c)/
9933: aaaa
9934: 0: a
9935: 1: a
9936: bacxxx
9937: 0: bac
9938: 1: bac
9939: bbaccxxx
9940: 0: bbacc
9941: 1: bbacc
9942: bbbacccxx
9943: 0: bbbaccc
9944: 1: bbbaccc
9945:
9946: /^(?<name>a|b\g'name'c)/
9947: aaaa
9948: 0: a
9949: 1: a
9950: bacxxx
9951: 0: bac
9952: 1: bac
9953: bbaccxxx
9954: 0: bbacc
9955: 1: bbacc
9956: bbbacccxx
9957: 0: bbbaccc
9958: 1: bbbaccc
9959:
9960: /^(a|b\g<1>c)/
9961: aaaa
9962: 0: a
9963: 1: a
9964: bacxxx
9965: 0: bac
9966: 1: bac
9967: bbaccxxx
9968: 0: bbacc
9969: 1: bbacc
9970: bbbacccxx
9971: 0: bbbaccc
9972: 1: bbbaccc
9973:
9974: /^(a|b\g'1'c)/
9975: aaaa
9976: 0: a
9977: 1: a
9978: bacxxx
9979: 0: bac
9980: 1: bac
9981: bbaccxxx
9982: 0: bbacc
9983: 1: bbacc
9984: bbbacccxx
9985: 0: bbbaccc
9986: 1: bbbaccc
9987:
9988: /^(a|b\g'-1'c)/
9989: aaaa
9990: 0: a
9991: 1: a
9992: bacxxx
9993: 0: bac
9994: 1: bac
9995: bbaccxxx
9996: 0: bbacc
9997: 1: bbacc
9998: bbbacccxx
9999: 0: bbbaccc
10000: 1: bbbaccc
10001:
10002: /(^(a|b\g<-1>c))/
10003: aaaa
10004: 0: a
10005: 1: a
10006: 2: a
10007: bacxxx
10008: 0: bac
10009: 1: bac
10010: 2: bac
10011: bbaccxxx
10012: 0: bbacc
10013: 1: bbacc
10014: 2: bbacc
10015: bbbacccxx
10016: 0: bbbaccc
10017: 1: bbbaccc
10018: 2: bbbaccc
10019:
10020: /(?-i:\g<name>)(?i:(?<name>a))/
10021: XaaX
10022: 0: aa
10023: 1: a
10024: XAAX
10025: 0: AA
10026: 1: A
10027:
10028: /(?i:\g<name>)(?-i:(?<name>a))/
10029: XaaX
10030: 0: aa
10031: 1: a
10032: ** Failers
10033: No match
10034: XAAX
10035: No match
10036:
10037: /(?-i:\g<+1>)(?i:(a))/
10038: XaaX
10039: 0: aa
10040: 1: a
10041: XAAX
10042: 0: AA
10043: 1: A
10044:
10045: /(?=(?<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>\})\}))\{/
10046:
10047: /(?<n>a|b|c)\g<n>*/
10048: abc
10049: 0: abc
10050: 1: a
10051: accccbbb
10052: 0: accccbbb
10053: 1: a
10054:
10055: /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
10056: XYabcdY
10057: 0: XYabcdY
10058: 1: a
10059: 2: b
10060: 3: <unset>
10061: 4: <unset>
10062: 5: c
10063: 6: d
10064: 7: Y
10065:
10066: /(?<=b(?1)|zzz)(a)/
10067: xbaax
10068: 0: a
10069: 1: a
10070: xzzzax
10071: 0: a
10072: 1: a
10073:
10074: /(a)(?<=b\1)/
10075: Failed: lookbehind assertion is not fixed length at offset 10
10076:
10077: /(a)(?<=b+(?1))/
10078: Failed: lookbehind assertion is not fixed length at offset 13
10079:
10080: /(a+)(?<=b(?1))/
10081: Failed: lookbehind assertion is not fixed length at offset 14
10082:
10083: /(a(?<=b(?1)))/
10084: Failed: lookbehind assertion is not fixed length at offset 13
10085:
10086: /(?<=b(?1))xyz/
10087: Failed: reference to non-existent subpattern at offset 8
10088:
10089: /(?<=b(?1))xyz(b+)pqrstuvew/
10090: Failed: lookbehind assertion is not fixed length at offset 26
10091:
10092: /(a|bc)\1/SI
10093: Capturing subpattern count = 1
10094: Max back reference = 1
10095: No options
10096: No first char
10097: No need char
10098: Subject length lower bound = 2
10099: Starting byte set: a b
10100:
10101: /(a|bc)\1{2,3}/SI
10102: Capturing subpattern count = 1
10103: Max back reference = 1
10104: No options
10105: No first char
10106: No need char
10107: Subject length lower bound = 3
10108: Starting byte set: a b
10109:
10110: /(a|bc)(?1)/SI
10111: Capturing subpattern count = 1
10112: No options
10113: No first char
10114: No need char
10115: Subject length lower bound = 2
10116: Starting byte set: a b
10117:
10118: /(a|b\1)(a|b\1)/SI
10119: Capturing subpattern count = 2
10120: Max back reference = 1
10121: No options
10122: No first char
10123: No need char
10124: Subject length lower bound = 2
10125: Starting byte set: a b
10126:
10127: /(a|b\1){2}/SI
10128: Capturing subpattern count = 1
10129: Max back reference = 1
10130: No options
10131: No first char
10132: No need char
10133: Subject length lower bound = 2
10134: Starting byte set: a b
10135:
10136: /(a|bbbb\1)(a|bbbb\1)/SI
10137: Capturing subpattern count = 2
10138: Max back reference = 1
10139: No options
10140: No first char
10141: No need char
10142: Subject length lower bound = 2
10143: Starting byte set: a b
10144:
10145: /(a|bbbb\1){2}/SI
10146: Capturing subpattern count = 1
10147: Max back reference = 1
10148: No options
10149: No first char
10150: No need char
10151: Subject length lower bound = 2
10152: Starting byte set: a b
10153:
10154: /^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
10155: Capturing subpattern count = 1
10156: Options: anchored
10157: No first char
10158: Need char = ':'
10159: Subject length lower bound = 22
10160: No set of starting bytes
10161:
10162: /<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
10163: Capturing subpattern count = 11
10164: Options: caseless dotall
10165: First char = '<'
10166: Need char = '>'
10167: Subject length lower bound = 47
10168: No set of starting bytes
10169:
10170: "(?>.*/)foo"SI
10171: Capturing subpattern count = 0
10172: No options
1.1.1.4 misho 10173: No first char
1.1 misho 10174: Need char = 'o'
10175: Subject length lower bound = 4
10176: No set of starting bytes
10177:
10178: /(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /xSI
10179: Capturing subpattern count = 0
10180: Options: extended
10181: No first char
10182: Need char = '-'
10183: Subject length lower bound = 8
10184: No set of starting bytes
10185:
10186: /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10187: Capturing subpattern count = 1
10188: Options: caseless
10189: No first char
10190: No need char
10191: Subject length lower bound = 1
10192: Starting byte set: A B C a b c
10193:
10194: /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10195: Capturing subpattern count = 0
10196: No options
10197: No first char
10198: Need char = 'b'
10199: Subject length lower bound = 41
10200: Starting byte set: c d
10201:
10202: /<a[\s]+href[\s]*=[\s]* # find <a href=
10203: ([\"\'])? # find single or double quote
10204: (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching
10205: # quote, otherwise match up to next space
10206: /isxSI
10207: Capturing subpattern count = 3
10208: Max back reference = 1
10209: Options: caseless extended dotall
10210: First char = '<'
10211: Need char = '='
10212: Subject length lower bound = 9
10213: No set of starting bytes
10214:
10215: /^(?!:) # colon disallowed at start
10216: (?: # start of item
10217: (?: [0-9a-f]{1,4} | # 1-4 hex digits or
10218: (?(1)0 | () ) ) # if null previously matched, fail; else null
10219: : # followed by colon
10220: ){1,7} # end item; 1-7 of them required
10221: [0-9a-f]{1,4} $ # final hex number at end of string
10222: (?(1)|.) # check that there was an empty component
10223: /xiIS
10224: Capturing subpattern count = 1
10225: Options: anchored caseless extended
10226: No first char
10227: Need char = ':'
10228: Subject length lower bound = 2
10229: No set of starting bytes
10230:
10231: /(?|(?<a>A)|(?<a>B))/I
10232: Capturing subpattern count = 1
10233: Named capturing subpatterns:
10234: a 1
10235: No options
10236: No first char
10237: No need char
10238: AB\Ca
10239: 0: A
10240: 1: A
10241: C A (1) a
10242: BA\Ca
10243: 0: B
10244: 1: B
10245: C B (1) a
10246:
10247: /(?|(?<a>A)|(?<b>B))/
10248: Failed: different names for subpatterns of the same number are not allowed at offset 15
10249:
10250: /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10251: b(?<quote> (?<apostrophe>')|(?<realquote>")) )
10252: (?('quote')[a-z]+|[0-9]+)/JIx
10253: Capturing subpattern count = 6
10254: Named capturing subpatterns:
10255: apostrophe 2
10256: apostrophe 5
10257: quote 1
10258: quote 4
10259: realquote 3
10260: realquote 6
10261: Options: extended dupnames
10262: No first char
10263: No need char
10264: a"aaaaa
10265: 0: a"aaaaa
10266: 1: "
10267: 2: <unset>
10268: 3: "
10269: b"aaaaa
10270: 0: b"aaaaa
10271: 1: <unset>
10272: 2: <unset>
10273: 3: <unset>
10274: 4: "
10275: 5: <unset>
10276: 6: "
10277: ** Failers
10278: No match
10279: b"11111
10280: No match
10281: a"11111
10282: No match
10283:
10284: /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10285: ------------------------------------------------------------------
10286: Bra
10287: ^
10288: Bra
10289: CBra 1
10290: a
10291: Ket
10292: CBra 2
10293: b
10294: Ket
10295: CBra 3
10296: c
10297: Ket
10298: CBra 4
10299: d
10300: Ket
10301: Alt
10302: CBra 1
10303: e
10304: Ket
10305: Ket
10306: Cond
1.1.1.5 ! misho 10307: Cond ref <D>2
1.1 misho 10308: X
10309: Alt
10310: Y
10311: Ket
10312: Ket
10313: End
10314: ------------------------------------------------------------------
10315: Capturing subpattern count = 4
10316: Named capturing subpatterns:
10317: D 4
10318: D 1
10319: Options: anchored extended dupnames
10320: No first char
10321: No need char
10322: abcdX
10323: 0: abcdX
10324: 1: a
10325: 2: b
10326: 3: c
10327: 4: d
10328: eX
10329: 0: eX
10330: 1: e
10331: ** Failers
10332: No match
10333: abcdY
10334: No match
10335: ey
10336: No match
10337:
10338: /(?<A>a) (b)(c) (?<A>d (?(R&A)$ | (?4)) )/JDZx
10339: ------------------------------------------------------------------
10340: Bra
10341: CBra 1
10342: a
10343: Ket
10344: CBra 2
10345: b
10346: Ket
10347: CBra 3
10348: c
10349: Ket
10350: CBra 4
10351: d
10352: Cond
1.1.1.5 ! misho 10353: Cond recurse <A>2
1.1 misho 10354: $
10355: Alt
10356: Recurse
10357: Ket
10358: Ket
10359: Ket
10360: End
10361: ------------------------------------------------------------------
10362: Capturing subpattern count = 4
10363: Named capturing subpatterns:
10364: A 1
10365: A 4
10366: Options: extended dupnames
10367: First char = 'a'
10368: Need char = 'd'
10369: abcdd
10370: 0: abcdd
10371: 1: a
10372: 2: b
10373: 3: c
10374: 4: dd
10375: ** Failers
10376: No match
10377: abcdde
10378: No match
10379:
10380: /abcd*/
10381: xxxxabcd\P
10382: 0: abcd
10383: xxxxabcd\P\P
10384: Partial match: abcd
10385:
10386: /abcd*/i
10387: xxxxabcd\P
10388: 0: abcd
10389: xxxxabcd\P\P
10390: Partial match: abcd
10391: XXXXABCD\P
10392: 0: ABCD
10393: XXXXABCD\P\P
10394: Partial match: ABCD
10395:
10396: /abc\d*/
10397: xxxxabc1\P
10398: 0: abc1
10399: xxxxabc1\P\P
10400: Partial match: abc1
10401:
10402: /(a)bc\1*/
10403: xxxxabca\P
10404: 0: abca
10405: 1: a
10406: xxxxabca\P\P
10407: Partial match: abca
10408:
10409: /abc[de]*/
10410: xxxxabcde\P
10411: 0: abcde
10412: xxxxabcde\P\P
10413: Partial match: abcde
10414:
1.1.1.4 misho 10415: /-- This is not in the Perl-compatible test because Perl seems currently to be
1.1 misho 10416: broken and not behaving as specified in that it *does* bumpalong after
10417: hitting (*COMMIT). --/
10418:
10419: /(?1)(A(*COMMIT)|B)D/
10420: ABD
10421: 0: ABD
10422: 1: B
10423: XABD
10424: 0: ABD
10425: 1: B
10426: BAD
10427: 0: BAD
10428: 1: A
10429: ABXABD
10430: 0: ABD
10431: 1: B
10432: ** Failers
10433: No match
10434: ABX
10435: No match
10436: BAXBAD
10437: No match
10438:
10439: /(\3)(\1)(a)/<JS>
10440: cat
10441: 0: a
10442: 1:
10443: 2:
10444: 3: a
10445:
10446: /(\3)(\1)(a)/SI<JS>
10447: Capturing subpattern count = 3
10448: Max back reference = 3
10449: Options:
10450: No first char
10451: Need char = 'a'
10452: Subject length lower bound = 1
10453: No set of starting bytes
10454: cat
10455: 0: a
10456: 1:
10457: 2:
10458: 3: a
10459:
10460: /(\3)(\1)(a)/SI
10461: Capturing subpattern count = 3
10462: Max back reference = 3
10463: No options
10464: No first char
10465: Need char = 'a'
10466: Subject length lower bound = 3
10467: No set of starting bytes
10468: cat
10469: No match
10470:
10471: /i(?(DEFINE)(?<s>a))/SI
10472: Capturing subpattern count = 1
10473: Named capturing subpatterns:
10474: s 1
10475: No options
10476: First char = 'i'
10477: No need char
10478: Subject length lower bound = 1
10479: No set of starting bytes
10480: i
10481: 0: i
10482:
10483: /()i(?(1)a)/SI
10484: Capturing subpattern count = 1
10485: No options
10486: No first char
10487: Need char = 'i'
10488: Subject length lower bound = 1
10489: Starting byte set: i
10490: ia
10491: 0: ia
10492: 1:
10493:
10494: /(?i)a(?-i)b|c/BZ
10495: ------------------------------------------------------------------
10496: Bra
10497: /i a
10498: b
10499: Alt
10500: c
10501: Ket
10502: End
10503: ------------------------------------------------------------------
10504: XabX
10505: 0: ab
10506: XAbX
10507: 0: Ab
10508: CcC
10509: 0: c
10510: ** Failers
10511: No match
10512: XABX
10513: No match
10514:
10515: /(?i)a(?s)b|c/BZ
10516: ------------------------------------------------------------------
10517: Bra
10518: /i ab
10519: Alt
10520: /i c
10521: Ket
10522: End
10523: ------------------------------------------------------------------
10524:
10525: /(?i)a(?s-i)b|c/BZ
10526: ------------------------------------------------------------------
10527: Bra
10528: /i a
10529: b
10530: Alt
10531: c
10532: Ket
10533: End
10534: ------------------------------------------------------------------
10535:
10536: /^(ab(c\1)d|x){2}$/BZ
10537: ------------------------------------------------------------------
10538: Bra
10539: ^
10540: Once
10541: CBra 1
10542: ab
10543: CBra 2
10544: c
10545: \1
10546: Ket
10547: d
10548: Alt
10549: x
10550: Ket
10551: Ket
10552: Once
10553: CBra 1
10554: ab
10555: CBra 2
10556: c
10557: \1
10558: Ket
10559: d
10560: Alt
10561: x
10562: Ket
10563: Ket
10564: $
10565: Ket
10566: End
10567: ------------------------------------------------------------------
10568: xabcxd
10569: 0: xabcxd
10570: 1: abcxd
10571: 2: cx
10572:
10573: /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10574: ------------------------------------------------------------------
10575: Bra
10576: ^
10577: Braposzero
10578: SBraPos
10579: Recurse
10580: KetRpos
10581: Cond
10582: Cond def
10583: CBra 1
10584: Any
10585: Ket
10586: Ket
10587: $
10588: Ket
10589: End
10590: ------------------------------------------------------------------
10591:
10592: /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10593: ------------------------------------------------------------------
10594: Bra
10595: ^
10596: Brazero
10597: Once
10598: Recurse
10599: KetRmax
10600: Cond
10601: Cond def
10602: CBra 1
10603: Any
10604: Ket
10605: Ket
10606: $
10607: Ket
10608: End
10609: ------------------------------------------------------------------
10610:
1.1.1.4 misho 10611: / -- This one is here because Perl gives the match as "b" rather than "ab". I
1.1 misho 10612: believe this to be a Perl bug. --/
10613:
10614: /(?>a\Kb)z|(ab)/
10615: ab
10616: 0: ab
10617: 1: ab
10618:
10619: /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10620: Failed: recursive call could loop indefinitely at offset 31
10621:
10622: /abc(*MARK:)pqr/
10623: Failed: (*MARK) must have an argument at offset 10
10624:
10625: /abc(*:)pqr/
10626: Failed: (*MARK) must have an argument at offset 6
10627:
10628: /abc(*FAIL:123)xyz/
10629: Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10630:
10631: /--- This should, and does, fail. In Perl, it does not, which I think is a
10632: bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10633:
10634: /A(*COMMIT)B/+K
10635: ACABX
10636: No match
10637:
1.1.1.4 misho 10638: /--- These should be different, but in Perl they are not, which I think
1.1 misho 10639: is a bug in Perl. ---/
10640:
10641: /A(*THEN)B|A(*THEN)C/K
10642: AC
10643: 0: AC
10644:
10645: /A(*PRUNE)B|A(*PRUNE)C/K
10646: AC
10647: No match
10648:
10649: /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10650: though PCRE does. ---/
10651:
10652: /^A(*:A)B|^X(*:A)Y/K
10653: ** Failers
10654: No match
10655: XAQQ
10656: No match, mark = A
10657:
10658: /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10659: optimizations defeat this. So does the PCRE optimization unless we disable it
10660: with \Y. ---/
10661:
10662: /(*COMMIT)ABC/
10663: ABCDEFG
10664: 0: ABC
10665: ** Failers
10666: No match
10667: DEFGABC\Y
10668: No match
10669:
10670: /^(ab (c+(*THEN)cd) | xyz)/x
10671: abcccd
10672: No match
10673:
10674: /^(ab (c+(*PRUNE)cd) | xyz)/x
10675: abcccd
10676: No match
10677:
10678: /^(ab (c+(*FAIL)cd) | xyz)/x
10679: abcccd
10680: No match
10681:
1.1.1.4 misho 10682: /--- Perl gets some of these wrong ---/
1.1 misho 10683:
10684: /(?>.(*ACCEPT))*?5/
10685: abcde
10686: 0: a
10687:
10688: /(.(*ACCEPT))*?5/
10689: abcde
10690: 0: a
10691: 1: a
10692:
10693: /(.(*ACCEPT))5/
10694: abcde
10695: 0: a
10696: 1: a
10697:
10698: /(.(*ACCEPT))*5/
10699: abcde
10700: 0: a
10701: 1: a
10702:
10703: /A\NB./BZ
10704: ------------------------------------------------------------------
10705: Bra
10706: A
10707: Any
10708: B
10709: Any
10710: Ket
10711: End
10712: ------------------------------------------------------------------
10713: ACBD
10714: 0: ACBD
10715: *** Failers
10716: No match
10717: A\nB
10718: No match
10719: ACB\n
10720: No match
10721:
10722: /A\NB./sBZ
10723: ------------------------------------------------------------------
10724: Bra
10725: A
10726: Any
10727: B
10728: AllAny
10729: Ket
10730: End
10731: ------------------------------------------------------------------
10732: ACBD
10733: 0: ACBD
10734: ACB\n
10735: 0: ACB\x0a
10736: *** Failers
10737: No match
10738: A\nB
10739: No match
10740:
10741: /A\NB/<crlf>
10742: A\nB
10743: 0: A\x0aB
10744: A\rB
10745: 0: A\x0dB
10746: ** Failers
10747: No match
10748: A\r\nB
10749: No match
10750:
10751: /\R+b/BZ
10752: ------------------------------------------------------------------
10753: Bra
10754: \R++
10755: b
10756: Ket
10757: End
10758: ------------------------------------------------------------------
10759:
10760: /\R+\n/BZ
10761: ------------------------------------------------------------------
10762: Bra
10763: \R+
10764: \x0a
10765: Ket
10766: End
10767: ------------------------------------------------------------------
10768:
10769: /\R+\d/BZ
10770: ------------------------------------------------------------------
10771: Bra
10772: \R++
10773: \d
10774: Ket
10775: End
10776: ------------------------------------------------------------------
10777:
10778: /\d*\R/BZ
10779: ------------------------------------------------------------------
10780: Bra
10781: \d*+
10782: \R
10783: Ket
10784: End
10785: ------------------------------------------------------------------
10786:
10787: /\s*\R/BZ
10788: ------------------------------------------------------------------
10789: Bra
1.1.1.3 misho 10790: \s*
10791: \R
10792: Ket
10793: End
10794: ------------------------------------------------------------------
10795: \x20\x0a
10796: 0: \x0a
10797: \x20\x0d
10798: 0: \x0d
10799: \x20\x0d\x0a
10800: 0: \x0d\x0a
10801:
10802: /\S*\R/BZ
10803: ------------------------------------------------------------------
10804: Bra
10805: \S*+
10806: \R
10807: Ket
10808: End
10809: ------------------------------------------------------------------
10810: a\x0a
10811: 0: a\x0a
10812:
10813: /X\h*\R/BZ
10814: ------------------------------------------------------------------
10815: Bra
10816: X
10817: \h*+
10818: \R
10819: Ket
10820: End
10821: ------------------------------------------------------------------
10822: X\x20\x0a
10823: 0: X \x0a
10824:
10825: /X\H*\R/BZ
10826: ------------------------------------------------------------------
10827: Bra
10828: X
10829: \H*
1.1 misho 10830: \R
10831: Ket
10832: End
10833: ------------------------------------------------------------------
1.1.1.3 misho 10834: X\x0d\x0a
10835: 0: X\x0d\x0a
10836:
10837: /X\H+\R/BZ
10838: ------------------------------------------------------------------
10839: Bra
10840: X
10841: \H+
10842: \R
10843: Ket
10844: End
10845: ------------------------------------------------------------------
10846: X\x0d\x0a
10847: 0: X\x0d\x0a
10848:
10849: /X\H++\R/BZ
10850: ------------------------------------------------------------------
10851: Bra
10852: X
10853: \H++
10854: \R
10855: Ket
10856: End
10857: ------------------------------------------------------------------
10858: X\x0d\x0a
10859: No match
1.1 misho 10860:
10861: /(?<=abc)def/
10862: abc\P\P
1.1.1.4 misho 10863: Partial match at offset 3: abc
1.1 misho 10864:
10865: /abc$/
10866: abc
10867: 0: abc
10868: abc\P
10869: 0: abc
10870: abc\P\P
10871: Partial match: abc
10872:
10873: /abc$/m
10874: abc
10875: 0: abc
10876: abc\n
10877: 0: abc
10878: abc\P\P
10879: Partial match: abc
10880: abc\n\P\P
10881: 0: abc
10882: abc\P
10883: 0: abc
10884: abc\n\P
10885: 0: abc
10886:
10887: /abc\z/
10888: abc
10889: 0: abc
10890: abc\P
10891: 0: abc
10892: abc\P\P
10893: Partial match: abc
10894:
10895: /abc\Z/
10896: abc
10897: 0: abc
10898: abc\P
10899: 0: abc
10900: abc\P\P
10901: Partial match: abc
10902:
10903: /abc\b/
10904: abc
10905: 0: abc
10906: abc\P
10907: 0: abc
10908: abc\P\P
10909: Partial match: abc
10910:
10911: /abc\B/
10912: abc
10913: No match
10914: abc\P
10915: Partial match: abc
10916: abc\P\P
10917: Partial match: abc
10918:
10919: /.+/
10920: abc\>0
10921: 0: abc
10922: abc\>1
10923: 0: bc
10924: abc\>2
10925: 0: c
10926: abc\>3
10927: No match
10928: abc\>4
10929: Error -24 (bad offset value)
10930: abc\>-4
10931: Error -24 (bad offset value)
10932:
10933: /^\cģ/
10934: Failed: \c must be followed by an ASCII character at offset 3
10935:
10936: /(?P<abn>(?P=abn)xxx)/BZ
10937: ------------------------------------------------------------------
10938: Bra
10939: Once
10940: CBra 1
10941: \1
10942: xxx
10943: Ket
10944: Ket
10945: Ket
10946: End
10947: ------------------------------------------------------------------
10948:
10949: /(a\1z)/BZ
10950: ------------------------------------------------------------------
10951: Bra
10952: Once
10953: CBra 1
10954: a
10955: \1
10956: z
10957: Ket
10958: Ket
10959: Ket
10960: End
10961: ------------------------------------------------------------------
10962:
10963: /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
10964: Failed: syntax error in subpattern name (missing terminator) at offset 29
10965:
10966: /(?P<abn>(?P=axn)xxx)/BZ
10967: Failed: reference to non-existent subpattern at offset 15
10968:
10969: /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
10970: ------------------------------------------------------------------
10971: Bra
10972: CBra 1
10973: \2
10974: xxx
10975: Ket
10976: CBra 2
10977: yy
10978: Ket
10979: Ket
10980: End
10981: ------------------------------------------------------------------
10982:
10983: /-- These tests are here because Perl gets the first one wrong. --/
10984:
10985: /(\R*)(.)/s
10986: \r\n
10987: 0: \x0d
10988: 1:
10989: 2: \x0d
10990: \r\r\n\n\r
10991: 0: \x0d\x0d\x0a\x0a\x0d
10992: 1: \x0d\x0d\x0a\x0a
10993: 2: \x0d
10994: \r\r\n\n\r\n
10995: 0: \x0d\x0d\x0a\x0a\x0d
10996: 1: \x0d\x0d\x0a\x0a
10997: 2: \x0d
10998:
10999: /(\R)*(.)/s
11000: \r\n
11001: 0: \x0d
11002: 1: <unset>
11003: 2: \x0d
11004: \r\r\n\n\r
11005: 0: \x0d\x0d\x0a\x0a\x0d
11006: 1: \x0a
11007: 2: \x0d
11008: \r\r\n\n\r\n
11009: 0: \x0d\x0d\x0a\x0a\x0d
11010: 1: \x0a
11011: 2: \x0d
11012:
11013: /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
11014: \r\n
11015: 0: \x0d
11016: 1:
11017: 2: \x0d
11018: \r\r\n\n\r
11019: 0: \x0d\x0d\x0a\x0a\x0d
11020: 1: \x0d\x0d\x0a\x0a
11021: 2: \x0d
11022: \r\r\n\n\r\n
11023: 0: \x0d\x0d\x0a\x0a\x0d
11024: 1: \x0d\x0d\x0a\x0a
11025: 2: \x0d
11026:
11027: /-- --/
11028:
11029: /^abc$/BZ
11030: ------------------------------------------------------------------
11031: Bra
11032: ^
11033: abc
11034: $
11035: Ket
11036: End
11037: ------------------------------------------------------------------
11038:
11039: /^abc$/BZm
11040: ------------------------------------------------------------------
11041: Bra
11042: /m ^
11043: abc
11044: /m $
11045: Ket
11046: End
11047: ------------------------------------------------------------------
11048:
11049: /^(a)*+(\w)/S
11050: aaaaX
11051: 0: aaaaX
11052: 1: a
11053: 2: X
11054: ** Failers
11055: No match
11056: aaaa
11057: No match
11058:
11059: /^(?:a)*+(\w)/S
11060: aaaaX
11061: 0: aaaaX
11062: 1: X
11063: ** Failers
11064: No match
11065: aaaa
11066: No match
11067:
11068: /(a)++1234/SDZ
11069: ------------------------------------------------------------------
11070: Bra
11071: CBraPos 1
11072: a
11073: KetRpos
11074: 1234
11075: Ket
11076: End
11077: ------------------------------------------------------------------
11078: Capturing subpattern count = 1
11079: No options
11080: First char = 'a'
11081: Need char = '4'
11082: Subject length lower bound = 5
11083: No set of starting bytes
11084:
11085: /([abc])++1234/SI
11086: Capturing subpattern count = 1
11087: No options
11088: No first char
11089: Need char = '4'
11090: Subject length lower bound = 5
11091: Starting byte set: a b c
11092:
11093: /(?<=(abc)+)X/
11094: Failed: lookbehind assertion is not fixed length at offset 10
11095:
11096: /(^ab)/I
11097: Capturing subpattern count = 1
11098: Options: anchored
11099: No first char
11100: No need char
11101:
11102: /(^ab)++/I
11103: Capturing subpattern count = 1
11104: Options: anchored
11105: No first char
11106: No need char
11107:
11108: /(^ab|^)+/I
11109: Capturing subpattern count = 1
1.1.1.5 ! misho 11110: May match empty string
1.1 misho 11111: Options: anchored
11112: No first char
11113: No need char
11114:
11115: /(^ab|^)++/I
11116: Capturing subpattern count = 1
1.1.1.5 ! misho 11117: May match empty string
1.1 misho 11118: Options: anchored
11119: No first char
11120: No need char
11121:
11122: /(?:^ab)/I
11123: Capturing subpattern count = 0
11124: Options: anchored
11125: No first char
11126: No need char
11127:
11128: /(?:^ab)++/I
11129: Capturing subpattern count = 0
11130: Options: anchored
11131: No first char
11132: No need char
11133:
11134: /(?:^ab|^)+/I
11135: Capturing subpattern count = 0
1.1.1.5 ! misho 11136: May match empty string
1.1 misho 11137: Options: anchored
11138: No first char
11139: No need char
11140:
11141: /(?:^ab|^)++/I
11142: Capturing subpattern count = 0
1.1.1.5 ! misho 11143: May match empty string
1.1 misho 11144: Options: anchored
11145: No first char
11146: No need char
11147:
11148: /(.*ab)/I
11149: Capturing subpattern count = 1
11150: No options
11151: First char at start or follows newline
11152: Need char = 'b'
11153:
11154: /(.*ab)++/I
11155: Capturing subpattern count = 1
11156: No options
11157: First char at start or follows newline
11158: Need char = 'b'
11159:
11160: /(.*ab|.*)+/I
11161: Capturing subpattern count = 1
1.1.1.5 ! misho 11162: May match empty string
1.1 misho 11163: No options
11164: First char at start or follows newline
11165: No need char
11166:
11167: /(.*ab|.*)++/I
11168: Capturing subpattern count = 1
1.1.1.5 ! misho 11169: May match empty string
1.1 misho 11170: No options
11171: First char at start or follows newline
11172: No need char
11173:
11174: /(?:.*ab)/I
11175: Capturing subpattern count = 0
11176: No options
11177: First char at start or follows newline
11178: Need char = 'b'
11179:
11180: /(?:.*ab)++/I
11181: Capturing subpattern count = 0
11182: No options
11183: First char at start or follows newline
11184: Need char = 'b'
11185:
11186: /(?:.*ab|.*)+/I
11187: Capturing subpattern count = 0
1.1.1.5 ! misho 11188: May match empty string
1.1 misho 11189: No options
11190: First char at start or follows newline
11191: No need char
11192:
11193: /(?:.*ab|.*)++/I
11194: Capturing subpattern count = 0
1.1.1.5 ! misho 11195: May match empty string
1.1 misho 11196: No options
11197: First char at start or follows newline
11198: No need char
11199:
11200: /(?=a)[bcd]/I
11201: Capturing subpattern count = 0
11202: No options
11203: First char = 'a'
11204: No need char
11205:
11206: /((?=a))[bcd]/I
11207: Capturing subpattern count = 1
11208: No options
11209: First char = 'a'
11210: No need char
11211:
11212: /((?=a))+[bcd]/I
11213: Capturing subpattern count = 1
11214: No options
11215: First char = 'a'
11216: No need char
11217:
11218: /((?=a))++[bcd]/I
11219: Capturing subpattern count = 1
11220: No options
11221: First char = 'a'
11222: No need char
11223:
11224: /(?=a+)[bcd]/iI
11225: Capturing subpattern count = 0
11226: Options: caseless
11227: First char = 'a' (caseless)
11228: No need char
11229:
11230: /(?=a+?)[bcd]/iI
11231: Capturing subpattern count = 0
11232: Options: caseless
11233: First char = 'a' (caseless)
11234: No need char
11235:
11236: /(?=a++)[bcd]/iI
11237: Capturing subpattern count = 0
11238: Options: caseless
11239: First char = 'a' (caseless)
11240: No need char
11241:
11242: /(?=a{3})[bcd]/iI
11243: Capturing subpattern count = 0
11244: Options: caseless
11245: First char = 'a' (caseless)
11246: Need char = 'a' (caseless)
11247:
11248: /(abc)\1+/S
11249:
11250: /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11251:
11252: /(?1)(?:(b(*ACCEPT))){0}/
11253: b
11254: 0: b
11255:
11256: /(?1)(?:(b(*ACCEPT))){0}c/
11257: bc
11258: 0: bc
11259: ** Failers
11260: No match
11261: b
11262: No match
11263:
11264: /(?1)(?:((*ACCEPT))){0}c/
11265: c
11266: 0: c
11267: c\N
11268: 0: c
11269:
11270: /^.*?(?(?=a)a|b(*THEN)c)/
11271: ba
11272: No match
11273:
11274: /^.*?(?(?=a)a|bc)/
11275: ba
11276: 0: ba
11277:
11278: /^.*?(?(?=a)a(*THEN)b|c)/
11279: ac
11280: No match
11281:
11282: /^.*?(?(?=a)a(*THEN)b)c/
11283: ac
11284: No match
11285:
11286: /^.*?(a(*THEN)b)c/
11287: aabc
11288: No match
11289:
11290: /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11291: aabc
11292: 0: aabc
11293:
11294: /^.*?(a(*THEN)b|z)c/
11295: aabc
11296: 0: aabc
11297: 1: ab
11298:
11299: /^.*?(z|a(*THEN)b)c/
11300: aabc
11301: 0: aabc
11302: 1: ab
11303:
11304: /-- --/
11305:
11306: /-- These studied versions are here because they are not Perl-compatible; the
11307: studying means the mark is not seen. --/
11308:
11309: /(*MARK:A)(*SKIP:B)(C|X)/KS
11310: C
11311: 0: C
11312: 1: C
11313: MK: A
11314: D
11315: No match, mark = A
11316:
11317: /(*:A)A+(*SKIP:A)(B|Z)/KS
11318: AAAC
11319: No match, mark = A
11320:
11321: /-- --/
11322:
11323: "(?=a*(*ACCEPT)b)c"
11324: c
11325: 0: c
11326: c\N
11327: 0: c
11328:
11329: /(?1)c(?(DEFINE)((*ACCEPT)b))/
11330: c
11331: 0: c
11332: c\N
11333: 0: c
11334:
11335: /(?>(*ACCEPT)b)c/
11336: c
11337: 0:
11338: c\N
11339: No match
11340:
11341: /(?:(?>(a)))+a%/++
11342: %aa%
11343: 0: aa%
11344: 0+
11345: 1: a
11346: 1+ a%
11347:
11348: /(a)b|ac/++SS
11349: ac\O3
11350: 0: ac
11351: 0+
11352:
11353: /(a)(b)x|abc/++
11354: abc\O6
11355: 0: abc
11356: 0+
11357:
11358: /(a)bc|(a)(b)\2/
11359: \O3abc
11360: Matched, but too many substrings
11361: 0: abc
11362: \O4abc
11363: Matched, but too many substrings
11364: 0: abc
11365:
11366: /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11367: Capturing subpattern count = 2
11368: No options
11369: No first char
11370: No need char
11371: Subject length lower bound = 1
11372: No set of starting bytes
11373:
11374: /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11375: Capturing subpattern count = 2
11376: No options
11377: No first char
11378: No need char
11379: Subject length lower bound = 3
11380: Starting byte set: a b
11381:
11382: /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11383: Capturing subpattern count = 2
11384: No options
11385: No first char
11386: No need char
11387: Subject length lower bound = 4
11388: Starting byte set: a b
11389:
11390: /(abc)(?1)/SI
11391: Capturing subpattern count = 1
11392: No options
11393: First char = 'a'
11394: Need char = 'c'
11395: Subject length lower bound = 6
11396: No set of starting bytes
11397:
11398: /^(?>a)++/
11399: aa\M
11400: Minimum match() limit = 5
11401: Minimum match() recursion limit = 2
11402: 0: aa
11403: aaaaaaaaa\M
11404: Minimum match() limit = 12
11405: Minimum match() recursion limit = 2
11406: 0: aaaaaaaaa
11407:
11408: /(a)(?1)++/
11409: aa\M
11410: Minimum match() limit = 7
11411: Minimum match() recursion limit = 4
11412: 0: aa
11413: 1: a
11414: aaaaaaaaa\M
11415: Minimum match() limit = 21
11416: Minimum match() recursion limit = 4
11417: 0: aaaaaaaaa
11418: 1: a
11419:
11420: /(?:(foo)|(bar)|(baz))X/SS=
11421: bazfooX
11422: 0: fooX
11423: 1: foo
11424: 2: <unset>
11425: 3: <unset>
11426: foobazbarX
11427: 0: barX
11428: 1: <unset>
11429: 2: bar
11430: 3: <unset>
11431: barfooX
11432: 0: fooX
11433: 1: foo
11434: 2: <unset>
11435: 3: <unset>
11436: bazX
11437: 0: bazX
11438: 1: <unset>
11439: 2: <unset>
11440: 3: baz
11441: foobarbazX
11442: 0: bazX
11443: 1: <unset>
11444: 2: <unset>
11445: 3: baz
11446: bazfooX\O0
11447: Matched, but too many substrings
11448: bazfooX\O2
11449: Matched, but too many substrings
11450: 0: fooX
11451: bazfooX\O4
11452: Matched, but too many substrings
11453: 0: fooX
11454: 1: <unset>
11455: bazfooX\O6
11456: Matched, but too many substrings
11457: 0: fooX
11458: 1: foo
11459: 2: <unset>
11460: bazfooX\O8
11461: Matched, but too many substrings
11462: 0: fooX
11463: 1: foo
11464: 2: <unset>
11465: 3: <unset>
11466: bazfooX\O10
11467: 0: fooX
11468: 1: foo
11469: 2: <unset>
11470: 3: <unset>
11471:
11472: /(?=abc){3}abc/BZ
11473: ------------------------------------------------------------------
11474: Bra
11475: Assert
11476: abc
11477: Ket
11478: abc
11479: Ket
11480: End
11481: ------------------------------------------------------------------
11482:
11483: /(?=abc)+abc/BZ
11484: ------------------------------------------------------------------
11485: Bra
11486: Assert
11487: abc
11488: Ket
11489: abc
11490: Ket
11491: End
11492: ------------------------------------------------------------------
11493:
11494: /(?=abc)++abc/BZ
11495: ------------------------------------------------------------------
11496: Bra
11497: Assert
11498: abc
11499: Ket
11500: abc
11501: Ket
11502: End
11503: ------------------------------------------------------------------
11504:
11505: /(?=abc){0}xyz/BZ
11506: ------------------------------------------------------------------
11507: Bra
11508: Skip zero
11509: Assert
11510: abc
11511: Ket
11512: xyz
11513: Ket
11514: End
11515: ------------------------------------------------------------------
11516:
11517: /(?=(a))?./BZ
11518: ------------------------------------------------------------------
11519: Bra
11520: Brazero
11521: Assert
11522: CBra 1
11523: a
11524: Ket
11525: Ket
11526: Any
11527: Ket
11528: End
11529: ------------------------------------------------------------------
11530:
11531: /(?=(a))??./BZ
11532: ------------------------------------------------------------------
11533: Bra
11534: Braminzero
11535: Assert
11536: CBra 1
11537: a
11538: Ket
11539: Ket
11540: Any
11541: Ket
11542: End
11543: ------------------------------------------------------------------
11544:
11545: /^(?=(a)){0}b(?1)/BZ
11546: ------------------------------------------------------------------
11547: Bra
11548: ^
11549: Skip zero
11550: Assert
11551: CBra 1
11552: a
11553: Ket
11554: Ket
11555: b
11556: Recurse
11557: Ket
11558: End
11559: ------------------------------------------------------------------
11560:
11561: /(?(DEFINE)(a))?b(?1)/BZ
11562: ------------------------------------------------------------------
11563: Bra
11564: Cond
11565: Cond def
11566: CBra 1
11567: a
11568: Ket
11569: Ket
11570: b
11571: Recurse
11572: Ket
11573: End
11574: ------------------------------------------------------------------
11575:
11576: /^(?=(?1))?[az]([abc])d/BZ
11577: ------------------------------------------------------------------
11578: Bra
11579: ^
11580: Brazero
11581: Assert
11582: Recurse
11583: Ket
11584: [az]
11585: CBra 1
11586: [a-c]
11587: Ket
11588: d
11589: Ket
11590: End
11591: ------------------------------------------------------------------
11592:
11593: /^(?!a){0}\w+/BZ
11594: ------------------------------------------------------------------
11595: Bra
11596: ^
11597: Skip zero
11598: Assert not
11599: a
11600: Ket
1.1.1.5 ! misho 11601: \w++
1.1 misho 11602: Ket
11603: End
11604: ------------------------------------------------------------------
11605:
11606: /(?<=(abc))?xyz/BZ
11607: ------------------------------------------------------------------
11608: Bra
11609: Brazero
11610: AssertB
11611: Reverse
11612: CBra 1
11613: abc
11614: Ket
11615: Ket
11616: xyz
11617: Ket
11618: End
11619: ------------------------------------------------------------------
11620:
11621: /[:a[:abc]b:]/BZ
11622: ------------------------------------------------------------------
11623: Bra
11624: [:[a-c]
11625: b:]
11626: Ket
11627: End
11628: ------------------------------------------------------------------
11629:
11630: /((?2))((?1))/SS
11631: abc
11632: Error -26 (nested recursion at the same subject position)
11633:
11634: /((?(R2)a+|(?1)b))/SS
11635: aaaabcde
11636: Error -26 (nested recursion at the same subject position)
11637:
11638: /(?(R)a*(?1)|((?R))b)/SS
11639: aaaabcde
11640: Error -26 (nested recursion at the same subject position)
11641:
11642: /(a+|(?R)b)/
11643: Failed: recursive call could loop indefinitely at offset 7
11644:
11645: /^(a(*:A)(d|e(*:B))z|aeq)/C
11646: adz
11647: --->adz
11648: +0 ^ ^
11649: +1 ^ (a(*:A)(d|e(*:B))z|aeq)
11650: +2 ^ a
11651: +3 ^^ (*:A)
11652: +8 ^^ (d|e(*:B))
11653: Latest Mark: A
11654: +9 ^^ d
11655: +10 ^ ^ |
11656: +18 ^ ^ z
11657: +19 ^ ^ |
11658: +24 ^ ^
11659: 0: adz
11660: 1: adz
11661: 2: d
11662: aez
11663: --->aez
11664: +0 ^ ^
11665: +1 ^ (a(*:A)(d|e(*:B))z|aeq)
11666: +2 ^ a
11667: +3 ^^ (*:A)
11668: +8 ^^ (d|e(*:B))
11669: Latest Mark: A
11670: +9 ^^ d
11671: +11 ^^ e
11672: +12 ^ ^ (*:B)
11673: +17 ^ ^ )
11674: Latest Mark: B
11675: +18 ^ ^ z
11676: +19 ^ ^ |
11677: +24 ^ ^
11678: 0: aez
11679: 1: aez
11680: 2: e
11681: aeqwerty
11682: --->aeqwerty
11683: +0 ^ ^
11684: +1 ^ (a(*:A)(d|e(*:B))z|aeq)
11685: +2 ^ a
11686: +3 ^^ (*:A)
11687: +8 ^^ (d|e(*:B))
11688: Latest Mark: A
11689: +9 ^^ d
11690: +11 ^^ e
11691: +12 ^ ^ (*:B)
11692: +17 ^ ^ )
11693: Latest Mark: B
11694: +18 ^ ^ z
11695: +20 ^ a
11696: +21 ^^ e
11697: +22 ^ ^ q
11698: +23 ^ ^ )
11699: +24 ^ ^
11700: 0: aeq
11701: 1: aeq
11702:
11703: /.(*F)/
11704: \P\Pabc
11705: No match
11706:
11707: /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11708: Capturing subpattern count = 0
1.1.1.4 misho 11709: Max lookbehind = 1
1.1 misho 11710: No options
11711: First char = 't'
11712: Need char = 't'
11713: Subject length lower bound = 18
11714: No set of starting bytes
11715:
11716: /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11717: Capturing subpattern count = 0
1.1.1.4 misho 11718: Max lookbehind = 1
1.1 misho 11719: No options
11720: No first char
11721: No need char
11722: Subject length lower bound = 8
11723: Starting byte set: < o t u
11724:
1.1.1.4 misho 11725: /a(*SKIP)c|b(*ACCEPT)|/+S!I
1.1 misho 11726: Capturing subpattern count = 0
1.1.1.5 ! misho 11727: May match empty string
1.1 misho 11728: No options
11729: No first char
11730: No need char
1.1.1.4 misho 11731: Subject length lower bound = -1
11732: No set of starting bytes
1.1 misho 11733: a
11734: 0:
11735: 0+
11736:
11737: /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11738: Capturing subpattern count = 0
11739: No options
11740: No first char
11741: No need char
11742: Subject length lower bound = -1
11743: Starting byte set: a b x
11744: ax
11745: 0: x
11746:
11747: 'a*(*ACCEPT)b'+
11748: \N\N
11749: No match
11750: abc\N\N
11751: 0: a
11752: 0+ bc
11753: bbb\N\N
11754: 0:
11755: 0+ bb
11756:
11757: /(*ACCEPT)a/+I
11758: Capturing subpattern count = 0
11759: No options
11760: No first char
11761: No need char
11762: bax
11763: 0:
11764: 0+ bax
11765:
11766: /z(*ACCEPT)a/+I
11767: Capturing subpattern count = 0
11768: No options
11769: First char = 'z'
11770: No need char
11771: baxzbx
11772: 0: z
11773: 0+ bx
11774:
11775: /a(?:.)*?a/ims
11776: \Mabbbbbbbbbbbbbbbbbbbbba
11777: Minimum match() limit = 65
11778: Minimum match() recursion limit = 2
11779: 0: abbbbbbbbbbbbbbbbbbbbba
11780:
11781: /a(?:.(*THEN))*?a/ims
11782: \Mabbbbbbbbbbbbbbbbbbbbba
11783: Minimum match() limit = 86
11784: Minimum match() recursion limit = 45
11785: 0: abbbbbbbbbbbbbbbbbbbbba
11786:
11787: /a(?:.(*THEN:ABC))*?a/ims
11788: \Mabbbbbbbbbbbbbbbbbbbbba
11789: Minimum match() limit = 86
11790: Minimum match() recursion limit = 45
11791: 0: abbbbbbbbbbbbbbbbbbbbba
11792:
11793: /^(?>a+)(?>(z+))\w/BZ
11794: ------------------------------------------------------------------
11795: Bra
11796: ^
11797: Once_NC
1.1.1.5 ! misho 11798: a++
1.1 misho 11799: Ket
11800: Once
11801: CBra 1
1.1.1.5 ! misho 11802: z++
1.1 misho 11803: Ket
11804: Ket
11805: \w
11806: Ket
11807: End
11808: ------------------------------------------------------------------
11809: aaaazzzzb
11810: 0: aaaazzzzb
11811: 1: zzzz
11812: ** Failers
11813: No match
11814: aazz
11815: No match
11816:
11817: /(.)(\1|a(?2))/
11818: bab
11819: 0: bab
11820: 1: b
11821: 2: ab
11822:
11823: /\1|(.)(?R)\1/
11824: cbbbc
11825: 0: cbbbc
11826: 1: c
11827:
11828: /(.)((?(1)c|a)|a(?2))/
11829: baa
11830: No match
11831:
11832: /(?P<abn>(?P=abn)xxx)/BZ
11833: ------------------------------------------------------------------
11834: Bra
11835: Once
11836: CBra 1
11837: \1
11838: xxx
11839: Ket
11840: Ket
11841: Ket
11842: End
11843: ------------------------------------------------------------------
11844:
11845: /(a\1z)/BZ
11846: ------------------------------------------------------------------
11847: Bra
11848: Once
11849: CBra 1
11850: a
11851: \1
11852: z
11853: Ket
11854: Ket
11855: Ket
11856: End
11857: ------------------------------------------------------------------
11858:
11859: /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11860: \Maabbccddee
1.1.1.5 ! misho 11861: Minimum match() limit = 7
! 11862: Minimum match() recursion limit = 2
1.1 misho 11863: 0: aabbccddee
11864:
11865: /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11866: \Maabbccddee
1.1.1.5 ! misho 11867: Minimum match() limit = 17
! 11868: Minimum match() recursion limit = 16
1.1 misho 11869: 0: aabbccddee
11870: 1: aa
11871: 2: bb
11872: 3: cc
11873: 4: dd
11874: 5: ee
11875:
11876: /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11877: \Maabbccddee
1.1.1.5 ! misho 11878: Minimum match() limit = 13
! 11879: Minimum match() recursion limit = 10
1.1 misho 11880: 0: aabbccddee
11881: 1: aa
11882: 2: cc
11883: 3: ee
11884:
11885: /^a\x41z/<JS>
11886: aAz
11887: 0: aAz
11888: *** Failers
11889: No match
11890: ax41z
11891: No match
11892:
11893: /^a[m\x41]z/<JS>
11894: aAz
11895: 0: aAz
11896:
11897: /^a\x1z/<JS>
11898: ax1z
11899: 0: ax1z
11900:
11901: /^a\u0041z/<JS>
11902: aAz
11903: 0: aAz
11904: *** Failers
11905: No match
11906: au0041z
11907: No match
11908:
11909: /^a[m\u0041]z/<JS>
11910: aAz
11911: 0: aAz
11912:
11913: /^a\u041z/<JS>
11914: au041z
11915: 0: au041z
11916: *** Failers
11917: No match
11918: aAz
11919: No match
11920:
11921: /^a\U0041z/<JS>
11922: aU0041z
11923: 0: aU0041z
11924: *** Failers
11925: No match
11926: aAz
11927: No match
11928:
11929: /(?(?=c)c|d)++Y/BZ
11930: ------------------------------------------------------------------
11931: Bra
11932: BraPos
11933: Cond
11934: Assert
11935: c
11936: Ket
11937: c
11938: Alt
11939: d
11940: Ket
11941: KetRpos
11942: Y
11943: Ket
11944: End
11945: ------------------------------------------------------------------
11946:
11947: /(?(?=c)c|d)*+Y/BZ
11948: ------------------------------------------------------------------
11949: Bra
11950: Braposzero
11951: BraPos
11952: Cond
11953: Assert
11954: c
11955: Ket
11956: c
11957: Alt
11958: d
11959: Ket
11960: KetRpos
11961: Y
11962: Ket
11963: End
11964: ------------------------------------------------------------------
11965:
11966: /a[\NB]c/
11967: Failed: \N is not supported in a class at offset 3
11968:
11969: /a[B-\Nc]/
1.1.1.5 ! misho 11970: Failed: invalid range in character class at offset 5
! 11971:
! 11972: /a[B\Nc]/
! 11973: Failed: \N is not supported in a class at offset 4
1.1 misho 11974:
11975: /(a)(?2){0,1999}?(b)/
11976:
11977: /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
11978:
11979: /--- This test, with something more complicated than individual letters, causes
11980: different behaviour in Perl. Perhaps it disables some optimization; no tag is
11981: passed back for the failures, whereas in PCRE there is a tag. ---/
11982:
11983: /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
11984: AABC
11985: 0: AB
11986: 1: A
11987: 2: B
11988: MK: A
11989: XXYZ
11990: 0: XXY
11991: 1: <unset>
11992: 2: <unset>
11993: 3: X
11994: 4: X
11995: 5: Y
11996: MK: B
11997: ** Failers
11998: No match
11999: XAQQ
12000: No match, mark = A
12001: XAQQXZZ
12002: No match, mark = A
12003: AXQQQ
12004: No match, mark = A
12005: AXXQQQ
12006: No match, mark = B
12007:
12008: /-- Perl doesn't give marks for these, though it does if the alternatives are
12009: replaced by single letters. --/
12010:
12011: /(b|q)(*:m)f|a(*:n)w/K
12012: aw
12013: 0: aw
12014: MK: n
12015: ** Failers
12016: No match, mark = n
12017: abc
12018: No match, mark = m
12019:
12020: /(q|b)(*:m)f|a(*:n)w/K
12021: aw
12022: 0: aw
12023: MK: n
12024: ** Failers
12025: No match, mark = n
12026: abc
12027: No match, mark = m
12028:
12029: /-- After a partial match, the behaviour is as for a failure. --/
12030:
12031: /^a(*:X)bcde/K
12032: abc\P
12033: Partial match, mark=X: abc
1.1.1.2 misho 12034:
12035: /-- These are here because Perl doesn't return a mark, except for the first --/
12036:
12037: /(?=(*:x))(q|)/K+
12038: abc
12039: 0:
12040: 0+ abc
12041: 1:
12042: MK: x
12043:
12044: /(?=(*:x))((*:y)q|)/K+
12045: abc
12046: 0:
12047: 0+ abc
12048: 1:
12049: MK: x
12050:
12051: /(?=(*:x))(?:(*:y)q|)/K+
12052: abc
12053: 0:
12054: 0+ abc
12055: MK: x
12056:
12057: /(?=(*:x))(?>(*:y)q|)/K+
12058: abc
12059: 0:
12060: 0+ abc
12061: MK: x
12062:
12063: /(?=a(*:x))(?!a(*:y)c)/K+
12064: ab
12065: 0:
12066: 0+ ab
12067: MK: x
12068:
12069: /(?=a(*:x))(?=a(*:y)c|)/K+
12070: ab
12071: 0:
12072: 0+ ab
12073: MK: x
1.1 misho 12074:
1.1.1.3 misho 12075: /(..)\1/
12076: ab\P
12077: Partial match: ab
12078: aba\P
12079: Partial match: aba
12080: abab\P
12081: 0: abab
12082: 1: ab
12083:
12084: /(..)\1/i
12085: ab\P
12086: Partial match: ab
12087: abA\P
12088: Partial match: abA
12089: aBAb\P
12090: 0: aBAb
12091: 1: aB
12092:
12093: /(..)\1{2,}/
12094: ab\P
12095: Partial match: ab
12096: aba\P
12097: Partial match: aba
12098: abab\P
12099: Partial match: abab
12100: ababa\P
12101: Partial match: ababa
12102: ababab\P
12103: 0: ababab
12104: 1: ab
12105: ababab\P\P
12106: Partial match: ababab
12107: abababa\P
12108: 0: ababab
12109: 1: ab
12110: abababa\P\P
12111: Partial match: abababa
12112:
12113: /(..)\1{2,}/i
12114: ab\P
12115: Partial match: ab
12116: aBa\P
12117: Partial match: aBa
12118: aBAb\P
12119: Partial match: aBAb
12120: AbaBA\P
12121: Partial match: AbaBA
12122: abABAb\P
12123: 0: abABAb
12124: 1: ab
12125: aBAbaB\P\P
12126: Partial match: aBAbaB
12127: abABabA\P
12128: 0: abABab
12129: 1: ab
12130: abaBABa\P\P
12131: Partial match: abaBABa
12132:
12133: /(..)\1{2,}?x/i
12134: ab\P
12135: Partial match: ab
12136: abA\P
12137: Partial match: abA
12138: aBAb\P
12139: Partial match: aBAb
12140: abaBA\P
12141: Partial match: abaBA
12142: abAbaB\P
12143: Partial match: abAbaB
12144: abaBabA\P
12145: Partial match: abaBabA
12146: abAbABaBx\P
12147: 0: abAbABaBx
12148: 1: ab
12149:
12150: /^(..)\1/
12151: aba\P
12152: Partial match: aba
12153:
12154: /^(..)\1{2,3}x/
12155: aba\P
12156: Partial match: aba
12157: ababa\P
12158: Partial match: ababa
12159: ababa\P\P
12160: Partial match: ababa
12161: abababx
12162: 0: abababx
12163: 1: ab
12164: ababababx
12165: 0: ababababx
12166: 1: ab
12167:
12168: /^(..)\1{2,3}?x/
12169: aba\P
12170: Partial match: aba
12171: ababa\P
12172: Partial match: ababa
12173: ababa\P\P
12174: Partial match: ababa
12175: abababx
12176: 0: abababx
12177: 1: ab
12178: ababababx
12179: 0: ababababx
12180: 1: ab
12181:
12182: /^(..)(\1{2,3})ab/
12183: abababab
12184: 0: abababab
12185: 1: ab
12186: 2: abab
12187:
12188: /^\R/
12189: \r\P
12190: 0: \x0d
12191: \r\P\P
12192: Partial match: \x0d
12193:
12194: /^\R{2,3}x/
12195: \r\P
12196: Partial match: \x0d
12197: \r\P\P
12198: Partial match: \x0d
12199: \r\r\P
12200: Partial match: \x0d\x0d
12201: \r\r\P\P
12202: Partial match: \x0d\x0d
12203: \r\r\r\P
12204: Partial match: \x0d\x0d\x0d
12205: \r\r\r\P\P
12206: Partial match: \x0d\x0d\x0d
12207: \r\rx
12208: 0: \x0d\x0dx
12209: \r\r\rx
12210: 0: \x0d\x0d\x0dx
12211:
12212: /^\R{2,3}?x/
12213: \r\P
12214: Partial match: \x0d
12215: \r\P\P
12216: Partial match: \x0d
12217: \r\r\P
12218: Partial match: \x0d\x0d
12219: \r\r\P\P
12220: Partial match: \x0d\x0d
12221: \r\r\r\P
12222: Partial match: \x0d\x0d\x0d
12223: \r\r\r\P\P
12224: Partial match: \x0d\x0d\x0d
12225: \r\rx
12226: 0: \x0d\x0dx
12227: \r\r\rx
12228: 0: \x0d\x0d\x0dx
12229:
12230: /^\R?x/
12231: \r\P
12232: Partial match: \x0d
12233: \r\P\P
12234: Partial match: \x0d
12235: x
12236: 0: x
12237: \rx
12238: 0: \x0dx
12239:
12240: /^\R+x/
12241: \r\P
12242: Partial match: \x0d
12243: \r\P\P
12244: Partial match: \x0d
12245: \r\n\P
12246: Partial match: \x0d\x0a
12247: \r\n\P\P
12248: Partial match: \x0d\x0a
12249: \rx
12250: 0: \x0dx
12251:
12252: /^a$/<CRLF>
12253: a\r\P
12254: Partial match: a\x0d
12255: a\r\P\P
12256: Partial match: a\x0d
12257:
12258: /^a$/m<CRLF>
12259: a\r\P
12260: Partial match: a\x0d
12261: a\r\P\P
12262: Partial match: a\x0d
12263:
12264: /^(a$|a\r)/<CRLF>
12265: a\r\P
12266: 0: a\x0d
12267: 1: a\x0d
12268: a\r\P\P
12269: Partial match: a\x0d
12270:
12271: /^(a$|a\r)/m<CRLF>
12272: a\r\P
12273: 0: a\x0d
12274: 1: a\x0d
12275: a\r\P\P
12276: Partial match: a\x0d
12277:
12278: /./<CRLF>
12279: \r\P
12280: 0: \x0d
12281: \r\P\P
12282: Partial match: \x0d
12283:
12284: /.{2,3}/<CRLF>
12285: \r\P
12286: Partial match: \x0d
12287: \r\P\P
12288: Partial match: \x0d
12289: \r\r\P
12290: 0: \x0d\x0d
12291: \r\r\P\P
12292: Partial match: \x0d\x0d
12293: \r\r\r\P
12294: 0: \x0d\x0d\x0d
12295: \r\r\r\P\P
12296: Partial match: \x0d\x0d\x0d
12297:
12298: /.{2,3}?/<CRLF>
12299: \r\P
12300: Partial match: \x0d
12301: \r\P\P
12302: Partial match: \x0d
12303: \r\r\P
12304: 0: \x0d\x0d
12305: \r\r\P\P
12306: Partial match: \x0d\x0d
12307: \r\r\r\P
12308: 0: \x0d\x0d
12309: \r\r\r\P\P
12310: 0: \x0d\x0d
12311:
1.1.1.4 misho 12312: "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
12313: ABCDGHI\O03
12314: Matched, but too many substrings
12315: 0: ABCD
12316:
12317: /-- These are all run as real matches in test 1; here we are just checking the
12318: settings of the anchored and startline bits. --/
1.1.1.3 misho 12319:
1.1.1.4 misho 12320: /(?>.*?a)(?<=ba)/I
12321: Capturing subpattern count = 0
12322: Max lookbehind = 2
12323: No options
12324: No first char
12325: Need char = 'a'
1.1.1.3 misho 12326:
1.1.1.4 misho 12327: /(?:.*?a)(?<=ba)/I
12328: Capturing subpattern count = 0
12329: Max lookbehind = 2
12330: No options
12331: First char at start or follows newline
12332: Need char = 'a'
12333:
12334: /.*?a(*PRUNE)b/I
12335: Capturing subpattern count = 0
12336: No options
12337: No first char
12338: Need char = 'b'
12339:
12340: /.*?a(*PRUNE)b/sI
12341: Capturing subpattern count = 0
12342: Options: dotall
12343: No first char
12344: Need char = 'b'
12345:
12346: /^a(*PRUNE)b/sI
12347: Capturing subpattern count = 0
12348: Options: anchored dotall
12349: No first char
12350: No need char
12351:
12352: /.*?a(*SKIP)b/I
12353: Capturing subpattern count = 0
12354: No options
12355: No first char
12356: Need char = 'b'
12357:
12358: /(?>.*?a)b/sI
12359: Capturing subpattern count = 0
12360: Options: dotall
12361: No first char
12362: Need char = 'b'
12363:
12364: /(?>.*?a)b/I
12365: Capturing subpattern count = 0
12366: No options
12367: No first char
12368: Need char = 'b'
12369:
12370: /(?>^a)b/sI
12371: Capturing subpattern count = 0
12372: Options: anchored dotall
12373: No first char
12374: No need char
12375:
12376: /(?>.*?)(?<=(abcd)|(wxyz))/I
12377: Capturing subpattern count = 2
12378: Max lookbehind = 4
1.1.1.5 ! misho 12379: May match empty string
1.1.1.4 misho 12380: No options
12381: No first char
12382: No need char
12383:
12384: /(?>.*)(?<=(abcd)|(wxyz))/I
12385: Capturing subpattern count = 2
12386: Max lookbehind = 4
1.1.1.5 ! misho 12387: May match empty string
1.1.1.4 misho 12388: No options
12389: No first char
12390: No need char
12391:
12392: "(?>.*)foo"I
12393: Capturing subpattern count = 0
12394: No options
12395: No first char
12396: Need char = 'o'
12397:
12398: "(?>.*?)foo"I
12399: Capturing subpattern count = 0
12400: No options
12401: No first char
12402: Need char = 'o'
12403:
12404: /(?>^abc)/mI
12405: Capturing subpattern count = 0
12406: Options: multiline
12407: First char at start or follows newline
12408: Need char = 'c'
12409:
12410: /(?>.*abc)/mI
12411: Capturing subpattern count = 0
12412: Options: multiline
12413: No first char
12414: Need char = 'c'
12415:
12416: /(?:.*abc)/mI
12417: Capturing subpattern count = 0
12418: Options: multiline
12419: First char at start or follows newline
12420: Need char = 'c'
12421:
12422: /-- Check PCRE_STUDY_EXTRA_NEEDED --/
12423:
12424: /.?/S-I
12425: Capturing subpattern count = 0
1.1.1.5 ! misho 12426: May match empty string
1.1.1.4 misho 12427: No options
12428: No first char
12429: No need char
12430: Study returned NULL
12431:
12432: /.?/S!I
12433: Capturing subpattern count = 0
1.1.1.5 ! misho 12434: May match empty string
1.1.1.4 misho 12435: No options
12436: No first char
12437: No need char
12438: Subject length lower bound = -1
12439: No set of starting bytes
12440:
12441: /(?:(a)+(?C1)bb|aa(?C2)b)/
12442: aab\C+
12443: Callout 1: last capture = 1
12444: 0: <unset>
12445: 1: a
12446: --->aab
12447: ^ ^ b
12448: Callout 1: last capture = 1
12449: 0: <unset>
12450: 1: a
12451: --->aab
12452: ^^ b
12453: Callout 2: last capture = -1
12454: 0: <unset>
12455: --->aab
12456: ^ ^ b
12457: 0: aab
12458:
12459: /(?:(a)++(?C1)bb|aa(?C2)b)/
12460: aab\C+
12461: Callout 1: last capture = 1
12462: 0: <unset>
12463: 1: a
12464: --->aab
12465: ^ ^ b
12466: Callout 2: last capture = -1
12467: 0: <unset>
12468: --->aab
12469: ^ ^ b
12470: 0: aab
12471:
12472: /(?:(?>(a))(?C1)bb|aa(?C2)b)/
12473: aab\C+
12474: Callout 1: last capture = 1
12475: 0: <unset>
12476: 1: a
12477: --->aab
12478: ^^ b
12479: Callout 2: last capture = -1
12480: 0: <unset>
12481: --->aab
12482: ^ ^ b
12483: 0: aab
12484:
12485: /(?:(?1)(?C1)x|ab(?C2))((a)){0}/
12486: aab\C+
12487: Callout 1: last capture = -1
12488: 0: <unset>
12489: --->aab
12490: ^^ x
12491: Callout 1: last capture = -1
12492: 0: <unset>
12493: --->aab
12494: ^^ x
12495: Callout 2: last capture = -1
12496: 0: <unset>
12497: --->aab
12498: ^ ^ )
12499: 0: ab
12500:
12501: /(?1)(?C1)((a)(?C2)){0}/
12502: aab\C+
12503: Callout 2: last capture = 2
12504: 0: <unset>
1.1.1.3 misho 12505: 1: <unset>
12506: 2: a
1.1.1.4 misho 12507: --->aab
12508: ^^ )
12509: Callout 1: last capture = -1
12510: 0: <unset>
12511: --->aab
12512: ^^ ((a)(?C2)){0}
12513: 0: a
1.1.1.3 misho 12514:
1.1.1.4 misho 12515: /(?:(a)+(?C1)bb|aa(?C2)b)++/
12516: aab\C+
12517: Callout 1: last capture = 1
12518: 0: <unset>
12519: 1: a
12520: --->aab
12521: ^ ^ b
12522: Callout 1: last capture = 1
12523: 0: <unset>
12524: 1: a
12525: --->aab
12526: ^^ b
12527: Callout 2: last capture = -1
12528: 0: <unset>
12529: --->aab
12530: ^ ^ b
12531: 0: aab
12532: aab\C+\O2
12533: Callout 1: last capture = 1
12534: 0: <unset>
12535: --->aab
12536: ^ ^ b
12537: Callout 1: last capture = 1
12538: 0: <unset>
12539: --->aab
12540: ^^ b
12541: Callout 2: last capture = -1
12542: 0: <unset>
12543: --->aab
12544: ^ ^ b
12545: 0: aab
12546:
12547: /(ab)x|ab/
12548: ab\O3
12549: 0: ab
12550: ab\O2
12551: 0: ab
12552:
12553: /(ab)/
12554: ab\O3
1.1.1.3 misho 12555: Matched, but too many substrings
1.1.1.4 misho 12556: 0: ab
12557: ab\O2
12558: Matched, but too many substrings
12559: 0: ab
1.1.1.3 misho 12560:
1.1.1.4 misho 12561: /(?<=123)(*MARK:xx)abc/K
12562: xxxx123a\P\P
12563: Partial match at offset 7, mark=xx: 123a
12564: xxxx123a\P
12565: Partial match at offset 7, mark=xx: 123a
12566:
12567: /123\Kabc/
12568: xxxx123a\P\P
12569: Partial match: 123a
12570: xxxx123a\P
12571: Partial match: 123a
12572:
12573: /^(?(?=a)aa|bb)/C
12574: bb
12575: --->bb
12576: +0 ^ ^
12577: +1 ^ (?(?=a)aa|bb)
12578: +3 ^ (?=a)
12579: +6 ^ a
12580: +11 ^ b
12581: +12 ^^ b
12582: +13 ^ ^ )
12583: +14 ^ ^
12584: 0: bb
12585:
12586: /(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
12587: bb
12588: --->bb
12589: 1 ^ ^
12590: 2 ^ (?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))
12591: 99 ^ (?=(?C3)a(?C4))
12592: 3 ^ a
12593: 8 ^ b
12594: 9 ^^ b
12595: 10 ^ ^ )
12596: 11 ^ ^
12597: 0: bb
12598:
12599: /-- Perl seems to have a bug with this one --/
12600:
12601: /aaaaa(*COMMIT)(*PRUNE)b|a+c/
12602: aaaaaac
12603: 0: aaaac
1.1.1.3 misho 12604:
1.1.1.4 misho 12605: /-- Here are some that Perl treats differently because of the way it handles
12606: backtracking verbs. --/
12607:
12608: /(?!a(*COMMIT)b)ac|ad/
12609: ac
1.1.1.3 misho 12610: 0: ac
1.1.1.4 misho 12611: ad
12612: 0: ad
12613:
12614: /^(?!a(*THEN)b|ac)../
12615: ac
12616: No match
12617: ad
12618: 0: ad
12619:
12620: /^(?=a(*THEN)b|ac)/
12621: ac
12622: 0:
12623:
12624: /\A.*?(?:a|b(*THEN)c)/
12625: ba
12626: 0: ba
12627:
12628: /\A.*?(?:a|b(*THEN)c)++/
12629: ba
12630: 0: ba
12631:
12632: /\A.*?(?:a|b(*THEN)c|d)/
12633: ba
12634: 0: ba
12635:
12636: /(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
12637: aac
12638: 0: aac
12639:
12640: /\A.*?(a|b(*THEN)c)/
12641: ba
12642: 0: ba
12643: 1: a
12644:
12645: /^(A(*THEN)B|A(*THEN)D)/
12646: AD
12647: 0: AD
12648: 1: AD
12649:
12650: /(?!b(*THEN)a)bn|bnn/
12651: bnn
12652: 0: bn
12653:
12654: /(?(?=b(*SKIP)a)bn|bnn)/
12655: bnn
12656: No match
12657:
12658: /(?=b(*THEN)a|)bn|bnn/
12659: bnn
12660: 0: bn
12661:
12662: /-------------------------/
12663:
12664: /(*LIMIT_MATCH=12bc)abc/
12665: Failed: (*VERB) not recognized or malformed at offset 7
12666:
12667: /(*LIMIT_MATCH=4294967290)abc/
12668: Failed: (*VERB) not recognized or malformed at offset 7
12669:
12670: /(*LIMIT_RECURSION=4294967280)abc/I
12671: Capturing subpattern count = 0
12672: Recursion limit = 4294967280
12673: No options
12674: First char = 'a'
12675: Need char = 'c'
12676:
12677: /(a+)*zz/
12678: aaaaaaaaaaaaaz
12679: No match
12680: aaaaaaaaaaaaaz\q3000
12681: Error -8 (match limit exceeded)
12682:
12683: /(a+)*zz/S-
12684: aaaaaaaaaaaaaz\Q10
12685: Error -21 (recursion limit exceeded)
12686:
12687: /(*LIMIT_MATCH=3000)(a+)*zz/I
12688: Capturing subpattern count = 1
12689: Match limit = 3000
12690: No options
12691: No first char
12692: Need char = 'z'
12693: aaaaaaaaaaaaaz
12694: Error -8 (match limit exceeded)
12695: aaaaaaaaaaaaaz\q60000
12696: Error -8 (match limit exceeded)
12697:
12698: /(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
12699: Capturing subpattern count = 1
12700: Match limit = 3000
12701: No options
12702: No first char
12703: Need char = 'z'
12704: aaaaaaaaaaaaaz
12705: Error -8 (match limit exceeded)
12706:
12707: /(*LIMIT_MATCH=60000)(a+)*zz/I
12708: Capturing subpattern count = 1
12709: Match limit = 60000
12710: No options
12711: No first char
12712: Need char = 'z'
12713: aaaaaaaaaaaaaz
12714: No match
12715: aaaaaaaaaaaaaz\q3000
12716: Error -8 (match limit exceeded)
12717:
12718: /(*LIMIT_RECURSION=10)(a+)*zz/IS-
12719: Capturing subpattern count = 1
12720: Recursion limit = 10
12721: No options
12722: No first char
12723: Need char = 'z'
12724: Subject length lower bound = 2
12725: Starting byte set: a z
12726: aaaaaaaaaaaaaz
12727: Error -21 (recursion limit exceeded)
12728: aaaaaaaaaaaaaz\Q1000
12729: Error -21 (recursion limit exceeded)
12730:
12731: /(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12732: Capturing subpattern count = 1
12733: Recursion limit = 10
12734: No options
12735: No first char
12736: Need char = 'z'
12737: Subject length lower bound = 2
12738: Starting byte set: a z
12739: aaaaaaaaaaaaaz
12740: Error -21 (recursion limit exceeded)
12741:
12742: /(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12743: Capturing subpattern count = 1
12744: Recursion limit = 1000
12745: No options
12746: No first char
12747: Need char = 'z'
12748: Subject length lower bound = 2
12749: Starting byte set: a z
12750: aaaaaaaaaaaaaz
12751: No match
12752: aaaaaaaaaaaaaz\Q10
12753: Error -21 (recursion limit exceeded)
1.1.1.3 misho 12754:
1.1.1.5 ! misho 12755: /-- This test causes a segfault with Perl 5.18.0 --/
! 12756:
! 12757: /^(?=(a)){0}b(?1)/
! 12758: backgammon
! 12759: 0: ba
! 12760:
! 12761: /(?|(?<n>f)|(?<n>b))/JI
! 12762: Capturing subpattern count = 1
! 12763: Named capturing subpatterns:
! 12764: n 1
! 12765: Options: dupnames
! 12766: No first char
! 12767: No need char
! 12768:
! 12769: /(?<a>abc)(?<a>z)\k<a>()/JDZS
! 12770: ------------------------------------------------------------------
! 12771: Bra
! 12772: CBra 1
! 12773: abc
! 12774: Ket
! 12775: CBra 2
! 12776: z
! 12777: Ket
! 12778: \k<a>2
! 12779: CBra 3
! 12780: Ket
! 12781: Ket
! 12782: End
! 12783: ------------------------------------------------------------------
! 12784: Capturing subpattern count = 3
! 12785: Max back reference = 2
! 12786: Named capturing subpatterns:
! 12787: a 1
! 12788: a 2
! 12789: Options: dupnames
! 12790: First char = 'a'
! 12791: Need char = 'z'
! 12792: Subject length lower bound = 5
! 12793: No set of starting bytes
! 12794:
! 12795: /a*[bcd]/BZ
! 12796: ------------------------------------------------------------------
! 12797: Bra
! 12798: a*+
! 12799: [b-d]
! 12800: Ket
! 12801: End
! 12802: ------------------------------------------------------------------
! 12803:
! 12804: /[bcd]*a/BZ
! 12805: ------------------------------------------------------------------
! 12806: Bra
! 12807: [b-d]*+
! 12808: a
! 12809: Ket
! 12810: End
! 12811: ------------------------------------------------------------------
! 12812:
! 12813: /-- A complete set of tests for auto-possessification of character types --/
! 12814:
! 12815: /\D+\D \D+\d \D+\S \D+\s \D+\W \D+\w \D+. \D+\C \D+\R \D+\H \D+\h \D+\V \D+\v \D+\Z \D+\z \D+$/BZx
! 12816: ------------------------------------------------------------------
! 12817: Bra
! 12818: \D+
! 12819: \D
! 12820: \D++
! 12821: \d
! 12822: \D+
! 12823: \S
! 12824: \D+
! 12825: \s
! 12826: \D+
! 12827: \W
! 12828: \D+
! 12829: \w
! 12830: \D+
! 12831: Any
! 12832: \D+
! 12833: AllAny
! 12834: \D+
! 12835: \R
! 12836: \D+
! 12837: \H
! 12838: \D+
! 12839: \h
! 12840: \D+
! 12841: \V
! 12842: \D+
! 12843: \v
! 12844: \D+
! 12845: \Z
! 12846: \D++
! 12847: \z
! 12848: \D+
! 12849: $
! 12850: Ket
! 12851: End
! 12852: ------------------------------------------------------------------
! 12853:
! 12854: /\d+\D \d+\d \d+\S \d+\s \d+\W \d+\w \d+. \d+\C \d+\R \d+\H \d+\h \d+\V \d+\v \d+\Z \d+\z \d+$/BZx
! 12855: ------------------------------------------------------------------
! 12856: Bra
! 12857: \d++
! 12858: \D
! 12859: \d+
! 12860: \d
! 12861: \d+
! 12862: \S
! 12863: \d++
! 12864: \s
! 12865: \d++
! 12866: \W
! 12867: \d+
! 12868: \w
! 12869: \d+
! 12870: Any
! 12871: \d+
! 12872: AllAny
! 12873: \d++
! 12874: \R
! 12875: \d+
! 12876: \H
! 12877: \d++
! 12878: \h
! 12879: \d+
! 12880: \V
! 12881: \d++
! 12882: \v
! 12883: \d++
! 12884: \Z
! 12885: \d++
! 12886: \z
! 12887: \d++
! 12888: $
! 12889: Ket
! 12890: End
! 12891: ------------------------------------------------------------------
! 12892:
! 12893: /\S+\D \S+\d \S+\S \S+\s \S+\W \S+\w \S+. \S+\C \S+\R \S+\H \S+\h \S+\V \S+\v \S+\Z \S+\z \S+$/BZx
! 12894: ------------------------------------------------------------------
! 12895: Bra
! 12896: \S+
! 12897: \D
! 12898: \S+
! 12899: \d
! 12900: \S+
! 12901: \S
! 12902: \S++
! 12903: \s
! 12904: \S+
! 12905: \W
! 12906: \S+
! 12907: \w
! 12908: \S+
! 12909: Any
! 12910: \S+
! 12911: AllAny
! 12912: \S++
! 12913: \R
! 12914: \S+
! 12915: \H
! 12916: \S++
! 12917: \h
! 12918: \S+
! 12919: \V
! 12920: \S++
! 12921: \v
! 12922: \S++
! 12923: \Z
! 12924: \S++
! 12925: \z
! 12926: \S++
! 12927: $
! 12928: Ket
! 12929: End
! 12930: ------------------------------------------------------------------
! 12931:
! 12932: /\s+\D \s+\d \s+\S \s+\s \s+\W \s+\w \s+. \s+\C \s+\R \s+\H \s+\h \s+\V \s+\v \s+\Z \s+\z \s+$/BZx
! 12933: ------------------------------------------------------------------
! 12934: Bra
! 12935: \s+
! 12936: \D
! 12937: \s++
! 12938: \d
! 12939: \s++
! 12940: \S
! 12941: \s+
! 12942: \s
! 12943: \s+
! 12944: \W
! 12945: \s++
! 12946: \w
! 12947: \s+
! 12948: Any
! 12949: \s+
! 12950: AllAny
! 12951: \s+
! 12952: \R
! 12953: \s+
! 12954: \H
! 12955: \s+
! 12956: \h
! 12957: \s+
! 12958: \V
! 12959: \s+
! 12960: \v
! 12961: \s+
! 12962: \Z
! 12963: \s++
! 12964: \z
! 12965: \s+
! 12966: $
! 12967: Ket
! 12968: End
! 12969: ------------------------------------------------------------------
! 12970:
! 12971: /\W+\D \W+\d \W+\S \W+\s \W+\W \W+\w \W+. \W+\C \W+\R \W+\H \W+\h \W+\V \W+\v \W+\Z \W+\z \W+$/BZx
! 12972: ------------------------------------------------------------------
! 12973: Bra
! 12974: \W+
! 12975: \D
! 12976: \W++
! 12977: \d
! 12978: \W+
! 12979: \S
! 12980: \W+
! 12981: \s
! 12982: \W+
! 12983: \W
! 12984: \W++
! 12985: \w
! 12986: \W+
! 12987: Any
! 12988: \W+
! 12989: AllAny
! 12990: \W+
! 12991: \R
! 12992: \W+
! 12993: \H
! 12994: \W+
! 12995: \h
! 12996: \W+
! 12997: \V
! 12998: \W+
! 12999: \v
! 13000: \W+
! 13001: \Z
! 13002: \W++
! 13003: \z
! 13004: \W+
! 13005: $
! 13006: Ket
! 13007: End
! 13008: ------------------------------------------------------------------
! 13009:
! 13010: /\w+\D \w+\d \w+\S \w+\s \w+\W \w+\w \w+. \w+\C \w+\R \w+\H \w+\h \w+\V \w+\v \w+\Z \w+\z \w+$/BZx
! 13011: ------------------------------------------------------------------
! 13012: Bra
! 13013: \w+
! 13014: \D
! 13015: \w+
! 13016: \d
! 13017: \w+
! 13018: \S
! 13019: \w++
! 13020: \s
! 13021: \w++
! 13022: \W
! 13023: \w+
! 13024: \w
! 13025: \w+
! 13026: Any
! 13027: \w+
! 13028: AllAny
! 13029: \w++
! 13030: \R
! 13031: \w+
! 13032: \H
! 13033: \w++
! 13034: \h
! 13035: \w+
! 13036: \V
! 13037: \w++
! 13038: \v
! 13039: \w++
! 13040: \Z
! 13041: \w++
! 13042: \z
! 13043: \w++
! 13044: $
! 13045: Ket
! 13046: End
! 13047: ------------------------------------------------------------------
! 13048:
! 13049: /\C+\D \C+\d \C+\S \C+\s \C+\W \C+\w \C+. \C+\C \C+\R \C+\H \C+\h \C+\V \C+\v \C+\Z \C+\z \C+$/BZx
! 13050: ------------------------------------------------------------------
! 13051: Bra
! 13052: AllAny+
! 13053: \D
! 13054: AllAny+
! 13055: \d
! 13056: AllAny+
! 13057: \S
! 13058: AllAny+
! 13059: \s
! 13060: AllAny+
! 13061: \W
! 13062: AllAny+
! 13063: \w
! 13064: AllAny+
! 13065: Any
! 13066: AllAny+
! 13067: AllAny
! 13068: AllAny+
! 13069: \R
! 13070: AllAny+
! 13071: \H
! 13072: AllAny+
! 13073: \h
! 13074: AllAny+
! 13075: \V
! 13076: AllAny+
! 13077: \v
! 13078: AllAny+
! 13079: \Z
! 13080: AllAny++
! 13081: \z
! 13082: AllAny+
! 13083: $
! 13084: Ket
! 13085: End
! 13086: ------------------------------------------------------------------
! 13087:
! 13088: /\R+\D \R+\d \R+\S \R+\s \R+\W \R+\w \R+. \R+\C \R+\R \R+\H \R+\h \R+\V \R+\v \R+\Z \R+\z \R+$/BZx
! 13089: ------------------------------------------------------------------
! 13090: Bra
! 13091: \R+
! 13092: \D
! 13093: \R++
! 13094: \d
! 13095: \R+
! 13096: \S
! 13097: \R++
! 13098: \s
! 13099: \R+
! 13100: \W
! 13101: \R++
! 13102: \w
! 13103: \R++
! 13104: Any
! 13105: \R+
! 13106: AllAny
! 13107: \R+
! 13108: \R
! 13109: \R+
! 13110: \H
! 13111: \R++
! 13112: \h
! 13113: \R+
! 13114: \V
! 13115: \R+
! 13116: \v
! 13117: \R+
! 13118: \Z
! 13119: \R++
! 13120: \z
! 13121: \R+
! 13122: $
! 13123: Ket
! 13124: End
! 13125: ------------------------------------------------------------------
! 13126:
! 13127: /\H+\D \H+\d \H+\S \H+\s \H+\W \H+\w \H+. \H+\C \H+\R \H+\H \H+\h \H+\V \H+\v \H+\Z \H+\z \H+$/BZx
! 13128: ------------------------------------------------------------------
! 13129: Bra
! 13130: \H+
! 13131: \D
! 13132: \H+
! 13133: \d
! 13134: \H+
! 13135: \S
! 13136: \H+
! 13137: \s
! 13138: \H+
! 13139: \W
! 13140: \H+
! 13141: \w
! 13142: \H+
! 13143: Any
! 13144: \H+
! 13145: AllAny
! 13146: \H+
! 13147: \R
! 13148: \H+
! 13149: \H
! 13150: \H++
! 13151: \h
! 13152: \H+
! 13153: \V
! 13154: \H+
! 13155: \v
! 13156: \H+
! 13157: \Z
! 13158: \H++
! 13159: \z
! 13160: \H+
! 13161: $
! 13162: Ket
! 13163: End
! 13164: ------------------------------------------------------------------
! 13165:
! 13166: /\h+\D \h+\d \h+\S \h+\s \h+\W \h+\w \h+. \h+\C \h+\R \h+\H \h+\h \h+\V \h+\v \h+\Z \h+\z \h+$/BZx
! 13167: ------------------------------------------------------------------
! 13168: Bra
! 13169: \h+
! 13170: \D
! 13171: \h++
! 13172: \d
! 13173: \h++
! 13174: \S
! 13175: \h+
! 13176: \s
! 13177: \h+
! 13178: \W
! 13179: \h++
! 13180: \w
! 13181: \h+
! 13182: Any
! 13183: \h+
! 13184: AllAny
! 13185: \h++
! 13186: \R
! 13187: \h++
! 13188: \H
! 13189: \h+
! 13190: \h
! 13191: \h+
! 13192: \V
! 13193: \h++
! 13194: \v
! 13195: \h+
! 13196: \Z
! 13197: \h++
! 13198: \z
! 13199: \h+
! 13200: $
! 13201: Ket
! 13202: End
! 13203: ------------------------------------------------------------------
! 13204:
! 13205: /\V+\D \V+\d \V+\S \V+\s \V+\W \V+\w \V+. \V+\C \V+\R \V+\H \V+\h \V+\V \V+\v \V+\Z \V+\z \V+$/BZx
! 13206: ------------------------------------------------------------------
! 13207: Bra
! 13208: \V+
! 13209: \D
! 13210: \V+
! 13211: \d
! 13212: \V+
! 13213: \S
! 13214: \V+
! 13215: \s
! 13216: \V+
! 13217: \W
! 13218: \V+
! 13219: \w
! 13220: \V+
! 13221: Any
! 13222: \V+
! 13223: AllAny
! 13224: \V++
! 13225: \R
! 13226: \V+
! 13227: \H
! 13228: \V+
! 13229: \h
! 13230: \V+
! 13231: \V
! 13232: \V++
! 13233: \v
! 13234: \V+
! 13235: \Z
! 13236: \V++
! 13237: \z
! 13238: \V+
! 13239: $
! 13240: Ket
! 13241: End
! 13242: ------------------------------------------------------------------
! 13243:
! 13244: /\v+\D \v+\d \v+\S \v+\s \v+\W \v+\w \v+. \v+\C \v+\R \v+\H \v+\h \v+\V \v+\v \v+\Z \v+\z \v+$/BZx
! 13245: ------------------------------------------------------------------
! 13246: Bra
! 13247: \v+
! 13248: \D
! 13249: \v++
! 13250: \d
! 13251: \v++
! 13252: \S
! 13253: \v+
! 13254: \s
! 13255: \v+
! 13256: \W
! 13257: \v++
! 13258: \w
! 13259: \v+
! 13260: Any
! 13261: \v+
! 13262: AllAny
! 13263: \v+
! 13264: \R
! 13265: \v+
! 13266: \H
! 13267: \v++
! 13268: \h
! 13269: \v++
! 13270: \V
! 13271: \v+
! 13272: \v
! 13273: \v+
! 13274: \Z
! 13275: \v++
! 13276: \z
! 13277: \v+
! 13278: $
! 13279: Ket
! 13280: End
! 13281: ------------------------------------------------------------------
! 13282:
! 13283: / a+\D a+\d a+\S a+\s a+\W a+\w a+. a+\C a+\R a+\H a+\h a+\V a+\v a+\Z a+\z a+$/BZx
! 13284: ------------------------------------------------------------------
! 13285: Bra
! 13286: a+
! 13287: \D
! 13288: a++
! 13289: \d
! 13290: a+
! 13291: \S
! 13292: a++
! 13293: \s
! 13294: a++
! 13295: \W
! 13296: a+
! 13297: \w
! 13298: a+
! 13299: Any
! 13300: a+
! 13301: AllAny
! 13302: a++
! 13303: \R
! 13304: a+
! 13305: \H
! 13306: a++
! 13307: \h
! 13308: a+
! 13309: \V
! 13310: a++
! 13311: \v
! 13312: a++
! 13313: \Z
! 13314: a++
! 13315: \z
! 13316: a++
! 13317: $
! 13318: Ket
! 13319: End
! 13320: ------------------------------------------------------------------
! 13321:
! 13322: /\n+\D \n+\d \n+\S \n+\s \n+\W \n+\w \n+. \n+\C \n+\R \n+\H \n+\h \n+\V \n+\v \n+\Z \n+\z \n+$/BZx
! 13323: ------------------------------------------------------------------
! 13324: Bra
! 13325: \x0a+
! 13326: \D
! 13327: \x0a++
! 13328: \d
! 13329: \x0a++
! 13330: \S
! 13331: \x0a+
! 13332: \s
! 13333: \x0a+
! 13334: \W
! 13335: \x0a++
! 13336: \w
! 13337: \x0a+
! 13338: Any
! 13339: \x0a+
! 13340: AllAny
! 13341: \x0a+
! 13342: \R
! 13343: \x0a+
! 13344: \H
! 13345: \x0a++
! 13346: \h
! 13347: \x0a++
! 13348: \V
! 13349: \x0a+
! 13350: \v
! 13351: \x0a+
! 13352: \Z
! 13353: \x0a++
! 13354: \z
! 13355: \x0a+
! 13356: $
! 13357: Ket
! 13358: End
! 13359: ------------------------------------------------------------------
! 13360:
! 13361: / .+\D .+\d .+\S .+\s .+\W .+\w .+. .+\C .+\R .+\H .+\h .+\V .+\v .+\Z .+\z .+$/BZx
! 13362: ------------------------------------------------------------------
! 13363: Bra
! 13364: Any+
! 13365: \D
! 13366: Any+
! 13367: \d
! 13368: Any+
! 13369: \S
! 13370: Any+
! 13371: \s
! 13372: Any+
! 13373: \W
! 13374: Any+
! 13375: \w
! 13376: Any+
! 13377: Any
! 13378: Any+
! 13379: AllAny
! 13380: Any++
! 13381: \R
! 13382: Any+
! 13383: \H
! 13384: Any+
! 13385: \h
! 13386: Any+
! 13387: \V
! 13388: Any+
! 13389: \v
! 13390: Any+
! 13391: \Z
! 13392: Any++
! 13393: \z
! 13394: Any+
! 13395: $
! 13396: Ket
! 13397: End
! 13398: ------------------------------------------------------------------
! 13399:
! 13400: / .+\D .+\d .+\S .+\s .+\W .+\w .+. .+\C .+\R .+\H .+\h .+\V .+\v .+\Z .+\z .+$/BZxs
! 13401: ------------------------------------------------------------------
! 13402: Bra
! 13403: AllAny+
! 13404: \D
! 13405: AllAny+
! 13406: \d
! 13407: AllAny+
! 13408: \S
! 13409: AllAny+
! 13410: \s
! 13411: AllAny+
! 13412: \W
! 13413: AllAny+
! 13414: \w
! 13415: AllAny+
! 13416: AllAny
! 13417: AllAny+
! 13418: AllAny
! 13419: AllAny+
! 13420: \R
! 13421: AllAny+
! 13422: \H
! 13423: AllAny+
! 13424: \h
! 13425: AllAny+
! 13426: \V
! 13427: AllAny+
! 13428: \v
! 13429: AllAny+
! 13430: \Z
! 13431: AllAny++
! 13432: \z
! 13433: AllAny+
! 13434: $
! 13435: Ket
! 13436: End
! 13437: ------------------------------------------------------------------
! 13438:
! 13439: /\D+$ \d+$ \S+$ \s+$ \W+$ \w+$ \C+$ \R+$ \H+$ \h+$ \V+$ \v+$ a+$ \n+$ .+$ .+$/BZxm
! 13440: ------------------------------------------------------------------
! 13441: Bra
! 13442: \D+
! 13443: /m $
! 13444: \d++
! 13445: /m $
! 13446: \S++
! 13447: /m $
! 13448: \s+
! 13449: /m $
! 13450: \W+
! 13451: /m $
! 13452: \w++
! 13453: /m $
! 13454: AllAny+
! 13455: /m $
! 13456: \R+
! 13457: /m $
! 13458: \H+
! 13459: /m $
! 13460: \h+
! 13461: /m $
! 13462: \V+
! 13463: /m $
! 13464: \v+
! 13465: /m $
! 13466: a+
! 13467: /m $
! 13468: \x0a+
! 13469: /m $
! 13470: Any+
! 13471: /m $
! 13472: Any+
! 13473: /m $
! 13474: Ket
! 13475: End
! 13476: ------------------------------------------------------------------
! 13477:
! 13478: /(?=a+)a(a+)++a/BZ
! 13479: ------------------------------------------------------------------
! 13480: Bra
! 13481: Assert
! 13482: a++
! 13483: Ket
! 13484: a
! 13485: CBraPos 1
! 13486: a++
! 13487: KetRpos
! 13488: a
! 13489: Ket
! 13490: End
! 13491: ------------------------------------------------------------------
! 13492:
! 13493: /a+(bb|cc)a+(?:bb|cc)a+(?>bb|cc)a+(?:bb|cc)+a+(aa)a+(?:bb|aa)/BZ
! 13494: ------------------------------------------------------------------
! 13495: Bra
! 13496: a++
! 13497: CBra 1
! 13498: bb
! 13499: Alt
! 13500: cc
! 13501: Ket
! 13502: a++
! 13503: Bra
! 13504: bb
! 13505: Alt
! 13506: cc
! 13507: Ket
! 13508: a++
! 13509: Once_NC
! 13510: bb
! 13511: Alt
! 13512: cc
! 13513: Ket
! 13514: a++
! 13515: Bra
! 13516: bb
! 13517: Alt
! 13518: cc
! 13519: KetRmax
! 13520: a+
! 13521: CBra 2
! 13522: aa
! 13523: Ket
! 13524: a+
! 13525: Bra
! 13526: bb
! 13527: Alt
! 13528: aa
! 13529: Ket
! 13530: Ket
! 13531: End
! 13532: ------------------------------------------------------------------
! 13533:
! 13534: /a+(bb|cc)?#a+(?:bb|cc)??#a+(?:bb|cc)?+#a+(?:bb|cc)*#a+(bb|cc)?a#a+(?:aa)?/BZ
! 13535: ------------------------------------------------------------------
! 13536: Bra
! 13537: a++
! 13538: Brazero
! 13539: CBra 1
! 13540: bb
! 13541: Alt
! 13542: cc
! 13543: Ket
! 13544: #
! 13545: a++
! 13546: Braminzero
! 13547: Bra
! 13548: bb
! 13549: Alt
! 13550: cc
! 13551: Ket
! 13552: #
! 13553: a++
! 13554: Once
! 13555: Brazero
! 13556: Bra
! 13557: bb
! 13558: Alt
! 13559: cc
! 13560: Ket
! 13561: Ket
! 13562: #
! 13563: a++
! 13564: Brazero
! 13565: Bra
! 13566: bb
! 13567: Alt
! 13568: cc
! 13569: KetRmax
! 13570: #
! 13571: a+
! 13572: Brazero
! 13573: CBra 2
! 13574: bb
! 13575: Alt
! 13576: cc
! 13577: Ket
! 13578: a#
! 13579: a+
! 13580: Brazero
! 13581: Bra
! 13582: aa
! 13583: Ket
! 13584: Ket
! 13585: End
! 13586: ------------------------------------------------------------------
! 13587:
! 13588: /a+(?:bb)?a#a+(?:|||)#a+(?:|b)a#a+(?:|||)?a/BZ
! 13589: ------------------------------------------------------------------
! 13590: Bra
! 13591: a+
! 13592: Brazero
! 13593: Bra
! 13594: bb
! 13595: Ket
! 13596: a#
! 13597: a++
! 13598: Bra
! 13599: Alt
! 13600: Alt
! 13601: Alt
! 13602: Ket
! 13603: #
! 13604: a+
! 13605: Bra
! 13606: Alt
! 13607: b
! 13608: Ket
! 13609: a#
! 13610: a+
! 13611: Brazero
! 13612: Bra
! 13613: Alt
! 13614: Alt
! 13615: Alt
! 13616: Ket
! 13617: a
! 13618: Ket
! 13619: End
! 13620: ------------------------------------------------------------------
! 13621:
! 13622: /[ab]*/BZ
! 13623: ------------------------------------------------------------------
! 13624: Bra
! 13625: [ab]*+
! 13626: Ket
! 13627: End
! 13628: ------------------------------------------------------------------
! 13629: aaaa
! 13630: 0: aaaa
! 13631:
! 13632: /[ab]*?/BZ
! 13633: ------------------------------------------------------------------
! 13634: Bra
! 13635: [ab]*?
! 13636: Ket
! 13637: End
! 13638: ------------------------------------------------------------------
! 13639: aaaa
! 13640: 0:
! 13641:
! 13642: /[ab]?/BZ
! 13643: ------------------------------------------------------------------
! 13644: Bra
! 13645: [ab]?+
! 13646: Ket
! 13647: End
! 13648: ------------------------------------------------------------------
! 13649: aaaa
! 13650: 0: a
! 13651:
! 13652: /[ab]??/BZ
! 13653: ------------------------------------------------------------------
! 13654: Bra
! 13655: [ab]??
! 13656: Ket
! 13657: End
! 13658: ------------------------------------------------------------------
! 13659: aaaa
! 13660: 0:
! 13661:
! 13662: /[ab]+/BZ
! 13663: ------------------------------------------------------------------
! 13664: Bra
! 13665: [ab]++
! 13666: Ket
! 13667: End
! 13668: ------------------------------------------------------------------
! 13669: aaaa
! 13670: 0: aaaa
! 13671:
! 13672: /[ab]+?/BZ
! 13673: ------------------------------------------------------------------
! 13674: Bra
! 13675: [ab]+?
! 13676: Ket
! 13677: End
! 13678: ------------------------------------------------------------------
! 13679: aaaa
! 13680: 0: a
! 13681:
! 13682: /[ab]{2,3}/BZ
! 13683: ------------------------------------------------------------------
! 13684: Bra
! 13685: [ab]{2,3}+
! 13686: Ket
! 13687: End
! 13688: ------------------------------------------------------------------
! 13689: aaaa
! 13690: 0: aaa
! 13691:
! 13692: /[ab]{2,3}?/BZ
! 13693: ------------------------------------------------------------------
! 13694: Bra
! 13695: [ab]{2,3}?
! 13696: Ket
! 13697: End
! 13698: ------------------------------------------------------------------
! 13699: aaaa
! 13700: 0: aa
! 13701:
! 13702: /[ab]{2,}/BZ
! 13703: ------------------------------------------------------------------
! 13704: Bra
! 13705: [ab]{2,}+
! 13706: Ket
! 13707: End
! 13708: ------------------------------------------------------------------
! 13709: aaaa
! 13710: 0: aaaa
! 13711:
! 13712: /[ab]{2,}?/BZ
! 13713: ------------------------------------------------------------------
! 13714: Bra
! 13715: [ab]{2,}?
! 13716: Ket
! 13717: End
! 13718: ------------------------------------------------------------------
! 13719: aaaa
! 13720: 0: aa
! 13721:
! 13722: /\d+\s{0,5}=\s*\S?=\w{0,4}\W*/BZ
! 13723: ------------------------------------------------------------------
! 13724: Bra
! 13725: \d++
! 13726: \s{0,5}+
! 13727: =
! 13728: \s*+
! 13729: \S?
! 13730: =
! 13731: \w{0,4}+
! 13732: \W*+
! 13733: Ket
! 13734: End
! 13735: ------------------------------------------------------------------
! 13736:
! 13737: /[a-d]{5,12}[e-z0-9]*#[^a-z]+[b-y]*a[2-7]?[^0-9a-z]+/BZ
! 13738: ------------------------------------------------------------------
! 13739: Bra
! 13740: [a-d]{5,12}+
! 13741: [0-9e-z]*+
! 13742: #
! 13743: [\x00-`{-\xff] (neg)++
! 13744: [b-y]*+
! 13745: a
! 13746: [2-7]?+
! 13747: [\x00-/:-`{-\xff] (neg)++
! 13748: Ket
! 13749: End
! 13750: ------------------------------------------------------------------
! 13751:
! 13752: /[a-z]*\s#[ \t]?\S#[a-c]*\S#[C-G]+?\d#[4-8]*\D#[4-9,]*\D#[!$]{0,5}\w#[M-Xf-l]+\W#[a-c,]?\W/BZ
! 13753: ------------------------------------------------------------------
! 13754: Bra
! 13755: [a-z]*+
! 13756: \s
! 13757: #
! 13758: [\x09 ]?+
! 13759: \S
! 13760: #
! 13761: [a-c]*
! 13762: \S
! 13763: #
! 13764: [C-G]++
! 13765: \d
! 13766: #
! 13767: [4-8]*+
! 13768: \D
! 13769: #
! 13770: [,4-9]*
! 13771: \D
! 13772: #
! 13773: [!$]{0,5}+
! 13774: \w
! 13775: #
! 13776: [M-Xf-l]++
! 13777: \W
! 13778: #
! 13779: [,a-c]?
! 13780: \W
! 13781: Ket
! 13782: End
! 13783: ------------------------------------------------------------------
! 13784:
! 13785: /a+(aa|bb)*c#a*(bb|cc)*a#a?(bb|cc)*d#[a-f]*(g|hh)*f/BZ
! 13786: ------------------------------------------------------------------
! 13787: Bra
! 13788: a+
! 13789: Brazero
! 13790: CBra 1
! 13791: aa
! 13792: Alt
! 13793: bb
! 13794: KetRmax
! 13795: c#
! 13796: a*
! 13797: Brazero
! 13798: CBra 2
! 13799: bb
! 13800: Alt
! 13801: cc
! 13802: KetRmax
! 13803: a#
! 13804: a?+
! 13805: Brazero
! 13806: CBra 3
! 13807: bb
! 13808: Alt
! 13809: cc
! 13810: KetRmax
! 13811: d#
! 13812: [a-f]*
! 13813: Brazero
! 13814: CBra 4
! 13815: g
! 13816: Alt
! 13817: hh
! 13818: KetRmax
! 13819: f
! 13820: Ket
! 13821: End
! 13822: ------------------------------------------------------------------
! 13823:
! 13824: /[a-f]*(g|hh|i)*i#[a-x]{4,}(y{0,6})*y#[a-k]+(ll|mm)+n/BZ
! 13825: ------------------------------------------------------------------
! 13826: Bra
! 13827: [a-f]*+
! 13828: Brazero
! 13829: CBra 1
! 13830: g
! 13831: Alt
! 13832: hh
! 13833: Alt
! 13834: i
! 13835: KetRmax
! 13836: i#
! 13837: [a-x]{4,}
! 13838: Brazero
! 13839: SCBra 2
! 13840: y{0,6}
! 13841: KetRmax
! 13842: y#
! 13843: [a-k]++
! 13844: CBra 3
! 13845: ll
! 13846: Alt
! 13847: mm
! 13848: KetRmax
! 13849: n
! 13850: Ket
! 13851: End
! 13852: ------------------------------------------------------------------
! 13853:
! 13854: /[a-f]*(?>gg|hh)+#[a-f]*(?>gg|hh)?#[a-f]*(?>gg|hh)*a#[a-f]*(?>gg|hh)*h/BZ
! 13855: ------------------------------------------------------------------
! 13856: Bra
! 13857: [a-f]*+
! 13858: Once_NC
! 13859: gg
! 13860: Alt
! 13861: hh
! 13862: KetRmax
! 13863: #
! 13864: [a-f]*+
! 13865: Brazero
! 13866: Once_NC
! 13867: gg
! 13868: Alt
! 13869: hh
! 13870: Ket
! 13871: #
! 13872: [a-f]*
! 13873: Brazero
! 13874: Once_NC
! 13875: gg
! 13876: Alt
! 13877: hh
! 13878: KetRmax
! 13879: a#
! 13880: [a-f]*+
! 13881: Brazero
! 13882: Once_NC
! 13883: gg
! 13884: Alt
! 13885: hh
! 13886: KetRmax
! 13887: h
! 13888: Ket
! 13889: End
! 13890: ------------------------------------------------------------------
! 13891:
! 13892: /[a-c]*d/DZS
! 13893: ------------------------------------------------------------------
! 13894: Bra
! 13895: [a-c]*+
! 13896: d
! 13897: Ket
! 13898: End
! 13899: ------------------------------------------------------------------
! 13900: Capturing subpattern count = 0
! 13901: No options
! 13902: No first char
! 13903: Need char = 'd'
! 13904: Subject length lower bound = 1
! 13905: Starting byte set: a b c d
! 13906:
! 13907: /[a-c]+d/DZS
! 13908: ------------------------------------------------------------------
! 13909: Bra
! 13910: [a-c]++
! 13911: d
! 13912: Ket
! 13913: End
! 13914: ------------------------------------------------------------------
! 13915: Capturing subpattern count = 0
! 13916: No options
! 13917: No first char
! 13918: Need char = 'd'
! 13919: Subject length lower bound = 2
! 13920: Starting byte set: a b c
! 13921:
! 13922: /[a-c]?d/DZS
! 13923: ------------------------------------------------------------------
! 13924: Bra
! 13925: [a-c]?+
! 13926: d
! 13927: Ket
! 13928: End
! 13929: ------------------------------------------------------------------
! 13930: Capturing subpattern count = 0
! 13931: No options
! 13932: No first char
! 13933: Need char = 'd'
! 13934: Subject length lower bound = 1
! 13935: Starting byte set: a b c d
! 13936:
! 13937: /[a-c]{4,6}d/DZS
! 13938: ------------------------------------------------------------------
! 13939: Bra
! 13940: [a-c]{4,6}+
! 13941: d
! 13942: Ket
! 13943: End
! 13944: ------------------------------------------------------------------
! 13945: Capturing subpattern count = 0
! 13946: No options
! 13947: No first char
! 13948: Need char = 'd'
! 13949: Subject length lower bound = 5
! 13950: Starting byte set: a b c
! 13951:
! 13952: /[a-c]{0,6}d/DZS
! 13953: ------------------------------------------------------------------
! 13954: Bra
! 13955: [a-c]{0,6}+
! 13956: d
! 13957: Ket
! 13958: End
! 13959: ------------------------------------------------------------------
! 13960: Capturing subpattern count = 0
! 13961: No options
! 13962: No first char
! 13963: Need char = 'd'
! 13964: Subject length lower bound = 1
! 13965: Starting byte set: a b c d
! 13966:
! 13967: /-- End of special auto-possessive tests --/
! 13968:
! 13969: /^A\o{1239}B/
! 13970: Failed: non-octal character in \o{} (closing brace missing?) at offset 8
! 13971:
! 13972: /^A\oB/
! 13973: Failed: missing opening brace after \o at offset 3
! 13974:
! 13975: /^A\x{zz}B/
! 13976: Failed: non-hex character in \x{} (closing brace missing?) at offset 5
! 13977:
! 13978: /^A\x{12Z/
! 13979: Failed: non-hex character in \x{} (closing brace missing?) at offset 7
! 13980:
! 13981: /^A\x{/
! 13982: Failed: non-hex character in \x{} (closing brace missing?) at offset 5
! 13983:
! 13984: /[ab]++/BZO
! 13985: ------------------------------------------------------------------
! 13986: Bra
! 13987: [ab]++
! 13988: Ket
! 13989: End
! 13990: ------------------------------------------------------------------
! 13991:
! 13992: /[^ab]*+/BZO
! 13993: ------------------------------------------------------------------
! 13994: Bra
! 13995: [\x00-`c-\xff] (neg)*+
! 13996: Ket
! 13997: End
! 13998: ------------------------------------------------------------------
! 13999:
! 14000: /a{4}+/BZO
! 14001: ------------------------------------------------------------------
! 14002: Bra
! 14003: a{4}
! 14004: Ket
! 14005: End
! 14006: ------------------------------------------------------------------
! 14007:
! 14008: /a{4}+/BZOi
! 14009: ------------------------------------------------------------------
! 14010: Bra
! 14011: /i a{4}
! 14012: Ket
! 14013: End
! 14014: ------------------------------------------------------------------
! 14015:
! 14016: /[a-[:digit:]]+/
! 14017: Failed: invalid range in character class at offset 3
! 14018:
! 14019: /[A-[:digit:]]+/
! 14020: Failed: invalid range in character class at offset 3
! 14021:
! 14022: /[a-[.xxx.]]+/
! 14023: Failed: invalid range in character class at offset 3
! 14024:
! 14025: /[a-[=xxx=]]+/
! 14026: Failed: invalid range in character class at offset 3
! 14027:
! 14028: /[a-[!xxx!]]+/
! 14029: Failed: range out of order in character class at offset 3
! 14030:
! 14031: /[A-[!xxx!]]+/
! 14032: A]]]
! 14033: 0: A]]]
! 14034:
! 14035: /[a-\d]+/
! 14036: Failed: invalid range in character class at offset 4
! 14037:
! 14038: /(?<0abc>xx)/
! 14039: Failed: group name must start with a non-digit at offset 3
! 14040:
! 14041: /(?&1abc)xx(?<1abc>y)/
! 14042: Failed: group name must start with a non-digit at offset 3
! 14043:
! 14044: /(?<ab-cd>xx)/
! 14045: Failed: syntax error in subpattern name (missing terminator) at offset 5
! 14046:
! 14047: /(?'0abc'xx)/
! 14048: Failed: group name must start with a non-digit at offset 3
! 14049:
! 14050: /(?P<0abc>xx)/
! 14051: Failed: group name must start with a non-digit at offset 4
! 14052:
! 14053: /\k<5ghj>/
! 14054: Failed: group name must start with a non-digit at offset 3
! 14055:
! 14056: /\k'5ghj'/
! 14057: Failed: group name must start with a non-digit at offset 3
! 14058:
! 14059: /\k{2fgh}/
! 14060: Failed: group name must start with a non-digit at offset 3
! 14061:
! 14062: /(?P=8yuki)/
! 14063: Failed: group name must start with a non-digit at offset 4
! 14064:
! 14065: /\g{4df}/
! 14066: Failed: group name must start with a non-digit at offset 3
! 14067:
! 14068: /(?&1abc)xx(?<1abc>y)/
! 14069: Failed: group name must start with a non-digit at offset 3
! 14070:
! 14071: /(?P>1abc)xx(?<1abc>y)/
! 14072: Failed: group name must start with a non-digit at offset 4
! 14073:
! 14074: /\g'3gh'/
! 14075: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 7
! 14076:
! 14077: /\g<5fg>/
! 14078: Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 7
! 14079:
! 14080: /(?(<4gh>)abc)/
! 14081: Failed: group name must start with a non-digit at offset 4
! 14082:
! 14083: /(?('4gh')abc)/
! 14084: Failed: group name must start with a non-digit at offset 4
! 14085:
! 14086: /(?(4gh)abc)/
! 14087: Failed: malformed number or name after (?( at offset 4
! 14088:
! 14089: /(?(R&6yh)abc)/
! 14090: Failed: group name must start with a non-digit at offset 5
! 14091:
! 14092: /-- Test the ugly "start or end of word" compatibility syntax --/
! 14093:
! 14094: /[[:<:]]red[[:>:]]/BZ
! 14095: ------------------------------------------------------------------
! 14096: Bra
! 14097: \b
! 14098: Assert
! 14099: \w
! 14100: Ket
! 14101: red
! 14102: \b
! 14103: AssertB
! 14104: Reverse
! 14105: \w
! 14106: Ket
! 14107: Ket
! 14108: End
! 14109: ------------------------------------------------------------------
! 14110: little red riding hood
! 14111: 0: red
! 14112: a /red/ thing
! 14113: 0: red
! 14114: red is a colour
! 14115: 0: red
! 14116: put it all on red
! 14117: 0: red
! 14118: ** Failers
! 14119: No match
! 14120: no reduction
! 14121: No match
! 14122: Alfred Winifred
! 14123: No match
! 14124:
! 14125: /[a[:<:]] should give error/
! 14126: Failed: unknown POSIX class name at offset 4
! 14127:
1.1 misho 14128: /-- End of testinput2 --/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>