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

Contents of /code/trunk/testdata/testoutput2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 449 - (hide annotations) (download)
Wed Sep 16 08:48:17 2009 UTC (3 years, 8 months ago) by ph10
File size: 194672 byte(s)
Another test for (*ACCEPT)

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 ph10 432 /abc/P
335 nigel 41 abc
336     0: abc
337     *** Failers
338     No match: POSIX code 17: match failed
339 ph10 102
340 ph10 432 /^abc|def/P
341 nigel 41 abcdef
342     0: abc
343     abcdef\B
344     0: def
345    
346 ph10 432 /.*((abc)$|(def))/P
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 ph10 432 /the quick brown fox/P
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 ph10 432 /the quick brown fox/Pi
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 ph10 432 /abc.def/P
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 ph10 432 /abc$/P
377 nigel 41 abc
378     0: abc
379 ph10 102 abc\n
380 nigel 41 0: abc
381    
382 ph10 432 /(abc)\2/P
383 nigel 41 Failed: POSIX code 15: bad back reference at offset 7
384    
385 ph10 432 /(abc\1)/P
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 ph10 432 /a*(b+)(z)(z)/P
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    
1809 nigel 93 /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1810 nigel 43 Capturing subpattern count = 3
1811     Options: extended
1812     First char = '('
1813     Need char = ')'
1814     (ab(cd)ef)
1815     0: (ab(cd)ef)
1816     1: ab(cd)ef
1817     2: ef
1818     3: (cd)
1819     (ab(cd(ef)gh)ij)
1820     0: (ab(cd(ef)gh)ij)
1821     1: ab(cd(ef)gh)ij
1822     2: ij
1823     3: (cd(ef)gh)
1824    
1825 ph10 161 /^[[:alnum:]]/DZ
1826 nigel 43 ------------------------------------------------------------------
1827 ph10 192 Bra
1828 ph10 161 ^
1829     [0-9A-Za-z]
1830     Ket
1831     End
1832 nigel 43 ------------------------------------------------------------------
1833     Capturing subpattern count = 0
1834     Options: anchored
1835     No first char
1836     No need char
1837    
1838 ph10 161 /^[[:^alnum:]]/DZ
1839 nigel 75 ------------------------------------------------------------------
1840 ph10 192 Bra
1841 ph10 161 ^
1842 ph10 265 [\x00-/:-@[-`{-\xff] (neg)
1843 ph10 161 Ket
1844     End
1845 nigel 75 ------------------------------------------------------------------
1846     Capturing subpattern count = 0
1847     Options: anchored
1848     No first char
1849     No need char
1850    
1851 ph10 161 /^[[:alpha:]]/DZ
1852 nigel 43 ------------------------------------------------------------------
1853 ph10 192 Bra
1854 ph10 161 ^
1855     [A-Za-z]
1856     Ket
1857     End
1858 nigel 43 ------------------------------------------------------------------
1859     Capturing subpattern count = 0
1860     Options: anchored
1861     No first char
1862     No need char
1863 nigel 75
1864 ph10 161 /^[[:^alpha:]]/DZ
1865 nigel 75 ------------------------------------------------------------------
1866 ph10 192 Bra
1867 ph10 161 ^
1868 ph10 265 [\x00-@[-`{-\xff] (neg)
1869 ph10 161 Ket
1870     End
1871 nigel 75 ------------------------------------------------------------------
1872     Capturing subpattern count = 0
1873     Options: anchored
1874     No first char
1875     No need char
1876 ph10 102
1877 nigel 87 /[_[:alpha:]]/IS
1878     Capturing subpattern count = 0
1879     No options
1880     No first char
1881     No need char
1882     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
1883     _ 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    
1885 ph10 161 /^[[:ascii:]]/DZ
1886 nigel 43 ------------------------------------------------------------------
1887 ph10 192 Bra
1888 ph10 161 ^
1889     [\x00-\x7f]
1890     Ket
1891     End
1892 nigel 43 ------------------------------------------------------------------
1893     Capturing subpattern count = 0
1894     Options: anchored
1895     No first char
1896     No need char
1897    
1898 ph10 161 /^[[:^ascii:]]/DZ
1899 nigel 75 ------------------------------------------------------------------
1900 ph10 192 Bra
1901 ph10 161 ^
1902 ph10 265 [\x80-\xff] (neg)
1903 ph10 161 Ket
1904     End
1905 nigel 75 ------------------------------------------------------------------
1906     Capturing subpattern count = 0
1907     Options: anchored
1908     No first char
1909     No need char
1910    
1911 ph10 161 /^[[:blank:]]/DZ
1912 nigel 63 ------------------------------------------------------------------
1913 ph10 192 Bra
1914 ph10 161 ^
1915     [\x09 ]
1916     Ket
1917     End
1918 nigel 63 ------------------------------------------------------------------
1919     Capturing subpattern count = 0
1920     Options: anchored
1921     No first char
1922     No need char
1923    
1924 ph10 161 /^[[:^blank:]]/DZ
1925 nigel 87 ------------------------------------------------------------------
1926 ph10 192 Bra
1927 ph10 161 ^
1928 ph10 265 [\x00-\x08\x0a-\x1f!-\xff] (neg)
1929 ph10 161 Ket
1930     End
1931 nigel 87 ------------------------------------------------------------------
1932     Capturing subpattern count = 0
1933     Options: anchored
1934     No first char
1935     No need char
1936    
1937     /[\n\x0b\x0c\x0d[:blank:]]/IS
1938     Capturing subpattern count = 0
1939 ph10 226 Contains explicit CR or LF match
1940 nigel 87 No options
1941     No first char
1942     No need char
1943     Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1944    
1945 ph10 161 /^[[:cntrl:]]/DZ
1946 nigel 43 ------------------------------------------------------------------
1947 ph10 192 Bra
1948 ph10 161 ^
1949     [\x00-\x1f\x7f]
1950     Ket
1951     End
1952 nigel 43 ------------------------------------------------------------------
1953     Capturing subpattern count = 0
1954     Options: anchored
1955     No first char
1956     No need char
1957    
1958 ph10 161 /^[[:digit:]]/DZ
1959 nigel 43 ------------------------------------------------------------------
1960 ph10 192 Bra
1961 ph10 161 ^
1962     [0-9]
1963     Ket
1964     End
1965 nigel 43 ------------------------------------------------------------------
1966     Capturing subpattern count = 0
1967     Options: anchored
1968     No first char
1969     No need char
1970    
1971 ph10 161 /^[[:graph:]]/DZ
1972 nigel 43 ------------------------------------------------------------------
1973 ph10 192 Bra
1974 ph10 161 ^
1975     [!-~]
1976     Ket
1977     End
1978 nigel 43 ------------------------------------------------------------------
1979     Capturing subpattern count = 0
1980     Options: anchored
1981     No first char
1982     No need char
1983    
1984 ph10 161 /^[[:lower:]]/DZ
1985 nigel 43 ------------------------------------------------------------------
1986 ph10 192 Bra
1987 ph10 161 ^
1988     [a-z]
1989     Ket
1990     End
1991 nigel 43 ------------------------------------------------------------------
1992     Capturing subpattern count = 0
1993     Options: anchored
1994     No first char
1995     No need char
1996    
1997 ph10 161 /^[[:print:]]/DZ
1998 nigel 43 ------------------------------------------------------------------
1999 ph10 192 Bra
2000 ph10 161 ^
2001     [ -~]
2002     Ket
2003     End
2004 nigel 43 ------------------------------------------------------------------
2005     Capturing subpattern count = 0
2006     Options: anchored
2007     No first char
2008     No need char
2009    
2010 ph10 161 /^[[:punct:]]/DZ
2011 nigel 43 ------------------------------------------------------------------
2012 ph10 192 Bra
2013 ph10 161 ^
2014     [!-/:-@[-`{-~]
2015     Ket
2016     End
2017 nigel 43 ------------------------------------------------------------------
2018     Capturing subpattern count = 0
2019     Options: anchored
2020     No first char
2021     No need char
2022    
2023 ph10 161 /^[[:space:]]/DZ
2024 nigel 43 ------------------------------------------------------------------
2025 ph10 192 Bra
2026 ph10 161 ^
2027     [\x09-\x0d ]
2028     Ket
2029     End
2030 nigel 43 ------------------------------------------------------------------
2031     Capturing subpattern count = 0
2032     Options: anchored
2033     No first char
2034     No need char
2035    
2036 ph10 161 /^[[:upper:]]/DZ
2037 nigel 43 ------------------------------------------------------------------
2038 ph10 192 Bra
2039 ph10 161 ^
2040     [A-Z]
2041     Ket
2042     End
2043 nigel 43 ------------------------------------------------------------------
2044     Capturing subpattern count = 0
2045     Options: anchored
2046     No first char
2047     No need char
2048    
2049 ph10 161 /^[[:xdigit:]]/DZ
2050 nigel 43 ------------------------------------------------------------------
2051 ph10 192 Bra
2052 ph10 161 ^
2053     [0-9A-Fa-f]
2054     Ket
2055     End
2056 nigel 43 ------------------------------------------------------------------
2057     Capturing subpattern count = 0
2058     Options: anchored
2059     No first char
2060     No need char
2061    
2062 ph10 161 /^[[:word:]]/DZ
2063 nigel 43 ------------------------------------------------------------------
2064 ph10 192 Bra
2065 ph10 161 ^
2066     [0-9A-Z_a-z]
2067     Ket
2068     End
2069 nigel 43 ------------------------------------------------------------------
2070     Capturing subpattern count = 0
2071     Options: anchored
2072     No first char
2073     No need char
2074    
2075 ph10 161 /^[[:^cntrl:]]/DZ
2076 nigel 43 ------------------------------------------------------------------
2077 ph10 192 Bra
2078 ph10 161 ^
2079 ph10 265 [ -~\x80-\xff] (neg)
2080 ph10 161 Ket
2081     End
2082 nigel 43 ------------------------------------------------------------------
2083     Capturing subpattern count = 0
2084     Options: anchored
2085     No first char
2086     No need char
2087    
2088 ph10 161 /^[12[:^digit:]]/DZ
2089 nigel 43 ------------------------------------------------------------------
2090 ph10 192 Bra
2091 ph10 161 ^
2092 ph10 265 [\x00-/12:-\xff] (neg)
2093 ph10 161 Ket
2094     End
2095 nigel 43 ------------------------------------------------------------------
2096     Capturing subpattern count = 0
2097     Options: anchored
2098     No first char
2099     No need char
2100    
2101 ph10 161 /^[[:^blank:]]/DZ
2102 nigel 63 ------------------------------------------------------------------
2103 ph10 192 Bra
2104 ph10 161 ^
2105 ph10 265 [\x00-\x08\x0a-\x1f!-\xff] (neg)
2106 ph10 161 Ket
2107     End
2108 nigel 63 ------------------------------------------------------------------
2109     Capturing subpattern count = 0
2110     Options: anchored
2111     No first char
2112     No need char
2113    
2114 ph10 161 /[01[:alpha:]%]/DZ
2115 nigel 43 ------------------------------------------------------------------
2116 ph10 192 Bra
2117 ph10 161 [%01A-Za-z]
2118     Ket
2119     End
2120 nigel 43 ------------------------------------------------------------------
2121     Capturing subpattern count = 0
2122     No options
2123     No first char
2124     No need char
2125    
2126 nigel 93 /[[.ch.]]/I
2127 nigel 43 Failed: POSIX collating elements are not supported at offset 1
2128    
2129 nigel 93 /[[=ch=]]/I
2130 nigel 43 Failed: POSIX collating elements are not supported at offset 1
2131    
2132 nigel 93 /[[:rhubarb:]]/I
2133 nigel 43 Failed: unknown POSIX class name at offset 3
2134    
2135 nigel 93 /[[:upper:]]/Ii
2136 nigel 43 Capturing subpattern count = 0
2137     Options: caseless
2138     No first char
2139     No need char
2140     A
2141     0: A
2142 ph10 102 a
2143 nigel 43 0: a
2144 ph10 102
2145 nigel 93 /[[:lower:]]/Ii
2146 nigel 43 Capturing subpattern count = 0
2147     Options: caseless
2148     No first char
2149     No need char
2150     A
2151     0: A
2152 ph10 102 a
2153 nigel 43 0: a
2154    
2155 nigel 93 /((?-i)[[:lower:]])[[:lower:]]/Ii
2156 nigel 43 Capturing subpattern count = 1
2157     Options: caseless
2158     No first char
2159     No need char
2160     ab
2161     0: ab
2162     1: a
2163     aB
2164     0: aB
2165     1: a
2166     *** Failers
2167     0: ai
2168     1: a
2169     Ab
2170     No match
2171 ph10 102 AB
2172 nigel 43 No match
2173    
2174 nigel 93 /[\200-\110]/I
2175 nigel 49 Failed: range out of order in character class at offset 9
2176    
2177 nigel 93 /^(?(0)f|b)oo/I
2178 nigel 91 Failed: invalid condition (?(0) at offset 6
2179 nigel 51
2180 nigel 93 /This one's here because of the large output vector needed/I
2181 nigel 53 Capturing subpattern count = 0
2182     No options
2183     First char = 'T'
2184     Need char = 'd'
2185    
2186 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
2187 nigel 53 Capturing subpattern count = 271
2188     Max back reference = 270
2189     No options
2190     No first char
2191     No need char
2192     \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
2193     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
2194     1: 1
2195     2: 2
2196     3: 3
2197     4: 4
2198     5: 5
2199     6: 6
2200     7: 7
2201     8: 8
2202     9: 9
2203     10: 10
2204     11: 11
2205     12: 12
2206     13: 13
2207     14: 14
2208     15: 15
2209     16: 16
2210     17: 17
2211     18: 18
2212     19: 19
2213     20: 20
2214     21: 21
2215     22: 22
2216     23: 23
2217     24: 24
2218     25: 25
2219     26: 26
2220     27: 27
2221     28: 28
2222     29: 29
2223     30: 30
2224     31: 31
2225     32: 32
2226     33: 33
2227     34: 34
2228     35: 35
2229     36: 36
2230     37: 37
2231     38: 38
2232     39: 39
2233     40: 40
2234     41: 41
2235     42: 42
2236     43: 43
2237     44: 44
2238     45: 45
2239     46: 46
2240     47: 47
2241     48: 48
2242     49: 49
2243     50: 50
2244     51: 51
2245     52: 52
2246     53: 53
2247     54: 54
2248     55: 55
2249     56: 56
2250     57: 57
2251     58: 58
2252     59: 59
2253     60: 60
2254     61: 61
2255     62: 62
2256     63: 63
2257     64: 64
2258     65: 65
2259     66: 66
2260     67: 67
2261     68: 68
2262     69: 69
2263     70: 70
2264     71: 71
2265     72: 72
2266     73: 73
2267     74: 74
2268     75: 75
2269     76: 76
2270     77: 77
2271     78: 78
2272     79: 79
2273     80: 80
2274     81: 81
2275     82: 82
2276     83: 83
2277     84: 84
2278     85: 85
2279     86: 86
2280     87: 87
2281     88: 88
2282     89: 89
2283     90: 90
2284     91: 91
2285     92: 92
2286     93: 93
2287     94: 94
2288     95: 95
2289     96: 96
2290     97: 97
2291     98: 98
2292     99: 99
2293     100: 100
2294     101: 101
2295     102: 102
2296     103: 103
2297     104: 104
2298     105: 105
2299     106: 106
2300     107: 107
2301     108: 108
2302     109: 109
2303     110: 110
2304     111: 111
2305     112: 112
2306     113: 113
2307     114: 114
2308     115: 115
2309     116: 116
2310     117: 117
2311     118: 118
2312     119: 119
2313     120: 120
2314     121: 121
2315     122: 122
2316     123: 123
2317     124: 124
2318     125: 125
2319     126: 126
2320     127: 127
2321     128: 128
2322     129: 129
2323     130: 130
2324     131: 131
2325     132: 132
2326     133: 133
2327     134: 134
2328     135: 135
2329     136: 136
2330     137: 137
2331     138: 138
2332     139: 139
2333     140: 140
2334     141: 141
2335     142: 142
2336     143: 143
2337     144: 144
2338     145: 145
2339     146: 146
2340     147: 147
2341     148: 148
2342     149: 149
2343     150: 150
2344     151: 151
2345     152: 152
2346     153: 153
2347     154: 154
2348     155: 155
2349     156: 156
2350     157: 157
2351     158: 158
2352     159: 159
2353     160: 160
2354     161: 161
2355     162: 162
2356     163: 163
2357     164: 164
2358     165: 165
2359     166: 166
2360     167: 167
2361     168: 168
2362     169: 169
2363     170: 170
2364     171: 171
2365     172: 172
2366     173: 173
2367     174: 174
2368     175: 175
2369     176: 176
2370     177: 177
2371     178: 178
2372     179: 179
2373     180: 180
2374     181: 181
2375     182: 182
2376     183: 183
2377     184: 184
2378     185: 185
2379     186: 186
2380     187: 187
2381     188: 188
2382     189: 189
2383     190: 190
2384     191: 191
2385     192: 192
2386     193: 193
2387     194: 194
2388     195: 195
2389     196: 196
2390     197: 197
2391     198: 198
2392     199: 199
2393     200: 200
2394     201: 201
2395     202: 202
2396     203: 203
2397     204: 204
2398     205: 205
2399     206: 206
2400     207: 207
2401     208: 208
2402     209: 209
2403     210: 210
2404     211: 211
2405     212: 212
2406     213: 213
2407     214: 214
2408     215: 215
2409     216: 216
2410     217: 217
2411     218: 218
2412     219: 219
2413     220: 220
2414     221: 221
2415     222: 222
2416     223: 223
2417     224: 224
2418     225: 225
2419     226: 226
2420     227: 227
2421     228: 228
2422     229: 229
2423     230: 230
2424     231: 231
2425     232: 232
2426     233: 233
2427     234: 234
2428     235: 235
2429     236: 236
2430     237: 237
2431     238: 238
2432     239: 239
2433     240: 240
2434     241: 241
2435     242: 242
2436     243: 243
2437     244: 244
2438     245: 245
2439     246: 246
2440     247: 247
2441     248: 248
2442     249: 249
2443     250: 250
2444     251: 251
2445     252: 252
2446     253: 253
2447     254: 254
2448     255: 255
2449     256: 256
2450     257: 257
2451     258: 258
2452     259: 259
2453     260: 260
2454     261: 261
2455     262: 262
2456     263: 263
2457     264: 264
2458     265: 265
2459     266: 266
2460     267: 267
2461     268: 268
2462     269: 269
2463     270: ABC
2464     271: ABC
2465    
2466 nigel 93 /This one's here because Perl does this differently and PCRE can't at present/I
2467 nigel 53 Capturing subpattern count = 0
2468     No options
2469     First char = 'T'
2470     Need char = 't'
2471    
2472 nigel 93 /(main(O)?)+/I
2473 nigel 53 Capturing subpattern count = 2
2474     No options
2475     First char = 'm'
2476     Need char = 'n'
2477     mainmain
2478     0: mainmain
2479     1: main
2480     mainOmain
2481     0: mainOmain
2482     1: main
2483     2: O
2484 ph10 102
2485 nigel 93 /These are all cases where Perl does it differently (nested captures)/I
2486 nigel 63 Capturing subpattern count = 1
2487     No options
2488     First char = 'T'
2489     Need char = 's'
2490    
2491 nigel 93 /^(a(b)?)+$/I
2492 nigel 63 Capturing subpattern count = 2
2493     Options: anchored
2494     No first char
2495 nigel 65 No need char
2496 nigel 63 aba
2497     0: aba
2498     1: a
2499     2: b
2500 ph10 102
2501 nigel 93 /^(aa(bb)?)+$/I
2502 nigel 63 Capturing subpattern count = 2
2503     Options: anchored
2504     No first char
2505 nigel 65 No need char
2506 ph10 102 aabbaa
2507 nigel 63 0: aabbaa
2508     1: aa
2509     2: bb
2510 ph10 102
2511 nigel 93 /^(aa|aa(bb))+$/I
2512 nigel 63 Capturing subpattern count = 2
2513     Options: anchored
2514     No first char
2515 nigel 65 No need char
2516 ph10 102 aabbaa
2517 nigel 63 0: aabbaa
2518     1: aa
2519     2: bb
2520 ph10 102
2521 nigel 93 /^(aa(bb)??)+$/I
2522 nigel 63 Capturing subpattern count = 2
2523     Options: anchored
2524     No first char
2525 nigel 65 No need char
2526 ph10 102 aabbaa
2527 nigel 63 0: aabbaa
2528     1: aa
2529     2: bb
2530 ph10 102
2531 nigel 93 /^(?:aa(bb)?)+$/I
2532 nigel 63 Capturing subpattern count = 1
2533     Options: anchored
2534     No first char
2535 nigel 65 No need char
2536 ph10 102 aabbaa
2537 nigel 63 0: aabbaa
2538     1: bb
2539 ph10 102
2540 nigel 93 /^(aa(b(b))?)+$/I
2541 nigel 63 Capturing subpattern count = 3
2542     Options: anchored
2543     No first char
2544 nigel 65 No need char
2545 ph10 102 aabbaa
2546 nigel 63 0: aabbaa
2547     1: aa
2548     2: bb
2549     3: b
2550    
2551 nigel 93 /^(?:aa(b(b))?)+$/I
2552 nigel 63 Capturing subpattern count = 2
2553     Options: anchored
2554     No first char
2555 nigel 65 No need char
2556 ph10 102 aabbaa
2557 nigel 63 0: aabbaa
2558     1: bb
2559     2: b
2560    
2561 nigel 93 /^(?:aa(b(?:b))?)+$/I
2562 nigel 63 Capturing subpattern count = 1
2563     Options: anchored
2564     No first char
2565 nigel 65 No need char
2566 ph10 102 aabbaa
2567 nigel 63 0: aabbaa
2568     1: bb
2569    
2570 nigel 93 /^(?:aa(bb(?:b))?)+$/I
2571 nigel 63 Capturing subpattern count = 1
2572     Options: anchored
2573     No first char
2574 nigel 65 No need char
2575 ph10 102 aabbbaa
2576 nigel 63 0: aabbbaa
2577     1: bbb
2578 ph10 102
2579 nigel 93 /^(?:aa(b(?:bb))?)+$/I
2580 nigel 63 Capturing subpattern count = 1
2581     Options: anchored
2582     No first char
2583 nigel 65 No need char
2584 ph10 102 aabbbaa
2585 nigel 63 0: aabbbaa
2586     1: bbb
2587    
2588 nigel 93 /^(?:aa(?:b(b))?)+$/I
2589 nigel 63 Capturing subpattern count = 1
2590     Options: anchored
2591     No first char
2592 nigel 65 No need char
2593 ph10 102 aabbaa
2594 nigel 63 0: aabbaa
2595     1: b
2596    
2597 nigel 93 /^(?:aa(?:b(bb))?)+$/I
2598 nigel 63 Capturing subpattern count = 1
2599     Options: anchored
2600     No first char
2601 nigel 65 No need char
2602 ph10 102 aabbbaa
2603 nigel 63 0: aabbbaa
2604     1: bb
2605    
2606 nigel 93 /^(aa(b(bb))?)+$/I
2607 nigel 63 Capturing subpattern count = 3
2608     Options: anchored
2609     No first char
2610 nigel 65 No need char
2611 ph10 102 aabbbaa
2612 nigel 63 0: aabbbaa
2613     1: aa
2614     2: bbb
2615     3: bb
2616    
2617 nigel 93 /^(aa(bb(bb))?)+$/I
2618 nigel 63 Capturing subpattern count = 3
2619     Options: anchored
2620     No first char
2621 nigel 65 No need char
2622 ph10 102 aabbbbaa
2623 nigel 63 0: aabbbbaa
2624     1: aa
2625     2: bbbb
2626     3: bb
2627    
2628 ph10 102 /--------------------------------------------------------------------/I
2629 nigel 63 Capturing subpattern count = 0
2630     No options
2631     First char = '-'
2632     Need char = '-'
2633 ph10 102
2634 ph10 162 /#/IxDZ
2635 nigel 63 ------------------------------------------------------------------
2636 ph10 192 Bra
2637 ph10 161 Ket
2638     End
2639 nigel 63 ------------------------------------------------------------------
2640     Capturing subpattern count = 0
2641     Options: extended
2642     No first char
2643     No need char
2644    
2645 ph10 162 /a#/IxDZ
2646 nigel 63 ------------------------------------------------------------------
2647 ph10 192 Bra
2648 ph10 161 a
2649     Ket
2650     End
2651 nigel 63 ------------------------------------------------------------------
2652     Capturing subpattern count = 0
2653     Options: extended
2654     First char = 'a'
2655     No need char
2656    
2657 ph10 161 /[\s]/DZ
2658 nigel 63 ------------------------------------------------------------------
2659 ph10 192 Bra
2660 ph10 161 [\x09\x0a\x0c\x0d ]
2661     Ket
2662     End
2663 nigel 63 ------------------------------------------------------------------
2664     Capturing subpattern count = 0
2665     No options
2666     No first char
2667     No need char
2668    
2669 ph10 161 /[\S]/DZ
2670 nigel 63 ------------------------------------------------------------------
2671 ph10 192 Bra
2672 ph10 264 [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2673 ph10 161 Ket
2674     End
2675 nigel 63 ------------------------------------------------------------------
2676     Capturing subpattern count = 0
2677     No options
2678     No first char
2679     No need char
2680    
2681 ph10 161 /a(?i)b/DZ
2682 nigel 63 ------------------------------------------------------------------
2683 ph10 192 Bra
2684 ph10 161 a
2685     01 Opt
2686     NC b
2687     Ket
2688     End
2689 nigel 63 ------------------------------------------------------------------
2690     Capturing subpattern count = 0
2691     No options
2692     First char = 'a'
2693     Need char = 'b' (caseless)
2694     ab
2695     0: ab
2696     aB
2697     0: aB
2698 ph10 102 *** Failers
2699 nigel 63 No match
2700 ph10 102 AB
2701 nigel 63 No match
2702    
2703 ph10 161 /(a(?i)b)/DZ
2704 nigel 63 ------------------------------------------------------------------
2705 ph10 192 Bra
2706     CBra 1
2707 ph10 161 a
2708     01 Opt
2709     NC b
2710     Ket
2711     00 Opt
2712     Ket
2713     End
2714 nigel 63 ------------------------------------------------------------------
2715     Capturing subpattern count = 1
2716     No options
2717     First char = 'a'
2718     Need char = 'b' (caseless)
2719     ab
2720     0: ab
2721     1: ab
2722     aB
2723     0: aB
2724     1: aB
2725 ph10 102 *** Failers
2726 nigel 63 No match
2727 ph10 102 AB
2728 nigel 63 No match
2729 ph10 102
2730 ph10 161 / (?i)abc/IxDZ
2731 nigel 63 ------------------------------------------------------------------
2732 ph10 192 Bra
2733 ph10 161 NC abc
2734     Ket
2735     End
2736 nigel 63 ------------------------------------------------------------------
2737     Capturing subpattern count = 0
2738     Options: caseless extended
2739     First char = 'a' (caseless)
2740     Need char = 'c' (caseless)
2741    
2742     /#this is a comment
2743 ph10 161 (?i)abc/IxDZ
2744 nigel 63 ------------------------------------------------------------------
2745 ph10 192 Bra
2746 ph10 161 NC abc
2747     Ket
2748     End
2749 nigel 63 ------------------------------------------------------------------
2750     Capturing subpattern count = 0
2751     Options: caseless extended
2752     First char = 'a' (caseless)
2753     Need char = 'c' (caseless)
2754    
2755 ph10 161 /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2756 nigel 63 ------------------------------------------------------------------
2757 ph10 192 Bra
2758 ph10 161 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2759     Ket
2760     End
2761 nigel 63 ------------------------------------------------------------------
2762     Capturing subpattern count = 0
2763     No options
2764     First char = '1'
2765     Need char = '0'
2766    
2767 ph10 161 /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2768 nigel 63 ------------------------------------------------------------------
2769 ph10 192 Bra
2770 ph10 161 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2771     Ket
2772     End
2773 nigel 63 ------------------------------------------------------------------
2774     Capturing subpattern count = 0
2775     No options
2776     First char = '1'
2777     Need char = '0'
2778    
2779 ph10 161 /\Q\E/DZ
2780 nigel 63 ------------------------------------------------------------------
2781 ph10 192 Bra
2782 ph10 161 Ket
2783     End
2784 nigel 63 ------------------------------------------------------------------
2785     Capturing subpattern count = 0
2786     No options
2787     No first char
2788     No need char
2789     \
2790     0:
2791    
2792 ph10 161 /\Q\Ex/DZ
2793 nigel 63 ------------------------------------------------------------------
2794 ph10 192 Bra
2795 ph10 161 x
2796     Ket
2797     End
2798 nigel 63 ------------------------------------------------------------------
2799     Capturing subpattern count = 0
2800     No options
2801     First char = 'x'
2802     No need char
2803    
2804 ph10 161 / \Q\E/DZ
2805 nigel 63 ------------------------------------------------------------------
2806 ph10 192 Bra
2807 ph10 161
2808     Ket
2809     End
2810 nigel 63 ------------------------------------------------------------------
2811     Capturing subpattern count = 0
2812     No options
2813     First char = ' '
2814     No need char
2815    
2816 ph10 161 /a\Q\E/DZ
2817 nigel 63 ------------------------------------------------------------------
2818 ph10 192 Bra
2819 ph10 161 a
2820     Ket
2821     End
2822 nigel 63 ------------------------------------------------------------------
2823     Capturing subpattern count = 0
2824     No options
2825     First char = 'a'
2826     No need char
2827     abc
2828     0: a
2829     bca
2830     0: a
2831 ph10 102 bac
2832 nigel 63 0: a
2833    
2834 ph10 161 /a\Q\Eb/DZ
2835 nigel 63 ------------------------------------------------------------------
2836 ph10 192 Bra
2837 ph10 161 ab
2838     Ket
2839     End
2840 nigel 63 ------------------------------------------------------------------
2841     Capturing subpattern count = 0
2842     No options
2843     First char = 'a'
2844     Need char = 'b'
2845     abc
2846     0: ab
2847    
2848 ph10 161 /\Q\Eabc/DZ
2849 nigel 63 ------------------------------------------------------------------
2850 ph10 192 Bra
2851 ph10 161 abc
2852     Ket
2853     End
2854 nigel 63 ------------------------------------------------------------------
2855     Capturing subpattern count = 0
2856     No options
2857     First char = 'a'
2858     Need char = 'c'
2859    
2860 ph10 161 /x*+\w/DZ
2861 nigel 63 ------------------------------------------------------------------
2862 ph10 192 Bra
2863 ph10 161 x*+
2864     \w
2865     Ket
2866     End
2867 nigel 63 ------------------------------------------------------------------
2868     Capturing subpattern count = 0
2869     No options
2870     No first char
2871     No need char
2872     *** Failers
2873     0: F
2874     xxxxx
2875     No match
2876 ph10 102
2877 ph10 161 /x?+/DZ
2878 nigel 63 ------------------------------------------------------------------
2879 ph10 192 Bra
2880 ph10 161 x?+
2881     Ket
2882     End
2883 nigel 63 ------------------------------------------------------------------
2884     Capturing subpattern count = 0
2885     No options
2886     No first char
2887     No need char
2888    
2889 ph10 161 /x++/DZ
2890 nigel 63 ------------------------------------------------------------------
2891 ph10 192 Bra
2892 ph10 161 x++
2893     Ket
2894     End
2895 nigel 63 ------------------------------------------------------------------
2896     Capturing subpattern count = 0
2897     No options
2898     First char = 'x'
2899     No need char
2900    
2901 ph10 161 /x{1,3}+/DZ
2902 nigel 63 ------------------------------------------------------------------
2903 ph10 192 Bra
2904 ph10 161 Once
2905     x
2906     x{0,2}
2907     Ket
2908     Ket
2909     End
2910 nigel 63 ------------------------------------------------------------------
2911     Capturing subpattern count = 0
2912     No options
2913     First char = 'x'
2914     No need char
2915    
2916 ph10 161 /(x)*+/DZ
2917 nigel 63 ------------------------------------------------------------------
2918 ph10 192 Bra
2919 ph10 161 Once
2920     Brazero
2921 ph10 192 CBra 1
2922 ph10 161 x
2923     KetRmax
2924     Ket
2925     Ket
2926     End
2927 nigel 63 ------------------------------------------------------------------
2928     Capturing subpattern count = 1
2929     No options
2930     No first char
2931     No need char
2932    
2933 nigel 93 /^(\w++|\s++)*$/I
2934 nigel 63 Capturing subpattern count = 1
2935     Options: anchored
2936     No first char
2937     No need char
2938     now is the time for all good men to come to the aid of the party
2939     0: now is the time for all good men to come to the aid of the party
2940     1: party
2941     *** Failers
2942     No match
2943     this is not a line with only words and spaces!
2944     No match
2945 ph10 102
2946 nigel 93 /(\d++)(\w)/I
2947 nigel 63 Capturing subpattern count = 2
2948     No options
2949     No first char
2950     No need char
2951     12345a
2952     0: 12345a
2953     1: 12345
2954     2: a
2955     *** Failers
2956     No match
2957 ph10 102 12345+
2958 nigel 63 No match
2959    
2960 nigel 93 /a++b/I
2961 nigel 63 Capturing subpattern count = 0
2962     No options
2963     First char = 'a'
2964     Need char = 'b'
2965     aaab
2966     0: aaab
2967    
2968 nigel 93 /(a++b)/I
2969 nigel 63 Capturing subpattern count = 1
2970     No options
2971     First char = 'a'
2972     Need char = 'b'
2973     aaab
2974     0: aaab
2975     1: aaab
2976    
2977 nigel 93 /(a++)b/I
2978 nigel 63 Capturing subpattern count = 1
2979     No options
2980     First char = 'a'
2981     Need char = 'b'
2982     aaab
2983     0: aaab
2984     1: aaa
2985    
2986 nigel 93 /([^()]++|\([^()]*\))+/I
2987 nigel 63 Capturing subpattern count = 1
2988     No options
2989     No first char
2990     No need char
2991     ((abc(ade)ufh()()x
2992     0: abc(ade)ufh()()x
2993     1: x
2994 ph10 102
2995     /\(([^()]++|\([^()]+\))+\)/I
2996 nigel 63 Capturing subpattern count = 1
2997     No options
2998     First char = '('
2999     Need char = ')'
3000     (abc)
3001     0: (abc)
3002     1: abc
3003     (abc(def)xyz)
3004     0: (abc(def)xyz)
3005     1: xyz
3006     *** Failers
3007     No match
3008 ph10 102 ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3009 nigel 63 No match
3010    
3011 ph10 161 /(abc){1,3}+/DZ
3012 nigel 63 ------------------------------------------------------------------
3013 ph10 192 Bra
3014 ph10 161 Once
3015 ph10 192 CBra 1
3016 ph10 161 abc
3017     Ket
3018     Brazero
3019 ph10 192 Bra
3020     CBra 1
3021 ph10 161 abc
3022     Ket
3023     Brazero
3024 ph10 192 CBra 1
3025 ph10 161 abc
3026     Ket
3027     Ket
3028     Ket
3029     Ket
3030     End
3031 nigel 63 ------------------------------------------------------------------
3032     Capturing subpattern count = 1
3033     No options
3034     First char = 'a'
3035     Need char = 'c'
3036    
3037 nigel 93 /a+?+/I
3038 nigel 63 Failed: nothing to repeat at offset 3
3039    
3040 nigel 93 /a{2,3}?+b/I
3041 nigel 63 Failed: nothing to repeat at offset 7
3042    
3043 nigel 93 /(?U)a+?+/I
3044 nigel 63 Failed: nothing to repeat at offset 7
3045    
3046 nigel 93 /a{2,3}?+b/IU
3047 nigel 63 Failed: nothing to repeat at offset 7
3048    
3049 ph10 161 /x(?U)a++b/DZ
3050 nigel 63 ------------------------------------------------------------------
3051 ph10 192 Bra
3052 ph10 161 x
3053     a++
3054     b
3055     Ket
3056     End
3057 nigel 63 ------------------------------------------------------------------
3058     Capturing subpattern count = 0
3059     No options
3060     First char = 'x'
3061     Need char = 'b'
3062     xaaaab
3063     0: xaaaab
3064    
3065 ph10 161 /(?U)xa++b/DZ
3066 nigel 63 ------------------------------------------------------------------
3067 ph10 192 Bra
3068 ph10 161 x
3069     a++
3070     b
3071     Ket
3072     End
3073 nigel 63 ------------------------------------------------------------------
3074     Capturing subpattern count = 0
3075     Options: ungreedy
3076     First char = 'x'
3077     Need char = 'b'
3078     xaaaab
3079     0: xaaaab
3080    
3081 ph10 161 /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3082 nigel 63 ------------------------------------------------------------------
3083 ph10 192 Bra
3084 ph10 161 ^
3085 ph10 192 CBra 1
3086     CBra 2
3087 ph10 161 a+
3088     Ket
3089 ph10 192 CBra 3
3090 ph10 161 [ab]+?
3091     Ket
3092 ph10 192 CBra 4
3093 ph10 161 [bc]+
3094     Ket
3095 ph10 192 CBra 5
3096 ph10 161 \w*
3097     Ket
3098     Ket
3099     Ket
3100     End
3101 nigel 63 ------------------------------------------------------------------
3102     Capturing subpattern count = 5
3103     Options: anchored
3104     No first char
3105 nigel 65 No need char
3106 nigel 63
3107 ph10 161 /^x(?U)a+b/DZ
3108 nigel 63 ------------------------------------------------------------------
3109 ph10 192 Bra
3110 ph10 161 ^
3111     x
3112     a++
3113     b
3114     Ket
3115     End
3116 nigel 63 ------------------------------------------------------------------
3117     Capturing subpattern count = 0
3118     Options: anchored
3119     No first char
3120     Need char = 'b'
3121    
3122 ph10 161 /^x(?U)(a+)b/DZ
3123 nigel 63 ------------------------------------------------------------------
3124 ph10 192 Bra
3125 ph10 161 ^
3126     x
3127 ph10 192 CBra 1
3128 ph10 161 a+?
3129     Ket
3130     b
3131     Ket
3132     End
3133 nigel 63 ------------------------------------------------------------------
3134     Capturing subpattern count = 1
3135     Options: anchored
3136     No first char
3137     Need char = 'b'
3138    
3139 nigel 93 /[.x.]/I
3140 nigel 63 Failed: POSIX collating elements are not supported at offset 0
3141    
3142 nigel 93 /[=x=]/I
3143 nigel 63 Failed: POSIX collating elements are not supported at offset 0
3144    
3145 nigel 93 /[:x:]/I
3146 nigel 63 Failed: POSIX named classes are supported only within a class at offset 0
3147    
3148 nigel 93 /\l/I
3149 nigel 75 Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3150 nigel 63
3151 nigel 93 /\L/I
3152 nigel 75 Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3153 nigel 63
3154 nigel 93 /\N{name}/I
3155 nigel 75 Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3156 nigel 63
3157 nigel 93 /\u/I
3158 nigel 75 Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3159 nigel 63
3160 nigel 93 /\U/I
3161 nigel 75 Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3162 nigel 63
3163 nigel 93 /[/I
3164 nigel 63 Failed: missing terminating ] for character class at offset 1
3165    
3166 nigel 93 /[a-/I
3167 nigel 63 Failed: missing terminating ] for character class at offset 3
3168    
3169 nigel 93 /[[:space:]/I
3170 nigel 63 Failed: missing terminating ] for character class at offset 10
3171    
3172 ph10 162 /[\s]/IDZ
3173 nigel 63 ------------------------------------------------------------------
3174 ph10 192 Bra
3175 ph10 161 [\x09\x0a\x0c\x0d ]
3176     Ket
3177     End
3178 nigel 63 ------------------------------------------------------------------
3179     Capturing subpattern count = 0
3180     No options
3181     No first char
3182     No need char
3183    
3184 ph10 162 /[[:space:]]/IDZ
3185 nigel 63 ------------------------------------------------------------------
3186 ph10 192 Bra
3187 ph10 161 [\x09-\x0d ]
3188     Ket
3189     End
3190 nigel 63 ------------------------------------------------------------------
3191     Capturing subpattern count = 0
3192     No options
3193     No first char
3194     No need char
3195    
3196 ph10 162 /[[:space:]abcde]/IDZ
3197 nigel 63 ------------------------------------------------------------------
3198 ph10 192 Bra
3199 ph10 161 [\x09-\x0d a-e]
3200     Ket
3201     End
3202 nigel 63 ------------------------------------------------------------------
3203     Capturing subpattern count = 0
3204     No options
3205     No first char
3206     No need char
3207    
3208 nigel 93 /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix
3209 nigel 63 Capturing subpattern count = 0
3210     Options: extended
3211     First char = '<'
3212     Need char = '>'
3213     <>
3214     0: <>
3215     <abcd>
3216     0: <abcd>
3217     <abc <123> hij>
3218     0: <abc <123> hij>
3219     <abc <def> hij>
3220     0: <def>
3221 ph10 102 <abc<>def>
3222 nigel 63 0: <abc<>def>
3223 ph10 102 <abc<>
3224 nigel 63 0: <>
3225     *** Failers
3226     No match
3227     <abc
3228     No match
3229    
3230 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
3231 nigel 63 ------------------------------------------------------------------
3232 ph10 192 Bra
3233 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
3234     \b
3235     Ket
3236     End
3237 nigel 63 ------------------------------------------------------------------
3238     Capturing subpattern count = 0
3239     No options
3240     First char = '8'
3241     Need char = 'X'
3242    
3243 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
3244 nigel 63 ------------------------------------------------------------------
3245 ph10 192 Bra
3246 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
3247     \b
3248     Ket
3249     End
3250 nigel 63 ------------------------------------------------------------------
3251     Capturing subpattern count = 0
3252     No options
3253     First char = '$'
3254     Need char = 'X'
3255    
3256     /(.*)\d+\1/I
3257     Capturing subpattern count = 1
3258     Max back reference = 1
3259     No options
3260     No first char
3261     No need char
3262    
3263     /(.*)\d+/I
3264     Capturing subpattern count = 1
3265     No options
3266 nigel 91 First char at start or follows newline
3267 nigel 63 No need char
3268 ph10 102
3269 nigel 63 /(.*)\d+\1/Is
3270     Capturing subpattern count = 1
3271     Max back reference = 1
3272     Options: dotall
3273     No first char
3274     No need char
3275    
3276     /(.*)\d+/Is
3277     Capturing subpattern count = 1
3278     Options: anchored dotall
3279     No first char
3280     No need char
3281    
3282     /(.*(xyz))\d+\2/I
3283     Capturing subpattern count = 2
3284     Max back reference = 2
3285     No options
3286 nigel 91 First char at start or follows newline
3287 nigel 63 Need char = 'z'
3288    
3289     /((.*))\d+\1/I
3290     Capturing subpattern count = 2
3291     Max back reference = 1
3292     No options
3293     No first char
3294     No need char
3295     abc123bc
3296     0: bc123bc
3297     1: bc
3298     2: bc
3299 ph10 102
3300 nigel 63 /a[b]/I
3301     Capturing subpattern count = 0
3302     No options
3303     First char = 'a'
3304     Need char = 'b'
3305    
3306     /(?=a).*/I
3307     Capturing subpattern count = 0
3308     No options
3309     First char = 'a'
3310     No need char
3311    
3312 nigel 93 /(?=abc).xyz/IiI
3313 nigel 63 Capturing subpattern count = 0
3314     Options: caseless
3315     First char = 'a' (caseless)
3316     Need char = 'z' (caseless)
3317    
3318     /(?=abc)(?i).xyz/I
3319     Capturing subpattern count = 0
3320     No options
3321     First char = 'a'
3322     Need char = 'z' (caseless)
3323    
3324     /(?=a)(?=b)/I
3325     Capturing subpattern count = 0
3326     No options
3327     First char = 'a'
3328     No need char
3329    
3330     /(?=.)a/I
3331     Capturing subpattern count = 0
3332     No options
3333     First char = 'a'
3334     No need char
3335    
3336     /((?=abcda)a)/I
3337     Capturing subpattern count = 1
3338     No options
3339     First char = 'a'
3340     Need char = 'a'
3341    
3342     /((?=abcda)ab)/I
3343     Capturing subpattern count = 1
3344     No options
3345     First char = 'a'
3346     Need char = 'b'
3347    
3348     /()a/I
3349     Capturing subpattern count = 1
3350     No options
3351     No first char
3352     Need char = 'a'
3353    
3354 ph10 270 /(?(1)ab|ac)(.)/I
3355     Capturing subpattern count = 1
3356 nigel 63 No options
3357     First char = 'a'
3358     No need char
3359    
3360 ph10 270 /(?(1)abz|acz)(.)/I
3361     Capturing subpattern count = 1
3362 nigel 63 No options
3363     First char = 'a'
3364     Need char = 'z'
3365    
3366 ph10 270 /(?(1)abz)(.)/I
3367     Capturing subpattern count = 1
3368 nigel 63 No options
3369     No first char
3370     No need char
3371    
3372 ph10 270 /(?(1)abz)(1)23/I
3373     Capturing subpattern count = 1
3374 nigel 63 No options
3375     No first char
3376     Need char = '3'
3377    
3378     /(a)+/I
3379     Capturing subpattern count = 1
3380     No options
3381     First char = 'a'
3382     No need char
3383    
3384     /(a){2,3}/I
3385     Capturing subpattern count = 1
3386     No options
3387     First char = 'a'
3388     Need char = 'a'
3389    
3390     /(a)*/I
3391     Capturing subpattern count = 1
3392     No options
3393     No first char
3394     No need char
3395    
3396     /[a]/I
3397     Capturing subpattern count = 0
3398     No options
3399     First char = 'a'
3400     No need char
3401    
3402     /[ab]/I
3403     Capturing subpattern count = 0
3404     No options
3405     No first char
3406     No need char
3407    
3408     /[ab]/IS
3409     Capturing subpattern count = 0
3410     No options
3411     No first char
3412     No need char
3413 nigel 75 Starting byte set: a b
3414 nigel 63
3415     /[^a]/I
3416     Capturing subpattern count = 0
3417     No options
3418     No first char
3419     No need char
3420    
3421     /\d456/I
3422     Capturing subpattern count = 0
3423     No options
3424     No first char
3425     Need char = '6'
3426    
3427     /\d456/IS
3428     Capturing subpattern count = 0
3429     No options
3430     No first char
3431     Need char = '6'
3432 nigel 75 Starting byte set: 0 1 2 3 4 5 6 7 8 9
3433 nigel 63
3434     /a^b/I
3435     Capturing subpattern count = 0
3436     No options
3437     First char = 'a'
3438     Need char = 'b'
3439    
3440 nigel 93 /^a/Im
3441 nigel 63 Capturing subpattern count = 0
3442     Options: multiline
3443 nigel 91 First char at start or follows newline
3444 nigel 63 Need char = 'a'
3445     abcde
3446     0: a
3447 ph10 102 xy\nabc
3448 nigel 63 0: a
3449 ph10 102 *** Failers
3450 nigel 63 No match
3451 ph10 102 xyabc
3452 nigel 63 No match
3453    
3454     /c|abc/I
3455     Capturing subpattern count = 0
3456     No options
3457     No first char
3458     Need char = 'c'
3459    
3460     /(?i)[ab]/IS
3461     Capturing subpattern count = 0
3462     Options: caseless
3463     No first char
3464     No need char
3465 nigel 75 Starting byte set: A B a b
3466 nigel 63
3467     /[ab](?i)cd/IS
3468     Capturing subpattern count = 0
3469     No options
3470     No first char
3471     Need char = 'd' (caseless)
3472 nigel 75 Starting byte set: a b
3473 nigel 63
3474 nigel 93 /abc(?C)def/I
3475 nigel 63 Capturing subpattern count = 0
3476     No options
3477     First char = 'a'
3478     Need char = 'f'
3479     abcdef
3480     --->abcdef
3481 nigel 75 0 ^ ^ d
3482 nigel 63 0: abcdef
3483 ph10 102 1234abcdef
3484 nigel 63 --->1234abcdef
3485 nigel 75 0 ^ ^ d
3486 nigel 63 0: abcdef
3487     *** Failers
3488     No match
3489     abcxyz
3490     No match
3491 ph10 102 abcxyzf
3492 nigel 63 --->abcxyzf
3493 nigel 75 0 ^ ^ d
3494 nigel 63 No match
3495    
3496 nigel 93 /abc(?C)de(?C1)f/I
3497 nigel 63 Capturing subpattern count = 0
3498     No options
3499     First char = 'a'
3500     Need char = 'f'
3501     123abcdef
3502     --->123abcdef
3503 nigel 75 0 ^ ^ d
3504     1 ^ ^ f
3505 nigel 63 0: abcdef
3506 ph10 102
3507     /(?C1)\dabc(?C2)def/I
3508 nigel 63 Capturing subpattern count = 0
3509     No options
3510     No first char
3511     Need char = 'f'
3512     1234abcdef
3513     --->1234abcdef
3514 nigel 75 1 ^ \d
3515     1 ^ \d
3516     1 ^ \d
3517     1 ^ \d
3518     2 ^ ^ d
3519 nigel 63 0: 4abcdef
3520     *** Failers
3521     No match
3522 ph10 102 abcdef
3523 nigel 63 --->abcdef
3524 nigel 75 1 ^ \d
3525     1 ^ \d
3526     1 ^ \d
3527     1 ^ \d
3528     1 ^ \d
3529     1 ^ \d
3530 nigel 63 No match
3531 ph10 102
3532 nigel 93 /(?C255)ab/I
3533 nigel 63 Capturing subpattern count = 0
3534     No options
3535     First char = 'a'
3536     Need char = 'b'
3537    
3538 nigel 93 /(?C256)ab/I
3539 nigel 63 Failed: number after (?C is > 255 at offset 6
3540    
3541 ph10 102 /(?Cab)xx/I
3542 nigel 63 Failed: closing ) for (?C expected at offset 3
3543    
3544 nigel 93 /(?C12vr)x/I
3545 nigel 63 Failed: closing ) for (?C expected at offset 5
3546    
3547 nigel 93 /abc(?C)def/I
3548 nigel 63 Capturing subpattern count = 0
3549     No options
3550     First char = 'a'
3551     Need char = 'f'
3552     *** Failers
3553     No match
3554     \x83\x0\x61bcdef
3555     --->\x83\x00abcdef
3556 nigel 75 0 ^ ^ d
3557 nigel 63 0: abcdef
3558    
3559 nigel 93 /(abc)(?C)de(?C1)f/I
3560 nigel 63 Capturing subpattern count = 1
3561     No options
3562     First char = 'a'
3563     Need char = 'f'
3564     123abcdef
3565     --->123abcdef
3566 nigel 75 0 ^ ^ d
3567     1 ^ ^ f
3568 nigel 63 0: abcdef
3569     1: abc
3570 ph10 102 123abcdef\C+
3571 nigel 63 Callout 0: last capture = 1
3572     0: <unset>
3573     1: abc
3574     --->123abcdef
3575 nigel 75 ^ ^ d
3576 nigel 63 Callout 1: last capture = 1
3577     0: <unset>
3578     1: abc
3579     --->123abcdef
3580 nigel 75 ^ ^ f
3581 nigel 63 0: abcdef
3582     1: abc
3583 ph10 102 123abcdef\C-
3584 nigel 63 0: abcdef
3585     1: abc
3586     *** Failers
3587     No match
3588 ph10 102 123abcdef\C!1
3589 nigel 63 --->123abcdef
3590 nigel 75 0 ^ ^ d
3591     1 ^ ^ f
3592 nigel 63 No match
3593 ph10 102
3594 nigel 93 /(?C0)(abc(?C1))*/I
3595 nigel 63 Capturing subpattern count = 1
3596     No options
3597     No first char
3598     No need char
3599     abcabcabc
3600     --->abcabcabc
3601 nigel 75 0 ^ (abc(?C1))*
3602     1 ^ ^ )
3603     1 ^ ^ )
3604     1 ^ ^ )
3605 nigel 63 0: abcabcabc
3606     1: abc
3607 ph10 102 abcabc\C!1!3
3608 nigel 63 --->abcabc
3609 nigel 75 0 ^ (abc(?C1))*
3610     1 ^ ^ )
3611     1 ^ ^ )
3612 nigel 63 0: abcabc
3613     1: abc
3614     *** Failers
3615     --->*** Failers
3616 nigel 75 0 ^ (abc(?C1))*
3617 nigel 63 0:
3618 ph10 102 abcabcabc\C!1!3
3619 nigel 63 --->abcabcabc
3620 nigel 75 0 ^ (abc(?C1))*
3621     1 ^ ^ )
3622     1 ^ ^ )
3623     1 ^ ^ )
3624 nigel 63 0: abcabc
3625     1: abc
3626    
3627 nigel 93 /(\d{3}(?C))*/I
3628 nigel 63 Capturing subpattern count = 1
3629     No options
3630     No first char
3631     No need char
3632     123\C+
3633     Callout 0: last capture = -1
3634     0: <unset>
3635     --->123
3636 nigel 75 ^ ^ )
3637 nigel 63 0: 123
3638     1: 123
3639     123456\C+
3640     Callout 0: last capture = -1
3641     0: <unset>
3642     --->123456
3643 nigel 75 ^ ^ )
3644 nigel 63 Callout 0: last capture = 1
3645     0: <unset>
3646     1: 123
3647     --->123456
3648 nigel 75 ^ ^ )
3649 nigel 63 0: 123456
3650     1: 456
3651 ph10 102 123456789\C+
3652 nigel 63 Callout 0: last capture = -1
3653     0: <unset>
3654     --->123456789
3655 nigel 75 ^ ^ )
3656 nigel 63 Callout 0: last capture = 1
3657     0: <unset>
3658     1: 123
3659     --->123456789
3660 nigel 75 ^ ^ )
3661 nigel 63 Callout 0: last capture = 1
3662     0: <unset>
3663     1: 456
3664     --->123456789
3665 nigel 75 ^ ^ )
3666 nigel 63 0: 123456789
3667     1: 789
3668    
3669 nigel 93 /((xyz)(?C)p|(?C1)xyzabc)/I
3670 nigel 63 Capturing subpattern count = 2
3671     No options
3672     First char = 'x'
3673     No need char
3674     xyzabc\C+
3675     Callout 0: last capture = 2
3676     0: <unset>
3677     1: <unset>
3678     2: xyz
3679     --->xyzabc
3680 nigel 75 ^ ^ p
3681 nigel 63 Callout 1: last capture = -1
3682     0: <unset>
3683     --->xyzabc
3684 nigel 75 ^ x
3685 nigel 63 0: xyzabc
3686     1: xyzabc
3687    
3688 nigel 93 /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3689 nigel 63 Capturing subpattern count = 3
3690     No options
3691     First char = 'X'
3692     Need char = 'x'
3693     Xxyzabc\C+
3694     Callout 0: last capture = 3
3695     0: <unset>
3696     1: X
3697     2: <unset>
3698     3: xyz
3699     --->Xxyzabc
3700 nigel 75 ^ ^ p
3701 nigel 63 Callout 1: last capture = 1
3702     0: <unset>
3703     1: X
3704     --->Xxyzabc
3705 nigel 75 ^^ x
3706 nigel 63 0: Xxyzabc
3707     1: X
3708     2: xyzabc
3709    
3710 nigel 93 /(?=(abc))(?C)abcdef/I
3711 nigel 63 Capturing subpattern count = 1
3712     No options
3713     First char = 'a'
3714     Need char = 'f'
3715     abcdef\C+
3716     Callout 0: last capture = 1
3717     0: <unset>
3718     1: abc
3719     --->abcdef
3720 nigel 75 ^ a
3721 nigel 63 0: abcdef
3722     1: abc
3723 ph10 102
3724 nigel 93 /(?!(abc)(?C1)d)(?C2)abcxyz/I
3725 nigel 63 Capturing subpattern count = 1
3726     No options
3727     First char = 'a'
3728     Need char = 'z'
3729 ph10 102 abcxyz\C+
3730 nigel 63 Callout 1: last capture = 1
3731     0: <unset>
3732     1: abc
3733     --->abcxyz
3734 nigel 75 ^ ^ d
3735 nigel 63 Callout 2: last capture = -1
3736     0: <unset>
3737     --->abcxyz
3738 nigel 75 ^ a
3739 nigel 63 0: abcxyz
3740    
3741 nigel 93 /(?<=(abc)(?C))xyz/I
3742 nigel 63 Capturing subpattern count = 1
3743     No options
3744     First char = 'x'
3745     Need char = 'z'
3746     abcxyz\C+
3747     Callout 0: last capture = 1
3748     0: <unset>
3749     1: abc
3750     --->abcxyz
3751 nigel 75 ^ )
3752 nigel 63 0: xyz
3753     1: abc
3754 ph10 102
3755 nigel 93 /a(b+)(c*)(?C1)/I
3756 nigel 77 Capturing subpattern count = 2
3757     No options
3758     First char = 'a'
3759     Need char = 'b'
3760     abbbbbccc\C*1
3761     --->abbbbbccc
3762     1 ^ ^
3763     Callout data = 1
3764     1 ^ ^
3765     Callout data = 1
3766     1 ^ ^
3767     Callout data = 1
3768     1 ^ ^
3769     Callout data = 1
3770     1 ^ ^
3771     Callout data = 1
3772     1 ^ ^
3773     Callout data = 1
3774     1 ^ ^
3775     Callout data = 1
3776     1 ^ ^
3777     Callout data = 1
3778     No match
3779    
3780 nigel 93 /a(b+?)(c*?)(?C1)/I
3781 nigel 77 Capturing subpattern count = 2
3782     No options
3783     First char = 'a'
3784     Need char = 'b'
3785     abbbbbccc\C*1
3786     --->abbbbbccc
3787     1 ^ ^
3788     Callout data = 1
3789     1 ^ ^
3790     Callout data = 1
3791     1 ^ ^
3792     Callout data = 1
3793     1 ^ ^
3794     Callout data = 1
3795     1 ^ ^
3796     Callout data = 1
3797     1 ^ ^
3798     Callout data = 1
3799     1 ^ ^
3800     Callout data = 1
3801     1 ^ ^
3802     Callout data = 1
3803     No match
3804 ph10 102
3805     /(?C)abc/I
3806 nigel 63 Capturing subpattern count = 0
3807     No options
3808     First char = 'a'
3809     Need char = 'c'
3810    
3811 nigel 93 /(?C)^abc/I
3812 nigel 63 Capturing subpattern count = 0
3813     Options: anchored
3814     No first char
3815 nigel 65 No need char
3816 nigel 63
3817 nigel 93 /(?C)a|b/IS
3818 nigel 63 Capturing subpattern count = 0
3819     No options
3820     No first char
3821     No need char
3822 nigel 75 Starting byte set: a b
3823 nigel 63
3824 nigel 93 /(?R)/I
3825 nigel 63 Failed: recursive call could loop indefinitely at offset 3
3826    
3827 nigel 93 /(a|(?R))/I
3828 nigel 63 Failed: recursive call could loop indefinitely at offset 6
3829    
3830 nigel 93 /(ab|(bc|(de|(?R))))/I
3831 nigel 63 Failed: recursive call could loop indefinitely at offset 15
3832    
3833 nigel 93 /x(ab|(bc|(de|(?R))))/I
3834 nigel 63 Capturing subpattern count = 3
3835     No options
3836     First char = 'x'
3837     No need char
3838     xab
3839     0: xab
3840     1: ab
3841     xbc
3842     0: xbc
3843     1: bc
3844     2: bc
3845     xde
3846     0: xde
3847     1: de
3848     2: de
3849     3: de
3850     xxab
3851     0: xxab
3852     1: xab
3853     2: xab
3854     3: xab
3855     xxxab
3856     0: xxxab
3857     1: xxab
3858     2: xxab
3859     3: xxab
3860     *** Failers
3861     No match
3862 ph10 102 xyab
3863 nigel 63 No match
3864    
3865 nigel 93 /(ab|(bc|(de|(?1))))/I
3866 nigel 63 Failed: recursive call could loop indefinitely at offset 15
3867    
3868 nigel 93 /x(ab|(bc|(de|(?1)x)x)x)/I
3869 nigel 63 Failed: recursive call could loop indefinitely at offset 16
3870    
3871 nigel 93 /^([^()]|\((?1)*\))*$/I
3872 nigel 63 Capturing subpattern count = 1
3873     Options: anchored
3874     No first char
3875     No need char
3876     abc
3877     0: abc
3878     1: c
3879     a(b)c
3880     0: a(b)c
3881     1: c
3882 ph10 102 a(b(c))d
3883 nigel 63 0: a(b(c))d
3884     1: d
3885     *** Failers)
3886     No match
3887 ph10 102 a(b(c)d
3888 nigel 63 No match
3889    
3890 nigel 93 /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3891 nigel 63 Capturing subpattern count = 1
3892     Options: anchored
3893     No first char
3894     Need char = '<'
3895     >abc>123<xyz<
3896     0: >abc>123<xyz<
3897     1: 3
3898     >abc>1(2)3<xyz<
3899     0: >abc>1(2)3<xyz<
3900     1: 3
3901     >abc>(1(2)3)<xyz<
3902     0: >abc>(1(2)3)<xyz<
3903     1: (1(2)3)
3904    
3905 ph10 161 /(a(?1)b)/DZ
3906 nigel 63 ------------------------------------------------------------------
3907 ph10 192 Bra
3908     CBra 1
3909 ph10 161 a
3910     Once
3911     Recurse
3912     Ket
3913     b
3914     Ket
3915     Ket
3916     End
3917 nigel 63 ------------------------------------------------------------------
3918     Capturing subpattern count = 1
3919     No options
3920     First char = 'a'
3921     Need char = 'b'
3922    
3923 ph10 161 /(a(?1)+b)/DZ
3924 nigel 63 ------------------------------------------------------------------
3925 ph10 192 Bra
3926     CBra 1