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

Contents of /code/trunk/testdata/testoutput2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 428 - (hide annotations) (download)
Mon Aug 31 17:10:26 2009 UTC (3 years, 8 months ago) by ph10
File size: 196141 byte(s)
Further partial match change: add PCRE_PARTIAL_HARD and make more intuitive.

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