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

Contents of /code/trunk/testdata/testoutput2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 96 - (hide annotations) (download)
Fri Mar 2 13:10:43 2007 UTC (7 years, 8 months ago) by nigel
File size: 161801 byte(s)
 r6896@hex:  nm | 2007-03-02 13:09:14 +0000
 Added EOL and keywork properties throughout

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