/[pcre]/code/trunk/testdata/testoutput2
ViewVC logotype

Contents of /code/trunk/testdata/testoutput2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 87 - (hide annotations) (download)
Sat Feb 24 21:41:21 2007 UTC (6 years, 3 months ago) by nigel
File size: 124961 byte(s)
Load pcre-6.5 into code/trunk.

1 nigel 41 /(a)b|/
2 nigel 43 Capturing subpattern count = 1
3 nigel 41 No options
4     No first char
5 nigel 43 No need char
6 nigel 41
7     /abc/
8 nigel 43 Capturing subpattern count = 0
9 nigel 41 No options
10     First char = 'a'
11 nigel 43 Need char = 'c'
12 nigel 41 abc
13     0: abc
14     defabc
15     0: abc
16     \Aabc
17     0: abc
18     *** Failers
19     No match
20     \Adefabc
21     No match
22     ABC
23     No match
24    
25     /^abc/
26 nigel 43 Capturing subpattern count = 0
27 nigel 41 Options: anchored
28     No first char
29 nigel 65 No need char
30 nigel 41 abc
31     0: abc
32     \Aabc
33     0: abc
34     *** Failers
35     No match
36     defabc
37     No match
38     \Adefabc
39     No match
40    
41     /a+bc/
42 nigel 43 Capturing subpattern count = 0
43 nigel 75 Partial matching not supported
44 nigel 41 No options
45     First char = 'a'
46 nigel 43 Need char = 'c'
47 nigel 41
48     /a*bc/
49 nigel 43 Capturing subpattern count = 0
50 nigel 75 Partial matching not supported
51 nigel 41 No options
52     No first char
53 nigel 43 Need char = 'c'
54 nigel 41
55     /a{3}bc/
56 nigel 43 Capturing subpattern count = 0
57 nigel 75 Partial matching not supported
58 nigel 41 No options
59     First char = 'a'
60 nigel 43 Need char = 'c'
61 nigel 41
62     /(abc|a+z)/
63 nigel 43 Capturing subpattern count = 1
64 nigel 75 Partial matching not supported
65 nigel 41 No options
66     First char = 'a'
67 nigel 43 No need char
68 nigel 41
69     /^abc$/
70 nigel 43 Capturing subpattern count = 0
71 nigel 41 Options: anchored
72     No first char
73 nigel 65 No need char
74 nigel 41 abc
75     0: abc
76     *** Failers
77     No match
78     def\nabc
79     No match
80    
81     /ab\gdef/X
82     Failed: unrecognized character follows \ at offset 3
83    
84     /(?X)ab\gdef/X
85     Failed: unrecognized character follows \ at offset 7
86    
87     /x{5,4}/
88     Failed: numbers out of order in {} quantifier at offset 5
89    
90     /z{65536}/
91     Failed: number too big in {} quantifier at offset 7
92    
93     /[abcd/
94     Failed: missing terminating ] for character class at offset 5
95    
96 nigel 63 /(?X)[\B]/
97     Failed: invalid escape sequence in character class at offset 6
98 nigel 41
99     /[z-a]/
100     Failed: range out of order in character class at offset 3
101    
102     /^*/
103     Failed: nothing to repeat at offset 1
104    
105     /(abc/
106     Failed: missing ) at offset 4
107    
108     /(?# abc/
109     Failed: missing ) after comment at offset 7
110    
111     /(?z)abc/
112     Failed: unrecognized character after (? at offset 2
113    
114     /.*b/
115 nigel 43 Capturing subpattern count = 0
116 nigel 75 Partial matching not supported
117 nigel 41 No options
118     First char at start or follows \n
119 nigel 43 Need char = 'b'
120 nigel 41
121     /.*?b/
122 nigel 43 Capturing subpattern count = 0
123 nigel 75 Partial matching not supported
124 nigel 41 No options
125     First char at start or follows \n
126 nigel 43 Need char = 'b'
127 nigel 41
128     /cat|dog|elephant/
129 nigel 43 Capturing subpattern count = 0
130 nigel 41 No options
131     No first char
132 nigel 43 No need char
133 nigel 41 this sentence eventually mentions a cat
134     0: cat
135     this sentences rambles on and on for a while and then reaches elephant
136     0: elephant
137    
138     /cat|dog|elephant/S
139 nigel 43 Capturing subpattern count = 0
140 nigel 41 No options
141     No first char
142 nigel 43 No need char
143 nigel 75 Starting byte set: c d e
144 nigel 41 this sentence eventually mentions a cat
145     0: cat
146     this sentences rambles on and on for a while and then reaches elephant
147     0: elephant
148    
149     /cat|dog|elephant/iS
150 nigel 43 Capturing subpattern count = 0
151 nigel 41 Options: caseless
152     No first char
153 nigel 43 No need char
154 nigel 75 Starting byte set: C D E c d e
155 nigel 41 this sentence eventually mentions a CAT cat
156     0: CAT
157     this sentences rambles on and on for a while to elephant ElePhant
158     0: elephant
159    
160     /a|[bcd]/S
161 nigel 43 Capturing subpattern count = 0
162 nigel 41 No options
163     No first char
164 nigel 43 No need char
165 nigel 75 Starting byte set: a b c d
166 nigel 41
167     /(a|[^\dZ])/S
168 nigel 43 Capturing subpattern count = 1
169 nigel 41 No options
170     No first char
171 nigel 43 No need char
172 nigel 75 Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
173 nigel 41 \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
174     \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
175     ? @ 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
176     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
177     \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92
178     \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1
179     \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0
180     \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf
181     \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce
182     \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd
183     \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec
184     \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb
185     \xfc \xfd \xfe \xff
186    
187     /(a|b)*[\s]/S
188 nigel 43 Capturing subpattern count = 1
189 nigel 41 No options
190     No first char
191 nigel 43 No need char
192 nigel 75 Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
193 nigel 41
194     /(ab\2)/
195 nigel 63 Failed: reference to non-existent subpattern at offset 6
196 nigel 41
197     /{4,5}abc/
198     Failed: nothing to repeat at offset 4
199    
200     /(a)(b)(c)\2/
201 nigel 43 Capturing subpattern count = 3
202     Max back reference = 2
203 nigel 41 No options
204     First char = 'a'
205 nigel 43 Need char = 'c'
206 nigel 41 abcb
207     0: abcb
208     1: a
209     2: b
210     3: c
211     \O0abcb
212     Matched, but too many substrings
213     \O3abcb
214     Matched, but too many substrings
215     0: abcb
216     \O6abcb
217     Matched, but too many substrings
218     0: abcb
219     1: a
220     \O9abcb
221     Matched, but too many substrings
222     0: abcb
223     1: a
224     2: b
225     \O12abcb
226     0: abcb
227     1: a
228     2: b
229     3: c
230    
231     /(a)bc|(a)(b)\2/
232 nigel 43 Capturing subpattern count = 3
233     Max back reference = 2
234 nigel 41 No options
235     First char = 'a'
236 nigel 43 No need char
237 nigel 41 abc
238     0: abc
239     1: a
240     \O0abc
241     Matched, but too many substrings
242     \O3abc
243     Matched, but too many substrings
244     0: abc
245     \O6abc
246     0: abc
247     1: a
248     aba
249     0: aba
250     1: <unset>
251     2: a
252     3: b
253     \O0aba
254     Matched, but too many substrings
255     \O3aba
256     Matched, but too many substrings
257     0: aba
258     \O6aba
259     Matched, but too many substrings
260     0: aba
261     1: <unset>
262     \O9aba
263     Matched, but too many substrings
264     0: aba
265     1: <unset>
266     2: a
267     \O12aba
268     0: aba
269     1: <unset>
270     2: a
271     3: b
272    
273     /abc$/E
274 nigel 43 Capturing subpattern count = 0
275 nigel 41 Options: dollar_endonly
276     First char = 'a'
277 nigel 43 Need char = 'c'
278 nigel 41 abc
279     0: abc
280     *** Failers
281     No match
282     abc\n
283     No match
284     abc\ndef
285     No match
286    
287     /(a)(b)(c)(d)(e)\6/
288 nigel 63 Failed: reference to non-existent subpattern at offset 17
289 nigel 41
290     /the quick brown fox/
291 nigel 43 Capturing subpattern count = 0
292 nigel 41 No options
293     First char = 't'
294 nigel 43 Need char = 'x'
295 nigel 41 the quick brown fox
296     0: the quick brown fox
297     this is a line with the quick brown fox
298     0: the quick brown fox
299    
300     /the quick brown fox/A
301 nigel 43 Capturing subpattern count = 0
302 nigel 41 Options: anchored
303     No first char
304 nigel 65 No need char
305 nigel 41 the quick brown fox
306     0: the quick brown fox
307     *** Failers
308     No match
309     this is a line with the quick brown fox
310     No match
311    
312     /ab(?z)cd/
313     Failed: unrecognized character after (? at offset 4
314    
315     /^abc|def/
316 nigel 43 Capturing subpattern count = 0
317 nigel 41 No options
318     No first char
319 nigel 43 No need char
320 nigel 41 abcdef
321     0: abc
322     abcdef\B
323     0: def
324    
325     /.*((abc)$|(def))/
326 nigel 43 Capturing subpattern count = 3
327 nigel 75 Partial matching not supported
328 nigel 41 No options
329     First char at start or follows \n
330 nigel 43 No need char
331 nigel 41 defabc
332     0: defabc
333     1: abc
334     2: abc
335     \Zdefabc
336     0: def
337     1: def
338     2: <unset>
339     3: def
340    
341     /abc/P
342     abc
343     0: abc
344     *** Failers
345     No match: POSIX code 17: match failed
346    
347     /^abc|def/P
348     abcdef
349     0: abc
350     abcdef\B
351     0: def
352    
353     /.*((abc)$|(def))/P
354     defabc
355     0: defabc
356     1: abc
357     2: abc
358     \Zdefabc
359     0: def
360     1: def
361     3: def
362    
363     /the quick brown fox/P
364     the quick brown fox
365     0: the quick brown fox
366     *** Failers
367     No match: POSIX code 17: match failed
368     The Quick Brown Fox
369     No match: POSIX code 17: match failed
370    
371     /the quick brown fox/Pi
372     the quick brown fox
373     0: the quick brown fox
374     The Quick Brown Fox
375     0: The Quick Brown Fox
376    
377     /abc.def/P
378     *** Failers
379     No match: POSIX code 17: match failed
380     abc\ndef
381     No match: POSIX code 17: match failed
382    
383     /abc$/P
384     abc
385     0: abc
386     abc\n
387     0: abc
388    
389     /(abc)\2/P
390     Failed: POSIX code 15: bad back reference at offset 7
391    
392     /(abc\1)/P
393     abc
394     No match: POSIX code 17: match failed
395    
396     /)/
397     Failed: unmatched parentheses at offset 0
398    
399     /a[]b/
400     Failed: missing terminating ] for character class at offset 4
401    
402     /[^aeiou ]{3,}/
403 nigel 43 Capturing subpattern count = 0
404 nigel 75 Partial matching not supported
405 nigel 41 No options
406     No first char
407 nigel 43 No need char
408 nigel 41 co-processors, and for
409     0: -pr
410    
411     /<.*>/
412 nigel 43 Capturing subpattern count = 0
413 nigel 75 Partial matching not supported
414 nigel 41 No options
415     First char = '<'
416 nigel 43 Need char = '>'
417 nigel 41 abc<def>ghi<klm>nop
418     0: <def>ghi<klm>
419    
420     /<.*?>/
421 nigel 43 Capturing subpattern count = 0
422 nigel 75 Partial matching not supported
423 nigel 41 No options
424     First char = '<'
425 nigel 43 Need char = '>'
426 nigel 41 abc<def>ghi<klm>nop
427     0: <def>
428    
429     /<.*>/U
430 nigel 43 Capturing subpattern count = 0
431 nigel 75 Partial matching not supported
432 nigel 41 Options: ungreedy
433     First char = '<'
434 nigel 43 Need char = '>'
435 nigel 41 abc<def>ghi<klm>nop
436     0: <def>
437    
438 nigel 63 /(?U)<.*>/
439 nigel 43 Capturing subpattern count = 0
440 nigel 75 Partial matching not supported
441 nigel 41 Options: ungreedy
442     First char = '<'
443 nigel 43 Need char = '>'
444 nigel 41 abc<def>ghi<klm>nop
445     0: <def>
446    
447     /<.*?>/U
448 nigel 43 Capturing subpattern count = 0
449 nigel 75 Partial matching not supported
450 nigel 41 Options: ungreedy
451     First char = '<'
452 nigel 43 Need char = '>'
453 nigel 41 abc<def>ghi<klm>nop
454     0: <def>ghi<klm>
455    
456     /={3,}/U
457 nigel 43 Capturing subpattern count = 0
458 nigel 75 Partial matching not supported
459 nigel 41 Options: ungreedy
460     First char = '='
461 nigel 43 Need char = '='
462 nigel 41 abc========def
463     0: ===
464    
465     /(?U)={3,}?/
466 nigel 43 Capturing subpattern count = 0
467 nigel 75 Partial matching not supported
468 nigel 41 Options: ungreedy
469     First char = '='
470 nigel 43 Need char = '='
471 nigel 41 abc========def
472     0: ========
473    
474     /(?<!bar|cattle)foo/
475 nigel 43 Capturing subpattern count = 0
476 nigel 41 No options
477     First char = 'f'
478 nigel 43 Need char = 'o'
479 nigel 41 foo
480     0: foo
481     catfoo
482     0: foo
483     *** Failers
484     No match
485     the barfoo
486     No match
487     and cattlefoo
488     No match
489    
490     /(?<=a+)b/
491     Failed: lookbehind assertion is not fixed length at offset 6
492    
493     /(?<=aaa|b{0,3})b/
494     Failed: lookbehind assertion is not fixed length at offset 14
495    
496     /(?<!(foo)a\1)bar/
497     Failed: lookbehind assertion is not fixed length at offset 12
498    
499     /(?i)abc/
500 nigel 43 Capturing subpattern count = 0
501 nigel 41 Options: caseless
502 nigel 63 First char = 'a' (caseless)
503     Need char = 'c' (caseless)
504 nigel 41
505     /(a|(?m)a)/
506 nigel 43 Capturing subpattern count = 1
507 nigel 41 No options
508     First char = 'a'
509 nigel 43 No need char
510 nigel 41
511     /(?i)^1234/
512 nigel 43 Capturing subpattern count = 0
513 nigel 41 Options: anchored caseless
514     No first char
515 nigel 65 No need char
516 nigel 41
517     /(^b|(?i)^d)/
518 nigel 43 Capturing subpattern count = 1
519 nigel 41 Options: anchored
520     Case state changes
521     No first char
522 nigel 43 No need char
523 nigel 41
524     /(?s).*/
525 nigel 43 Capturing subpattern count = 0
526 nigel 75 Partial matching not supported
527 nigel 41 Options: anchored dotall
528     No first char
529 nigel 43 No need char
530 nigel 41
531     /[abcd]/S
532 nigel 43 Capturing subpattern count = 0
533 nigel 41 No options
534     No first char
535 nigel 43 No need char
536 nigel 75 Starting byte set: a b c d
537 nigel 41
538     /(?i)[abcd]/S
539 nigel 43 Capturing subpattern count = 0
540 nigel 41 Options: caseless
541     No first char
542 nigel 43 No need char
543 nigel 75 Starting byte set: A B C D a b c d
544 nigel 41
545     /(?m)[xy]|(b|c)/S
546 nigel 43 Capturing subpattern count = 1
547 nigel 41 Options: multiline
548     No first char
549 nigel 43 No need char
550 nigel 75 Starting byte set: b c x y
551 nigel 41
552     /(^a|^b)/m
553 nigel 43 Capturing subpattern count = 1
554 nigel 41 Options: multiline
555     First char at start or follows \n
556 nigel 43 No need char
557 nigel 41
558     /(?i)(^a|^b)/m
559 nigel 43 Capturing subpattern count = 1
560 nigel 41 Options: caseless multiline
561     First char at start or follows \n
562 nigel 43 No need char
563 nigel 41
564     /(a)(?(1)a|b|c)/
565     Failed: conditional group contains more than two branches at offset 13
566    
567     /(?(?=a)a|b|c)/
568     Failed: conditional group contains more than two branches at offset 12
569    
570     /(?(1a)/
571     Failed: malformed number after (?( at offset 4
572    
573     /(?(?i))/
574     Failed: assertion expected after (?( at offset 3
575    
576     /(?(abc))/
577     Failed: assertion expected after (?( at offset 3
578    
579     /(?(?<ab))/
580 nigel 63 Failed: unrecognized character after (?< at offset 5
581 nigel 41
582     /((?s)blah)\s+\1/
583 nigel 43 Capturing subpattern count = 1
584     Max back reference = 1
585 nigel 75 Partial matching not supported
586 nigel 41 No options
587     First char = 'b'
588 nigel 43 Need char = 'h'
589 nigel 41
590     /((?i)blah)\s+\1/
591 nigel 43 Capturing subpattern count = 1
592     Max back reference = 1
593 nigel 75 Partial matching not supported
594 nigel 41 No options
595     Case state changes
596 nigel 63 First char = 'b' (caseless)
597     Need char = 'h' (caseless)
598 nigel 41
599     /((?i)b)/DS
600     ------------------------------------------------------------------
601 nigel 75 0 15 Bra 0
602     3 7 Bra 1
603 nigel 41 6 01 Opt
604 nigel 75 8 NC b
605     10 7 Ket
606     13 00 Opt
607     15 15 Ket
608     18 End
609 nigel 41 ------------------------------------------------------------------
610 nigel 43 Capturing subpattern count = 1
611 nigel 41 No options
612     Case state changes
613 nigel 63 First char = 'b' (caseless)
614     No need char
615     Study returned NULL
616 nigel 41
617     /(a*b|(?i:c*(?-i)d))/S
618 nigel 43 Capturing subpattern count = 1
619 nigel 75 Partial matching not supported
620 nigel 41 No options
621     Case state changes
622     No first char
623 nigel 43 No need char
624 nigel 75 Starting byte set: C a b c d
625 nigel 41
626     /a$/
627 nigel 43 Capturing subpattern count = 0
628 nigel 41 No options
629     First char = 'a'
630 nigel 43 No need char
631 nigel 41 a
632     0: a
633     a\n
634     0: a
635     *** Failers
636     No match
637     \Za
638     No match
639     \Za\n
640     No match
641    
642     /a$/m
643 nigel 43 Capturing subpattern count = 0
644 nigel 41 Options: multiline
645     First char = 'a'
646 nigel 43 No need char
647 nigel 41 a
648     0: a
649     a\n
650     0: a
651     \Za\n
652     0: a
653     *** Failers
654     No match
655     \Za
656     No match
657    
658     /\Aabc/m
659 nigel 43 Capturing subpattern count = 0
660 nigel 41 Options: anchored multiline
661     No first char
662 nigel 65 No need char
663 nigel 41
664     /^abc/m
665 nigel 43 Capturing subpattern count = 0
666 nigel 41 Options: multiline
667     First char at start or follows \n
668 nigel 43 Need char = 'c'
669 nigel 41
670     /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
671 nigel 43 Capturing subpattern count = 5
672 nigel 75 Partial matching not supported
673 nigel 41 Options: anchored
674     No first char
675 nigel 65 No need char
676 nigel 41 aaaaabbbbbcccccdef
677     0: aaaaabbbbbcccccdef
678     1: aaaaabbbbbcccccdef
679     2: aaaaa
680     3: b
681     4: bbbbccccc
682     5: def
683    
684     /(?<=foo)[ab]/S
685 nigel 43 Capturing subpattern count = 0
686 nigel 41 No options
687     No first char
688 nigel 43 No need char
689 nigel 75 Starting byte set: a b
690 nigel 41
691     /(?<!foo)(alpha|omega)/S
692 nigel 43 Capturing subpattern count = 1
693 nigel 41 No options
694     No first char
695 nigel 43 Need char = 'a'
696 nigel 75 Starting byte set: a o
697 nigel 41
698     /(?!alphabet)[ab]/S
699 nigel 43 Capturing subpattern count = 0
700 nigel 41 No options
701     No first char
702 nigel 43 No need char
703 nigel 75 Starting byte set: a b
704 nigel 41
705     /(?<=foo\n)^bar/m
706 nigel 43 Capturing subpattern count = 0
707 nigel 41 Options: multiline
708 nigel 75 No first char
709     Need char = 'r'
710     foo\nbarbar
711     0: bar
712     ***Failers
713     No match
714     rhubarb
715     No match
716     barbell
717     No match
718     abc\nbarton
719     No match
720    
721     /^(?<=foo\n)bar/m
722     Capturing subpattern count = 0
723     Options: multiline
724 nigel 41 First char at start or follows \n
725 nigel 43 Need char = 'r'
726 nigel 75 foo\nbarbar
727     0: bar
728     ***Failers
729     No match
730     rhubarb
731     No match
732     barbell
733     No match
734     abc\nbarton
735     No match
736 nigel 41
737     /(?>^abc)/m
738 nigel 43 Capturing subpattern count = 0
739 nigel 41 Options: multiline
740     First char at start or follows \n
741 nigel 43 Need char = 'c'
742 nigel 41 abc
743     0: abc
744     def\nabc
745     0: abc
746     *** Failers
747     No match
748     defabc
749     No match
750    
751     /(?<=ab(c+)d)ef/
752     Failed: lookbehind assertion is not fixed length at offset 11
753    
754     /(?<=ab(?<=c+)d)ef/
755     Failed: lookbehind assertion is not fixed length at offset 12
756    
757     /(?<=ab(c|de)f)g/
758     Failed: lookbehind assertion is not fixed length at offset 13
759    
760     /The next three are in testinput2 because they have variable length branches/
761 nigel 43 Capturing subpattern count = 0
762 nigel 41 No options
763     First char = 'T'
764 nigel 43 Need char = 's'
765 nigel 41
766     /(?<=bullock|donkey)-cart/
767 nigel 43 Capturing subpattern count = 0
768 nigel 41 No options
769     First char = '-'
770 nigel 43 Need char = 't'
771 nigel 41 the bullock-cart
772     0: -cart
773     a donkey-cart race
774     0: -cart
775     *** Failers
776     No match
777     cart
778     No match
779     horse-and-cart
780     No match
781    
782     /(?<=ab(?i)x|y|z)/
783 nigel 43 Capturing subpattern count = 0
784 nigel 41 No options
785     Case state changes
786     No first char
787 nigel 43 No need char
788 nigel 41
789     /(?>.*)(?<=(abcd)|(xyz))/
790 nigel 43 Capturing subpattern count = 2
791 nigel 75 Partial matching not supported
792 nigel 41 No options
793     First char at start or follows \n
794 nigel 43 No need char
795 nigel 41 alphabetabcd
796     0: alphabetabcd
797     1: abcd
798     endingxyz
799     0: endingxyz
800     1: <unset>
801     2: xyz
802    
803     /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/
804 nigel 43 Capturing subpattern count = 0
805 nigel 41 No options
806     Case state changes
807     First char = 'Z'
808 nigel 43 Need char = 'Z'
809 nigel 41 abxyZZ
810     0: ZZ
811     abXyZZ
812     0: ZZ
813     ZZZ
814     0: ZZ
815     zZZ
816     0: ZZ
817     bZZ
818     0: ZZ
819     BZZ
820     0: ZZ
821     *** Failers
822     No match
823     ZZ
824     No match
825     abXYZZ
826     No match
827     zzz
828     No match
829     bzz
830     No match
831    
832     /(?<!(foo)a)bar/
833 nigel 43 Capturing subpattern count = 1
834 nigel 41 No options
835     First char = 'b'
836 nigel 43 Need char = 'r'
837 nigel 41 bar
838     0: bar
839     foobbar
840     0: bar
841     *** Failers
842     No match
843     fooabar
844     No match
845    
846     /This one is here because Perl 5.005_02 doesn't fail it/
847 nigel 43 Capturing subpattern count = 0
848 nigel 41 No options
849     First char = 'T'
850 nigel 43 Need char = 't'
851 nigel 41
852     /^(a)?(?(1)a|b)+$/
853 nigel 43 Capturing subpattern count = 1
854 nigel 41 Options: anchored
855     No first char
856 nigel 43 No need char
857 nigel 41 *** Failers
858     No match
859     a
860     No match
861    
862     /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/
863 nigel 43 Capturing subpattern count = 0
864 nigel 41 No options
865     First char = 'T'
866 nigel 43 Need char = 'g'
867 nigel 41
868     /^(a\1?){4}$/
869 nigel 43 Capturing subpattern count = 1
870     Max back reference = 1
871 nigel 41 Options: anchored
872     No first char
873 nigel 65 No need char
874 nigel 41 aaaaaa
875     0: aaaaaa
876     1: aa
877    
878     /These are syntax tests from Perl 5.005/
879 nigel 43 Capturing subpattern count = 0
880 nigel 41 No options
881     First char = 'T'
882 nigel 43 Need char = '5'
883 nigel 41
884     /a[b-a]/
885     Failed: range out of order in character class at offset 4
886    
887     /a[]b/
888     Failed: missing terminating ] for character class at offset 4
889    
890     /a[/
891     Failed: missing terminating ] for character class at offset 2
892    
893     /*a/
894     Failed: nothing to repeat at offset 0
895    
896     /(*)b/
897     Failed: nothing to repeat at offset 1
898    
899     /abc)/
900     Failed: unmatched parentheses at offset 3
901    
902     /(abc/
903     Failed: missing ) at offset 4
904    
905     /a**/
906     Failed: nothing to repeat at offset 2
907    
908     /)(/
909     Failed: unmatched parentheses at offset 0
910    
911     /\1/
912 nigel 63 Failed: reference to non-existent subpattern at offset 2
913 nigel 41
914     /\2/
915 nigel 63 Failed: reference to non-existent subpattern at offset 2
916 nigel 41
917     /(a)|\2/
918 nigel 63 Failed: reference to non-existent subpattern at offset 6
919 nigel 41
920     /a[b-a]/i
921     Failed: range out of order in character class at offset 4
922    
923     /a[]b/i
924     Failed: missing terminating ] for character class at offset 4
925    
926     /a[/i
927     Failed: missing terminating ] for character class at offset 2
928    
929     /*a/i
930     Failed: nothing to repeat at offset 0
931    
932     /(*)b/i
933     Failed: nothing to repeat at offset 1
934    
935     /abc)/i
936     Failed: unmatched parentheses at offset 3
937    
938     /(abc/i
939     Failed: missing ) at offset 4
940    
941     /a**/i
942     Failed: nothing to repeat at offset 2
943    
944     /)(/i
945     Failed: unmatched parentheses at offset 0
946    
947     /:(?:/
948     Failed: missing ) at offset 4
949    
950     /(?<%)b/
951 nigel 63 Failed: unrecognized character after (?< at offset 3
952 nigel 41
953     /a(?{)b/
954     Failed: unrecognized character after (? at offset 3
955    
956     /a(?{{})b/
957     Failed: unrecognized character after (? at offset 3
958    
959     /a(?{}})b/
960     Failed: unrecognized character after (? at offset 3
961    
962     /a(?{"{"})b/
963     Failed: unrecognized character after (? at offset 3
964    
965     /a(?{"{"}})b/
966     Failed: unrecognized character after (? at offset 3
967    
968     /(?(1?)a|b)/
969     Failed: malformed number after (?( at offset 4
970    
971     /(?(1)a|b|c)/
972     Failed: conditional group contains more than two branches at offset 10
973    
974     /[a[:xyz:/
975     Failed: missing terminating ] for character class at offset 8
976    
977     /(?<=x+)y/
978     Failed: lookbehind assertion is not fixed length at offset 6
979    
980     /a{37,17}/
981     Failed: numbers out of order in {} quantifier at offset 7
982    
983     /abc/\
984     Failed: \ at end of pattern at offset 4
985    
986     /abc/\P
987     Failed: POSIX code 9: bad escape sequence at offset 4
988    
989     /abc/\i
990     Failed: \ at end of pattern at offset 4
991    
992     /(a)bc(d)/
993 nigel 43 Capturing subpattern count = 2
994 nigel 41 No options
995     First char = 'a'
996 nigel 43 Need char = 'd'
997 nigel 41 abcd
998     0: abcd
999     1: a
1000     2: d
1001     abcd\C2
1002     0: abcd
1003     1: a
1004     2: d
1005     2C d (1)
1006     abcd\C5
1007     0: abcd
1008     1: a
1009     2: d
1010     copy substring 5 failed -7
1011    
1012     /(.{20})/
1013 nigel 43 Capturing subpattern count = 1
1014 nigel 75 Partial matching not supported
1015 nigel 41 No options
1016     No first char
1017 nigel 43 No need char
1018 nigel 41 abcdefghijklmnopqrstuvwxyz
1019     0: abcdefghijklmnopqrst
1020     1: abcdefghijklmnopqrst
1021     abcdefghijklmnopqrstuvwxyz\C1
1022     0: abcdefghijklmnopqrst
1023     1: abcdefghijklmnopqrst
1024     copy substring 1 failed -6
1025     abcdefghijklmnopqrstuvwxyz\G1
1026     0: abcdefghijklmnopqrst
1027     1: abcdefghijklmnopqrst
1028     1G abcdefghijklmnopqrst (20)
1029    
1030     /(.{15})/
1031 nigel 43 Capturing subpattern count = 1
1032 nigel 75 Partial matching not supported
1033 nigel 41 No options
1034     No first char
1035 nigel 43 No need char
1036 nigel 41 abcdefghijklmnopqrstuvwxyz
1037     0: abcdefghijklmno
1038     1: abcdefghijklmno
1039     abcdefghijklmnopqrstuvwxyz\C1\G1
1040     0: abcdefghijklmno
1041     1: abcdefghijklmno
1042     1C abcdefghijklmno (15)
1043     1G abcdefghijklmno (15)
1044    
1045     /(.{16})/
1046 nigel 43 Capturing subpattern count = 1
1047 nigel 75 Partial matching not supported
1048 nigel 41 No options
1049     No first char
1050 nigel 43 No need char
1051 nigel 41 abcdefghijklmnopqrstuvwxyz
1052     0: abcdefghijklmnop
1053     1: abcdefghijklmnop
1054     abcdefghijklmnopqrstuvwxyz\C1\G1\L
1055     0: abcdefghijklmnop
1056     1: abcdefghijklmnop
1057     copy substring 1 failed -6
1058     1G abcdefghijklmnop (16)
1059     0L abcdefghijklmnop
1060     1L abcdefghijklmnop
1061    
1062     /^(a|(bc))de(f)/
1063 nigel 43 Capturing subpattern count = 3
1064 nigel 41 Options: anchored
1065     No first char
1066 nigel 65 No need char
1067 nigel 41 adef\G1\G2\G3\G4\L
1068     0: adef
1069     1: a
1070     2: <unset>
1071     3: f
1072     1G a (1)
1073     2G (0)
1074     3G f (1)
1075     get substring 4 failed -7
1076     0L adef
1077     1L a
1078     2L
1079     3L f
1080     bcdef\G1\G2\G3\G4\L
1081     0: bcdef
1082     1: bc
1083     2: bc
1084     3: f
1085     1G bc (2)
1086     2G bc (2)
1087     3G f (1)
1088     get substring 4 failed -7
1089     0L bcdef
1090     1L bc
1091     2L bc
1092     3L f
1093     adefghijk\C0
1094     0: adef
1095     1: a
1096     2: <unset>
1097     3: f
1098     0C adef (4)
1099    
1100     /^abc\00def/
1101 nigel 43 Capturing subpattern count = 0
1102 nigel 41 Options: anchored
1103     No first char
1104 nigel 65 No need char
1105 nigel 41 abc\00def\L\C0
1106     0: abc\x00def
1107     0C abc (7)
1108     0L abc
1109    
1110     /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1111     )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1112     )?)?)?)?)?)?)?)?)?otherword/M
1113 nigel 75 Memory allocation (code space): 432
1114 nigel 43 Capturing subpattern count = 8
1115 nigel 75 Partial matching not supported
1116 nigel 41 No options
1117     First char = 'w'
1118 nigel 43 Need char = 'd'
1119 nigel 41
1120     /.*X/D
1121     ------------------------------------------------------------------
1122 nigel 75 0 7 Bra 0
1123 nigel 41 3 Any*
1124 nigel 75 5 X
1125     7 7 Ket
1126     10 End
1127 nigel 41 ------------------------------------------------------------------
1128 nigel 43 Capturing subpattern count = 0
1129 nigel 75 Partial matching not supported
1130 nigel 41 No options
1131     First char at start or follows \n
1132 nigel 43 Need char = 'X'
1133 nigel 41
1134     /.*X/Ds
1135     ------------------------------------------------------------------
1136 nigel 75 0 7 Bra 0
1137 nigel 41 3 Any*
1138 nigel 75 5 X
1139     7 7 Ket
1140     10 End
1141 nigel 41 ------------------------------------------------------------------
1142 nigel 43 Capturing subpattern count = 0
1143 nigel 75 Partial matching not supported
1144 nigel 41 Options: anchored dotall
1145     No first char
1146 nigel 43 Need char = 'X'
1147 nigel 41
1148     /(.*X|^B)/D
1149     ------------------------------------------------------------------
1150 nigel 75 0 19 Bra 0
1151     3 7 Bra 1
1152 nigel 41 6 Any*
1153 nigel 75 8 X
1154     10 6 Alt
1155     13 ^
1156     14 B
1157     16 13 Ket
1158     19 19 Ket
1159     22 End
1160 nigel 41 ------------------------------------------------------------------
1161 nigel 43 Capturing subpattern count = 1
1162 nigel 75 Partial matching not supported
1163 nigel 41 No options
1164     First char at start or follows \n
1165 nigel 43 No need char
1166 nigel 41
1167     /(.*X|^B)/Ds
1168     ------------------------------------------------------------------
1169 nigel 75 0 19 Bra 0
1170     3 7 Bra 1
1171 nigel 41 6 Any*
1172 nigel 75 8 X
1173     10 6 Alt
1174     13 ^
1175     14 B
1176     16 13 Ket
1177     19 19 Ket
1178     22 End
1179 nigel 41 ------------------------------------------------------------------
1180 nigel 43 Capturing subpattern count = 1
1181 nigel 75 Partial matching not supported
1182 nigel 41 Options: anchored dotall
1183     No first char
1184 nigel 43 No need char
1185 nigel 41
1186     /(?s)(.*X|^B)/D
1187     ------------------------------------------------------------------
1188 nigel 75 0 19 Bra 0
1189     3 7 Bra 1
1190 nigel 41 6 Any*
1191 nigel 75 8 X
1192     10 6 Alt
1193     13 ^
1194     14 B
1195     16 13 Ket
1196     19 19 Ket
1197     22 End
1198 nigel 41 ------------------------------------------------------------------
1199 nigel 43 Capturing subpattern count = 1
1200 nigel 75 Partial matching not supported
1201 nigel 41 Options: anchored dotall
1202     No first char
1203 nigel 43 No need char
1204 nigel 41
1205     /(?s:.*X|^B)/D
1206     ------------------------------------------------------------------
1207 nigel 75 0 25 Bra 0
1208     3 9 Bra 0
1209 nigel 41 6 04 Opt
1210     8 Any*
1211 nigel 75 10 X
1212     12 8 Alt
1213     15 04 Opt
1214     17 ^
1215     18 B
1216     20 17 Ket
1217     23 00 Opt
1218     25 25 Ket
1219     28 End
1220 nigel 41 ------------------------------------------------------------------
1221 nigel 43 Capturing subpattern count = 0
1222 nigel 75 Partial matching not supported
1223 nigel 41 No options
1224     First char at start or follows \n
1225 nigel 43 No need char
1226 nigel 41
1227     /\Biss\B/+
1228 nigel 43 Capturing subpattern count = 0
1229 nigel 41 No options
1230     First char = 'i'
1231 nigel 43 Need char = 's'
1232 nigel 41 Mississippi
1233     0: iss
1234     0+ issippi
1235    
1236     /\Biss\B/+P
1237     Mississippi
1238     0: iss
1239     0+ issippi
1240    
1241     /iss/G+
1242 nigel 43 Capturing subpattern count = 0
1243 nigel 41 No options
1244     First char = 'i'
1245 nigel 43 Need char = 's'
1246 nigel 41 Mississippi
1247     0: iss
1248     0+ issippi
1249     0: iss
1250     0+ ippi
1251    
1252     /\Biss\B/G+
1253 nigel 43 Capturing subpattern count = 0
1254 nigel 41 No options
1255     First char = 'i'
1256 nigel 43 Need char = 's'
1257 nigel 41 Mississippi
1258     0: iss
1259     0+ issippi
1260    
1261     /\Biss\B/g+
1262 nigel 43 Capturing subpattern count = 0
1263 nigel 41 No options
1264     First char = 'i'
1265 nigel 43 Need char = 's'
1266 nigel 41 Mississippi
1267     0: iss
1268     0+ issippi
1269     0: iss
1270     0+ ippi
1271     *** Failers
1272     No match
1273     Mississippi\A
1274     No match
1275    
1276     /(?<=[Ms])iss/g+
1277 nigel 43 Capturing subpattern count = 0
1278 nigel 41 No options
1279     First char = 'i'
1280 nigel 43 Need char = 's'
1281 nigel 41 Mississippi
1282     0: iss
1283     0+ issippi
1284     0: iss
1285     0+ ippi
1286    
1287     /(?<=[Ms])iss/G+
1288 nigel 43 Capturing subpattern count = 0
1289 nigel 41 No options
1290     First char = 'i'
1291 nigel 43 Need char = 's'
1292 nigel 41 Mississippi
1293     0: iss
1294     0+ issippi
1295    
1296     /^iss/g+
1297 nigel 43 Capturing subpattern count = 0
1298 nigel 41 Options: anchored
1299     No first char
1300 nigel 65 No need char
1301 nigel 41 ississippi
1302     0: iss
1303     0+ issippi
1304    
1305     /.*iss/g+
1306 nigel 43 Capturing subpattern count = 0
1307 nigel 75 Partial matching not supported
1308 nigel 41 No options
1309     First char at start or follows \n
1310 nigel 43 Need char = 's'
1311 nigel 41 abciss\nxyzisspqr
1312     0: abciss
1313     0+ \x0axyzisspqr
1314     0: xyziss
1315     0+ pqr
1316    
1317     /.i./+g
1318 nigel 43 Capturing subpattern count = 0
1319 nigel 41 No options
1320     No first char
1321 nigel 43 Need char = 'i'
1322 nigel 41 Mississippi
1323     0: Mis
1324     0+ sissippi
1325     0: sis
1326     0+ sippi
1327     0: sip
1328     0+ pi
1329     Mississippi\A
1330     0: Mis
1331     0+ sissippi
1332     0: sis
1333     0+ sippi
1334     0: sip
1335     0+ pi
1336     Missouri river
1337     0: Mis
1338     0+ souri river
1339     0: ri
1340     0+ river
1341     0: riv
1342     0+ er
1343     Missouri river\A
1344     0: Mis
1345     0+ souri river
1346    
1347     /^.is/+g
1348 nigel 43 Capturing subpattern count = 0
1349 nigel 41 Options: anchored
1350     No first char
1351 nigel 65 No need char
1352 nigel 41 Mississippi
1353     0: Mis
1354     0+ sissippi
1355    
1356     /^ab\n/g+
1357 nigel 43 Capturing subpattern count = 0
1358 nigel 41 Options: anchored
1359     No first char
1360 nigel 65 No need char
1361 nigel 41 ab\nab\ncd
1362     0: ab\x0a
1363     0+ ab\x0acd
1364    
1365     /^ab\n/mg+
1366 nigel 43 Capturing subpattern count = 0
1367 nigel 41 Options: multiline
1368     First char at start or follows \n
1369 nigel 43 Need char = 10
1370 nigel 41 ab\nab\ncd
1371     0: ab\x0a
1372     0+ ab\x0acd
1373     0: ab\x0a
1374     0+ cd
1375    
1376     /abc/
1377 nigel 43 Capturing subpattern count = 0
1378 nigel 41 No options
1379     First char = 'a'
1380 nigel 43 Need char = 'c'
1381 nigel 41
1382     /abc|bac/
1383 nigel 43 Capturing subpattern count = 0
1384 nigel 41 No options
1385     No first char
1386 nigel 43 Need char = 'c'
1387 nigel 41
1388     /(abc|bac)/
1389 nigel 43 Capturing subpattern count = 1
1390 nigel 41 No options
1391     No first char
1392 nigel 43 Need char = 'c'
1393 nigel 41
1394     /(abc|(c|dc))/
1395 nigel 43 Capturing subpattern count = 2
1396 nigel 41 No options
1397     No first char
1398 nigel 43 Need char = 'c'
1399 nigel 41
1400     /(abc|(d|de)c)/
1401 nigel 43 Capturing subpattern count = 2
1402 nigel 41 No options
1403     No first char
1404 nigel 43 Need char = 'c'
1405 nigel 41
1406     /a*/
1407 nigel 43 Capturing subpattern count = 0
1408 nigel 75 Partial matching not supported
1409 nigel 41 No options
1410     No first char
1411 nigel 43 No need char
1412 nigel 41
1413     /a+/
1414 nigel 43 Capturing subpattern count = 0
1415 nigel 75 Partial matching not supported
1416 nigel 41 No options
1417     First char = 'a'
1418 nigel 43 No need char
1419 nigel 41
1420     /(baa|a+)/
1421 nigel 43 Capturing subpattern count = 1
1422 nigel 75 Partial matching not supported
1423 nigel 41 No options
1424     No first char
1425 nigel 43 Need char = 'a'
1426 nigel 41
1427     /a{0,3}/
1428 nigel 43 Capturing subpattern count = 0
1429 nigel 75 Partial matching not supported
1430 nigel 41 No options
1431     No first char
1432 nigel 43 No need char
1433 nigel 41
1434     /baa{3,}/
1435 nigel 43 Capturing subpattern count = 0
1436 nigel 75 Partial matching not supported
1437 nigel 41 No options
1438     First char = 'b'
1439 nigel 43 Need char = 'a'
1440 nigel 41
1441     /"([^\\"]+|\\.)*"/
1442 nigel 43 Capturing subpattern count = 1
1443 nigel 75 Partial matching not supported
1444 nigel 41 No options
1445     First char = '"'
1446 nigel 43 Need char = '"'
1447 nigel 41
1448     /(abc|ab[cd])/
1449 nigel 43 Capturing subpattern count = 1
1450 nigel 41 No options
1451     First char = 'a'
1452 nigel 43 No need char
1453 nigel 41
1454     /(a|.)/
1455 nigel 43 Capturing subpattern count = 1
1456 nigel 41 No options
1457     No first char
1458 nigel 43 No need char
1459 nigel 41
1460     /a|ba|\w/
1461 nigel 43 Capturing subpattern count = 0
1462 nigel 41 No options
1463     No first char
1464 nigel 43 No need char
1465 nigel 41
1466     /abc(?=pqr)/
1467 nigel 43 Capturing subpattern count = 0
1468 nigel 41 No options
1469     First char = 'a'
1470 nigel 43 Need char = 'r'
1471 nigel 41
1472     /...(?<=abc)/
1473 nigel 43 Capturing subpattern count = 0
1474 nigel 41 No options
1475     No first char
1476 nigel 43 No need char
1477 nigel 41
1478     /abc(?!pqr)/
1479 nigel 43 Capturing subpattern count = 0
1480 nigel 41 No options
1481     First char = 'a'
1482 nigel 43 Need char = 'c'
1483 nigel 41
1484     /ab./
1485 nigel 43 Capturing subpattern count = 0
1486 nigel 41 No options
1487     First char = 'a'
1488 nigel 43 Need char = 'b'
1489 nigel 41
1490     /ab[xyz]/
1491 nigel 43 Capturing subpattern count = 0
1492 nigel 41 No options
1493     First char = 'a'
1494 nigel 43 Need char = 'b'
1495 nigel 41
1496     /abc*/
1497 nigel 43 Capturing subpattern count = 0
1498 nigel 75 Partial matching not supported
1499 nigel 41 No options
1500     First char = 'a'
1501 nigel 43 Need char = 'b'
1502 nigel 41
1503     /ab.c*/
1504 nigel 43 Capturing subpattern count = 0
1505 nigel 75 Partial matching not supported
1506 nigel 41 No options
1507     First char = 'a'
1508 nigel 43 Need char = 'b'
1509 nigel 41
1510     /a.c*/
1511 nigel 43 Capturing subpattern count = 0
1512 nigel 75 Partial matching not supported
1513 nigel 41 No options
1514     First char = 'a'
1515 nigel 43 No need char
1516 nigel 41
1517     /.c*/
1518 nigel 43 Capturing subpattern count = 0
1519 nigel 75 Partial matching not supported
1520 nigel 41 No options
1521     No first char
1522 nigel 43 No need char
1523 nigel 41
1524     /ac*/
1525 nigel 43 Capturing subpattern count = 0
1526 nigel 75 Partial matching not supported
1527 nigel 41 No options
1528     First char = 'a'
1529 nigel 43 No need char
1530 nigel 41
1531     /(a.c*|b.c*)/
1532 nigel 43 Capturing subpattern count = 1
1533 nigel 75 Partial matching not supported
1534 nigel 41 No options
1535     No first char
1536 nigel 43 No need char
1537 nigel 41
1538     /a.c*|aba/
1539 nigel 43 Capturing subpattern count = 0
1540 nigel 75 Partial matching not supported
1541 nigel 41 No options
1542     First char = 'a'
1543 nigel 43 No need char
1544 nigel 41
1545     /.+a/
1546 nigel 43 Capturing subpattern count = 0
1547 nigel 75 Partial matching not supported
1548 nigel 41 No options
1549     No first char
1550 nigel 43 Need char = 'a'
1551 nigel 41
1552     /(?=abcda)a.*/
1553 nigel 43 Capturing subpattern count = 0
1554 nigel 75 Partial matching not supported
1555 nigel 41 No options
1556     First char = 'a'
1557 nigel 63 Need char = 'a'
1558 nigel 41
1559     /(?=a)a.*/
1560 nigel 43 Capturing subpattern count = 0
1561 nigel 75 Partial matching not supported
1562 nigel 41 No options
1563     First char = 'a'
1564 nigel 43 No need char
1565 nigel 41
1566     /a(b)*/
1567 nigel 43 Capturing subpattern count = 1
1568 nigel 41 No options
1569     First char = 'a'
1570 nigel 43 No need char
1571 nigel 41
1572     /a\d*/
1573 nigel 43 Capturing subpattern count = 0
1574 nigel 75 Partial matching not supported
1575 nigel 41 No options
1576     First char = 'a'
1577 nigel 43 No need char
1578 nigel 41
1579     /ab\d*/
1580 nigel 43 Capturing subpattern count = 0
1581 nigel 75 Partial matching not supported
1582 nigel 41 No options
1583     First char = 'a'
1584 nigel 43 Need char = 'b'
1585 nigel 41
1586     /a(\d)*/
1587 nigel 43 Capturing subpattern count = 1
1588 nigel 41 No options
1589     First char = 'a'
1590 nigel 43 No need char
1591 nigel 41
1592     /abcde{0,0}/
1593 nigel 43 Capturing subpattern count = 0
1594 nigel 41 No options
1595     First char = 'a'
1596 nigel 43 Need char = 'd'
1597 nigel 41
1598     /ab\d+/
1599 nigel 43 Capturing subpattern count = 0
1600 nigel 75 Partial matching not supported
1601 nigel 41 No options
1602     First char = 'a'
1603 nigel 43 Need char = 'b'
1604 nigel 41
1605     /a(?(1)b)/
1606 nigel 43 Capturing subpattern count = 0
1607 nigel 41 No options
1608     First char = 'a'
1609 nigel 43 No need char
1610 nigel 41
1611     /a(?(1)bag|big)/
1612 nigel 43 Capturing subpattern count = 0
1613 nigel 41 No options
1614     First char = 'a'
1615 nigel 43 Need char = 'g'
1616 nigel 41
1617     /a(?(1)bag|big)*/
1618 nigel 43 Capturing subpattern count = 0
1619 nigel 41 No options
1620     First char = 'a'
1621 nigel 43 No need char
1622 nigel 41
1623     /a(?(1)bag|big)+/
1624 nigel 43 Capturing subpattern count = 0
1625 nigel 41 No options
1626     First char = 'a'
1627 nigel 43 Need char = 'g'
1628 nigel 41
1629     /a(?(1)b..|b..)/
1630 nigel 43 Capturing subpattern count = 0
1631 nigel 41 No options
1632     First char = 'a'
1633 nigel 43 Need char = 'b'
1634 nigel 41
1635     /ab\d{0}e/
1636 nigel 43 Capturing subpattern count = 0
1637 nigel 41 No options
1638     First char = 'a'
1639 nigel 43 Need char = 'e'
1640 nigel 41
1641     /a?b?/
1642 nigel 43 Capturing subpattern count = 0
1643 nigel 41 No options
1644     No first char
1645 nigel 43 No need char
1646 nigel 41 a
1647     0: a
1648     b
1649     0: b
1650     ab
1651     0: ab
1652     \
1653     0:
1654     *** Failers
1655     0:
1656     \N
1657     No match
1658    
1659     /|-/
1660 nigel 43 Capturing subpattern count = 0
1661 nigel 41 No options
1662     No first char
1663 nigel 43 No need char
1664 nigel 41 abcd
1665     0:
1666     -abc
1667     0:
1668     \Nab-c
1669     0: -
1670     *** Failers
1671     0:
1672     \Nabc
1673     No match
1674    
1675     /a*(b+)(z)(z)/P
1676     aaaabbbbzzzz
1677     0: aaaabbbbzz
1678     1: bbbb
1679     2: z
1680     3: z
1681     aaaabbbbzzzz\O0
1682     aaaabbbbzzzz\O1
1683     0: aaaabbbbzz
1684     aaaabbbbzzzz\O2
1685     0: aaaabbbbzz
1686     1: bbbb
1687     aaaabbbbzzzz\O3
1688     0: aaaabbbbzz
1689     1: bbbb
1690     2: z
1691     aaaabbbbzzzz\O4
1692     0: aaaabbbbzz
1693     1: bbbb
1694     2: z
1695     3: z
1696     aaaabbbbzzzz\O5
1697     0: aaaabbbbzz
1698     1: bbbb
1699     2: z
1700     3: z
1701 nigel 43
1702     /^.?abcd/S
1703     Capturing subpattern count = 0
1704     Options: anchored
1705     No first char
1706     Need char = 'd'
1707     Study returned NULL
1708 nigel 41
1709 nigel 43 /\( # ( at start
1710     (?: # Non-capturing bracket
1711     (?>[^()]+) # Either a sequence of non-brackets (no backtracking)
1712     | # Or
1713     (?R) # Recurse - i.e. nested bracketed string
1714     )* # Zero or more contents
1715     \) # Closing )
1716     /x
1717     Capturing subpattern count = 0
1718 nigel 75 Partial matching not supported
1719 nigel 43 Options: extended
1720     First char = '('
1721     Need char = ')'
1722     (abcd)
1723     0: (abcd)
1724     (abcd)xyz
1725     0: (abcd)
1726     xyz(abcd)
1727     0: (abcd)
1728     (ab(xy)cd)pqr
1729     0: (ab(xy)cd)
1730     (ab(xycd)pqr
1731     0: (xycd)
1732     () abc ()
1733     0: ()
1734     12(abcde(fsh)xyz(foo(bar))lmno)89
1735     0: (abcde(fsh)xyz(foo(bar))lmno)
1736     *** Failers
1737     No match
1738     abcd
1739     No match
1740     abcd)
1741     No match
1742     (abcd
1743     No match
1744    
1745     /\( ( (?>[^()]+) | (?R) )* \) /xg
1746     Capturing subpattern count = 1
1747 nigel 75 Partial matching not supported
1748 nigel 43 Options: extended
1749     First char = '('
1750     Need char = ')'
1751     (ab(xy)cd)pqr
1752     0: (ab(xy)cd)
1753     1: cd
1754     1(abcd)(x(y)z)pqr
1755     0: (abcd)
1756     1: abcd
1757     0: (x(y)z)
1758     1: z
1759    
1760     /\( (?: (?>[^()]+) | (?R) ) \) /x
1761     Capturing subpattern count = 0
1762 nigel 75 Partial matching not supported
1763 nigel 43 Options: extended
1764     First char = '('
1765     Need char = ')'
1766     (abcd)
1767     0: (abcd)
1768     (ab(xy)cd)
1769     0: (xy)
1770     (a(b(c)d)e)
1771     0: (c)
1772     ((ab))
1773     0: ((ab))
1774     *** Failers
1775     No match
1776     ()
1777     No match
1778    
1779     /\( (?: (?>[^()]+) | (?R) )? \) /x
1780     Capturing subpattern count = 0
1781 nigel 75 Partial matching not supported
1782 nigel 43 Options: extended
1783     First char = '('
1784     Need char = ')'
1785     ()
1786     0: ()
1787     12(abcde(fsh)xyz(foo(bar))lmno)89
1788     0: (fsh)
1789    
1790     /\( ( (?>[^()]+) | (?R) )* \) /x
1791     Capturing subpattern count = 1
1792 nigel 75 Partial matching not supported
1793 nigel 43 Options: extended
1794     First char = '('
1795     Need char = ')'
1796     (ab(xy)cd)
1797     0: (ab(xy)cd)
1798     1: cd
1799    
1800     /\( ( ( (?>[^()]+) | (?R) )* ) \) /x
1801     Capturing subpattern count = 2
1802 nigel 75 Partial matching not supported
1803 nigel 43 Options: extended
1804     First char = '('
1805     Need char = ')'
1806     (ab(xy)cd)
1807     0: (ab(xy)cd)
1808     1: ab(xy)cd
1809     2: cd
1810    
1811     /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x
1812     Capturing subpattern count = 3
1813 nigel 75 Partial matching not supported
1814 nigel 43 Options: extended
1815     First char = '('
1816     Need char = ')'
1817     (ab(xy)cd)
1818     0: (ab(xy)cd)
1819     1: <unset>
1820     2: ab(xy)cd
1821     3: cd
1822     (123ab(xy)cd)
1823     0: (123ab(xy)cd)
1824     1: 123
1825     2: ab(xy)cd
1826     3: cd
1827    
1828     /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x
1829     Capturing subpattern count = 3
1830 nigel 75 Partial matching not supported
1831 nigel 43 Options: extended
1832     First char = '('
1833     Need char = ')'
1834     (ab(xy)cd)
1835     0: (ab(xy)cd)
1836     1: ab(xy)cd
1837     2: <unset>
1838     3: cd
1839     (123ab(xy)cd)
1840     0: (123ab(xy)cd)
1841     1: 123ab(xy)cd
1842     2: 123
1843     3: cd
1844    
1845     /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x
1846     Capturing subpattern count = 11
1847 nigel 75 Partial matching not supported
1848 nigel 43 Options: extended
1849     First char = '('
1850     Need char = ')'
1851     (ab(xy)cd)
1852     0: (ab(xy)cd)
1853     1: ab(xy)cd
1854     2: ab(xy)cd
1855     3: ab(xy)cd
1856     4: ab(xy)cd
1857     5: ab(xy)cd
1858     6: ab(xy)cd
1859     7: ab(xy)cd
1860     8: ab(xy)cd
1861     9: ab(xy)cd
1862     10: ab(xy)cd
1863     11: cd
1864    
1865     /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x
1866     Capturing subpattern count = 3
1867 nigel 75 Partial matching not supported
1868 nigel 43 Options: extended
1869     First char = '('
1870     Need char = ')'
1871     (abcd(xyz<p>qrs)123)
1872     0: (abcd(xyz<p>qrs)123)
1873     1: abcd(xyz<p>qrs)123
1874     2: 123
1875 nigel 63 3: <unset>
1876 nigel 43
1877     /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x
1878     Capturing subpattern count = 3
1879 nigel 75 Partial matching not supported
1880 nigel 43 Options: extended
1881     First char = '('
1882     Need char = ')'
1883     (ab(cd)ef)
1884     0: (ab(cd)ef)
1885     1: ab(cd)ef
1886     2: ef
1887     3: (cd)
1888     (ab(cd(ef)gh)ij)
1889     0: (ab(cd(ef)gh)ij)
1890     1: ab(cd(ef)gh)ij
1891     2: ij
1892     3: (cd(ef)gh)
1893    
1894     /^[[:alnum:]]/D
1895     ------------------------------------------------------------------
1896     0 37 Bra 0
1897     3 ^
1898     4 [0-9A-Za-z]
1899     37 37 Ket
1900     40 End
1901     ------------------------------------------------------------------
1902     Capturing subpattern count = 0
1903     Options: anchored
1904     No first char
1905     No need char
1906    
1907 nigel 75 /^[[:^alnum:]]/D
1908     ------------------------------------------------------------------
1909     0 37 Bra 0
1910     3 ^
1911     4 [\x00-/:-@[-`{-\xff]
1912     37 37 Ket
1913     40 End
1914     ------------------------------------------------------------------
1915     Capturing subpattern count = 0
1916     Options: anchored
1917     No first char
1918     No need char
1919    
1920 nigel 43 /^[[:alpha:]]/D
1921     ------------------------------------------------------------------
1922     0 37 Bra 0
1923     3 ^
1924     4 [A-Za-z]
1925     37 37 Ket
1926     40 End
1927     ------------------------------------------------------------------
1928     Capturing subpattern count = 0
1929     Options: anchored
1930     No first char
1931     No need char
1932 nigel 75
1933     /^[[:^alpha:]]/D
1934     ------------------------------------------------------------------
1935     0 37 Bra 0
1936     3 ^
1937     4 [\x00-@[-`{-\xff]
1938     37 37 Ket
1939     40 End
1940     ------------------------------------------------------------------
1941     Capturing subpattern count = 0
1942     Options: anchored
1943     No first char
1944     No need char
1945 nigel 43
1946 nigel 87 /[_[:alpha:]]/IS
1947     Capturing subpattern count = 0
1948     No options
1949     No first char
1950     No need char
1951     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
1952     _ 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
1953    
1954 nigel 43 /^[[:ascii:]]/D
1955     ------------------------------------------------------------------
1956     0 37 Bra 0
1957     3 ^
1958     4 [\x00-\x7f]
1959     37 37 Ket
1960     40 End
1961     ------------------------------------------------------------------
1962     Capturing subpattern count = 0
1963     Options: anchored
1964     No first char
1965     No need char
1966    
1967 nigel 75 /^[[:^ascii:]]/D
1968     ------------------------------------------------------------------
1969     0 37 Bra 0
1970     3 ^
1971     4 [\x80-\xff]
1972     37 37 Ket
1973     40 End
1974     ------------------------------------------------------------------
1975     Capturing subpattern count = 0
1976     Options: anchored
1977     No first char
1978     No need char
1979    
1980 nigel 63 /^[[:blank:]]/D
1981     ------------------------------------------------------------------
1982     0 37 Bra 0
1983     3 ^
1984     4 [\x09 ]
1985     37 37 Ket
1986     40 End
1987     ------------------------------------------------------------------
1988     Capturing subpattern count = 0
1989     Options: anchored
1990     No first char
1991     No need char
1992    
1993 nigel 87 /^[[:^blank:]]/D
1994     ------------------------------------------------------------------
1995     0 37 Bra 0
1996     3 ^
1997     4 [\x00-\x08\x0a-\x1f!-\xff]
1998     37 37 Ket
1999     40 End
2000     ------------------------------------------------------------------
2001     Capturing subpattern count = 0
2002     Options: anchored
2003     No first char
2004     No need char
2005    
2006     /[\n\x0b\x0c\x0d[:blank:]]/IS
2007     Capturing subpattern count = 0
2008     No options
2009     No first char
2010     No need char
2011     Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2012    
2013 nigel 43 /^[[:cntrl:]]/D
2014     ------------------------------------------------------------------
2015     0 37 Bra 0
2016     3 ^
2017     4 [\x00-\x1f\x7f]
2018     37 37 Ket
2019     40 End
2020     ------------------------------------------------------------------
2021     Capturing subpattern count = 0
2022     Options: anchored
2023     No first char
2024     No need char
2025    
2026     /^[[:digit:]]/D
2027     ------------------------------------------------------------------
2028     0 37 Bra 0
2029     3 ^
2030     4 [0-9]
2031     37 37 Ket
2032     40 End
2033     ------------------------------------------------------------------
2034     Capturing subpattern count = 0
2035     Options: anchored
2036     No first char
2037     No need char
2038    
2039     /^[[:graph:]]/D
2040     ------------------------------------------------------------------
2041     0 37 Bra 0
2042     3 ^
2043     4 [!-~]
2044     37 37 Ket
2045     40 End
2046     ------------------------------------------------------------------
2047     Capturing subpattern count = 0
2048     Options: anchored
2049     No first char
2050     No need char
2051    
2052     /^[[:lower:]]/D
2053     ------------------------------------------------------------------
2054     0 37 Bra 0
2055     3 ^
2056     4 [a-z]
2057     37 37 Ket
2058     40 End
2059     ------------------------------------------------------------------
2060     Capturing subpattern count = 0
2061     Options: anchored
2062     No first char
2063     No need char
2064    
2065     /^[[:print:]]/D
2066     ------------------------------------------------------------------
2067     0 37 Bra 0
2068     3 ^
2069     4 [ -~]
2070     37 37 Ket
2071     40 End
2072     ------------------------------------------------------------------
2073     Capturing subpattern count = 0
2074     Options: anchored
2075     No first char
2076     No need char
2077    
2078     /^[[:punct:]]/D
2079     ------------------------------------------------------------------
2080     0 37 Bra 0
2081     3 ^
2082     4 [!-/:-@[-`{-~]
2083     37 37 Ket
2084     40 End
2085     ------------------------------------------------------------------
2086     Capturing subpattern count = 0
2087     Options: anchored
2088     No first char
2089     No need char
2090    
2091     /^[[:space:]]/D
2092     ------------------------------------------------------------------
2093     0 37 Bra 0
2094     3 ^
2095     4 [\x09-\x0d ]
2096     37 37 Ket
2097     40 End
2098     ------------------------------------------------------------------
2099     Capturing subpattern count = 0
2100     Options: anchored
2101     No first char
2102     No need char
2103    
2104     /^[[:upper:]]/D
2105     ------------------------------------------------------------------
2106     0 37 Bra 0
2107     3 ^
2108     4 [A-Z]
2109     37 37 Ket
2110     40 End
2111     ------------------------------------------------------------------
2112     Capturing subpattern count = 0
2113     Options: anchored
2114     No first char
2115     No need char
2116    
2117     /^[[:xdigit:]]/D
2118     ------------------------------------------------------------------
2119     0 37 Bra 0
2120     3 ^
2121     4 [0-9A-Fa-f]
2122     37 37 Ket
2123     40 End
2124     ------------------------------------------------------------------
2125     Capturing subpattern count = 0
2126     Options: anchored
2127     No first char
2128     No need char
2129    
2130     /^[[:word:]]/D
2131     ------------------------------------------------------------------
2132     0 37 Bra 0
2133     3 ^
2134     4 [0-9A-Z_a-z]
2135     37 37 Ket
2136     40 End
2137     ------------------------------------------------------------------
2138     Capturing subpattern count = 0
2139     Options: anchored
2140     No first char
2141     No need char
2142    
2143     /^[[:^cntrl:]]/D
2144     ------------------------------------------------------------------
2145     0 37 Bra 0
2146     3 ^
2147     4 [ -~\x80-\xff]
2148     37 37 Ket
2149     40 End
2150     ------------------------------------------------------------------
2151     Capturing subpattern count = 0
2152     Options: anchored
2153     No first char
2154     No need char
2155    
2156     /^[12[:^digit:]]/D
2157     ------------------------------------------------------------------
2158     0 37 Bra 0
2159     3 ^
2160 nigel 75 4 [\x00-/12:-\xff]
2161 nigel 43 37 37 Ket
2162     40 End
2163     ------------------------------------------------------------------
2164     Capturing subpattern count = 0
2165     Options: anchored
2166     No first char
2167     No need char
2168    
2169 nigel 63 /^[[:^blank:]]/D
2170     ------------------------------------------------------------------
2171     0 37 Bra 0
2172     3 ^
2173     4 [\x00-\x08\x0a-\x1f!-\xff]
2174     37 37 Ket
2175     40 End
2176     ------------------------------------------------------------------
2177     Capturing subpattern count = 0
2178     Options: anchored
2179     No first char
2180     No need char
2181    
2182 nigel 43 /[01[:alpha:]%]/D
2183     ------------------------------------------------------------------
2184     0 36 Bra 0
2185 nigel 75 3 [%01A-Za-z]
2186 nigel 43 36 36 Ket
2187     39 End
2188     ------------------------------------------------------------------
2189     Capturing subpattern count = 0
2190     No options
2191     No first char
2192     No need char
2193    
2194     /[[.ch.]]/
2195     Failed: POSIX collating elements are not supported at offset 1
2196    
2197     /[[=ch=]]/
2198     Failed: POSIX collating elements are not supported at offset 1
2199    
2200     /[[:rhubarb:]]/
2201     Failed: unknown POSIX class name at offset 3
2202    
2203     /[[:upper:]]/i
2204     Capturing subpattern count = 0
2205     Options: caseless
2206     No first char
2207     No need char
2208     A
2209     0: A
2210     a
2211     0: a
2212    
2213     /[[:lower:]]/i
2214     Capturing subpattern count = 0
2215     Options: caseless
2216     No first char
2217     No need char
2218     A
2219     0: A
2220     a
2221     0: a
2222    
2223     /((?-i)[[:lower:]])[[:lower:]]/i
2224     Capturing subpattern count = 1
2225     Options: caseless
2226     Case state changes
2227     No first char
2228     No need char
2229     ab
2230     0: ab
2231     1: a
2232     aB
2233     0: aB
2234     1: a
2235     *** Failers
2236     0: ai
2237     1: a
2238     Ab
2239     No match
2240     AB
2241     No match
2242    
2243 nigel 49 /[\200-\410]/
2244     Failed: range out of order in character class at offset 9
2245    
2246 nigel 51 /^(?(0)f|b)oo/
2247     Failed: invalid condition (?(0) at offset 5
2248    
2249 nigel 53 /This one's here because of the large output vector needed/
2250     Capturing subpattern count = 0
2251     No options
2252     First char = 'T'
2253     Need char = 'd'
2254    
2255     /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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)/
2256     Capturing subpattern count = 271
2257     Max back reference = 270
2258 nigel 75 Partial matching not supported
2259 nigel 53 No options
2260     No first char
2261     No need char
2262     \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
2263     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
2264     1: 1
2265     2: 2
2266     3: 3
2267     4: 4
2268     5: 5
2269     6: 6
2270     7: 7
2271     8: 8
2272     9: 9
2273     10: 10
2274     11: 11
2275     12: 12
2276     13: 13
2277     14: 14
2278     15: 15
2279     16: 16
2280     17: 17
2281     18: 18
2282     19: 19
2283     20: 20
2284     21: 21
2285     22: 22
2286     23: 23
2287     24: 24
2288     25: 25
2289     26: 26
2290     27: 27
2291     28: 28
2292     29: 29
2293     30: 30
2294     31: 31
2295     32: 32
2296     33: 33
2297     34: 34
2298     35: 35
2299     36: 36
2300     37: 37
2301     38: 38
2302     39: 39
2303     40: 40
2304     41: 41
2305     42: 42
2306     43: 43
2307     44: 44
2308     45: 45
2309     46: 46
2310     47: 47
2311     48: 48
2312     49: 49
2313     50: 50
2314     51: 51
2315     52: 52
2316     53: 53
2317     54: 54
2318     55: 55
2319     56: 56
2320     57: 57
2321     58: 58
2322     59: 59
2323     60: 60
2324     61: 61
2325     62: 62
2326     63: 63
2327     64: 64
2328     65: 65
2329     66: 66
2330     67: 67
2331     68: 68
2332     69: 69
2333     70: 70
2334     71: 71
2335     72: 72
2336     73: 73
2337     74: 74
2338     75: 75
2339     76: 76
2340     77: 77
2341     78: 78
2342     79: 79
2343     80: 80
2344     81: 81
2345     82: 82
2346     83: 83
2347     84: 84
2348     85: 85
2349     86: 86
2350     87: 87
2351     88: 88
2352     89: 89
2353     90: 90
2354     91: 91
2355     92: 92
2356     93: 93
2357     94: 94
2358     95: 95
2359     96: 96
2360     97: 97
2361     98: 98
2362     99: 99
2363     100: 100
2364     101: 101
2365     102: 102
2366     103: 103
2367     104: 104
2368     105: 105
2369     106: 106
2370     107: 107
2371     108: 108
2372     109: 109
2373     110: 110
2374     111: 111
2375     112: 112
2376     113: 113
2377     114: 114
2378     115: 115
2379     116: 116
2380     117: 117
2381     118: 118
2382     119: 119
2383     120: 120
2384     121: 121
2385     122: 122
2386     123: 123
2387     124: 124
2388     125: 125
2389     126: 126
2390     127: 127
2391     128: 128
2392     129: 129
2393     130: 130
2394     131: 131
2395     132: 132
2396     133: 133
2397     134: 134
2398     135: 135
2399     136: 136
2400     137: 137
2401     138: 138
2402     139: 139
2403     140: 140
2404     141: 141
2405     142: 142
2406     143: 143
2407     144: 144
2408     145: 145
2409     146: 146
2410     147: 147
2411     148: 148
2412     149: 149
2413     150: 150
2414     151: 151
2415     152: 152
2416     153: 153
2417     154: 154
2418     155: 155
2419     156: 156
2420     157: 157
2421     158: 158
2422     159: 159
2423     160: 160
2424     161: 161
2425     162: 162
2426     163: 163
2427     164: 164
2428     165: 165
2429     166: 166
2430     167: 167
2431     168: 168
2432     169: 169
2433     170: 170
2434     171: 171
2435     172: 172
2436     173: 173
2437     174: 174
2438     175: 175
2439     176: 176
2440     177: 177
2441     178: 178
2442     179: 179
2443     180: 180
2444     181: 181
2445     182: 182
2446     183: 183
2447     184: 184
2448     185: 185
2449     186: 186
2450     187: 187
2451     188: 188
2452     189: 189
2453     190: 190
2454     191: 191
2455     192: 192
2456     193: 193
2457     194: 194
2458     195: 195
2459     196: 196
2460     197: 197
2461     198: 198
2462     199: 199
2463     200: 200
2464     201: 201
2465     202: 202
2466     203: 203
2467     204: 204
2468     205: 205
2469     206: 206
2470     207: 207
2471     208: 208
2472     209: 209
2473     210: 210
2474     211: 211
2475     212: 212
2476     213: 213
2477     214: 214
2478     215: 215
2479     216: 216
2480     217: 217
2481     218: 218
2482     219: 219
2483     220: 220
2484     221: 221
2485     222: 222
2486     223: 223
2487     224: 224
2488     225: 225
2489     226: 226
2490     227: 227
2491     228: 228
2492     229: 229
2493     230: 230
2494     231: 231
2495     232: 232
2496     233: 233
2497     234: 234
2498     235: 235
2499     236: 236
2500     237: 237
2501     238: 238
2502     239: 239
2503     240: 240
2504     241: 241
2505     242: 242
2506     243: 243
2507     244: 244
2508     245: 245
2509     246: 246
2510     247: 247
2511     248: 248
2512     249: 249
2513     250: 250
2514     251: 251
2515     252: 252
2516     253: 253
2517     254: 254
2518     255: 255
2519     256: 256
2520     257: 257
2521     258: 258
2522     259: 259
2523     260: 260
2524     261: 261
2525     262: 262
2526     263: 263
2527     264: 264
2528     265: 265
2529     266: 266
2530     267: 267
2531     268: 268
2532     269: 269
2533     270: ABC
2534     271: ABC
2535    
2536     /This one's here because Perl does this differently and PCRE can't at present/
2537     Capturing subpattern count = 0
2538     No options
2539     First char = 'T'
2540     Need char = 't'
2541    
2542     /(main(O)?)+/
2543     Capturing subpattern count = 2
2544     No options
2545     First char = 'm'
2546     Need char = 'n'
2547     mainmain
2548     0: mainmain
2549     1: main
2550     mainOmain
2551     0: mainOmain
2552     1: main
2553     2: O
2554    
2555 nigel 63 /These are all cases where Perl does it differently (nested captures)/
2556     Capturing subpattern count = 1
2557     No options
2558     First char = 'T'
2559     Need char = 's'
2560    
2561     /^(a(b)?)+$/
2562     Capturing subpattern count = 2
2563     Options: anchored
2564     No first char
2565 nigel 65 No need char
2566 nigel 63 aba
2567     0: aba
2568     1: a
2569     2: b
2570    
2571     /^(aa(bb)?)+$/
2572     Capturing subpattern count = 2
2573     Options: anchored
2574     No first char
2575 nigel 65 No need char
2576 nigel 63 aabbaa
2577     0: aabbaa
2578     1: aa
2579     2: bb
2580    
2581     /^(aa|aa(bb))+$/
2582     Capturing subpattern count = 2
2583     Options: anchored
2584     No first char
2585 nigel 65 No need char
2586 nigel 63 aabbaa
2587     0: aabbaa
2588     1: aa
2589     2: bb
2590    
2591     /^(aa(bb)??)+$/
2592     Capturing subpattern count = 2
2593     Options: anchored
2594     No first char
2595 nigel 65 No need char
2596 nigel 63 aabbaa
2597     0: aabbaa
2598     1: aa
2599     2: bb
2600    
2601     /^(?:aa(bb)?)+$/
2602     Capturing subpattern count = 1
2603     Options: anchored
2604     No first char
2605 nigel 65 No need char
2606 nigel 63 aabbaa
2607     0: aabbaa
2608     1: bb
2609    
2610     /^(aa(b(b))?)+$/
2611     Capturing subpattern count = 3
2612     Options: anchored
2613     No first char
2614 nigel 65 No need char
2615 nigel 63 aabbaa
2616     0: aabbaa
2617     1: aa
2618     2: bb
2619     3: b
2620    
2621     /^(?:aa(b(b))?)+$/
2622     Capturing subpattern count = 2
2623     Options: anchored
2624     No first char
2625 nigel 65 No need char
2626 nigel 63 aabbaa
2627     0: aabbaa
2628     1: bb
2629     2: b
2630    
2631     /^(?:aa(b(?:b))?)+$/
2632     Capturing subpattern count = 1
2633     Options: anchored
2634     No first char
2635 nigel 65 No need char
2636 nigel 63 aabbaa
2637     0: aabbaa
2638     1: bb
2639    
2640     /^(?:aa(bb(?:b))?)+$/
2641     Capturing subpattern count = 1
2642     Options: anchored
2643     No first char
2644 nigel 65 No need char
2645 nigel 63 aabbbaa
2646     0: aabbbaa
2647     1: bbb
2648    
2649     /^(?:aa(b(?:bb))?)+$/
2650     Capturing subpattern count = 1
2651     Options: anchored
2652     No first char
2653 nigel 65 No need char
2654 nigel 63 aabbbaa
2655     0: aabbbaa
2656     1: bbb
2657    
2658     /^(?:aa(?:b(b))?)+$/
2659     Capturing subpattern count = 1
2660     Options: anchored
2661     No first char
2662 nigel 65 No need char
2663 nigel 63 aabbaa
2664     0: aabbaa
2665     1: b
2666    
2667     /^(?:aa(?:b(bb))?)+$/
2668     Capturing subpattern count = 1
2669     Options: anchored
2670     No first char
2671 nigel 65 No need char
2672 nigel 63 aabbbaa
2673     0: aabbbaa
2674     1: bb
2675    
2676     /^(aa(b(bb))?)+$/
2677     Capturing subpattern count = 3
2678     Options: anchored
2679     No first char
2680 nigel 65 No need char
2681 nigel 63 aabbbaa
2682     0: aabbbaa
2683     1: aa
2684     2: bbb
2685     3: bb
2686    
2687     /^(aa(bb(bb))?)+$/
2688     Capturing subpattern count = 3
2689     Options: anchored
2690     No first char
2691 nigel 65 No need char
2692 nigel 63 aabbbbaa
2693     0: aabbbbaa
2694     1: aa
2695     2: bbbb
2696     3: bb
2697    
2698     /--------------------------------------------------------------------/
2699     Capturing subpattern count = 0
2700     No options
2701     First char = '-'
2702     Need char = '-'
2703    
2704     /#/xMD
2705     Memory allocation (code space): 7
2706     ------------------------------------------------------------------
2707     0 3 Bra 0
2708     3 3 Ket
2709     6 End
2710     ------------------------------------------------------------------
2711     Capturing subpattern count = 0
2712     Options: extended
2713     No first char
2714     No need char
2715    
2716     /a#/xMD
2717 nigel 75 Memory allocation (code space): 9
2718 nigel 63 ------------------------------------------------------------------
2719 nigel 75 0 5 Bra 0
2720     3 a
2721     5 5 Ket
2722     8 End
2723 nigel 63 ------------------------------------------------------------------
2724     Capturing subpattern count = 0
2725     Options: extended
2726     First char = 'a'
2727     No need char
2728    
2729     /[\s]/D
2730     ------------------------------------------------------------------
2731     0 36 Bra 0
2732 nigel 75 3 [\x09\x0a\x0c\x0d ]
2733 nigel 63 36 36 Ket
2734     39 End
2735     ------------------------------------------------------------------
2736     Capturing subpattern count = 0
2737     No options
2738     No first char
2739     No need char
2740    
2741     /[\S]/D
2742     ------------------------------------------------------------------
2743     0 36 Bra 0
2744     3 [\x00-\x08\x0b\x0e-\x1f!-\xff]
2745     36 36 Ket
2746     39 End
2747     ------------------------------------------------------------------
2748     Capturing subpattern count = 0
2749     No options
2750     No first char
2751     No need char
2752    
2753     /a(?i)b/D
2754     ------------------------------------------------------------------
2755 nigel 75 0 9 Bra 0
2756     3 a
2757     5 01 Opt
2758     7 NC b
2759     9 9 Ket
2760     12 End
2761 nigel 63 ------------------------------------------------------------------
2762     Capturing subpattern count = 0
2763     No options
2764     Case state changes
2765     First char = 'a'
2766     Need char = 'b' (caseless)
2767     ab
2768     0: ab
2769     aB
2770     0: aB
2771     *** Failers
2772     No match
2773     AB
2774     No match
2775    
2776     /(a(?i)b)/D
2777     ------------------------------------------------------------------
2778 nigel 75 0 17 Bra 0
2779     3 9 Bra 1
2780     6 a
2781     8 01 Opt
2782     10 NC b
2783     12 9 Ket
2784     15 00 Opt
2785     17 17 Ket
2786     20 End
2787 nigel 63 ------------------------------------------------------------------
2788     Capturing subpattern count = 1
2789     No options
2790     Case state changes
2791     First char = 'a'
2792     Need char = 'b' (caseless)
2793     ab
2794     0: ab
2795     1: ab
2796     aB
2797     0: aB
2798     1: aB
2799     *** Failers
2800     No match
2801     AB
2802     No match
2803    
2804     / (?i)abc/xD
2805     ------------------------------------------------------------------
2806 nigel 75 0 9 Bra 0
2807     3 NC abc
2808     9 9 Ket
2809     12 End
2810 nigel 63 ------------------------------------------------------------------
2811     Capturing subpattern count = 0
2812     Options: caseless extended
2813     First char = 'a' (caseless)
2814     Need char = 'c' (caseless)
2815    
2816     /#this is a comment
2817     (?i)abc/xD
2818     ------------------------------------------------------------------
2819 nigel 75 0 9 Bra 0
2820     3 NC abc
2821     9 9 Ket
2822     12 End
2823 nigel 63 ------------------------------------------------------------------
2824     Capturing subpattern count = 0
2825     Options: caseless extended
2826     First char = 'a' (caseless)
2827     Need char = 'c' (caseless)
2828    
2829     /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D
2830     ------------------------------------------------------------------
2831 nigel 75 0 603 Bra 0
2832     3 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2833     603 603 Ket
2834     606 End
2835 nigel 63 ------------------------------------------------------------------
2836     Capturing subpattern count = 0
2837     No options
2838     First char = '1'
2839     Need char = '0'
2840    
2841     /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D
2842     ------------------------------------------------------------------
2843 nigel 75 0 603 Bra 0
2844     3 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2845     603 603 Ket
2846     606 End
2847 nigel 63 ------------------------------------------------------------------
2848     Capturing subpattern count = 0
2849     No options
2850     First char = '1'
2851     Need char = '0'
2852    
2853     /\Q\E/D
2854     ------------------------------------------------------------------
2855     0 3 Bra 0
2856     3 3 Ket
2857     6 End
2858     ------------------------------------------------------------------
2859     Capturing subpattern count = 0
2860     No options
2861     No first char
2862     No need char
2863     \
2864     0:
2865    
2866     /\Q\Ex/D
2867     ------------------------------------------------------------------
2868 nigel 75 0 5 Bra 0
2869     3 x
2870     5 5 Ket
2871     8 End
2872 nigel 63 ------------------------------------------------------------------
2873     Capturing subpattern count = 0
2874     No options
2875     First char = 'x'
2876     No need char
2877    
2878     / \Q\E/D
2879     ------------------------------------------------------------------
2880 nigel 75 0 5 Bra 0
2881     3
2882     5 5 Ket
2883     8 End
2884 nigel 63 ------------------------------------------------------------------
2885     Capturing subpattern count = 0
2886     No options
2887     First char = ' '
2888     No need char
2889    
2890     /a\Q\E/D
2891     ------------------------------------------------------------------
2892 nigel 75 0 5 Bra 0
2893     3 a
2894     5 5 Ket
2895     8 End
2896 nigel 63 ------------------------------------------------------------------
2897     Capturing subpattern count = 0
2898     No options
2899     First char = 'a'
2900     No need char
2901     abc
2902     0: a
2903     bca
2904     0: a
2905     bac
2906     0: a
2907    
2908     /a\Q\Eb/D
2909     ------------------------------------------------------------------
2910 nigel 75 0 7 Bra 0
2911     3 ab
2912     7 7 Ket
2913     10 End
2914 nigel 63 ------------------------------------------------------------------
2915     Capturing subpattern count = 0
2916     No options
2917     First char = 'a'
2918     Need char = 'b'
2919     abc
2920     0: ab
2921    
2922     /\Q\Eabc/D
2923     ------------------------------------------------------------------
2924 nigel 75 0 9 Bra 0
2925     3 abc
2926     9 9 Ket
2927     12 End
2928 nigel 63 ------------------------------------------------------------------
2929     Capturing subpattern count = 0
2930     No options
2931     First char = 'a'
2932     Need char = 'c'
2933    
2934     /x*+\w/D
2935     ------------------------------------------------------------------
2936     0 12 Bra 0
2937     3 5 Once
2938     6 x*
2939     8 5 Ket
2940     11 \w
2941     12 12 Ket
2942     15 End
2943     ------------------------------------------------------------------
2944     Capturing subpattern count = 0
2945 nigel 75 Partial matching not supported
2946 nigel 63 No options
2947     No first char
2948     No need char
2949     *** Failers
2950     0: F
2951     xxxxx
2952     No match
2953    
2954     /x?+/D
2955     ------------------------------------------------------------------
2956     0 11 Bra 0
2957     3 5 Once
2958     6 x?
2959     8 5 Ket
2960     11 11 Ket
2961     14 End
2962     ------------------------------------------------------------------
2963     Capturing subpattern count = 0
2964     No options
2965     No first char
2966     No need char
2967    
2968     /x++/D
2969     ------------------------------------------------------------------
2970     0 11 Bra 0
2971     3 5 Once
2972     6 x+
2973     8 5 Ket
2974     11 11 Ket
2975     14 End
2976     ------------------------------------------------------------------
2977     Capturing subpattern count = 0
2978 nigel 75 Partial matching not supported
2979 nigel 63 No options
2980     First char = 'x'
2981     No need char
2982    
2983     /x{1,3}+/D
2984     ------------------------------------------------------------------
2985 nigel 75 0 15 Bra 0
2986     3 9 Once
2987     6 x
2988     8 x{,2}
2989     12 9 Ket
2990     15 15 Ket
2991     18 End
2992 nigel 63 ------------------------------------------------------------------
2993     Capturing subpattern count = 0
2994 nigel 75 Partial matching not supported
2995 nigel 63 No options
2996     First char = 'x'
2997     No need char
2998    
2999     /(x)*+/D
3000     ------------------------------------------------------------------
3001 nigel 75 0 18 Bra 0
3002     3 12 Once
3003 nigel 63 6 Brazero
3004 nigel 75 7 5 Bra 1
3005     10 x
3006     12 5 KetRmax
3007     15 12 Ket
3008     18 18 Ket
3009     21 End
3010 nigel 63 ------------------------------------------------------------------
3011     Capturing subpattern count = 1
3012     No options
3013     No first char
3014     No need char
3015    
3016     /^(\w++|\s++)*$/
3017     Capturing subpattern count = 1
3018 nigel 75 Partial matching not supported
3019 nigel 63 Options: anchored
3020     No first char
3021     No need char
3022     now is the time for all good men to come to the aid of the party
3023     0: now is the time for all good men to come to the aid of the party
3024     1: party
3025     *** Failers
3026     No match
3027     this is not a line with only words and spaces!
3028     No match
3029    
3030     /(\d++)(\w)/
3031     Capturing subpattern count = 2
3032 nigel 75 Partial matching not supported
3033 nigel 63 No options
3034     No first char
3035     No need char
3036     12345a
3037     0: 12345a
3038     1: 12345
3039     2: a
3040     *** Failers
3041     No match
3042     12345+
3043     No match
3044    
3045     /a++b/
3046     Capturing subpattern count = 0
3047 nigel 75 Partial matching not supported
3048 nigel 63 No options
3049     First char = 'a'
3050     Need char = 'b'
3051     aaab
3052     0: aaab
3053    
3054     /(a++b)/
3055     Capturing subpattern count = 1
3056 nigel 75 Partial matching not supported
3057 nigel 63 No options
3058     First char = 'a'
3059     Need char = 'b'
3060     aaab
3061     0: aaab
3062     1: aaab
3063    
3064     /(a++)b/
3065     Capturing subpattern count = 1
3066 nigel 75 Partial matching not supported
3067 nigel 63 No options
3068     First char = 'a'
3069     Need char = 'b'
3070     aaab
3071     0: aaab
3072     1: aaa
3073    
3074     /([^()]++|\([^()]*\))+/
3075     Capturing subpattern count = 1
3076 nigel 75 Partial matching not supported
3077 nigel 63 No options
3078     No first char
3079     No need char
3080     ((abc(ade)ufh()()x
3081     0: abc(ade)ufh()()x
3082     1: x
3083    
3084     /\(([^()]++|\([^()]+\))+\)/
3085     Capturing subpattern count = 1
3086 nigel 75 Partial matching not supported
3087 nigel 63 No options
3088     First char = '('
3089     Need char = ')'
3090     (abc)
3091     0: (abc)
3092     1: abc
3093     (abc(def)xyz)
3094     0: (abc(def)xyz)
3095     1: xyz
3096     *** Failers
3097     No match
3098     ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3099     No match
3100    
3101     /(abc){1,3}+/D
3102     ------------------------------------------------------------------
3103 nigel 75 0 53 Bra 0
3104     3 47 Once
3105     6 9 Bra 1
3106     9 abc
3107     15 9 Ket
3108     18 Brazero
3109     19 28 Bra 0
3110     22 9 Bra 1
3111     25 abc
3112     31 9 Ket
3113     34 Brazero
3114     35 9 Bra 1
3115     38 abc
3116     44 9 Ket
3117     47 28 Ket
3118     50 47 Ket
3119     53 53 Ket
3120     56 End
3121 nigel 63 ------------------------------------------------------------------
3122     Capturing subpattern count = 1
3123     No options
3124     First char = 'a'
3125     Need char = 'c'
3126    
3127     /a+?+/
3128     Failed: nothing to repeat at offset 3
3129    
3130     /a{2,3}?+b/
3131     Failed: nothing to repeat at offset 7
3132    
3133     /(?U)a+?+/
3134     Failed: nothing to repeat at offset 7
3135    
3136     /a{2,3}?+b/U
3137     Failed: nothing to repeat at offset 7
3138    
3139     /x(?U)a++b/D
3140     ------------------------------------------------------------------
3141 nigel 75 0 15 Bra 0
3142     3 x
3143     5 5 Once
3144     8 a+
3145     10 5 Ket
3146     13 b
3147     15 15 Ket
3148     18 End
3149 nigel 63 ------------------------------------------------------------------
3150     Capturing subpattern count = 0
3151 nigel 75 Partial matching not supported
3152 nigel 63 No options
3153     First char = 'x'
3154     Need char = 'b'
3155     xaaaab
3156     0: xaaaab
3157    
3158     /(?U)xa++b/D
3159     ------------------------------------------------------------------
3160 nigel 75 0 15 Bra 0
3161     3 x
3162     5 5 Once
3163     8 a+
3164     10 5 Ket
3165     13 b
3166     15 15 Ket
3167     18 End
3168 nigel 63 ------------------------------------------------------------------
3169     Capturing subpattern count = 0
3170 nigel 75 Partial matching not supported
3171 nigel 63 Options: ungreedy
3172     First char = 'x'
3173     Need char = 'b'
3174     xaaaab
3175     0: xaaaab
3176    
3177     /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D
3178     ------------------------------------------------------------------
3179     0 106 Bra 0
3180     3 ^
3181     4 99 Bra 1
3182     7 5 Bra 2
3183     10 a+
3184     12 5 Ket
3185     15 37 Bra 3
3186 nigel 75 18 [ab]+?
3187 nigel 63 52 37 Ket
3188     55 37 Bra 4
3189 nigel 75 58 [bc]+
3190 nigel 63 92 37 Ket
3191     95 5 Bra 5
3192     98 \w*
3193     100 5 Ket
3194     103 99 Ket
3195     106 106 Ket
3196     109 End
3197     ------------------------------------------------------------------
3198     Capturing subpattern count = 5
3199 nigel 75 Partial matching not supported
3200 nigel 63 Options: anchored
3201     No first char
3202 nigel 65 No need char
3203 nigel 63
3204     /^x(?U)a+b/D
3205     ------------------------------------------------------------------
3206 nigel 75 0 10 Bra 0
3207 nigel 63 3 ^
3208 nigel 75 4 x
3209     6 a+?
3210     8 b
3211     10 10 Ket
3212     13 End
3213 nigel 63 ------------------------------------------------------------------
3214     Capturing subpattern count = 0
3215 nigel 75 Partial matching not supported
3216 nigel 63 Options: anchored
3217     No first char
3218     Need char = 'b'
3219    
3220     /^x(?U)(a+)b/D
3221     ------------------------------------------------------------------
3222 nigel 75 0 16 Bra 0
3223 nigel 63 3 ^
3224 nigel 75 4 x
3225     6 5 Bra 1
3226     9 a+?
3227     11 5 Ket
3228     14 b
3229     16 16 Ket
3230     19 End
3231 nigel 63 ------------------------------------------------------------------
3232     Capturing subpattern count = 1
3233 nigel 75 Partial matching not supported
3234 nigel 63 Options: anchored
3235     No first char
3236     Need char = 'b'
3237    
3238     /[.x.]/
3239     Failed: POSIX collating elements are not supported at offset 0
3240    
3241     /[=x=]/
3242     Failed: POSIX collating elements are not supported at offset 0
3243    
3244     /[:x:]/
3245     Failed: POSIX named classes are supported only within a class at offset 0
3246    
3247     /\l/
3248 nigel 75 Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3249 nigel 63
3250     /\L/
3251 nigel 75 Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3252 nigel 63
3253     /\N{name}/
3254 nigel 75 Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3255 nigel 63
3256     /\u/
3257 nigel 75 Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3258 nigel 63
3259     /\U/
3260 nigel 75 Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3261 nigel 63
3262     /[/
3263     Failed: missing terminating ] for character class at offset 1
3264    
3265     /[a-/
3266     Failed: missing terminating ] for character class at offset 3
3267    
3268     /[[:space:]/
3269     Failed: missing terminating ] for character class at offset 10
3270    
3271     /[\s]/DM
3272     Memory allocation (code space): 40
3273     ------------------------------------------------------------------
3274     0 36 Bra 0
3275 nigel 75 3 [\x09\x0a\x0c\x0d ]
3276 nigel 63 36 36 Ket
3277     39 End
3278     ------------------------------------------------------------------
3279     Capturing subpattern count = 0
3280     No options
3281     No first char
3282     No need char
3283    
3284     /[[:space:]]/DM
3285     Memory allocation (code space): 40
3286     ------------------------------------------------------------------
3287     0 36 Bra 0
3288     3 [\x09-\x0d ]
3289     36 36 Ket
3290     39 End
3291     ------------------------------------------------------------------
3292     Capturing subpattern count = 0
3293     No options
3294     No first char
3295     No need char
3296    
3297     /[[:space:]abcde]/DM
3298     Memory allocation (code space): 40
3299     ------------------------------------------------------------------
3300     0 36 Bra 0
3301     3 [\x09-\x0d a-e]
3302     36 36 Ket
3303     39 End
3304     ------------------------------------------------------------------
3305     Capturing subpattern count = 0
3306     No options
3307     No first char
3308     No need char
3309    
3310     /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/x
3311     Capturing subpattern count = 0
3312 nigel 75 Partial matching not supported
3313 nigel 63 Options: extended
3314     First char = '<'
3315     Need char = '>'
3316     <>
3317     0: <>
3318     <abcd>
3319     0: <abcd>
3320     <abc <123> hij>
3321     0: <abc <123> hij>
3322     <abc <def> hij>
3323     0: <def>
3324     <abc<>def>
3325     0: <abc<>def>
3326     <abc<>
3327     0: <>
3328     *** Failers
3329     No match
3330     <abc
3331     No match
3332    
3333     |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|DM
3334 nigel 75 Memory allocation (code space): 826
3335 nigel 63 ------------------------------------------------------------------
3336 nigel 75 0 822 Bra 0
3337     3 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
3338     821 \b
3339     822 822 Ket
3340     825 End
3341 nigel 63 ------------------------------------------------------------------
3342     Capturing subpattern count = 0
3343     No options
3344     First char = '8'
3345     Need char = 'X'
3346    
3347     |\$\<\.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|DM
3348 nigel 75 Memory allocation (code space): 816
3349 nigel 63 ------------------------------------------------------------------
3350 nigel 75 0 812 Bra 0
3351     3 $<.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
3352     811 \b
3353     812 812 Ket
3354     815 End
3355 nigel 63 ------------------------------------------------------------------
3356     Capturing subpattern count = 0
3357     No options
3358     First char = '$'
3359     Need char = 'X'
3360    
3361     /(.*)\d+\1/I
3362     Capturing subpattern count = 1
3363     Max back reference = 1
3364 nigel 75 Partial matching not supported
3365 nigel 63 No options
3366     No first char
3367     No need char
3368    
3369     /(.*)\d+/I
3370     Capturing subpattern count = 1
3371 nigel 75 Partial matching not supported
3372 nigel 63 No options
3373     First char at start or follows \n
3374     No need char
3375    
3376     /(.*)\d+\1/Is
3377     Capturing subpattern count = 1
3378     Max back reference = 1
3379 nigel 75 Partial matching not supported
3380 nigel 63 Options: dotall
3381     No first char
3382     No need char
3383    
3384     /(.*)\d+/Is
3385     Capturing subpattern count = 1
3386 nigel 75 Partial matching not supported
3387 nigel 63 Options: anchored dotall
3388     No first char
3389     No need char
3390    
3391     /(.*(xyz))\d+\2/I
3392     Capturing subpattern count = 2
3393     Max back reference = 2
3394 nigel 75 Partial matching not supported
3395 nigel 63 No options
3396     First char at start or follows \n
3397     Need char = 'z'
3398    
3399     /((.*))\d+\1/I
3400     Capturing subpattern count = 2
3401     Max back reference = 1
3402 nigel 75 Partial matching not supported
3403 nigel 63 No options
3404     No first char
3405     No need char
3406     abc123bc
3407     0: bc123bc
3408     1: bc
3409     2: bc
3410    
3411     /a[b]/I
3412     Capturing subpattern count = 0
3413     No options
3414     First char = 'a'
3415     Need char = 'b'
3416    
3417     /(?=a).*/I
3418     Capturing subpattern count = 0
3419 nigel 75 Partial matching not supported
3420 nigel 63 No options
3421     First char = 'a'
3422     No need char
3423    
3424     /(?=abc).xyz/iI
3425     Capturing subpattern count = 0
3426     Options: caseless
3427     First char = 'a' (caseless)
3428     Need char = 'z' (caseless)
3429    
3430     /(?=abc)(?i).xyz/I
3431     Capturing subpattern count = 0
3432     No options
3433     Case state changes
3434     First char = 'a'
3435     Need char = 'z' (caseless)
3436    
3437     /(?=a)(?=b)/I
3438     Capturing subpattern count = 0
3439     No options
3440     First char = 'a'
3441     No need char
3442    
3443     /(?=.)a/I
3444     Capturing subpattern count = 0
3445     No options
3446     First char = 'a'
3447     No need char
3448    
3449     /((?=abcda)a)/I
3450     Capturing subpattern count = 1
3451     No options
3452     First char = 'a'
3453     Need char = 'a'
3454    
3455     /((?=abcda)ab)/I
3456     Capturing subpattern count = 1
3457     No options
3458     First char = 'a'
3459     Need char = 'b'
3460    
3461     /()a/I
3462     Capturing subpattern count = 1
3463     No options
3464     No first char
3465     Need char = 'a'
3466    
3467     /(?(1)ab|ac)/I
3468     Capturing subpattern count = 0
3469     No options
3470     First char = 'a'
3471     No need char
3472    
3473     /(?(1)abz|acz)/I
3474     Capturing subpattern count = 0
3475     No options
3476     First char = 'a'
3477     Need char = 'z'
3478    
3479     /(?(1)abz)/I
3480     Capturing subpattern count = 0
3481     No options
3482     No first char
3483     No need char
3484    
3485     /(?(1)abz)123/I
3486     Capturing subpattern count = 0
3487     No options
3488     No first char
3489     Need char = '3'
3490    
3491     /(a)+/I
3492     Capturing subpattern count = 1
3493     No options
3494     First char = 'a'
3495     No need char
3496    
3497     /(a){2,3}/I
3498     Capturing subpattern count = 1
3499     No options
3500     First char = 'a'
3501     Need char = 'a'
3502    
3503     /(a)*/I
3504     Capturing subpattern count = 1
3505     No options
3506     No first char
3507     No need char
3508    
3509     /[a]/I
3510     Capturing subpattern count = 0
3511     No options
3512     First char = 'a'
3513     No need char
3514    
3515     /[ab]/I
3516     Capturing subpattern count = 0
3517     No options
3518     No first char
3519     No need char
3520    
3521     /[ab]/IS
3522     Capturing subpattern count = 0
3523     No options
3524     No first char
3525     No need char
3526 nigel 75 Starting byte set: a b
3527 nigel 63
3528     /[^a]/I
3529     Capturing subpattern count = 0
3530     No options
3531     No first char
3532     No need char
3533    
3534     /\d456/I
3535     Capturing subpattern count = 0
3536     No options
3537     No first char
3538     Need char = '6'
3539    
3540     /\d456/IS
3541     Capturing subpattern count = 0
3542     No options
3543     No first char
3544     Need char = '6'
3545 nigel 75 Starting byte set: 0 1 2 3 4 5 6 7 8 9
3546 nigel 63
3547     /a^b/I
3548     Capturing subpattern count = 0
3549     No options
3550     First char = 'a'
3551     Need char = 'b'
3552    
3553     /^a/mI
3554     Capturing subpattern count = 0
3555     Options: multiline
3556     First char at start or follows \n
3557     Need char = 'a'
3558     abcde
3559     0: a
3560     xy\nabc
3561     0: a
3562     *** Failers
3563     No match
3564     xyabc
3565     No match
3566    
3567     /c|abc/I
3568     Capturing subpattern count = 0
3569     No options
3570     No first char
3571     Need char = 'c'
3572    
3573     /(?i)[ab]/IS
3574     Capturing subpattern count = 0
3575     Options: caseless
3576     No first char
3577     No need char
3578 nigel 75 Starting byte set: A B a b
3579 nigel 63
3580     /[ab](?i)cd/IS
3581     Capturing subpattern count = 0
3582     No options
3583     Case state changes
3584     No first char
3585     Need char = 'd' (caseless)
3586 nigel 75 Starting byte set: a b
3587 nigel 63
3588     /abc(?C)def/
3589     Capturing subpattern count = 0
3590     No options
3591     First char = 'a'
3592     Need char = 'f'
3593     abcdef
3594     --->abcdef
3595 nigel 75 0 ^ ^ d
3596 nigel 63 0: abcdef
3597     1234abcdef
3598     --->1234abcdef
3599 nigel 75 0 ^ ^ d
3600 nigel 63 0: abcdef
3601     *** Failers
3602     No match
3603     abcxyz
3604     No match
3605     abcxyzf
3606     --->abcxyzf
3607 nigel 75 0 ^ ^ d
3608 nigel 63 No match
3609    
3610     /abc(?C)de(?C1)f/
3611     Capturing subpattern count = 0
3612     No options
3613     First char = 'a'
3614     Need char = 'f'
3615     123abcdef
3616     --->123abcdef
3617 nigel 75 0 ^ ^ d
3618     1 ^ ^ f
3619 nigel 63 0: abcdef
3620    
3621     /(?C1)\dabc(?C2)def/
3622     Capturing subpattern count = 0
3623     No options
3624     No first char
3625     Need char = 'f'
3626     1234abcdef
3627     --->1234abcdef
3628 nigel 75 1 ^ \d
3629     1 ^ \d
3630     1 ^ \d
3631     1 ^ \d
3632     2 ^ ^ d
3633 nigel 63 0: 4abcdef
3634     *** Failers
3635     No match
3636     abcdef
3637     --->abcdef
3638 nigel 75 1 ^ \d
3639     1 ^ \d
3640     1 ^ \d
3641     1 ^ \d
3642     1 ^ \d
3643     1 ^ \d
3644 nigel 63 No match
3645    
3646     /(?C255)ab/
3647     Capturing subpattern count = 0
3648     No options
3649     First char = 'a'
3650     Need char = 'b'
3651    
3652     /(?C256)ab/
3653     Failed: number after (?C is > 255 at offset 6
3654    
3655     /(?Cab)xx/
3656     Failed: closing ) for (?C expected at offset 3
3657    
3658     /(?C12vr)x/
3659     Failed: closing ) for (?C expected at offset 5
3660    
3661     /abc(?C)def/
3662     Capturing subpattern count = 0
3663     No options
3664     First char = 'a'
3665     Need char = 'f'
3666     *** Failers
3667     No match
3668     \x83\x0\x61bcdef
3669     --->\x83\x00abcdef
3670 nigel 75 0 ^ ^ d
3671 nigel 63 0: abcdef
3672    
3673     /(abc)(?C)de(?C1)f/
3674     Capturing subpattern count = 1
3675     No options
3676     First char = 'a'
3677     Need char = 'f'
3678     123abcdef
3679     --->123abcdef
3680 nigel 75 0 ^ ^ d
3681     1 ^ ^ f
3682 nigel 63 0: abcdef
3683     1: abc
3684     123abcdef\C+
3685     Callout 0: last capture = 1
3686     0: <unset>
3687     1: abc
3688     --->123abcdef
3689 nigel 75 ^ ^ d
3690 nigel 63 Callout 1: last capture = 1
3691     0: <unset>
3692     1: abc
3693     --->123abcdef
3694 nigel 75 ^ ^ f
3695 nigel 63 0: abcdef
3696     1: abc
3697     123abcdef\C-
3698     0: abcdef
3699     1: abc
3700     *** Failers
3701     No match
3702     123abcdef\C!1
3703     --->123abcdef
3704 nigel 75 0 ^ ^ d
3705     1 ^ ^ f
3706 nigel 63 No match
3707    
3708     /(?C0)(abc(?C1))*/
3709     Capturing subpattern count = 1
3710     No options
3711     No first char
3712     No need char
3713     abcabcabc
3714     --->abcabcabc
3715 nigel 75 0 ^ (abc(?C1))*
3716     1 ^ ^ )
3717     1 ^ ^ )
3718     1 ^ ^ )
3719 nigel 63 0: abcabcabc
3720     1: abc
3721     abcabc\C!1!3
3722     --->abcabc
3723 nigel 75 0 ^ (abc(?C1))*
3724     1 ^ ^ )
3725     1 ^ ^ )
3726 nigel 63 0: abcabc
3727     1: abc
3728     *** Failers
3729     --->*** Failers
3730 nigel 75 0 ^ (abc(?C1))*
3731 nigel 63 0:
3732     abcabcabc\C!1!3
3733     --->abcabcabc
3734 nigel 75 0 ^ (abc(?C1))*
3735     1 ^ ^ )
3736     1 ^ ^ )
3737     1 ^ ^ )
3738 nigel 63 0: abcabc
3739     1: abc
3740    
3741     /(\d{3}(?C))*/
3742     Capturing subpattern count = 1
3743 nigel 75 Partial matching not supported
3744 nigel 63 No options
3745     No first char
3746     No need char
3747     123\C+
3748     Callout 0: last capture = -1
3749     0: <unset>
3750     --->123
3751 nigel 75 ^ ^ )
3752 nigel 63 0: 123
3753     1: 123
3754     123456\C+
3755     Callout 0: last capture = -1
3756     0: <unset>
3757     --->123456
3758 nigel 75 ^ ^ )
3759 nigel 63 Callout 0: last capture = 1
3760     0: <unset>
3761     1: 123
3762     --->123456
3763 nigel 75 ^ ^ )
3764 nigel 63 0: 123456
3765     1: 456
3766     123456789\C+
3767     Callout 0: last capture = -1
3768     0: <unset>
3769     --->123456789
3770 nigel 75 ^ ^ )
3771 nigel 63 Callout 0: last capture = 1
3772     0: <unset>
3773     1: 123
3774     --->123456789
3775 nigel 75 ^ ^ )
3776 nigel 63 Callout 0: last capture = 1
3777     0: <unset>
3778     1: 456
3779     --->123456789
3780 nigel 75 ^ ^ )
3781 nigel 63 0: 123456789
3782     1: 789
3783    
3784     /((xyz)(?C)p|(?C1)xyzabc)/
3785     Capturing subpattern count = 2
3786     No options
3787     First char = 'x'
3788     No need char
3789     xyzabc\C+
3790     Callout 0: last capture = 2
3791     0: <unset>
3792     1: <unset>
3793     2: xyz
3794     --->xyzabc
3795 nigel 75 ^ ^ p
3796 nigel 63 Callout 1: last capture = -1
3797     0: <unset>
3798     --->xyzabc
3799 nigel 75 ^ x
3800 nigel 63 0: xyzabc
3801     1: xyzabc
3802    
3803     /(X)((xyz)(?C)p|(?C1)xyzabc)/
3804     Capturing subpattern count = 3
3805     No options
3806     First char = 'X'
3807     Need char = 'x'
3808     Xxyzabc\C+
3809     Callout 0: last capture = 3
3810     0: <unset>
3811     1: X
3812     2: <unset>
3813     3: xyz
3814     --->Xxyzabc
3815 nigel 75 ^ ^ p
3816 nigel 63 Callout 1: last capture = 1
3817     0: <unset>
3818     1: X
3819     --->Xxyzabc
3820 nigel 75 ^^ x
3821 nigel 63 0: Xxyzabc
3822     1: X
3823     2: xyzabc
3824    
3825     /(?=(abc))(?C)abcdef/
3826     Capturing subpattern count = 1
3827     No options
3828     First char = 'a'
3829     Need char = 'f'
3830     abcdef\C+
3831     Callout 0: last capture = 1
3832     0: <unset>
3833     1: abc
3834     --->abcdef
3835 nigel 75 ^ a
3836 nigel 63 0: abcdef
3837     1: abc
3838    
3839     /(?!(abc)(?C1)d)(?C2)abcxyz/
3840     Capturing subpattern count = 1
3841     No options
3842     First char = 'a'
3843     Need char = 'z'
3844     abcxyz\C+
3845     Callout 1: last capture = 1
3846     0: <unset>
3847     1: abc
3848     --->abcxyz
3849 nigel 75 ^ ^ d
3850 nigel 63 Callout 2: last capture = -1
3851     0: <unset>
3852     --->abcxyz
3853 nigel 75 ^ a
3854 nigel 63 0: abcxyz
3855    
3856     /(?<=(abc)(?C))xyz/
3857     Capturing subpattern count = 1
3858     No options
3859     First char = 'x'
3860     Need char = 'z'
3861     abcxyz\C+
3862     Callout 0: last capture = 1
3863     0: <unset>
3864     1: abc
3865     --->abcxyz
3866 nigel 75 ^ )
3867 nigel 63 0: xyz
3868     1: abc
3869    
3870 nigel 77 /a(b+)(c*)(?C1)/
3871     Capturing subpattern count = 2
3872     Partial matching not supported
3873     No options
3874     First char = 'a'
3875     Need char = 'b'
3876     abbbbbccc\C*1
3877     --->abbbbbccc
3878     1 ^ ^
3879     Callout data = 1
3880     1 ^ ^
3881     Callout data = 1
3882     1 ^ ^
3883     Callout data = 1
3884     1 ^ ^
3885     Callout data = 1
3886     1 ^ ^
3887     Callout data = 1
3888     1 ^ ^
3889     Callout data = 1
3890     1 ^ ^
3891     Callout data = 1
3892     1 ^ ^
3893     Callout data = 1
3894     No match
3895    
3896     /a(b+?)(c*?)(?C1)/
3897     Capturing subpattern count = 2
3898     Partial matching not supported
3899     No options
3900     First char = 'a'
3901     Need char = 'b'
3902     abbbbbccc\C*1
3903     --->abbbbbccc
3904     1 ^ ^
3905     Callout data = 1
3906     1 ^ ^
3907     Callout data = 1
3908     1 ^ ^
3909     Callout data = 1
3910     1 ^ ^
3911     Callout data = 1
3912     1 ^ ^
3913     Callout data = 1
3914     1 ^ ^
3915     Callout data = 1
3916     1 ^ ^
3917     Callout data = 1
3918     1 ^ ^
3919     Callout data = 1
3920     No match
3921    
3922 nigel 63 /(?C)abc/
3923     Capturing subpattern count = 0
3924     No options
3925     First char = 'a'
3926     Need char = 'c'
3927    
3928     /(?C)^abc/
3929     Capturing subpattern count = 0
3930     Options: anchored
3931     No first char
3932 nigel 65 No need char
3933 nigel 63
3934     /(?C)a|b/S
3935     Capturing subpattern count = 0
3936     No options
3937     No first char
3938     No need char
3939 nigel 75 Starting byte set: a b
3940 nigel 63
3941     /(?R)/
3942     Failed: recursive call could loop indefinitely at offset 3
3943    
3944     /(a|(?R))/
3945     Failed: recursive call could loop indefinitely at offset 6
3946    
3947     /(ab|(bc|(de|(?R))))/
3948     Failed: recursive call could loop indefinitely at offset 15
3949    
3950     /x(ab|(bc|(de|(?R))))/
3951     Capturing subpattern count = 3
3952     No options
3953     First char = 'x'
3954     No need char
3955     xab
3956     0: xab
3957     1: ab
3958     xbc
3959     0: xbc
3960     1: bc
3961     2: bc
3962     xde
3963     0: xde
3964     1: de
3965     2: de
3966     3: de
3967     xxab
3968     0: xxab
3969     1: xab
3970     2: xab
3971     3: xab
3972     xxxab
3973     0: xxxab
3974     1: xxab
3975     2: xxab
3976     3: xxab
3977     *** Failers
3978     No match
3979     xyab
3980     No match
3981    
3982     /(ab|(bc|(de|(?1))))/
3983     Failed: recursive call could loop indefinitely at offset 15
3984    
3985     /x(ab|(bc|(de|(?1)x)x)x)/
3986     Failed: recursive call could loop indefinitely at offset 16
3987    
3988     /^([^()]|\((?1)*\))*$/
3989     Capturing subpattern count = 1
3990     Options: anchored
3991     No first char
3992     No need char
3993     abc
3994     0: abc
3995     1: c
3996     a(b)c
3997     0: a(b)c
3998     1: c
3999     a(b(c))d
4000     0: a(b(c))d
4001     1: d
4002     *** Failers)
4003     No match
4004     a(b(c)d
4005     No match
4006    
4007     /^>abc>([^()]|\((?1)*\))*<xyz<$/
4008     Capturing subpattern count = 1
4009     Options: anchored
4010     No first char
4011     Need char = '<'
4012     >abc>123<xyz<
4013     0: >abc>123<xyz<
4014     1: 3
4015     >abc>1(2)3<xyz<
4016     0: >abc>1(2)3<xyz<
4017     1: 3
4018     >abc>(1(2)3)<xyz<
4019     0: >abc>(1(2)3)<xyz<
4020     1: (1(2)3)
4021    
4022     /(a(?1)b)/D
4023     ------------------------------------------------------------------
4024 nigel 87 0 22 Bra 0
4025     3 16 Bra 1
4026 nigel 75 6 a
4027 nigel 87 8 6 Once
4028     11 3 Recurse
4029     14 6 Ket
4030     17 b
4031     19 16 Ket
4032     22 22 Ket
4033     25 End
4034 nigel 63 ------------------------------------------------------------------
4035     Capturing subpattern count = 1
4036     No options
4037     First char = 'a'
4038     Need char = 'b'
4039    
4040     /(a(?1)+b)/D
4041     ------------------------------------------------------------------
4042 nigel 75 0 22 Bra 0
4043     3 16 Bra 1
4044     6 a
4045 nigel 87 8 6 Once
4046 nigel 75 11 3 Recurse
4047     14 6 KetRmax
4048     17 b
4049     19 16 Ket
4050     22 22 Ket
4051     25 End
4052 nigel 63 ------------------------------------------------------------------
4053     Capturing subpattern count = 1
4054     No options
4055     First char = 'a'
4056     Need char = 'b'
4057    
4058     /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/i
4059     Capturing subpattern count = 4
4060     Max back reference = 4
4061 nigel 75 Partial matching not supported
4062 nigel 63 Options: anchored caseless
4063     No first char
4064     No need char
4065     1221
4066     0: 1221
4067     1: 1221
4068     2: 1
4069     Satan, oscillate my metallic sonatas!
4070     0: Satan, oscillate my metallic sonatas!
4071     1: <unset>
4072     2: <unset>
4073     3: Satan, oscillate my metallic sonatas
4074     4: S
4075     A man, a plan, a canal: Panama!
4076     0: A man, a plan, a canal: Panama!
4077     1: <unset>
4078     2: <unset>
4079     3: A man, a plan, a canal: Panama
4080     4: A
4081     Able was I ere I saw Elba.
4082     0: Able was I ere I saw Elba.
4083     1: <unset>
4084     2: <unset>
4085     3: Able was I ere I saw Elba
4086     4: A
4087     *** Failers
4088     No match
4089     The quick brown fox
4090     No match
4091    
4092     /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/
4093     Capturing subpattern count = 2
4094 nigel 75 Partial matching not supported
4095 nigel 63 Options: anchored
4096     No first char
4097     No need char
4098     12
4099     0: 12
4100     1: 12
4101     (((2+2)*-3)-7)
4102     0: (((2+2)*-3)-7)
4103     1: (((2+2)*-3)-7)
4104     2: -
4105     -12
4106     0: -12
4107     1: -12
4108     *** Failers
4109     No match
4110     ((2+2)*-3)-7)
4111     No match
4112    
4113     /^(x(y|(?1){2})z)/
4114     Capturing subpattern count = 2
4115     Options: anchored
4116     No first char
4117 nigel 65 No need char
4118 nigel 63 xyz
4119     0: xyz
4120     1: xyz
4121     2: y
4122     xxyzxyzz
4123     0: xxyzxyzz
4124     1: xxyzxyzz
4125     2: xyzxyz
4126     *** Failers
4127     No match
4128     xxyzz
4129     No match
4130     xxyzxyzxyzz
4131     No match
4132    
4133     /((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/x
4134     Capturing subpattern count = 2
4135 nigel 75 Partial matching not supported
4136 nigel 63 Options: extended
4137     First char = '<'
4138     Need char = '>'
4139     <>
4140     0: <>
4141     1: <>
4142     2: <>
4143     <abcd>
4144     0: <abcd>
4145     1: <abcd>
4146     2: <abcd>
4147     <abc <123> hij>
4148     0: <abc <123> hij>
4149     1: <abc <123> hij>
4150     2: <abc <123> hij>
4151     <abc <def> hij>
4152     0: <def>
4153     1: <def>
4154     2: <def>
4155     <abc<>def>
4156     0: <abc<>def>
4157     1: <abc<>def>
4158     2: <abc<>def>
4159     <abc<>
4160     0: <>
4161     1: <>
4162     2: <>
4163     *** Failers
4164     No match
4165     <abc
4166     No match
4167    
4168     /(?1)/
4169     Failed: reference to non-existent subpattern at offset 3
4170    
4171     /((?2)(abc)/
4172     Failed: reference to non-existent subpattern at offset 4
4173    
4174     /^(abc)def(?1)/
4175     Capturing subpattern count = 1
4176     Options: anchored
4177     No first char
4178 nigel 65 No need char
4179 nigel 63 abcdefabc
4180     0: abcdefabc
4181     1: abc
4182    
4183     /^(a|b|c)=(?1)+/
4184     Capturing subpattern count = 1
4185     Options: anchored
4186     No first char
4187 nigel 65 No need char
4188 nigel 63 a=a
4189     0: a=a
4190     1: a
4191     a=b
4192     0: a=b
4193     1: a
4194     a=bc
4195     0: a=bc
4196     1: a
4197    
4198     /^(a|b|c)=((?1))+/
4199     Capturing subpattern count = 2
4200     Options: anchored
4201     No first char
4202 nigel 65 No need char
4203 nigel 63 a=a
4204     0: a=a
4205     1: a
4206     2: a
4207     a=b
4208     0: a=b
4209     1: a
4210     2: b
4211     a=bc
4212     0: a=bc
4213     1: a
4214     2: c
4215    
4216     /a(?P<name1>b|c)d(?P<longername2>e)/D
4217     ------------------------------------------------------------------
4218 nigel 75 0 28 Bra 0
4219     3 a
4220     5 5 Bra 1
4221     8 b
4222     10 5 Alt
4223     13 c
4224     15 10 Ket
4225     18 d
4226     20 5 Bra 2
4227     23 e
4228     25 5 Ket
4229     28 28 Ket
4230     31 End
4231 nigel 63 ------------------------------------------------------------------
4232     Capturing subpattern count = 2
4233     Named capturing subpatterns:
4234     longername2 2
4235     name1 1
4236     No options
4237     First char = 'a'
4238     Need char = 'e'
4239     abde
4240     0: abde
4241     1: b
4242     2: e
4243     acde
4244     0: acde
4245     1: c
4246     2: e
4247    
4248     /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D
4249     ------------------------------------------------------------------
4250 nigel 75 0 35 Bra 0
4251     3 21 Bra 0
4252     6 a
4253     8 13 Bra 1
4254     11 c
4255     13 5 Bra 2
4256     16 d
4257     18 5 Ket
4258     21 13 Ket
4259