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

Diff of /code/trunk/testdata/testoutput2

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 79 by nigel, Sat Feb 24 21:40:52 2007 UTC revision 1380 by ph10, Tue Oct 15 16:49:12 2013 UTC
# Line 1  Line 1 
1  PCRE version 6.1 21-Jun-2005  /-- This set of tests is not Perl-compatible. It checks on special features
2        of PCRE's API, error diagnostics, and the compiled code of some patterns.
3  /(a)b|/      It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4        Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5        either because PCRE can't be compatible, or there is a possible Perl
6        bug.
7    
8        NOTE: This is a non-UTF set of tests. When UTF support is needed, use
9        test 5, and if Unicode Property Support is needed, use test 7. --/
10    
11    /(a)b|/I
12  Capturing subpattern count = 1  Capturing subpattern count = 1
13    May match empty string
14  No options  No options
15  No first char  No first char
16  No need char  No need char
17    
18  /abc/  /abc/I
19  Capturing subpattern count = 0  Capturing subpattern count = 0
20  No options  No options
21  First char = 'a'  First char = 'a'
# Line 24  No match Line 33  No match
33      ABC      ABC
34  No match  No match
35    
36  /^abc/  /^abc/I
37  Capturing subpattern count = 0  Capturing subpattern count = 0
38  Options: anchored  Options: anchored
39  No first char  No first char
# Line 40  No match Line 49  No match
49      \Adefabc      \Adefabc
50  No match  No match
51    
52  /a+bc/  /a+bc/I
53  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
54  No options  No options
55  First char = 'a'  First char = 'a'
56  Need char = 'c'  Need char = 'c'
57    
58  /a*bc/  /a*bc/I
59  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
60  No options  No options
61  No first char  No first char
62  Need char = 'c'  Need char = 'c'
63    
64  /a{3}bc/  /a{3}bc/I
65  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
66  No options  No options
67  First char = 'a'  First char = 'a'
68  Need char = 'c'  Need char = 'c'
69    
70  /(abc|a+z)/  /(abc|a+z)/I
71  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
72  No options  No options
73  First char = 'a'  First char = 'a'
74  No need char  No need char
75    
76  /^abc$/  /^abc$/I
77  Capturing subpattern count = 0  Capturing subpattern count = 0
78  Options: anchored  Options: anchored
79  No first char  No first char
# Line 80  No match Line 85  No match
85      def\nabc      def\nabc
86  No match  No match
87    
88  /ab\gdef/X  /ab\idef/X
89  Failed: unrecognized character follows \ at offset 3  Failed: unrecognized character follows \ at offset 3
90    
91  /(?X)ab\gdef/X  /(?X)ab\idef/X
92  Failed: unrecognized character follows \ at offset 7  Failed: unrecognized character follows \ at offset 7
93    
94  /x{5,4}/  /x{5,4}/
# Line 98  Failed: missing terminating ] for charac Line 103  Failed: missing terminating ] for charac
103  /(?X)[\B]/  /(?X)[\B]/
104  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
105    
106    /(?X)[\R]/
107    Failed: invalid escape sequence in character class at offset 6
108    
109    /(?X)[\X]/
110    Failed: invalid escape sequence in character class at offset 6
111    
112    /[\B]/BZ
113    ------------------------------------------------------------------
114            Bra
115            B
116            Ket
117            End
118    ------------------------------------------------------------------
119    
120    /[\R]/BZ
121    ------------------------------------------------------------------
122            Bra
123            R
124            Ket
125            End
126    ------------------------------------------------------------------
127    
128    /[\X]/BZ
129    ------------------------------------------------------------------
130            Bra
131            X
132            Ket
133            End
134    ------------------------------------------------------------------
135    
136  /[z-a]/  /[z-a]/
137  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
138    
# Line 111  Failed: missing ) at offset 4 Line 146  Failed: missing ) at offset 4
146  Failed: missing ) after comment at offset 7  Failed: missing ) after comment at offset 7
147    
148  /(?z)abc/  /(?z)abc/
149  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? or (?- at offset 2
150    
151  /.*b/  /.*b/I
152  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
153  No options  No options
154  First char at start or follows \n  First char at start or follows newline
155  Need char = 'b'  Need char = 'b'
156    
157  /.*?b/  /.*?b/I
158  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
159  No options  No options
160  First char at start or follows \n  First char at start or follows newline
161  Need char = 'b'  Need char = 'b'
162    
163  /cat|dog|elephant/  /cat|dog|elephant/I
164  Capturing subpattern count = 0  Capturing subpattern count = 0
165  No options  No options
166  No first char  No first char
# Line 137  No need char Line 170  No need char
170      this sentences rambles on and on for a while and then reaches elephant      this sentences rambles on and on for a while and then reaches elephant
171   0: elephant   0: elephant
172    
173  /cat|dog|elephant/S  /cat|dog|elephant/IS
174  Capturing subpattern count = 0  Capturing subpattern count = 0
175  No options  No options
176  No first char  No first char
177  No need char  No need char
178    Subject length lower bound = 3
179  Starting byte set: c d e  Starting byte set: c d e
180      this sentence eventually mentions a cat      this sentence eventually mentions a cat
181   0: cat   0: cat
182      this sentences rambles on and on for a while and then reaches elephant      this sentences rambles on and on for a while and then reaches elephant
183   0: elephant   0: elephant
184    
185  /cat|dog|elephant/iS  /cat|dog|elephant/IiS
186  Capturing subpattern count = 0  Capturing subpattern count = 0
187  Options: caseless  Options: caseless
188  No first char  No first char
189  No need char  No need char
190    Subject length lower bound = 3
191  Starting byte set: C D E c d e  Starting byte set: C D E c d e
192      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
193   0: CAT   0: CAT
194      this sentences rambles on and on for a while to elephant ElePhant      this sentences rambles on and on for a while to elephant ElePhant
195   0: elephant   0: elephant
196    
197  /a|[bcd]/S  /a|[bcd]/IS
198  Capturing subpattern count = 0  Capturing subpattern count = 0
199  No options  No options
200  No first char  No first char
201  No need char  No need char
202    Subject length lower bound = 1
203  Starting byte set: a b c d  Starting byte set: a b c d
204    
205  /(a|[^\dZ])/S  /(a|[^\dZ])/IS
206  Capturing subpattern count = 1  Capturing subpattern count = 1
207  No options  No options
208  No first char  No first char
209  No need char  No need char
210    Subject length lower bound = 1
211  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
212    \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19    \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
213    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
# Line 186  Starting byte set: \x00 \x01 \x02 \x03 \ Line 223  Starting byte set: \x00 \x01 \x02 \x03 \
223    \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb    \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb
224    \xfc \xfd \xfe \xff    \xfc \xfd \xfe \xff
225    
226  /(a|b)*[\s]/S  /(a|b)*[\s]/IS
227  Capturing subpattern count = 1  Capturing subpattern count = 1
228  No options  No options
229  No first char  No first char
230  No need char  No need char
231  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Subject length lower bound = 1
232    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 a b
233    
234  /(ab\2)/  /(ab\2)/
235  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
# Line 199  Failed: reference to non-existent subpat Line 237  Failed: reference to non-existent subpat
237  /{4,5}abc/  /{4,5}abc/
238  Failed: nothing to repeat at offset 4  Failed: nothing to repeat at offset 4
239    
240  /(a)(b)(c)\2/  /(a)(b)(c)\2/I
241  Capturing subpattern count = 3  Capturing subpattern count = 3
242  Max back reference = 2  Max back reference = 2
243  No options  No options
# Line 224  Matched, but too many substrings Line 262  Matched, but too many substrings
262   0: abcb   0: abcb
263   1: a   1: a
264   2: b   2: b
265      \O12abcb      \O12abcb
266   0: abcb   0: abcb
267   1: a   1: a
268   2: b   2: b
269   3: c   3: c
270    
271  /(a)bc|(a)(b)\2/  /(a)bc|(a)(b)\2/I
272  Capturing subpattern count = 3  Capturing subpattern count = 3
273  Max back reference = 2  Max back reference = 2
274  No options  No options
# Line 272  Matched, but too many substrings Line 310  Matched, but too many substrings
310   2: a   2: a
311   3: b   3: b
312    
313  /abc$/E  /abc$/IE
314  Capturing subpattern count = 0  Capturing subpattern count = 0
315  Options: dollar_endonly  Options: dollar_endonly
316  First char = 'a'  First char = 'a'
# Line 289  No match Line 327  No match
327  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
328  Failed: reference to non-existent subpattern at offset 17  Failed: reference to non-existent subpattern at offset 17
329    
330  /the quick brown fox/  /the quick brown fox/I
331  Capturing subpattern count = 0  Capturing subpattern count = 0
332  No options  No options
333  First char = 't'  First char = 't'
# Line 299  Need char = 'x' Line 337  Need char = 'x'
337      this is a line with the quick brown fox      this is a line with the quick brown fox
338   0: the quick brown fox   0: the quick brown fox
339    
340  /the quick brown fox/A  /the quick brown fox/IA
341  Capturing subpattern count = 0  Capturing subpattern count = 0
342  Options: anchored  Options: anchored
343  No first char  No first char
# Line 312  No match Line 350  No match
350  No match  No match
351    
352  /ab(?z)cd/  /ab(?z)cd/
353  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? or (?- at offset 4
354    
355  /^abc|def/  /^abc|def/I
356  Capturing subpattern count = 0  Capturing subpattern count = 0
357  No options  No options
358  No first char  No first char
# Line 324  No need char Line 362  No need char
362      abcdef\B      abcdef\B
363   0: def   0: def
364    
365  /.*((abc)$|(def))/  /.*((abc)$|(def))/I
366  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
367  No options  No options
368  First char at start or follows \n  First char at start or follows newline
369  No need char  No need char
370      defabc      defabc
371   0: defabc   0: defabc
# Line 340  No need char Line 377  No need char
377   2: <unset>   2: <unset>
378   3: def   3: def
379    
 /abc/P  
     abc  
  0: abc  
     *** Failers  
 No match: POSIX code 17: match failed  
   
 /^abc|def/P  
     abcdef  
  0: abc  
     abcdef\B  
  0: def  
   
 /.*((abc)$|(def))/P  
     defabc  
  0: defabc  
  1: abc  
  2: abc  
     \Zdefabc  
  0: def  
  1: def  
  3: def  
   
 /the quick brown fox/P  
     the quick brown fox  
  0: the quick brown fox  
     *** Failers  
 No match: POSIX code 17: match failed  
     The Quick Brown Fox  
 No match: POSIX code 17: match failed  
   
 /the quick brown fox/Pi  
     the quick brown fox  
  0: the quick brown fox  
     The Quick Brown Fox  
  0: The Quick Brown Fox  
   
 /abc.def/P  
     *** Failers  
 No match: POSIX code 17: match failed  
     abc\ndef  
 No match: POSIX code 17: match failed  
   
 /abc$/P  
     abc  
  0: abc  
     abc\n  
  0: abc  
   
 /(abc)\2/P  
 Failed: POSIX code 15: bad back reference at offset 7  
   
 /(abc\1)/P  
     abc  
 No match: POSIX code 17: match failed  
   
380  /)/  /)/
381  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
382    
383  /a[]b/  /a[]b/
384  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
385    
386  /[^aeiou ]{3,}/  /[^aeiou ]{3,}/I
387  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
388  No options  No options
389  No first char  No first char
390  No need char  No need char
391      co-processors, and for      co-processors, and for
392   0: -pr   0: -pr
393    
394  /<.*>/  /<.*>/I
395  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
396  No options  No options
397  First char = '<'  First char = '<'
398  Need char = '>'  Need char = '>'
399      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
400   0: <def>ghi<klm>   0: <def>ghi<klm>
401    
402  /<.*?>/  /<.*?>/I
403  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
404  No options  No options
405  First char = '<'  First char = '<'
406  Need char = '>'  Need char = '>'
407      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
408   0: <def>   0: <def>
409    
410  /<.*>/U  /<.*>/IU
411  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
412  Options: ungreedy  Options: ungreedy
413  First char = '<'  First char = '<'
414  Need char = '>'  Need char = '>'
415      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
416   0: <def>   0: <def>
417    
418  /(?U)<.*>/  /(?U)<.*>/I
419  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
420  Options: ungreedy  Options: ungreedy
421  First char = '<'  First char = '<'
422  Need char = '>'  Need char = '>'
423      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
424   0: <def>   0: <def>
425    
426  /<.*?>/U  /<.*?>/IU
427  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
428  Options: ungreedy  Options: ungreedy
429  First char = '<'  First char = '<'
430  Need char = '>'  Need char = '>'
431      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
432   0: <def>ghi<klm>   0: <def>ghi<klm>
433    
434  /={3,}/U  /={3,}/IU
435  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
436  Options: ungreedy  Options: ungreedy
437  First char = '='  First char = '='
438  Need char = '='  Need char = '='
439      abc========def      abc========def
440   0: ===   0: ===
441    
442  /(?U)={3,}?/  /(?U)={3,}?/I
443  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
444  Options: ungreedy  Options: ungreedy
445  First char = '='  First char = '='
446  Need char = '='  Need char = '='
447      abc========def      abc========def
448   0: ========   0: ========
449    
450  /(?<!bar|cattle)foo/  /(?<!bar|cattle)foo/I
451  Capturing subpattern count = 0  Capturing subpattern count = 0
452    Max lookbehind = 6
453  No options  No options
454  First char = 'f'  First char = 'f'
455  Need char = 'o'  Need char = 'o'
456      foo      foo
457   0: foo   0: foo
458      catfoo      catfoo
459   0: foo   0: foo
460      *** Failers      *** Failers
461  No match  No match
462      the barfoo      the barfoo
463  No match  No match
464      and cattlefoo      and cattlefoo
465  No match  No match
466    
467  /(?<=a+)b/  /(?<=a+)b/
# Line 498  Failed: lookbehind assertion is not fixe Line 473  Failed: lookbehind assertion is not fixe
473  /(?<!(foo)a\1)bar/  /(?<!(foo)a\1)bar/
474  Failed: lookbehind assertion is not fixed length at offset 12  Failed: lookbehind assertion is not fixed length at offset 12
475    
476  /(?i)abc/  /(?i)abc/I
477  Capturing subpattern count = 0  Capturing subpattern count = 0
478  Options: caseless  Options: caseless
479  First char = 'a' (caseless)  First char = 'a' (caseless)
480  Need char = 'c' (caseless)  Need char = 'c' (caseless)
481    
482  /(a|(?m)a)/  /(a|(?m)a)/I
483  Capturing subpattern count = 1  Capturing subpattern count = 1
484  No options  No options
485  First char = 'a'  First char = 'a'
486  No need char  No need char
487    
488  /(?i)^1234/  /(?i)^1234/I
489  Capturing subpattern count = 0  Capturing subpattern count = 0
490  Options: anchored caseless  Options: anchored caseless
491  No first char  No first char
492  No need char  No need char
493    
494  /(^b|(?i)^d)/  /(^b|(?i)^d)/I
495  Capturing subpattern count = 1  Capturing subpattern count = 1
496  Options: anchored  Options: anchored
 Case state changes  
497  No first char  No first char
498  No need char  No need char
499    
500  /(?s).*/  /(?s).*/I
501  Capturing subpattern count = 0  Capturing subpattern count = 0
502  Partial matching not supported  May match empty string
503  Options: anchored dotall  Options: anchored dotall
504  No first char  No first char
505  No need char  No need char
506    
507  /[abcd]/S  /[abcd]/IS
508  Capturing subpattern count = 0  Capturing subpattern count = 0
509  No options  No options
510  No first char  No first char
511  No need char  No need char
512    Subject length lower bound = 1
513  Starting byte set: a b c d  Starting byte set: a b c d
514    
515  /(?i)[abcd]/S  /(?i)[abcd]/IS
516  Capturing subpattern count = 0  Capturing subpattern count = 0
517  Options: caseless  Options: caseless
518  No first char  No first char
519  No need char  No need char
520    Subject length lower bound = 1
521  Starting byte set: A B C D a b c d  Starting byte set: A B C D a b c d
522    
523  /(?m)[xy]|(b|c)/S  /(?m)[xy]|(b|c)/IS
524  Capturing subpattern count = 1  Capturing subpattern count = 1
525  Options: multiline  Options: multiline
526  No first char  No first char
527  No need char  No need char
528    Subject length lower bound = 1
529  Starting byte set: b c x y  Starting byte set: b c x y
530    
531  /(^a|^b)/m  /(^a|^b)/Im
532  Capturing subpattern count = 1  Capturing subpattern count = 1
533  Options: multiline  Options: multiline
534  First char at start or follows \n  First char at start or follows newline
535  No need char  No need char
536    
537  /(?i)(^a|^b)/m  /(?i)(^a|^b)/Im
538  Capturing subpattern count = 1  Capturing subpattern count = 1
539  Options: caseless multiline  Options: caseless multiline
540  First char at start or follows \n  First char at start or follows newline
541  No need char  No need char
542    
543  /(a)(?(1)a|b|c)/  /(a)(?(1)a|b|c)/
# Line 570  Failed: conditional group contains more Line 547  Failed: conditional group contains more
547  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
548    
549  /(?(1a)/  /(?(1a)/
550  Failed: malformed number after (?( at offset 4  Failed: missing ) at offset 6
551    
552    /(?(1a))/
553    Failed: reference to non-existent subpattern at offset 6
554    
555  /(?(?i))/  /(?(?i))/
556  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
557    
558  /(?(abc))/  /(?(abc))/
559  Failed: assertion expected after (?( at offset 3  Failed: reference to non-existent subpattern at offset 7
560    
561  /(?(?<ab))/  /(?(?<ab))/
562  Failed: unrecognized character after (?< at offset 5  Failed: syntax error in subpattern name (missing terminator) at offset 7
563    
564  /((?s)blah)\s+\1/  /((?s)blah)\s+\1/I
565  Capturing subpattern count = 1  Capturing subpattern count = 1
566  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
567  No options  No options
568  First char = 'b'  First char = 'b'
569  Need char = 'h'  Need char = 'h'
570    
571  /((?i)blah)\s+\1/  /((?i)blah)\s+\1/I
572  Capturing subpattern count = 1  Capturing subpattern count = 1
573  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
574  No options  No options
 Case state changes  
575  First char = 'b' (caseless)  First char = 'b' (caseless)
576  Need char = 'h' (caseless)  Need char = 'h' (caseless)
577    
578  /((?i)b)/DS  /((?i)b)/IDZS
579  ------------------------------------------------------------------  ------------------------------------------------------------------
580    0  15 Bra 0          Bra
581    3   7 Bra 1          CBra 1
582    6  01 Opt       /i b
583    8  NC b          Ket
584   10   7 Ket          Ket
585   13  00 Opt          End
  15  15 Ket  
  18     End  
586  ------------------------------------------------------------------  ------------------------------------------------------------------
587  Capturing subpattern count = 1  Capturing subpattern count = 1
588  No options  No options
 Case state changes  
589  First char = 'b' (caseless)  First char = 'b' (caseless)
590  No need char  No need char
591  Study returned NULL  Subject length lower bound = 1
592    No set of starting bytes
593    
594  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/IS
595  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
596  No options  No options
 Case state changes  
597  No first char  No first char
598  No need char  No need char
599    Subject length lower bound = 1
600  Starting byte set: C a b c d  Starting byte set: C a b c d
601    
602  /a$/  /a$/I
603  Capturing subpattern count = 0  Capturing subpattern count = 0
604  No options  No options
605  First char = 'a'  First char = 'a'
# Line 634  No need char Line 608  No need char
608   0: a   0: a
609      a\n      a\n
610   0: a   0: a
611      *** Failers      *** Failers
612  No match  No match
613      \Za      \Za
614  No match  No match
615      \Za\n      \Za\n
616  No match  No match
617    
618  /a$/m  /a$/Im
619  Capturing subpattern count = 0  Capturing subpattern count = 0
620  Options: multiline  Options: multiline
621  First char = 'a'  First char = 'a'
# Line 650  No need char Line 624  No need char
624   0: a   0: a
625      a\n      a\n
626   0: a   0: a
627      \Za\n      \Za\n
628   0: a   0: a
629      *** Failers      *** Failers
630  No match  No match
631      \Za      \Za
632  No match  No match
633    
634  /\Aabc/m  /\Aabc/Im
635  Capturing subpattern count = 0  Capturing subpattern count = 0
636    Max lookbehind = 1
637  Options: anchored multiline  Options: anchored multiline
638  No first char  No first char
639  No need char  No need char
640    
641  /^abc/m  /^abc/Im
642  Capturing subpattern count = 0  Capturing subpattern count = 0
643  Options: multiline  Options: multiline
644  First char at start or follows \n  First char at start or follows newline
645  Need char = 'c'  Need char = 'c'
646    
647  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
648  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
649  Options: anchored  Options: anchored
650  No first char  No first char
651  No need char  No need char
# Line 683  No need char Line 657  No need char
657   4: bbbbccccc   4: bbbbccccc
658   5: def   5: def
659    
660  /(?<=foo)[ab]/S  /(?<=foo)[ab]/IS
661  Capturing subpattern count = 0  Capturing subpattern count = 0
662    Max lookbehind = 3
663  No options  No options
664  No first char  No first char
665  No need char  No need char
666    Subject length lower bound = 1
667  Starting byte set: a b  Starting byte set: a b
668    
669  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/IS
670  Capturing subpattern count = 1  Capturing subpattern count = 1
671    Max lookbehind = 3
672  No options  No options
673  No first char  No first char
674  Need char = 'a'  Need char = 'a'
675    Subject length lower bound = 5
676  Starting byte set: a o  Starting byte set: a o
677    
678  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/IS
679  Capturing subpattern count = 0  Capturing subpattern count = 0
680  No options  No options
681  No first char  No first char
682  No need char  No need char
683    Subject length lower bound = 1
684  Starting byte set: a b  Starting byte set: a b
685    
686  /(?<=foo\n)^bar/m  /(?<=foo\n)^bar/Im
687  Capturing subpattern count = 0  Capturing subpattern count = 0
688    Max lookbehind = 4
689    Contains explicit CR or LF match
690  Options: multiline  Options: multiline
691  No first char  No first char
692  Need char = 'r'  Need char = 'r'
693      foo\nbarbar      foo\nbarbar
694   0: bar   0: bar
695      ***Failers      ***Failers
696  No match  No match
697      rhubarb      rhubarb
698  No match  No match
699      barbell      barbell
700  No match  No match
701      abc\nbarton      abc\nbarton
702  No match  No match
703    
704  /^(?<=foo\n)bar/m  /^(?<=foo\n)bar/Im
705  Capturing subpattern count = 0  Capturing subpattern count = 0
706    Max lookbehind = 4
707    Contains explicit CR or LF match
708  Options: multiline  Options: multiline
709  First char at start or follows \n  First char at start or follows newline
710  Need char = 'r'  Need char = 'r'
711      foo\nbarbar      foo\nbarbar
712   0: bar   0: bar
713      ***Failers      ***Failers
714  No match  No match
715      rhubarb      rhubarb
716  No match  No match
717      barbell      barbell
718  No match  No match
719      abc\nbarton      abc\nbarton
720  No match  No match
721    
722  /(?>^abc)/m  /(?>^abc)/Im
723  Capturing subpattern count = 0  Capturing subpattern count = 0
724  Options: multiline  Options: multiline
725  First char at start or follows \n  First char at start or follows newline
726  Need char = 'c'  Need char = 'c'
727      abc      abc
728   0: abc   0: abc
# Line 747  Need char = 'c' Line 730  Need char = 'c'
730   0: abc   0: abc
731      *** Failers      *** Failers
732  No match  No match
733      defabc      defabc
734  No match  No match
735    
736  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 760  Failed: lookbehind assertion is not fixe Line 743  Failed: lookbehind assertion is not fixe
743  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
744    
745  /The next three are in testinput2 because they have variable length branches/  /The next three are in testinput2 because they have variable length branches/
 Capturing subpattern count = 0  
 No options  
 First char = 'T'  
 Need char = 's'  
746    
747  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
748  Capturing subpattern count = 0  Capturing subpattern count = 0
749    Max lookbehind = 7
750  No options  No options
751  First char = '-'  First char = '-'
752  Need char = 't'  Need char = 't'
# Line 778  Need char = 't' Line 758  Need char = 't'
758  No match  No match
759      cart      cart
760  No match  No match
761      horse-and-cart      horse-and-cart
762  No match  No match
763    
764  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
765  Capturing subpattern count = 0  Capturing subpattern count = 0
766    Max lookbehind = 3
767    May match empty string
768  No options  No options
 Case state changes  
769  No first char  No first char
770  No need char  No need char
771    
772  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
773  Capturing subpattern count = 2  Capturing subpattern count = 2
774  Partial matching not supported  Max lookbehind = 4
775    May match empty string
776  No options  No options
777  First char at start or follows \n  No first char
778  No need char  No need char
779      alphabetabcd      alphabetabcd
780   0: alphabetabcd   0: alphabetabcd
# Line 802  No need char Line 784  No need char
784   1: <unset>   1: <unset>
785   2: xyz   2: xyz
786    
787  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
788  Capturing subpattern count = 0  Capturing subpattern count = 0
789    Max lookbehind = 4
790  No options  No options
 Case state changes  
791  First char = 'Z'  First char = 'Z'
792  Need char = 'Z'  Need char = 'Z'
793      abxyZZ      abxyZZ
# Line 818  Need char = 'Z' Line 800  Need char = 'Z'
800   0: ZZ   0: ZZ
801      bZZ      bZZ
802   0: ZZ   0: ZZ
803      BZZ      BZZ
804   0: ZZ   0: ZZ
805      *** Failers      *** Failers
806  No match  No match
807      ZZ      ZZ
808  No match  No match
809      abXYZZ      abXYZZ
810  No match  No match
811      zzz      zzz
812  No match  No match
813      bzz      bzz
814  No match  No match
815    
816  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
817  Capturing subpattern count = 1  Capturing subpattern count = 1
818    Max lookbehind = 4
819  No options  No options
820  First char = 'b'  First char = 'b'
821  Need char = 'r'  Need char = 'r'
822      bar      bar
823   0: bar   0: bar
824      foobbar      foobbar
825   0: bar   0: bar
826      *** Failers      *** Failers
827  No match  No match
828      fooabar      fooabar
 No match  
   
 /This one is here because Perl 5.005_02 doesn't fail it/  
 Capturing subpattern count = 0  
 No options  
 First char = 'T'  
 Need char = 't'  
   
 /^(a)?(?(1)a|b)+$/  
 Capturing subpattern count = 1  
 Options: anchored  
 No first char  
 No need char  
     *** Failers  
 No match  
     a  
829  No match  No match
830    
831  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/  /This one is here because Perl behaves differently; see also the following/I
832  Capturing subpattern count = 0  Capturing subpattern count = 0
833  No options  No options
834  First char = 'T'  First char = 'T'
835  Need char = 'g'  Need char = 'g'
836    
837  /^(a\1?){4}$/  /^(a\1?){4}$/I
838  Capturing subpattern count = 1  Capturing subpattern count = 1
839  Max back reference = 1  Max back reference = 1
840  Options: anchored  Options: anchored
841  No first char  No first char
842  No need char  No need char
843        aaaa
844    No match
845      aaaaaa      aaaaaa
846   0: aaaaaa  No match
  1: aa  
847    
848  /These are syntax tests from Perl 5.005/  /Perl does not fail these two for the final subjects. Neither did PCRE until/
849    /release 8.01. The problem is in backtracking into a subpattern that contains/
850    No match
851    /a recursive reference to itself. PCRE has now made these into atomic patterns./
852    No match
853    
854    /^(xa|=?\1a){2}$/
855        xa=xaa
856     0: xa=xaa
857     1: =xaa
858        ** Failers
859    No match
860        xa=xaaa
861    No match
862    
863    /^(xa|=?\1a)+$/
864        xa=xaa
865     0: xa=xaa
866     1: =xaa
867        ** Failers
868    No match
869        xa=xaaa
870    No match
871    
872    /These are syntax tests from Perl 5.005/I
873  Capturing subpattern count = 0  Capturing subpattern count = 0
874  No options  No options
875  First char = 'T'  First char = 'T'
# Line 919  Failed: reference to non-existent subpat Line 911  Failed: reference to non-existent subpat
911  /(a)|\2/  /(a)|\2/
912  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
913    
914  /a[b-a]/i  /a[b-a]/Ii
915  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
916    
917  /a[]b/i  /a[]b/Ii
918  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
919    
920  /a[/i  /a[/Ii
921  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
922    
923  /*a/i  /*a/Ii
924  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
925    
926  /(*)b/i  /(*)b/Ii
927  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
928    
929  /abc)/i  /abc)/Ii
930  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
931    
932  /(abc/i  /(abc/Ii
933  Failed: missing ) at offset 4  Failed: missing ) at offset 4
934    
935  /a**/i  /a**/Ii
936  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
937    
938  /)(/i  /)(/Ii
939  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
940    
941  /:(?:/  /:(?:/
# Line 953  Failed: missing ) at offset 4 Line 945  Failed: missing ) at offset 4
945  Failed: unrecognized character after (?< at offset 3  Failed: unrecognized character after (?< at offset 3
946    
947  /a(?{)b/  /a(?{)b/
948  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
949    
950  /a(?{{})b/  /a(?{{})b/
951  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
952    
953  /a(?{}})b/  /a(?{}})b/
954  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
955    
956  /a(?{"{"})b/  /a(?{"{"})b/
957  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
958    
959  /a(?{"{"}})b/  /a(?{"{"}})b/
960  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
961    
962  /(?(1?)a|b)/  /(?(1?)a|b)/
963  Failed: malformed number after (?( at offset 4  Failed: malformed number or name after (?( at offset 4
   
 /(?(1)a|b|c)/  
 Failed: conditional group contains more than two branches at offset 10  
964    
965  /[a[:xyz:/  /[a[:xyz:/
966  Failed: missing terminating ] for character class at offset 8  Failed: missing terminating ] for character class at offset 8
# Line 985  Failed: numbers out of order in {} quant Line 974  Failed: numbers out of order in {} quant
974  /abc/\  /abc/\
975  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
976    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
977  /abc/\i  /abc/\i
978  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
979    
980  /(a)bc(d)/  /(a)bc(d)/I
981  Capturing subpattern count = 2  Capturing subpattern count = 2
982  No options  No options
983  First char = 'a'  First char = 'a'
# Line 1010  Need char = 'd' Line 996  Need char = 'd'
996   1: a   1: a
997   2: d   2: d
998  copy substring 5 failed -7  copy substring 5 failed -7
999    
1000  /(.{20})/  /(.{20})/I
1001  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1002  No options  No options
1003  No first char  No first char
1004  No need char  No need char
# Line 1023  No need char Line 1008  No need char
1008      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1009   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1010   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1011  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1012      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1013   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1014   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1015   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1016    
1017  /(.{15})/  /(.{15})/I
1018  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1019  No options  No options
1020  No first char  No first char
1021  No need char  No need char
# Line 1044  No need char Line 1028  No need char
1028   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1029   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1030    
1031  /(.{16})/  /(.{16})/I
1032  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1033  No options  No options
1034  No first char  No first char
1035  No need char  No need char
# Line 1056  No need char Line 1039  No need char
1039      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1040   0: abcdefghijklmnop   0: abcdefghijklmnop
1041   1: abcdefghijklmnop   1: abcdefghijklmnop
1042  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1043   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1044   0L abcdefghijklmnop   0L abcdefghijklmnop
1045   1L abcdefghijklmnop   1L abcdefghijklmnop
1046    
1047  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1048  Capturing subpattern count = 3  Capturing subpattern count = 3
1049  Options: anchored  Options: anchored
1050  No first char  No first char
1051  No need char  No need char
1052      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1053   0: adef   0: adef
1054   1: a   1: a
1055   2: <unset>   2: <unset>
# Line 1079  get substring 4 failed -7 Line 1062  get substring 4 failed -7
1062   1L a   1L a
1063   2L   2L
1064   3L f   3L f
1065      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1066   0: bcdef   0: bcdef
1067   1: bc   1: bc
1068   2: bc   2: bc
# Line 1092  get substring 4 failed -7 Line 1075  get substring 4 failed -7
1075   1L bc   1L bc
1076   2L bc   2L bc
1077   3L f   3L f
1078      adefghijk\C0      adefghijk\C0
1079   0: adef   0: adef
1080   1: a   1: a
1081   2: <unset>   2: <unset>
1082   3: f   3: f
1083   0C adef (4)   0C adef (4)
1084    
1085  /^abc\00def/  /^abc\00def/I
1086  Capturing subpattern count = 0  Capturing subpattern count = 0
1087  Options: anchored  Options: anchored
1088  No first char  No first char
1089  No need char  No need char
1090      abc\00def\L\C0      abc\00def\L\C0
1091   0: abc\x00def   0: abc\x00def
1092   0C abc (7)   0C abc\x00def (7)
1093   0L abc   0L abc
1094    
1095  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1096  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1097  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 432  
1098  Capturing subpattern count = 8  Capturing subpattern count = 8
1099  Partial matching not supported  Contains explicit CR or LF match
1100  No options  No options
1101  First char = 'w'  First char = 'w'
1102  Need char = 'd'  Need char = 'd'
1103    
1104  /.*X/D  /.*X/IDZ
1105  ------------------------------------------------------------------  ------------------------------------------------------------------
1106    0   7 Bra 0          Bra
1107    3     Any*          Any*
1108    5     X          X
1109    7   7 Ket          Ket
1110   10     End          End
1111  ------------------------------------------------------------------  ------------------------------------------------------------------
1112  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1113  No options  No options
1114  First char at start or follows \n  First char at start or follows newline
1115  Need char = 'X'  Need char = 'X'
1116    
1117  /.*X/Ds  /.*X/IDZs
1118  ------------------------------------------------------------------  ------------------------------------------------------------------
1119    0   7 Bra 0          Bra
1120    3     Any*          AllAny*
1121    5     X          X
1122    7   7 Ket          Ket
1123   10     End          End
1124  ------------------------------------------------------------------  ------------------------------------------------------------------
1125  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1126  Options: anchored dotall  Options: anchored dotall
1127  No first char  No first char
1128  Need char = 'X'  Need char = 'X'
1129    
1130  /(.*X|^B)/D  /(.*X|^B)/IDZ
1131  ------------------------------------------------------------------  ------------------------------------------------------------------
1132    0  19 Bra 0          Bra
1133    3   7 Bra 1          CBra 1
1134    6     Any*          Any*
1135    8     X          X
1136   10   6 Alt          Alt
1137   13     ^          ^
1138   14     B          B
1139   16  13 Ket          Ket
1140   19  19 Ket          Ket
1141   22     End          End
1142  ------------------------------------------------------------------  ------------------------------------------------------------------
1143  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1144  No options  No options
1145  First char at start or follows \n  First char at start or follows newline
1146  No need char  No need char
1147    
1148  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1149  ------------------------------------------------------------------  ------------------------------------------------------------------
1150    0  19 Bra 0          Bra
1151    3   7 Bra 1          CBra 1
1152    6     Any*          AllAny*
1153    8     X          X
1154   10   6 Alt          Alt
1155   13     ^          ^
1156   14     B          B
1157   16  13 Ket          Ket
1158   19  19 Ket          Ket
1159   22     End          End
1160  ------------------------------------------------------------------  ------------------------------------------------------------------
1161  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1162  Options: anchored dotall  Options: anchored dotall
1163  No first char  No first char
1164  No need char  No need char
1165    
1166  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1167  ------------------------------------------------------------------  ------------------------------------------------------------------
1168    0  19 Bra 0          Bra
1169    3   7 Bra 1          CBra 1
1170    6     Any*          AllAny*
1171    8     X          X
1172   10   6 Alt          Alt
1173   13     ^          ^
1174   14     B          B
1175   16  13 Ket          Ket
1176   19  19 Ket          Ket
1177   22     End          End
1178  ------------------------------------------------------------------  ------------------------------------------------------------------
1179  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1180  Options: anchored dotall  Options: anchored dotall
1181  No first char  No first char
1182  No need char  No need char
1183    
1184  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1185  ------------------------------------------------------------------  ------------------------------------------------------------------
1186    0  25 Bra 0          Bra
1187    3   9 Bra 0          Bra
1188    6  04 Opt          AllAny*
1189    8     Any*          X
1190   10     X          Alt
1191   12   8 Alt          ^
1192   15  04 Opt          B
1193   17     ^          Ket
1194   18     B          Ket
1195   20  17 Ket          End
  23  00 Opt  
  25  25 Ket  
  28     End  
1196  ------------------------------------------------------------------  ------------------------------------------------------------------
1197  Capturing subpattern count = 0  Capturing subpattern count = 0
1198  Partial matching not supported  Options: anchored
1199  No options  No first char
 First char at start or follows \n  
1200  No need char  No need char
1201    
1202  /\Biss\B/+  /\Biss\B/I+
1203  Capturing subpattern count = 0  Capturing subpattern count = 0
1204    Max lookbehind = 1
1205  No options  No options
1206  First char = 'i'  First char = 'i'
1207  Need char = 's'  Need char = 's'
# Line 1235  Need char = 's' Line 1209  Need char = 's'
1209   0: iss   0: iss
1210   0+ issippi   0+ issippi
1211    
1212  /\Biss\B/+P  /iss/IG+
     Mississippi  
  0: iss  
  0+ issippi  
   
 /iss/G+  
1213  Capturing subpattern count = 0  Capturing subpattern count = 0
1214  No options  No options
1215  First char = 'i'  First char = 'i'
# Line 1251  Need char = 's' Line 1220  Need char = 's'
1220   0: iss   0: iss
1221   0+ ippi   0+ ippi
1222    
1223  /\Biss\B/G+  /\Biss\B/IG+
1224  Capturing subpattern count = 0  Capturing subpattern count = 0
1225    Max lookbehind = 1
1226  No options  No options
1227  First char = 'i'  First char = 'i'
1228  Need char = 's'  Need char = 's'
# Line 1260  Need char = 's' Line 1230  Need char = 's'
1230   0: iss   0: iss
1231   0+ issippi   0+ issippi
1232    
1233  /\Biss\B/g+  /\Biss\B/Ig+
1234  Capturing subpattern count = 0  Capturing subpattern count = 0
1235    Max lookbehind = 1
1236  No options  No options
1237  First char = 'i'  First char = 'i'
1238  Need char = 's'  Need char = 's'
# Line 1275  No match Line 1246  No match
1246      Mississippi\A      Mississippi\A
1247  No match  No match
1248    
1249  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1250  Capturing subpattern count = 0  Capturing subpattern count = 0
1251    Max lookbehind = 1
1252  No options  No options
1253  First char = 'i'  First char = 'i'
1254  Need char = 's'  Need char = 's'
# Line 1286  Need char = 's' Line 1258  Need char = 's'
1258   0: iss   0: iss
1259   0+ ippi   0+ ippi
1260    
1261  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1262  Capturing subpattern count = 0  Capturing subpattern count = 0
1263    Max lookbehind = 1
1264  No options  No options
1265  First char = 'i'  First char = 'i'
1266  Need char = 's'  Need char = 's'
# Line 1295  Need char = 's' Line 1268  Need char = 's'
1268   0: iss   0: iss
1269   0+ issippi   0+ issippi
1270    
1271  /^iss/g+  /^iss/Ig+
1272  Capturing subpattern count = 0  Capturing subpattern count = 0
1273  Options: anchored  Options: anchored
1274  No first char  No first char
# Line 1303  No need char Line 1276  No need char
1276      ississippi      ississippi
1277   0: iss   0: iss
1278   0+ issippi   0+ issippi
1279    
1280  /.*iss/g+  /.*iss/Ig+
1281  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1282  No options  No options
1283  First char at start or follows \n  First char at start or follows newline
1284  Need char = 's'  Need char = 's'
1285      abciss\nxyzisspqr      abciss\nxyzisspqr
1286   0: abciss   0: abciss
1287   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1288   0: xyziss   0: xyziss
1289   0+ pqr   0+ pqr
1290    
1291  /.i./+g  /.i./I+g
1292  Capturing subpattern count = 0  Capturing subpattern count = 0
1293  No options  No options
1294  No first char  No first char
# Line 1342  Need char = 'i' Line 1314  Need char = 'i'
1314   0+ river   0+ river
1315   0: riv   0: riv
1316   0+ er   0+ er
1317      Missouri river\A      Missouri river\A
1318   0: Mis   0: Mis
1319   0+ souri river   0+ souri river
1320    
1321  /^.is/+g  /^.is/I+g
1322  Capturing subpattern count = 0  Capturing subpattern count = 0
1323  Options: anchored  Options: anchored
1324  No first char  No first char
# Line 1355  No need char Line 1327  No need char
1327   0: Mis   0: Mis
1328   0+ sissippi   0+ sissippi
1329    
1330  /^ab\n/g+  /^ab\n/Ig+
1331  Capturing subpattern count = 0  Capturing subpattern count = 0
1332    Contains explicit CR or LF match
1333  Options: anchored  Options: anchored
1334  No first char  No first char
1335  No need char  No need char
# Line 1364  No need char Line 1337  No need char
1337   0: ab\x0a   0: ab\x0a
1338   0+ ab\x0acd   0+ ab\x0acd
1339    
1340  /^ab\n/mg+  /^ab\n/Img+
1341  Capturing subpattern count = 0  Capturing subpattern count = 0
1342    Contains explicit CR or LF match
1343  Options: multiline  Options: multiline
1344  First char at start or follows \n  First char at start or follows newline
1345  Need char = 10  Need char = \x0a
1346      ab\nab\ncd      ab\nab\ncd
1347   0: ab\x0a   0: ab\x0a
1348   0+ ab\x0acd   0+ ab\x0acd
1349   0: ab\x0a   0: ab\x0a
1350   0+ cd   0+ cd
1351    
1352  /abc/  /abc/I
1353  Capturing subpattern count = 0  Capturing subpattern count = 0
1354  No options  No options
1355  First char = 'a'  First char = 'a'
1356  Need char = 'c'  Need char = 'c'
1357    
1358  /abc|bac/  /abc|bac/I
1359  Capturing subpattern count = 0  Capturing subpattern count = 0
1360  No options  No options
1361  No first char  No first char
1362  Need char = 'c'  Need char = 'c'
1363    
1364  /(abc|bac)/  /(abc|bac)/I
1365  Capturing subpattern count = 1  Capturing subpattern count = 1
1366  No options  No options
1367  No first char  No first char
1368  Need char = 'c'  Need char = 'c'
1369    
1370  /(abc|(c|dc))/  /(abc|(c|dc))/I
1371  Capturing subpattern count = 2  Capturing subpattern count = 2
1372  No options  No options
1373  No first char  No first char
1374  Need char = 'c'  Need char = 'c'
1375    
1376  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1377  Capturing subpattern count = 2  Capturing subpattern count = 2
1378  No options  No options
1379  No first char  No first char
1380  Need char = 'c'  Need char = 'c'
1381    
1382  /a*/  /a*/I
1383  Capturing subpattern count = 0  Capturing subpattern count = 0
1384  Partial matching not supported  May match empty string
1385  No options  No options
1386  No first char  No first char
1387  No need char  No need char
1388    
1389  /a+/  /a+/I
1390  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1391  No options  No options
1392  First char = 'a'  First char = 'a'
1393  No need char  No need char
1394    
1395  /(baa|a+)/  /(baa|a+)/I
1396  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1397  No options  No options
1398  No first char  No first char
1399  Need char = 'a'  Need char = 'a'
1400    
1401  /a{0,3}/  /a{0,3}/I
1402  Capturing subpattern count = 0  Capturing subpattern count = 0
1403  Partial matching not supported  May match empty string
1404  No options  No options
1405  No first char  No first char
1406  No need char  No need char
1407    
1408  /baa{3,}/  /baa{3,}/I
1409  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1410  No options  No options
1411  First char = 'b'  First char = 'b'
1412  Need char = 'a'  Need char = 'a'
1413    
1414  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1415  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1416  No options  No options
1417  First char = '"'  First char = '"'
1418  Need char = '"'  Need char = '"'
1419    
1420  /(abc|ab[cd])/  /(abc|ab[cd])/I
1421  Capturing subpattern count = 1  Capturing subpattern count = 1
1422  No options  No options
1423  First char = 'a'  First char = 'a'
1424  No need char  No need char
1425    
1426  /(a|.)/  /(a|.)/I
1427  Capturing subpattern count = 1  Capturing subpattern count = 1
1428  No options  No options
1429  No first char  No first char
1430  No need char  No need char
1431    
1432  /a|ba|\w/  /a|ba|\w/I
1433  Capturing subpattern count = 0  Capturing subpattern count = 0
1434  No options  No options
1435  No first char  No first char
1436  No need char  No need char
1437    
1438  /abc(?=pqr)/  /abc(?=pqr)/I
1439  Capturing subpattern count = 0  Capturing subpattern count = 0
1440  No options  No options
1441  First char = 'a'  First char = 'a'
1442  Need char = 'r'  Need char = 'r'
1443    
1444  /...(?<=abc)/  /...(?<=abc)/I
1445  Capturing subpattern count = 0  Capturing subpattern count = 0
1446    Max lookbehind = 3
1447  No options  No options
1448  No first char  No first char
1449  No need char  No need char
1450    
1451  /abc(?!pqr)/  /abc(?!pqr)/I
1452  Capturing subpattern count = 0  Capturing subpattern count = 0
1453  No options  No options
1454  First char = 'a'  First char = 'a'
1455  Need char = 'c'  Need char = 'c'
1456    
1457  /ab./  /ab./I
1458  Capturing subpattern count = 0  Capturing subpattern count = 0
1459  No options  No options
1460  First char = 'a'  First char = 'a'
1461  Need char = 'b'  Need char = 'b'
1462    
1463  /ab[xyz]/  /ab[xyz]/I
1464  Capturing subpattern count = 0  Capturing subpattern count = 0
1465  No options  No options
1466  First char = 'a'  First char = 'a'
1467  Need char = 'b'  Need char = 'b'
1468    
1469  /abc*/  /abc*/I
1470  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1471  No options  No options
1472  First char = 'a'  First char = 'a'
1473  Need char = 'b'  Need char = 'b'
1474    
1475  /ab.c*/  /ab.c*/I
1476  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1477  No options  No options
1478  First char = 'a'  First char = 'a'
1479  Need char = 'b'  Need char = 'b'
1480    
1481  /a.c*/  /a.c*/I
1482  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1483  No options  No options
1484  First char = 'a'  First char = 'a'
1485  No need char  No need char
1486    
1487  /.c*/  /.c*/I
1488  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1489  No options  No options
1490  No first char  No first char
1491  No need char  No need char
1492    
1493  /ac*/  /ac*/I
1494  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1495  No options  No options
1496  First char = 'a'  First char = 'a'
1497  No need char  No need char
1498    
1499  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1500  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1501  No options  No options
1502  No first char  No first char
1503  No need char  No need char
1504    
1505  /a.c*|aba/  /a.c*|aba/I
1506  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1507  No options  No options
1508  First char = 'a'  First char = 'a'
1509  No need char  No need char
1510    
1511  /.+a/  /.+a/I
1512  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1513  No options  No options
1514  No first char  No first char
1515  Need char = 'a'  Need char = 'a'
1516    
1517  /(?=abcda)a.*/  /(?=abcda)a.*/I
1518  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1519  No options  No options
1520  First char = 'a'  First char = 'a'
1521  Need char = 'a'  Need char = 'a'
1522    
1523  /(?=a)a.*/  /(?=a)a.*/I
1524  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1525  No options  No options
1526  First char = 'a'  First char = 'a'
1527  No need char  No need char
1528    
1529  /a(b)*/  /a(b)*/I
1530  Capturing subpattern count = 1  Capturing subpattern count = 1
1531  No options  No options
1532  First char = 'a'  First char = 'a'
1533  No need char  No need char
1534    
1535  /a\d*/  /a\d*/I
1536  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1537  No options  No options
1538  First char = 'a'  First char = 'a'
1539  No need char  No need char
1540    
1541  /ab\d*/  /ab\d*/I
1542  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1543  No options  No options
1544  First char = 'a'  First char = 'a'
1545  Need char = 'b'  Need char = 'b'
1546    
1547  /a(\d)*/  /a(\d)*/I
1548  Capturing subpattern count = 1  Capturing subpattern count = 1
1549  No options  No options
1550  First char = 'a'  First char = 'a'
1551  No need char  No need char
1552    
1553  /abcde{0,0}/  /abcde{0,0}/I
1554  Capturing subpattern count = 0  Capturing subpattern count = 0
1555  No options  No options
1556  First char = 'a'  First char = 'a'
1557  Need char = 'd'  Need char = 'd'
1558    
1559  /ab\d+/  /ab\d+/I
1560  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1561  No options  No options
1562  First char = 'a'  First char = 'a'
1563  Need char = 'b'  Need char = 'b'
1564    
1565  /a(?(1)b)/  /a(?(1)b)(.)/I
1566  Capturing subpattern count = 0  Capturing subpattern count = 1
1567  No options  No options
1568  First char = 'a'  First char = 'a'
1569  No need char  No need char
1570    
1571  /a(?(1)bag|big)/  /a(?(1)bag|big)(.)/I
1572  Capturing subpattern count = 0  Capturing subpattern count = 1
1573  No options  No options
1574  First char = 'a'  First char = 'a'
1575  Need char = 'g'  Need char = 'g'
1576    
1577  /a(?(1)bag|big)*/  /a(?(1)bag|big)*(.)/I
1578  Capturing subpattern count = 0  Capturing subpattern count = 1
1579  No options  No options
1580  First char = 'a'  First char = 'a'
1581  No need char  No need char
1582    
1583  /a(?(1)bag|big)+/  /a(?(1)bag|big)+(.)/I
1584  Capturing subpattern count = 0  Capturing subpattern count = 1
1585  No options  No options
1586  First char = 'a'  First char = 'a'
1587  Need char = 'g'  Need char = 'g'
1588    
1589  /a(?(1)b..|b..)/  /a(?(1)b..|b..)(.)/I
1590  Capturing subpattern count = 0  Capturing subpattern count = 1
1591  No options  No options
1592  First char = 'a'  First char = 'a'
1593  Need char = 'b'  Need char = 'b'
1594    
1595  /ab\d{0}e/  /ab\d{0}e/I
1596  Capturing subpattern count = 0  Capturing subpattern count = 0
1597  No options  No options
1598  First char = 'a'  First char = 'a'
1599  Need char = 'e'  Need char = 'e'
1600    
1601  /a?b?/  /a?b?/I
1602  Capturing subpattern count = 0  Capturing subpattern count = 0
1603    May match empty string
1604  No options  No options
1605  No first char  No first char
1606  No need char  No need char
# Line 1655  No need char Line 1614  No need char
1614   0:   0:
1615      *** Failers      *** Failers
1616   0:   0:
1617      \N      \N
1618  No match  No match
1619    
1620  /|-/  /|-/I
1621  Capturing subpattern count = 0  Capturing subpattern count = 0
1622    May match empty string
1623  No options  No options
1624  No first char  No first char
1625  No need char  No need char
# Line 1671  No need char Line 1631  No need char
1631   0: -   0: -
1632      *** Failers      *** Failers
1633   0:   0:
1634      \Nabc      \Nabc
1635  No match  No match
1636    
1637  /a*(b+)(z)(z)/P  /^.?abcd/IS
     aaaabbbbzzzz  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O0  
     aaaabbbbzzzz\O1  
  0: aaaabbbbzz  
     aaaabbbbzzzz\O2  
  0: aaaabbbbzz  
  1: bbbb  
     aaaabbbbzzzz\O3  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
     aaaabbbbzzzz\O4  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O5  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
   
 /^.?abcd/S  
1638  Capturing subpattern count = 0  Capturing subpattern count = 0
1639  Options: anchored  Options: anchored
1640  No first char  No first char
1641  Need char = 'd'  Need char = 'd'
1642  Study returned NULL  Subject length lower bound = 4
1643    No set of starting bytes
1644    
1645  /\(             # ( at start  /\(             # ( at start
1646    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1715  Study returned NULL Line 1649  Study returned NULL
1649    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1650    )*            # Zero or more contents    )*            # Zero or more contents
1651    \)            # Closing )    \)            # Closing )
1652    /x    /Ix
1653  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1654  Options: extended  Options: extended
1655  First char = '('  First char = '('
1656  Need char = ')'  Need char = ')'
# Line 1727  Need char = ')' Line 1660  Need char = ')'
1660   0: (abcd)   0: (abcd)
1661      xyz(abcd)      xyz(abcd)
1662   0: (abcd)   0: (abcd)
1663      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1664   0: (ab(xy)cd)   0: (ab(xy)cd)
1665      (ab(xycd)pqr      (ab(xycd)pqr
1666   0: (xycd)   0: (xycd)
1667      () abc ()      () abc ()
1668   0: ()   0: ()
1669      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1670   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1671      *** Failers      *** Failers
1672  No match  No match
1673      abcd      abcd
1674  No match  No match
1675      abcd)      abcd)
1676  No match  No match
1677      (abcd      (abcd
1678  No match  No match
1679    
1680  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1681  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1682  Options: extended  Options: extended
1683  First char = '('  First char = '('
1684  Need char = ')'  Need char = ')'
1685      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1686   0: (ab(xy)cd)   0: (ab(xy)cd)
1687   1: cd   1: cd
1688      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1759  Need char = ')' Line 1691  Need char = ')'
1691   0: (x(y)z)   0: (x(y)z)
1692   1: z   1: z
1693    
1694  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1695  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1696  Options: extended  Options: extended
1697  First char = '('  First char = '('
1698  Need char = ')'  Need char = ')'
# Line 1769  Need char = ')' Line 1700  Need char = ')'
1700   0: (abcd)   0: (abcd)
1701      (ab(xy)cd)      (ab(xy)cd)
1702   0: (xy)   0: (xy)
1703      (a(b(c)d)e)      (a(b(c)d)e)
1704   0: (c)   0: (c)
1705      ((ab))      ((ab))
1706   0: ((ab))   0: ((ab))
1707      *** Failers      *** Failers
1708  No match  No match
1709      ()      ()
1710  No match  No match
1711    
1712  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1713  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1714  Options: extended  Options: extended
1715  First char = '('  First char = '('
1716  Need char = ')'  Need char = ')'
# Line 1789  Need char = ')' Line 1719  Need char = ')'
1719      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1720   0: (fsh)   0: (fsh)
1721    
1722  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1723  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1724  Options: extended  Options: extended
1725  First char = '('  First char = '('
1726  Need char = ')'  Need char = ')'
# Line 1799  Need char = ')' Line 1728  Need char = ')'
1728   0: (ab(xy)cd)   0: (ab(xy)cd)
1729   1: cd   1: cd
1730    
1731  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1732  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
1733  Options: extended  Options: extended
1734  First char = '('  First char = '('
1735  Need char = ')'  Need char = ')'
# Line 1810  Need char = ')' Line 1738  Need char = ')'
1738   1: ab(xy)cd   1: ab(xy)cd
1739   2: cd   2: cd
1740    
1741  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1742  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1743  Options: extended  Options: extended
1744  First char = '('  First char = '('
1745  Need char = ')'  Need char = ')'
# Line 1827  Need char = ')' Line 1754  Need char = ')'
1754   2: ab(xy)cd   2: ab(xy)cd
1755   3: cd   3: cd
1756    
1757  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1758  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1759  Options: extended  Options: extended
1760  First char = '('  First char = '('
1761  Need char = ')'  Need char = ')'
# Line 1844  Need char = ')' Line 1770  Need char = ')'
1770   2: 123   2: 123
1771   3: cd   3: cd
1772    
1773  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1774  Capturing subpattern count = 11  Capturing subpattern count = 11
 Partial matching not supported  
1775  Options: extended  Options: extended
1776  First char = '('  First char = '('
1777  Need char = ')'  Need char = ')'
# Line 1864  Need char = ')' Line 1789  Need char = ')'
1789  10: ab(xy)cd  10: ab(xy)cd
1790  11: cd  11: cd
1791    
1792  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1793  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1794  Options: extended  Options: extended
1795  First char = '('  First char = '('
1796  Need char = ')'  Need char = ')'
# Line 1874  Need char = ')' Line 1798  Need char = ')'
1798   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1799   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1800   2: 123   2: 123
  3: <unset>  
1801    
1802  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1803  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1804  Options: extended  Options: extended
1805  First char = '('  First char = '('
1806  Need char = ')'  Need char = ')'
# Line 1893  Need char = ')' Line 1815  Need char = ')'
1815   2: ij   2: ij
1816   3: (cd(ef)gh)   3: (cd(ef)gh)
1817    
1818  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1819    ------------------------------------------------------------------
1820            Bra
1821            ^
1822            [0-9A-Za-z]
1823            Ket
1824            End
1825    ------------------------------------------------------------------
1826    Capturing subpattern count = 0
1827    Options: anchored
1828    No first char
1829    No need char
1830    
1831    /^[[:^alnum:]]/DZ
1832  ------------------------------------------------------------------  ------------------------------------------------------------------
1833    0  37 Bra 0          Bra
1834    3     ^          ^
1835    4     [0-9A-Za-z]          [\x00-/:-@[-`{-\xff] (neg)
1836   37  37 Ket          Ket
1837   40     End          End
1838  ------------------------------------------------------------------  ------------------------------------------------------------------
1839  Capturing subpattern count = 0  Capturing subpattern count = 0
1840  Options: anchored  Options: anchored
1841  No first char  No first char
1842  No need char  No need char
1843    
1844  /^[[:^alnum:]]/D  /^[[:alpha:]]/DZ
1845  ------------------------------------------------------------------  ------------------------------------------------------------------
1846    0  37 Bra 0          Bra
1847    3     ^          ^
1848    4     [\x00-/:-@[-`{-\xff]          [A-Za-z]
1849   37  37 Ket          Ket
1850   40     End          End
1851  ------------------------------------------------------------------  ------------------------------------------------------------------
1852  Capturing subpattern count = 0  Capturing subpattern count = 0
1853  Options: anchored  Options: anchored
1854  No first char  No first char
1855  No need char  No need char
1856    
1857  /^[[:alpha:]]/D  /^[[:^alpha:]]/DZ
1858  ------------------------------------------------------------------  ------------------------------------------------------------------
1859    0  37 Bra 0          Bra
1860    3     ^          ^
1861    4     [A-Za-z]          [\x00-@[-`{-\xff] (neg)
1862   37  37 Ket          Ket
1863   40     End          End
1864  ------------------------------------------------------------------  ------------------------------------------------------------------
1865  Capturing subpattern count = 0  Capturing subpattern count = 0
1866  Options: anchored  Options: anchored
1867  No first char  No first char
1868  No need char  No need char
1869    
1870  /^[[:^alpha:]]/D  /[_[:alpha:]]/IS
1871    Capturing subpattern count = 0
1872    No options
1873    No first char
1874    No need char
1875    Subject length lower bound = 1
1876    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
1877      _ 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
1878    
1879    /^[[:ascii:]]/DZ
1880  ------------------------------------------------------------------  ------------------------------------------------------------------
1881    0  37 Bra 0          Bra
1882    3     ^          ^
1883    4     [\x00-@[-`{-\xff]          [\x00-\x7f]
1884   37  37 Ket          Ket
1885   40     End          End
1886  ------------------------------------------------------------------  ------------------------------------------------------------------
1887  Capturing subpattern count = 0  Capturing subpattern count = 0
1888  Options: anchored  Options: anchored
1889  No first char  No first char
1890  No need char  No need char
1891    
1892  /^[[:ascii:]]/D  /^[[:^ascii:]]/DZ
1893  ------------------------------------------------------------------  ------------------------------------------------------------------
1894    0  37 Bra 0          Bra
1895    3     ^          ^
1896    4     [\x00-\x7f]          [\x80-\xff] (neg)
1897   37  37 Ket          Ket
1898   40     End          End
1899  ------------------------------------------------------------------  ------------------------------------------------------------------
1900  Capturing subpattern count = 0  Capturing subpattern count = 0
1901  Options: anchored  Options: anchored
1902  No first char  No first char
1903  No need char  No need char
1904    
1905  /^[[:^ascii:]]/D  /^[[:blank:]]/DZ
1906  ------------------------------------------------------------------  ------------------------------------------------------------------
1907    0  37 Bra 0          Bra
1908    3     ^          ^
1909    4     [\x80-\xff]          [\x09 ]
1910   37  37 Ket          Ket
1911   40     End          End
1912  ------------------------------------------------------------------  ------------------------------------------------------------------
1913  Capturing subpattern count = 0  Capturing subpattern count = 0
1914  Options: anchored  Options: anchored
1915  No first char  No first char
1916  No need char  No need char
1917    
1918  /^[[:blank:]]/D  /^[[:^blank:]]/DZ
1919  ------------------------------------------------------------------  ------------------------------------------------------------------
1920    0  37 Bra 0          Bra
1921    3     ^          ^
1922    4     [\x09 ]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
1923   37  37 Ket          Ket
1924   40     End          End
1925  ------------------------------------------------------------------  ------------------------------------------------------------------
1926  Capturing subpattern count = 0  Capturing subpattern count = 0
1927  Options: anchored  Options: anchored
1928  No first char  No first char
1929  No need char  No need char
1930    
1931  /^[[:cntrl:]]/D  /[\n\x0b\x0c\x0d[:blank:]]/IS
1932    Capturing subpattern count = 0
1933    Contains explicit CR or LF match
1934    No options
1935    No first char
1936    No need char
1937    Subject length lower bound = 1
1938    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1939    
1940    /^[[:cntrl:]]/DZ
1941  ------------------------------------------------------------------  ------------------------------------------------------------------
1942    0  37 Bra 0          Bra
1943    3     ^          ^
1944    4     [\x00-\x1f\x7f]          [\x00-\x1f\x7f]
1945   37  37 Ket          Ket
1946   40     End          End
1947  ------------------------------------------------------------------  ------------------------------------------------------------------
1948  Capturing subpattern count = 0  Capturing subpattern count = 0
1949  Options: anchored  Options: anchored
1950  No first char  No first char
1951  No need char  No need char
1952    
1953  /^[[:digit:]]/D  /^[[:digit:]]/DZ
1954  ------------------------------------------------------------------  ------------------------------------------------------------------
1955    0  37 Bra 0          Bra
1956    3     ^          ^
1957    4     [0-9]          [0-9]
1958   37  37 Ket          Ket
1959   40     End          End
1960  ------------------------------------------------------------------  ------------------------------------------------------------------
1961  Capturing subpattern count = 0  Capturing subpattern count = 0
1962  Options: anchored  Options: anchored
1963  No first char  No first char
1964  No need char  No need char
1965    
1966  /^[[:graph:]]/D  /^[[:graph:]]/DZ
1967  ------------------------------------------------------------------  ------------------------------------------------------------------
1968    0  37 Bra 0          Bra
1969    3     ^          ^
1970    4     [!-~]          [!-~]
1971   37  37 Ket          Ket
1972   40     End          End
1973  ------------------------------------------------------------------  ------------------------------------------------------------------
1974  Capturing subpattern count = 0  Capturing subpattern count = 0
1975  Options: anchored  Options: anchored
1976  No first char  No first char
1977  No need char  No need char
1978    
1979  /^[[:lower:]]/D  /^[[:lower:]]/DZ
1980  ------------------------------------------------------------------  ------------------------------------------------------------------
1981    0  37 Bra 0          Bra
1982    3     ^          ^
1983    4     [a-z]          [a-z]
1984   37  37 Ket          Ket
1985   40     End          End
1986  ------------------------------------------------------------------  ------------------------------------------------------------------
1987  Capturing subpattern count = 0  Capturing subpattern count = 0
1988  Options: anchored  Options: anchored
1989  No first char  No first char
1990  No need char  No need char
1991    
1992  /^[[:print:]]/D  /^[[:print:]]/DZ
1993  ------------------------------------------------------------------  ------------------------------------------------------------------
1994    0  37 Bra 0          Bra
1995    3     ^          ^
1996    4     [ -~]          [ -~]
1997   37  37 Ket          Ket
1998   40     End          End
1999  ------------------------------------------------------------------  ------------------------------------------------------------------
2000  Capturing subpattern count = 0  Capturing subpattern count = 0
2001  Options: anchored  Options: anchored
2002  No first char  No first char
2003  No need char  No need char
2004    
2005  /^[[:punct:]]/D  /^[[:punct:]]/DZ
2006  ------------------------------------------------------------------  ------------------------------------------------------------------
2007    0  37 Bra 0          Bra
2008    3     ^          ^
2009    4     [!-/:-@[-`{-~]          [!-/:-@[-`{-~]
2010   37  37 Ket          Ket
2011   40     End          End
2012  ------------------------------------------------------------------  ------------------------------------------------------------------
2013  Capturing subpattern count = 0  Capturing subpattern count = 0
2014  Options: anchored  Options: anchored
2015  No first char  No first char
2016  No need char  No need char
2017    
2018  /^[[:space:]]/D  /^[[:space:]]/DZ
2019  ------------------------------------------------------------------  ------------------------------------------------------------------
2020    0  37 Bra 0          Bra
2021    3     ^          ^
2022    4     [\x09-\x0d ]          [\x09-\x0d ]
2023   37  37 Ket          Ket
2024   40     End          End
2025  ------------------------------------------------------------------  ------------------------------------------------------------------
2026  Capturing subpattern count = 0  Capturing subpattern count = 0
2027  Options: anchored  Options: anchored
2028  No first char  No first char
2029  No need char  No need char
2030    
2031  /^[[:upper:]]/D  /^[[:upper:]]/DZ
2032  ------------------------------------------------------------------  ------------------------------------------------------------------
2033    0  37 Bra 0          Bra
2034    3     ^          ^
2035    4     [A-Z]          [A-Z]
2036   37  37 Ket          Ket
2037   40     End          End
2038  ------------------------------------------------------------------  ------------------------------------------------------------------
2039  Capturing subpattern count = 0  Capturing subpattern count = 0
2040  Options: anchored  Options: anchored
2041  No first char  No first char
2042  No need char  No need char
2043    
2044  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2045  ------------------------------------------------------------------  ------------------------------------------------------------------
2046    0  37 Bra 0          Bra
2047    3     ^          ^
2048    4     [0-9A-Fa-f]          [0-9A-Fa-f]
2049   37  37 Ket          Ket
2050   40     End          End
2051  ------------------------------------------------------------------  ------------------------------------------------------------------
2052  Capturing subpattern count = 0  Capturing subpattern count = 0
2053  Options: anchored  Options: anchored
2054  No first char  No first char
2055  No need char  No need char
2056    
2057  /^[[:word:]]/D  /^[[:word:]]/DZ
2058  ------------------------------------------------------------------  ------------------------------------------------------------------
2059    0  37 Bra 0          Bra
2060    3     ^          ^
2061    4     [0-9A-Z_a-z]          [0-9A-Z_a-z]
2062   37  37 Ket          Ket
2063   40     End          End
2064  ------------------------------------------------------------------  ------------------------------------------------------------------
2065  Capturing subpattern count = 0  Capturing subpattern count = 0
2066  Options: anchored  Options: anchored
2067  No first char  No first char
2068  No need char  No need char
2069    
2070  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2071  ------------------------------------------------------------------  ------------------------------------------------------------------
2072    0  37 Bra 0          Bra
2073    3     ^          ^
2074    4     [ -~\x80-\xff]          [ -~\x80-\xff] (neg)
2075   37  37 Ket          Ket
2076   40     End          End
2077  ------------------------------------------------------------------  ------------------------------------------------------------------
2078  Capturing subpattern count = 0  Capturing subpattern count = 0
2079  Options: anchored  Options: anchored
2080  No first char  No first char
2081  No need char  No need char
2082    
2083  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2084  ------------------------------------------------------------------  ------------------------------------------------------------------
2085    0  37 Bra 0          Bra
2086    3     ^          ^
2087    4     [\x00-/12:-\xff]          [\x00-/12:-\xff] (neg)
2088   37  37 Ket          Ket
2089   40     End          End
2090  ------------------------------------------------------------------  ------------------------------------------------------------------
2091  Capturing subpattern count = 0  Capturing subpattern count = 0
2092  Options: anchored  Options: anchored
2093  No first char  No first char
2094  No need char  No need char
2095    
2096  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2097  ------------------------------------------------------------------  ------------------------------------------------------------------
2098    0  37 Bra 0          Bra
2099    3     ^          ^
2100    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2101   37  37 Ket          Ket
2102   40     End          End
2103  ------------------------------------------------------------------  ------------------------------------------------------------------
2104  Capturing subpattern count = 0  Capturing subpattern count = 0
2105  Options: anchored  Options: anchored
2106  No first char  No first char
2107  No need char  No need char
2108    
2109  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2110  ------------------------------------------------------------------  ------------------------------------------------------------------
2111    0  36 Bra 0          Bra
2112    3     [%01A-Za-z]          [%01A-Za-z]
2113   36  36 Ket          Ket
2114   39     End          End
2115  ------------------------------------------------------------------  ------------------------------------------------------------------
2116  Capturing subpattern count = 0  Capturing subpattern count = 0
2117  No options  No options
2118  No first char  No first char
2119  No need char  No need char
2120    
2121  /[[.ch.]]/  /[[.ch.]]/I
2122  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2123    
2124  /[[=ch=]]/  /[[=ch=]]/I
2125  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2126    
2127  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2128  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2129    
2130  /[[:upper:]]/i  /[[:upper:]]/Ii
2131  Capturing subpattern count = 0  Capturing subpattern count = 0
2132  Options: caseless  Options: caseless
2133  No first char  No first char
2134  No need char  No need char
2135      A      A
2136   0: A   0: A
2137      a      a
2138   0: a   0: a
2139    
2140  /[[:lower:]]/i  /[[:lower:]]/Ii
2141  Capturing subpattern count = 0  Capturing subpattern count = 0
2142  Options: caseless  Options: caseless
2143  No first char  No first char
2144  No need char  No need char
2145      A      A
2146   0: A   0: A
2147      a      a
2148   0: a   0: a
2149    
2150  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2151  Capturing subpattern count = 1  Capturing subpattern count = 1
2152  Options: caseless  Options: caseless
 Case state changes  
2153  No first char  No first char
2154  No need char  No need char
2155      ab      ab
# Line 2211  No need char Line 2163  No need char
2163   1: a   1: a
2164      Ab      Ab
2165  No match  No match
2166      AB      AB
2167  No match  No match
2168    
2169  /[\200-\410]/  /[\200-\110]/I
2170  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2171    
2172  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2173  Failed: invalid condition (?(0) at offset 5  Failed: invalid condition (?(0) at offset 6
2174    
2175  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2176  Capturing subpattern count = 0  Capturing subpattern count = 0
2177  No options  No options
2178  First char = 'T'  First char = 'T'
2179  Need char = 'd'  Need char = 'd'
2180    
2181  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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)/  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2182  Capturing subpattern count = 271  Capturing subpattern count = 271
2183  Max back reference = 270  Max back reference = 270
 Partial matching not supported  
2184  No options  No options
2185  No first char  No first char
2186  No need char  No need char
# Line 2507  No need char Line 2458  No need char
2458  270: ABC  270: ABC
2459  271: ABC  271: ABC
2460    
2461  /This one's here because Perl does this differently and PCRE can't at present/  /This one's here because Perl does this differently and PCRE can't at present/I
2462  Capturing subpattern count = 0  Capturing subpattern count = 0
2463  No options  No options
2464  First char = 'T'  First char = 'T'
2465  Need char = 't'  Need char = 't'
2466    
2467  /(main(O)?)+/  /(main(O)?)+/I
2468  Capturing subpattern count = 2  Capturing subpattern count = 2
2469  No options  No options
2470  First char = 'm'  First char = 'm'
# Line 2525  Need char = 'n' Line 2476  Need char = 'n'
2476   0: mainOmain   0: mainOmain
2477   1: main   1: main
2478   2: O   2: O
2479    
2480  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2481  Capturing subpattern count = 1  Capturing subpattern count = 1
2482  No options  No options
2483  First char = 'T'  First char = 'T'
2484  Need char = 's'  Need char = 's'
2485    
2486  /^(a(b)?)+$/  /^(a(b)?)+$/I
2487  Capturing subpattern count = 2  Capturing subpattern count = 2
2488  Options: anchored  Options: anchored
2489  No first char  No first char
# Line 2541  No need char Line 2492  No need char
2492   0: aba   0: aba
2493   1: a   1: a
2494   2: b   2: b
2495    
2496  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2497  Capturing subpattern count = 2  Capturing subpattern count = 2
2498  Options: anchored  Options: anchored
2499  No first char  No first char
2500  No need char  No need char
2501      aabbaa      aabbaa
2502   0: aabbaa   0: aabbaa
2503   1: aa   1: aa
2504   2: bb   2: bb
2505    
2506  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2507  Capturing subpattern count = 2  Capturing subpattern count = 2
2508  Options: anchored  Options: anchored
2509  No first char  No first char
2510  No need char  No need char
2511      aabbaa      aabbaa
2512   0: aabbaa   0: aabbaa
2513   1: aa   1: aa
2514   2: bb   2: bb
2515    
2516  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2517  Capturing subpattern count = 2  Capturing subpattern count = 2
2518  Options: anchored  Options: anchored
2519  No first char  No first char
2520  No need char  No need char
2521      aabbaa      aabbaa
2522   0: aabbaa   0: aabbaa
2523   1: aa   1: aa
2524   2: bb   2: bb
2525    
2526  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2527  Capturing subpattern count = 1  Capturing subpattern count = 1
2528  Options: anchored  Options: anchored
2529  No first char  No first char
2530  No need char  No need char
2531      aabbaa      aabbaa
2532   0: aabbaa   0: aabbaa
2533   1: bb   1: bb
2534    
2535  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2536  Capturing subpattern count = 3  Capturing subpattern count = 3
2537  Options: anchored  Options: anchored
2538  No first char  No first char
2539  No need char  No need char
2540      aabbaa      aabbaa
2541   0: aabbaa   0: aabbaa
2542   1: aa   1: aa
2543   2: bb   2: bb
2544   3: b   3: b
2545    
2546  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2547  Capturing subpattern count = 2  Capturing subpattern count = 2
2548  Options: anchored  Options: anchored
2549  No first char  No first char
2550  No need char  No need char
2551      aabbaa      aabbaa
2552   0: aabbaa   0: aabbaa
2553   1: bb   1: bb
2554   2: b   2: b
2555    
2556  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2557  Capturing subpattern count = 1  Capturing subpattern count = 1
2558  Options: anchored  Options: anchored
2559  No first char  No first char
2560  No need char  No need char
2561      aabbaa      aabbaa
2562   0: aabbaa   0: aabbaa
2563   1: bb   1: bb
2564    
2565  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2566  Capturing subpattern count = 1  Capturing subpattern count = 1
2567  Options: anchored  Options: anchored
2568  No first char  No first char
2569  No need char  No need char
2570      aabbbaa      aabbbaa
2571   0: aabbbaa   0: aabbbaa
2572   1: bbb   1: bbb
2573    
2574  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2575  Capturing subpattern count = 1  Capturing subpattern count = 1
2576  Options: anchored  Options: anchored
2577  No first char  No first char
2578  No need char  No need char
2579      aabbbaa      aabbbaa
2580   0: aabbbaa   0: aabbbaa
2581   1: bbb   1: bbb
2582    
2583  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2584  Capturing subpattern count = 1  Capturing subpattern count = 1
2585  Options: anchored  Options: anchored
2586  No first char  No first char
2587  No need char  No need char
2588      aabbaa      aabbaa
2589   0: aabbaa   0: aabbaa
2590   1: b   1: b
2591    
2592  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2593  Capturing subpattern count = 1  Capturing subpattern count = 1
2594  Options: anchored  Options: anchored
2595  No first char  No first char
2596  No need char  No need char
2597      aabbbaa      aabbbaa
2598   0: aabbbaa   0: aabbbaa
2599   1: bb   1: bb
2600    
2601  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2602  Capturing subpattern count = 3  Capturing subpattern count = 3
2603  Options: anchored  Options: anchored
2604  No first char  No first char
2605  No need char  No need char
2606      aabbbaa      aabbbaa
2607   0: aabbbaa   0: aabbbaa
2608   1: aa   1: aa
2609   2: bbb   2: bbb
2610   3: bb   3: bb
2611    
2612  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2613  Capturing subpattern count = 3  Capturing subpattern count = 3
2614  Options: anchored  Options: anchored
2615  No first char  No first char
2616  No need char  No need char
2617      aabbbbaa      aabbbbaa
2618   0: aabbbbaa   0: aabbbbaa
2619   1: aa   1: aa
2620   2: bbbb   2: bbbb
2621   3: bb   3: bb
2622    
2623  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2624  Capturing subpattern count = 0  Capturing subpattern count = 0
2625  No options  No options
2626  First char = '-'  First char = '-'
2627  Need char = '-'  Need char = '-'
2628    
2629  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2630  ------------------------------------------------------------------  ------------------------------------------------------------------
2631    0   3 Bra 0          Bra
2632    3   3 Ket          Ket
2633    6     End          End
2634  ------------------------------------------------------------------  ------------------------------------------------------------------
2635  Capturing subpattern count = 0  Capturing subpattern count = 0
2636    May match empty string
2637  Options: extended  Options: extended
2638  No first char  No first char
2639  No need char  No need char
2640    
2641  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 9  
2642  ------------------------------------------------------------------  ------------------------------------------------------------------
2643    0   5 Bra 0          Bra
2644    3     a          a
2645    5   5 Ket          Ket
2646    8     End          End
2647  ------------------------------------------------------------------  ------------------------------------------------------------------
2648  Capturing subpattern count = 0  Capturing subpattern count = 0
2649  Options: extended  Options: extended
2650  First char = 'a'  First char = 'a'
2651  No need char  No need char
2652    
2653  /[\s]/D  /[\s]/DZ
2654  ------------------------------------------------------------------  ------------------------------------------------------------------
2655    0  36 Bra 0          Bra
2656    3     [\x09\x0a\x0c\x0d ]          [\x09-\x0d ]
2657   36  36 Ket          Ket
2658   39     End          End
2659  ------------------------------------------------------------------  ------------------------------------------------------------------
2660  Capturing subpattern count = 0  Capturing subpattern count = 0
2661  No options  No options
2662  No first char  No first char
2663  No need char  No need char
2664    
2665  /[\S]/D  /[\S]/DZ
2666  ------------------------------------------------------------------  ------------------------------------------------------------------
2667    0  36 Bra 0          Bra
2668    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0e-\x1f!-\xff] (neg)
2669   36  36 Ket          Ket
2670   39     End          End
2671  ------------------------------------------------------------------  ------------------------------------------------------------------
2672  Capturing subpattern count = 0  Capturing subpattern count = 0
2673  No options  No options
2674  No first char  No first char
2675  No need char  No need char
2676    
2677  /a(?i)b/D  /a(?i)b/DZ
2678  ------------------------------------------------------------------  ------------------------------------------------------------------
2679    0   9 Bra 0          Bra
2680    3     a          a
2681    5  01 Opt       /i b
2682    7  NC b          Ket
2683    9   9 Ket          End
  12     End  
2684  ------------------------------------------------------------------  ------------------------------------------------------------------
2685  Capturing subpattern count = 0  Capturing subpattern count = 0
2686  No options  No options
 Case state changes  
2687  First char = 'a'  First char = 'a'
2688  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2689      ab      ab
2690   0: ab   0: ab
2691      aB      aB
2692   0: aB   0: aB
2693      *** Failers      *** Failers
2694  No match  No match
2695      AB      AB
2696  No match  No match
2697    
2698  /(a(?i)b)/D  /(a(?i)b)/DZ
2699  ------------------------------------------------------------------  ------------------------------------------------------------------
2700    0  17 Bra 0          Bra
2701    3   9 Bra 1          CBra 1
2702    6     a          a
2703    8  01 Opt       /i b
2704   10  NC b          Ket
2705   12   9 Ket          Ket
2706   15  00 Opt          End
  17  17 Ket  
  20     End  
2707  ------------------------------------------------------------------  ------------------------------------------------------------------
2708  Capturing subpattern count = 1  Capturing subpattern count = 1
2709  No options  No options
 Case state changes  
2710  First char = 'a'  First char = 'a'
2711  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2712      ab      ab
# Line 2770  Need char = 'b' (caseless) Line 2715  Need char = 'b' (caseless)
2715      aB      aB
2716   0: aB   0: aB
2717   1: aB   1: aB
2718      *** Failers      *** Failers
2719  No match  No match
2720      AB      AB
2721  No match  No match
2722    
2723  /   (?i)abc/xD  /   (?i)abc/IxDZ
2724  ------------------------------------------------------------------  ------------------------------------------------------------------
2725    0   9 Bra 0          Bra
2726    3  NC abc       /i abc
2727    9   9 Ket          Ket
2728   12     End          End
2729  ------------------------------------------------------------------  ------------------------------------------------------------------
2730  Capturing subpattern count = 0  Capturing subpattern count = 0
2731  Options: caseless extended  Options: caseless extended
# Line 2788  First char = 'a' (caseless) Line 2733  First char = 'a' (caseless)
2733  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2734    
2735  /#this is a comment  /#this is a comment
2736    (?i)abc/xD    (?i)abc/IxDZ
2737  ------------------------------------------------------------------  ------------------------------------------------------------------
2738    0   9 Bra 0          Bra
2739    3  NC abc       /i abc
2740    9   9 Ket          Ket
2741   12     End          End
2742  ------------------------------------------------------------------  ------------------------------------------------------------------
2743  Capturing subpattern count = 0  Capturing subpattern count = 0
2744  Options: caseless extended  Options: caseless extended
2745  First char = 'a' (caseless)  First char = 'a' (caseless)
2746  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2747    
2748  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2749  ------------------------------------------------------------------  ------------------------------------------------------------------
2750    0 603 Bra 0          Bra
2751    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2752  603 603 Ket          Ket
2753  606     End          End
2754  ------------------------------------------------------------------  ------------------------------------------------------------------
2755  Capturing subpattern count = 0  Capturing subpattern count = 0
2756  No options  No options
2757  First char = '1'  First char = '1'
2758  Need char = '0'  Need char = '0'
2759    
2760  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2761  ------------------------------------------------------------------  ------------------------------------------------------------------
2762    0 603 Bra 0          Bra
2763    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2764  603 603 Ket          Ket
2765  606     End          End
2766  ------------------------------------------------------------------  ------------------------------------------------------------------
2767  Capturing subpattern count = 0  Capturing subpattern count = 0
2768  No options  No options
2769  First char = '1'  First char = '1'
2770  Need char = '0'  Need char = '0'
2771    
2772  /\Q\E/D  /\Q\E/DZ
2773  ------------------------------------------------------------------  ------------------------------------------------------------------
2774    0   3 Bra 0          Bra
2775    3   3 Ket          Ket
2776    6     End          End
2777  ------------------------------------------------------------------  ------------------------------------------------------------------
2778  Capturing subpattern count = 0  Capturing subpattern count = 0
2779    May match empty string
2780  No options  No options
2781  No first char  No first char
2782  No need char  No need char
2783      \      \
2784   0:   0:
2785    
2786  /\Q\Ex/D  /\Q\Ex/DZ
2787  ------------------------------------------------------------------  ------------------------------------------------------------------
2788    0   5 Bra 0          Bra
2789    3     x          x
2790    5   5 Ket          Ket
2791    8     End          End
2792  ------------------------------------------------------------------  ------------------------------------------------------------------
2793  Capturing subpattern count = 0  Capturing subpattern count = 0
2794  No options  No options
2795  First char = 'x'  First char = 'x'
2796  No need char  No need char
2797    
2798  / \Q\E/D  / \Q\E/DZ
2799  ------------------------------------------------------------------  ------------------------------------------------------------------
2800    0   5 Bra 0          Bra
2801    3  
2802    5   5 Ket          Ket
2803    8     End          End
2804  ------------------------------------------------------------------  ------------------------------------------------------------------
2805  Capturing subpattern count = 0  Capturing subpattern count = 0
2806  No options  No options
2807  First char = ' '  First char = ' '
2808  No need char  No need char
2809    
2810  /a\Q\E/D  /a\Q\E/DZ
2811  ------------------------------------------------------------------  ------------------------------------------------------------------
2812    0   5 Bra 0          Bra
2813    3     a          a
2814    5   5 Ket          Ket
2815    8     End          End
2816  ------------------------------------------------------------------  ------------------------------------------------------------------
2817  Capturing subpattern count = 0  Capturing subpattern count = 0
2818  No options  No options
# Line 2876  No need char Line 2822  No need char
2822   0: a   0: a
2823    bca    bca
2824   0: a   0: a
2825    bac    bac
2826   0: a   0: a
2827    
2828  /a\Q\Eb/D  /a\Q\Eb/DZ
2829  ------------------------------------------------------------------  ------------------------------------------------------------------
2830    0   7 Bra 0          Bra
2831    3     ab          ab
2832    7   7 Ket          Ket
2833   10     End          End
2834  ------------------------------------------------------------------  ------------------------------------------------------------------
2835  Capturing subpattern count = 0  Capturing subpattern count = 0
2836  No options  No options
# Line 2893  Need char = 'b' Line 2839  Need char = 'b'
2839    abc    abc
2840   0: ab   0: ab
2841    
2842  /\Q\Eabc/D  /\Q\Eabc/DZ
2843  ------------------------------------------------------------------  ------------------------------------------------------------------
2844    0   9 Bra 0          Bra
2845    3     abc          abc
2846    9   9 Ket          Ket
2847   12     End          End
2848  ------------------------------------------------------------------  ------------------------------------------------------------------
2849  Capturing subpattern count = 0  Capturing subpattern count = 0
2850  No options  No options
2851  First char = 'a'  First char = 'a'
2852  Need char = 'c'  Need char = 'c'
2853    
2854  /x*+\w/D  /x*+\w/DZ
2855  ------------------------------------------------------------------  ------------------------------------------------------------------
2856    0  12 Bra 0          Bra
2857    3   5 Once          x*+
2858    6     x*          \w
2859    8   5 Ket          Ket
2860   11     \w          End
  12  12 Ket  
  15     End  
2861  ------------------------------------------------------------------  ------------------------------------------------------------------
2862  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2863  No options  No options
2864  No first char  No first char
2865  No need char  No need char
# Line 2924  No need char Line 2867  No need char
2867   0: F   0: F
2868      xxxxx      xxxxx
2869  No match  No match
2870    
2871  /x?+/D  /x?+/DZ
2872  ------------------------------------------------------------------  ------------------------------------------------------------------
2873    0  11 Bra 0          Bra
2874    3   5 Once          x?+
2875    6     x?          Ket
2876    8   5 Ket          End
  11  11 Ket  
  14     End  
2877  ------------------------------------------------------------------  ------------------------------------------------------------------
2878  Capturing subpattern count = 0  Capturing subpattern count = 0
2879    May match empty string
2880  No options  No options
2881  No first char  No first char
2882  No need char  No need char
2883    
2884  /x++/D  /x++/DZ
2885  ------------------------------------------------------------------  ------------------------------------------------------------------
2886    0  11 Bra 0          Bra
2887    3   5 Once          x++
2888    6     x+          Ket
2889    8   5 Ket          End
  11  11 Ket  
  14     End  
2890  ------------------------------------------------------------------  ------------------------------------------------------------------
2891  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2892  No options  No options
2893  First char = 'x'  First char = 'x'
2894  No need char  No need char
2895    
2896  /x{1,3}+/D  /x{1,3}+/BZO
2897  ------------------------------------------------------------------  ------------------------------------------------------------------
2898    0  15 Bra 0          Bra
2899    3   9 Once          x
2900    6     x          x{0,2}+
2901    8     x{,2}          Ket
2902   12   9 Ket          End
2903   15  15 Ket  ------------------------------------------------------------------
2904   18     End  
2905    /x{1,3}+/BZOi
2906    ------------------------------------------------------------------
2907            Bra
2908         /i x
2909         /i x{0,2}+
2910            Ket
2911            End
2912    ------------------------------------------------------------------
2913    
2914    /[^x]{1,3}+/BZO
2915    ------------------------------------------------------------------
2916            Bra
2917            [^x]
2918            [^x]{0,2}+
2919            Ket
2920            End
2921  ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 0  
 Partial matching not supported  
 No options  
 First char = 'x'  
 No need char  
2922    
2923  /(x)*+/D  /[^x]{1,3}+/BZOi
2924  ------------------------------------------------------------------  ------------------------------------------------------------------
2925    0  18 Bra 0          Bra
2926    3  12 Once       /i [^x]
2927    6     Brazero       /i [^x]{0,2}+
2928    7   5 Bra 1          Ket
2929   10     x          End
2930   12   5 KetRmax  ------------------------------------------------------------------
2931   15  12 Ket  
2932   18  18 Ket  /(x)*+/DZ
2933   21     End  ------------------------------------------------------------------
2934            Bra
2935            Braposzero
2936            CBraPos 1
2937            x
2938            KetRpos
2939            Ket
2940            End
2941  ------------------------------------------------------------------  ------------------------------------------------------------------
2942  Capturing subpattern count = 1  Capturing subpattern count = 1
2943    May match empty string
2944  No options  No options
2945  No first char  No first char
2946  No need char  No need char
2947    
2948  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
2949  Capturing subpattern count = 1  Capturing subpattern count = 1
2950  Partial matching not supported  May match empty string
2951  Options: anchored  Options: anchored
2952  No first char  No first char
2953  No need char  No need char
# Line 3000  No need char Line 2958  No need char
2958  No match  No match
2959      this is not a line with only words and spaces!      this is not a line with only words and spaces!
2960  No match  No match
2961    
2962  /(\d++)(\w)/  /(\d++)(\w)/I
2963  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
2964  No options  No options
2965  No first char  No first char
2966  No need char  No need char
# Line 3013  No need char Line 2970  No need char
2970   2: a   2: a
2971      *** Failers      *** Failers
2972  No match  No match
2973      12345+      12345+
2974  No match  No match
2975    
2976  /a++b/  /a++b/I
2977  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2978  No options  No options
2979  First char = 'a'  First char = 'a'
2980  Need char = 'b'  Need char = 'b'
2981      aaab      aaab
2982   0: aaab   0: aaab
2983    
2984  /(a++b)/  /(a++b)/I
2985  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2986  No options  No options
2987  First char = 'a'  First char = 'a'
2988  Need char = 'b'  Need char = 'b'
# Line 3035  Need char = 'b' Line 2990  Need char = 'b'
2990   0: aaab   0: aaab
2991   1: aaab   1: aaab
2992    
2993  /(a++)b/  /(a++)b/I
2994  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2995  No options  No options
2996  First char = 'a'  First char = 'a'
2997  Need char = 'b'  Need char = 'b'
# Line 3045  Need char = 'b' Line 2999  Need char = 'b'
2999   0: aaab   0: aaab
3000   1: aaa   1: aaa
3001    
3002  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
3003  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3004  No options  No options
3005  No first char  No first char
3006  No need char  No need char
3007      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
3008   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
3009   1: x   1: x
3010    
3011  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
3012  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3013  No options  No options
3014  First char = '('  First char = '('
3015  Need char = ')'  Need char = ')'
# Line 3069  Need char = ')' Line 3021  Need char = ')'
3021   1: xyz   1: xyz
3022      *** Failers      *** Failers
3023  No match  No match
3024      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3025  No match  No match
3026    
3027  /(abc){1,3}+/D  /(abc){1,3}+/DZ
3028  ------------------------------------------------------------------  ------------------------------------------------------------------
3029    0  53 Bra 0          Bra
3030    3  47 Once          Once
3031    6   9 Bra 1          CBra 1
3032    9     abc          abc
3033   15   9 Ket          Ket
3034   18     Brazero          Brazero
3035   19  28 Bra 0          Bra
3036   22   9 Bra 1          CBra 1
3037   25     abc          abc
3038   31   9 Ket          Ket
3039   34     Brazero          Brazero
3040   35   9 Bra 1          CBra 1
3041   38     abc          abc
3042   44   9 Ket          Ket
3043   47  28 Ket          Ket
3044   50  47 Ket          Ket
3045   53  53 Ket          Ket
3046   56     End          End
3047  ------------------------------------------------------------------  ------------------------------------------------------------------
3048  Capturing subpattern count = 1  Capturing subpattern count = 1
3049  No options  No options
3050  First char = 'a'  First char = 'a'
3051  Need char = 'c'  Need char = 'c'
3052    
3053  /a+?+/  /a+?+/I
3054  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3055    
3056  /a{2,3}?+b/  /a{2,3}?+b/I
3057  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3058    
3059  /(?U)a+?+/  /(?U)a+?+/I
3060  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3061    
3062  /a{2,3}?+b/U  /a{2,3}?+b/IU
3063  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3064    
3065  /x(?U)a++b/D  /x(?U)a++b/DZ
3066  ------------------------------------------------------------------  ------------------------------------------------------------------
3067    0  15 Bra 0          Bra
3068    3     x          x
3069    5   5 Once          a++
3070    8     a+          b
3071   10   5 Ket          Ket
3072   13     b          End
  15  15 Ket  
  18     End  
3073  ------------------------------------------------------------------  ------------------------------------------------------------------
3074  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3075  No options  No options
3076  First char = 'x'  First char = 'x'
3077  Need char = 'b'  Need char = 'b'
3078      xaaaab      xaaaab
3079   0: xaaaab   0: xaaaab
3080    
3081  /(?U)xa++b/D  /(?U)xa++b/DZ
3082  ------------------------------------------------------------------  ------------------------------------------------------------------
3083    0  15 Bra 0          Bra
3084    3     x          x
3085    5   5 Once          a++
3086    8     a+          b
3087   10   5 Ket          Ket
3088   13     b          End
  15  15 Ket  
  18     End  
3089  ------------------------------------------------------------------  ------------------------------------------------------------------
3090  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3091  Options: ungreedy  Options: ungreedy
3092  First char = 'x'  First char = 'x'
3093  Need char = 'b'  Need char = 'b'
3094      xaaaab      xaaaab
3095   0: xaaaab   0: xaaaab
3096    
3097  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3098  ------------------------------------------------------------------  ------------------------------------------------------------------
3099    0 106 Bra 0          Bra
3100    3     ^          ^
3101    4  99 Bra 1          CBra 1
3102    7   5 Bra 2          CBra 2
3103   10     a+          a+
3104   12   5 Ket          Ket
3105   15  37 Bra 3          CBra 3
3106   18     [ab]+?          [ab]+?
3107   52  37 Ket          Ket
3108   55  37 Bra 4          CBra 4
3109   58     [bc]+          [bc]+
3110   92  37 Ket          Ket
3111   95   5 Bra 5          CBra 5
3112   98     \w*          \w*+
3113  100   5 Ket          Ket
3114  103  99 Ket          Ket
3115  106 106 Ket          Ket
3116  109     End          End
3117  ------------------------------------------------------------------  ------------------------------------------------------------------
3118  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3119  Options: anchored  Options: anchored
3120  No first char  No first char
3121  No need char  No need char
3122    
3123  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3124  ------------------------------------------------------------------  ------------------------------------------------------------------
3125    0  10 Bra 0          Bra
3126    3     ^          ^
3127    4     x          x
3128    6     a+?          a++
3129    8     b          b
3130   10  10 Ket          Ket
3131   13     End          End
3132  ------------------------------------------------------------------  ------------------------------------------------------------------
3133  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3134  Options: anchored  Options: anchored
3135  No first char  No first char
3136  Need char = 'b'  Need char = 'b'
3137    
3138  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3139  ------------------------------------------------------------------  ------------------------------------------------------------------
3140    0  16 Bra 0          Bra
3141    3     ^          ^
3142    4     x          x
3143    6   5 Bra 1          CBra 1
3144    9     a+?          a+?
3145   11   5 Ket          Ket
3146   14     b          b
3147   16  16 Ket          Ket
3148   19     End          End
3149  ------------------------------------------------------------------  ------------------------------------------------------------------
3150  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3151  Options: anchored  Options: anchored
3152  No first char  No first char
3153  Need char = 'b'  Need char = 'b'
3154    
3155  /[.x.]/  /[.x.]/I
3156  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3157    
3158  /[=x=]/  /[=x=]/I
3159  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3160    
3161  /[:x:]/  /[:x:]/I
3162  Failed: POSIX named classes are supported only within a class at offset 0  Failed: POSIX named classes are supported only within a class at offset 0
3163    
3164  /\l/  /\l/I
3165  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3166    
3167  /\L/  /\L/I
3168  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3169    
3170  /\N{name}/  /\N{name}/I
3171  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3172    
3173  /\u/  /\u/I
3174  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3175    
3176  /\U/  /\U/I
3177  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3178    
3179  /[/  /[/I
3180  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3181    
3182  /[a-/  /[a-/I
3183  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3184    
3185  /[[:space:]/  /[[:space:]/I
3186  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3187    
3188  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3189  ------------------------------------------------------------------  ------------------------------------------------------------------
3190    0  36 Bra 0          Bra
3191    3     [\x09\x0a\x0c\x0d ]          [\x09-\x0d ]
3192   36  36 Ket          Ket
3193   39     End          End
3194  ------------------------------------------------------------------  ------------------------------------------------------------------
3195  Capturing subpattern count = 0  Capturing subpattern count = 0
3196  No options  No options
3197  No first char  No first char
3198  No need char  No need char
3199    
3200  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3201  ------------------------------------------------------------------  ------------------------------------------------------------------
3202    0  36 Bra 0          Bra
3203    3     [\x09-\x0d ]          [\x09-\x0d ]
3204   36  36 Ket          Ket
3205   39     End          End
3206  ------------------------------------------------------------------  ------------------------------------------------------------------
3207  Capturing subpattern count = 0  Capturing subpattern count = 0
3208  No options  No options
3209  No first char  No first char
3210  No need char  No need char
3211    
3212  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3213  ------------------------------------------------------------------  ------------------------------------------------------------------
3214    0  36 Bra 0          Bra
3215    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3216   36  36 Ket          Ket
3217   39     End          End
3218  ------------------------------------------------------------------  ------------------------------------------------------------------
3219  Capturing subpattern count = 0  Capturing subpattern count = 0
3220  No options  No options
3221  No first char  No first char
3222  No need char  No need char
3223    
3224  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3225  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3226  Options: extended  Options: extended
3227  First char = '<'  First char = '<'
3228  Need char = '>'  Need char = '>'
# Line 3295  Need char = '>' Line 3234  Need char = '>'
3234   0: <abc <123> hij>   0: <abc <123> hij>
3235      <abc <def> hij>      <abc <def> hij>
3236   0: <def>   0: <def>
3237      <abc<>def>      <abc<>def>
3238   0: <abc<>def>   0: <abc<>def>
3239      <abc<>      <abc<>
3240   0: <>   0: <>
3241      *** Failers      *** Failers
3242  No match  No match
3243      <abc      <abc
3244  No match  No match
3245    
3246  |8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|DM  |8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
 Memory allocation (code space): 826  
3247  ------------------------------------------------------------------  ------------------------------------------------------------------
3248    0 822 Bra 0          Bra
3249    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          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
3250  821     \b          \b
3251  822 822 Ket          Ket
3252  825     End          End
3253  ------------------------------------------------------------------  ------------------------------------------------------------------
3254  Capturing subpattern count = 0  Capturing subpattern count = 0
3255    Max lookbehind = 1
3256  No options  No options
3257  First char = '8'  First char = '8'
3258  Need char = 'X'  Need char = 'X'
3259    
3260  |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|DM  |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
 Memory allocation (code space): 816  
3261  ------------------------------------------------------------------  ------------------------------------------------------------------
3262    0 812 Bra 0          Bra
3263    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          $<.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
3264  811     \b          \b
3265  812 812 Ket          Ket
3266  815     End          End
3267  ------------------------------------------------------------------  ------------------------------------------------------------------
3268  Capturing subpattern count = 0  Capturing subpattern count = 0
3269    Max lookbehind = 1
3270  No options  No options
3271  First char = '$'  First char = '$'
3272  Need char = 'X'  Need char = 'X'
# Line 3335  Need char = 'X' Line 3274  Need char = 'X'
3274  /(.*)\d+\1/I  /(.*)\d+\1/I
3275  Capturing subpattern count = 1  Capturing subpattern count = 1
3276  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3277  No options  No options
3278  No first char  No first char
3279  No need char  No need char
3280    
3281  /(.*)\d+/I  /(.*)\d+/I
3282  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3283  No options  No options
3284  First char at start or follows \n  First char at start or follows newline
3285  No need char  No need char
3286    
3287  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3288  Capturing subpattern count = 1  Capturing subpattern count = 1
3289  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3290  Options: dotall  Options: dotall
3291  No first char  No first char
3292  No need char  No need char
3293    
3294  /(.*)\d+/Is  /(.*)\d+/Is
3295  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3296  Options: anchored dotall  Options: anchored dotall
3297  No first char  No first char
3298  No need char  No need char
# Line 3365  No need char Line 3300  No need char
3300  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3301  Capturing subpattern count = 2  Capturing subpattern count = 2
3302  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3303  No options  No options
3304  First char at start or follows \n  First char at start or follows newline
3305  Need char = 'z'  Need char = 'z'
3306    
3307  /((.*))\d+\1/I  /((.*))\d+\1/I
3308  Capturing subpattern count = 2  Capturing subpattern count = 2
3309  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3310  No options  No options
3311  No first char  No first char
3312  No need char  No need char
# Line 3381  No need char Line 3314  No need char
3314   0: bc123bc   0: bc123bc
3315   1: bc   1: bc
3316   2: bc   2: bc
3317    
3318  /a[b]/I  /a[b]/I
3319  Capturing subpattern count = 0  Capturing subpattern count = 0
3320  No options  No options
# Line 3390  Need char = 'b' Line 3323  Need char = 'b'
3323    
3324  /(?=a).*/I  /(?=a).*/I
3325  Capturing subpattern count = 0  Capturing subpattern count = 0
3326  Partial matching not supported  May match empty string
3327  No options  No options
3328  First char = 'a'  First char = 'a'
3329  No need char  No need char
3330    
3331  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3332  Capturing subpattern count = 0  Capturing subpattern count = 0
3333  Options: caseless  Options: caseless
3334  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3404  Need char = 'z' (caseless) Line 3337  Need char = 'z' (caseless)
3337  /(?=abc)(?i).xyz/I  /(?=abc)(?i).xyz/I
3338  Capturing subpattern count = 0  Capturing subpattern count = 0
3339  No options  No options
 Case state changes  
3340  First char = 'a'  First char = 'a'
3341  Need char = 'z' (caseless)  Need char = 'z' (caseless)
3342    
3343  /(?=a)(?=b)/I  /(?=a)(?=b)/I
3344  Capturing subpattern count = 0  Capturing subpattern count = 0
3345    May match empty string
3346  No options  No options
3347  First char = 'a'  First char = 'a'
3348  No need char  No need char
# Line 3438  No options Line 3371  No options
3371  No first char  No first char
3372  Need char = 'a'  Need char = 'a'
3373    
3374  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3375  Capturing subpattern count = 0  Capturing subpattern count = 1
3376  No options  No options
3377  First char = 'a'  First char = 'a'
3378  No need char  No need char
3379    
3380  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3381  Capturing subpattern count = 0  Capturing subpattern count = 1
3382  No options  No options
3383  First char = 'a'  First char = 'a'
3384  Need char = 'z'  Need char = 'z'
3385    
3386  /(?(1)abz)/I  /(?(1)abz)(.)/I
3387  Capturing subpattern count = 0  Capturing subpattern count = 1
3388  No options  No options
3389  No first char  No first char
3390  No need char  No need char
3391    
3392  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3393  Capturing subpattern count = 0  Capturing subpattern count = 1
3394  No options  No options
3395  No first char  No first char
3396  Need char = '3'  Need char = '3'
# Line 3476  Need char = 'a' Line 3409  Need char = 'a'
3409    
3410  /(a)*/I  /(a)*/I
3411  Capturing subpattern count = 1  Capturing subpattern count = 1
3412    May match empty string
3413  No options  No options
3414  No first char  No first char
3415  No need char  No need char
# Line 3497  Capturing subpattern count = 0 Line 3431  Capturing subpattern count = 0
3431  No options  No options
3432  No first char  No first char
3433  No need char  No need char
3434    Subject length lower bound = 1
3435  Starting byte set: a b  Starting byte set: a b
3436    
3437  /[^a]/I  /[^a]/I
# Line 3516  Capturing subpattern count = 0 Line 3451  Capturing subpattern count = 0
3451  No options  No options
3452  No first char  No first char
3453  Need char = '6'  Need char = '6'
3454    Subject length lower bound = 4
3455  Starting byte set: 0 1 2 3 4 5 6 7 8 9  Starting byte set: 0 1 2 3 4 5 6 7 8 9
3456    
3457  /a^b/I  /a^b/I
# Line 3524  No options Line 3460  No options
3460  First char = 'a'  First char = 'a'
3461  Need char = 'b'  Need char = 'b'
3462    
3463  /^a/mI  /^a/Im
3464  Capturing subpattern count = 0  Capturing subpattern count = 0
3465  Options: multiline  Options: multiline
3466  First char at start or follows \n  First char at start or follows newline
3467  Need char = 'a'  Need char = 'a'
3468    abcde    abcde
3469   0: a   0: a
3470    xy\nabc    xy\nabc
3471   0: a   0: a
3472    *** Failers    *** Failers
3473  No match  No match
3474    xyabc    xyabc
3475  No match  No match
3476    
3477  /c|abc/I  /c|abc/I
# Line 3549  Capturing subpattern count = 0 Line 3485  Capturing subpattern count = 0
3485  Options: caseless  Options: caseless
3486  No first char  No first char
3487  No need char  No need char
3488    Subject length lower bound = 1
3489  Starting byte set: A B a b  Starting byte set: A B a b
3490    
3491  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3492  Capturing subpattern count = 0  Capturing subpattern count = 0
3493  No options  No options
 Case state changes  
3494  No first char  No first char
3495  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3496    Subject length lower bound = 3
3497  Starting byte set: a b  Starting byte set: a b
3498    
3499  /abc(?C)def/  /abc(?C)def/I
3500  Capturing subpattern count = 0  Capturing subpattern count = 0
3501  No options  No options
3502  First char = 'a'  First char = 'a'
# Line 3568  Need char = 'f' Line 3505  Need char = 'f'
3505  --->abcdef  --->abcdef
3506    0 ^  ^       d    0 ^  ^       d
3507   0: abcdef   0: abcdef
3508      1234abcdef      1234abcdef
3509  --->1234abcdef  --->1234abcdef
3510    0     ^  ^       d    0     ^  ^       d
3511   0: abcdef   0: abcdef
# Line 3576  Need char = 'f' Line 3513  Need char = 'f'
3513  No match  No match
3514      abcxyz      abcxyz
3515  No match  No match
3516      abcxyzf      abcxyzf
3517  --->abcxyzf  --->abcxyzf
3518    0 ^  ^        d    0 ^  ^        d
3519  No match  No match
3520    
3521  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3522  Capturing subpattern count = 0  Capturing subpattern count = 0
3523  No options  No options
3524  First char = 'a'  First char = 'a'
# Line 3591  Need char = 'f' Line 3528  Need char = 'f'
3528    0    ^  ^       d    0    ^  ^       d
3529    1    ^    ^     f    1    ^    ^     f
3530   0: abcdef   0: abcdef
3531    
3532  /(?C1)\dabc(?C2)def/  /(?C1)\dabc(?C2)def/IS
3533    Capturing subpattern count = 0
3534    No options
3535    No first char
3536    Need char = 'f'
3537    Subject length lower bound = 7
3538    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3539        1234abcdef
3540    --->1234abcdef
3541      1 ^              \d
3542      1  ^             \d
3543      1   ^            \d
3544      1    ^           \d
3545      2    ^   ^       d
3546     0: 4abcdef
3547        *** Failers
3548    No match
3549        abcdef
3550    No match
3551    
3552    /(?C1)\dabc(?C2)def/ISS
3553  Capturing subpattern count = 0  Capturing subpattern count = 0
3554  No options  No options
3555  No first char  No first char
# Line 3607  Need char = 'f' Line 3564  Need char = 'f'
3564   0: 4abcdef   0: 4abcdef
3565      *** Failers      *** Failers
3566  No match  No match
3567      abcdef      abcdef
3568  --->abcdef  --->abcdef
3569    1 ^          \d    1 ^          \d
3570    1  ^         \d    1  ^         \d
# Line 3616  No match Line 3573  No match
3573    1     ^      \d    1     ^      \d
3574    1      ^     \d    1      ^     \d
3575  No match  No match
3576    
3577  /(?C255)ab/  /(?C255)ab/I
3578  Capturing subpattern count = 0  Capturing subpattern count = 0
3579  No options  No options
3580  First char = 'a'  First char = 'a'
3581  Need char = 'b'  Need char = 'b'
3582    
3583  /(?C256)ab/  /(?C256)ab/I
3584  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3585    
3586  /(?Cab)xx/  /(?Cab)xx/I
3587  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3588    
3589  /(?C12vr)x/  /(?C12vr)x/I
3590  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3591    
3592  /abc(?C)def/  /abc(?C)def/I
3593  Capturing subpattern count = 0  Capturing subpattern count = 0
3594  No options  No options
3595  First char = 'a'  First char = 'a'
# Line 3644  No match Line 3601  No match
3601    0         ^  ^       d    0         ^  ^       d
3602   0: abcdef   0: abcdef
3603    
3604  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3605  Capturing subpattern count = 1  Capturing subpattern count = 1
3606  No options  No options
3607  First char = 'a'  First char = 'a'
# Line 3655  Need char = 'f' Line 3612  Need char = 'f'
3612    1    ^    ^     f    1    ^    ^     f
3613   0: abcdef   0: abcdef
3614   1: abc   1: abc
3615      123abcdef\C+      123abcdef\C+
3616  Callout 0: last capture = 1  Callout 0: last capture = 1
3617   0: <unset>   0: <unset>
3618   1: abc   1: abc
# Line 3668  Callout 1: last capture = 1 Line 3625  Callout 1: last capture = 1
3625         ^    ^     f         ^    ^     f
3626   0: abcdef   0: abcdef
3627   1: abc   1: abc
3628      123abcdef\C-      123abcdef\C-
3629   0: abcdef   0: abcdef
3630   1: abc   1: abc
3631      *** Failers      *** Failers
3632  No match  No match
3633      123abcdef\C!1      123abcdef\C!1
3634  --->123abcdef  --->123abcdef
3635    0    ^  ^       d    0    ^  ^       d
3636    1    ^    ^     f    1    ^    ^     f
3637  No match  No match
3638    
3639  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3640  Capturing subpattern count = 1  Capturing subpattern count = 1
3641    May match empty string
3642  No options  No options
3643  No first char  No first char
3644  No need char  No need char
# Line 3692  No need char Line 3650  No need char
3650    1 ^        ^    )    1 ^        ^    )
3651   0: abcabcabc   0: abcabcabc
3652   1: abc   1: abc
3653      abcabc\C!1!3      abcabc\C!1!3
3654  --->abcabc  --->abcabc
3655    0 ^          (abc(?C1))*    0 ^          (abc(?C1))*
3656    1 ^  ^       )    1 ^  ^       )
# Line 3703  No need char Line 3661  No need char
3661  --->*** Failers  --->*** Failers
3662    0 ^               (abc(?C1))*    0 ^               (abc(?C1))*
3663   0:   0:
3664      abcabcabc\C!1!3      abcabcabc\C!1!3
3665  --->abcabcabc  --->abcabcabc
3666    0 ^             (abc(?C1))*    0 ^             (abc(?C1))*
3667    1 ^  ^          )    1 ^  ^          )
# Line 3712  No need char Line 3670  No need char
3670   0: abcabc   0: abcabc
3671   1: abc   1: abc
3672    
3673  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3674  Capturing subpattern count = 1  Capturing subpattern count = 1
3675  Partial matching not supported  May match empty string
3676  No options  No options
3677  No first char  No first char
3678  No need char  No need char
# Line 3737  Callout 0: last capture = 1 Line 3695  Callout 0: last capture = 1
3695      ^     ^    )      ^     ^    )
3696   0: 123456   0: 123456
3697   1: 456   1: 456
3698      123456789\C+      123456789\C+
3699  Callout 0: last capture = -1  Callout 0: last capture = -1
3700   0: <unset>   0: <unset>
3701  --->123456789  --->123456789
# Line 3755  Callout 0: last capture = 1 Line 3713  Callout 0: last capture = 1
3713   0: 123456789   0: 123456789
3714   1: 789   1: 789
3715    
3716  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3717  Capturing subpattern count = 2  Capturing subpattern count = 2
3718  No options  No options
3719  First char = 'x'  First char = 'x'
# Line 3774  Callout 1: last capture = -1 Line 3732  Callout 1: last capture = -1
3732   0: xyzabc   0: xyzabc
3733   1: xyzabc   1: xyzabc
3734    
3735  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3736  Capturing subpattern count = 3  Capturing subpattern count = 3
3737  No options  No options
3738  First char = 'X'  First char = 'X'
# Line 3796  Callout 1: last capture = 1 Line 3754  Callout 1: last capture = 1
3754   1: X   1: X
3755   2: xyzabc   2: xyzabc
3756    
3757  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3758  Capturing subpattern count = 1  Capturing subpattern count = 1
3759  No options  No options
3760  First char = 'a'  First char = 'a'
# Line 3809  Callout 0: last capture = 1 Line 3767  Callout 0: last capture = 1
3767      ^          a      ^          a
3768   0: abcdef   0: abcdef
3769   1: abc   1: abc
3770    
3771  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3772  Capturing subpattern count = 1  Capturing subpattern count = 1
3773  No options  No options
3774  First char = 'a'  First char = 'a'
3775  Need char = 'z'  Need char = 'z'
3776      abcxyz\C+      abcxyz\C+
3777  Callout 1: last capture = 1  Callout 1: last capture = 1
3778   0: <unset>   0: <unset>
3779   1: abc   1: abc
# Line 3827  Callout 2: last capture = -1 Line 3785  Callout 2: last capture = -1
3785      ^          a      ^          a
3786   0: abcxyz   0: abcxyz
3787    
3788  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3789  Capturing subpattern count = 1  Capturing subpattern count = 1
3790    Max lookbehind = 3
3791  No options  No options
3792  First char = 'x'  First char = 'x'
3793  Need char = 'z'  Need char = 'z'
# Line 3840  Callout 0: last capture = 1 Line 3799  Callout 0: last capture = 1
3799         ^       )         ^       )
3800   0: xyz   0: xyz
3801   1: abc   1: abc
3802    
3803  /a(b+)(c*)(?C1)/  /a(b+)(c*)(?C1)/I
3804  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3805  No options  No options
3806  First char = 'a'  First char = 'a'
3807  Need char = 'b'  Need char = 'b'
# Line 3851  Need char = 'b' Line 3809  Need char = 'b'
3809  --->abbbbbccc  --->abbbbbccc
3810    1 ^        ^    1 ^        ^
3811  Callout data = 1  Callout data = 1
   1 ^       ^  
 Callout data = 1  
   1 ^      ^  
 Callout data = 1  
   1 ^     ^  
 Callout data = 1  
   1 ^    ^  
 Callout data = 1  
   1 ^   ^  
 Callout data = 1  
   1 ^  ^  
 Callout data = 1  
   1 ^ ^  
 Callout data = 1  
3812  No match  No match
3813    
3814  /a(b+?)(c*?)(?C1)/  /a(b+?)(c*?)(?C1)/I
3815  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3816  No options  No options
3817  First char = 'a'  First char = 'a'
3818  Need char = 'b'  Need char = 'b'
# Line 3892  Callout data = 1 Line 3835  Callout data = 1
3835    1 ^        ^    1 ^        ^
3836  Callout data = 1  Callout data = 1
3837  No match  No match
3838    
3839  /(?C)abc/  /(?C)abc/I
3840  Capturing subpattern count = 0  Capturing subpattern count = 0
3841  No options  No options
3842  First char = 'a'  First char = 'a'
3843  Need char = 'c'  Need char = 'c'
3844    
3845  /(?C)^abc/  /(?C)^abc/I
3846  Capturing subpattern count = 0  Capturing subpattern count = 0
3847  Options: anchored  Options: anchored
3848  No first char  No first char
3849  No need char  No need char
3850    
3851  /(?C)a|b/S  /(?C)a|b/IS
3852  Capturing subpattern count = 0  Capturing subpattern count = 0
3853  No options  No options
3854  No first char  No first char
3855  No need char  No need char
3856    Subject length lower bound = 1
3857  Starting byte set: a b  Starting byte set: a b
3858    
3859  /(?R)/  /(?R)/I
3860  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3861    
3862  /(a|(?R))/  /(a|(?R))/I
3863  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3864    
3865  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3866  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3867    
3868  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3869  Capturing subpattern count = 3  Capturing subpattern count = 3
3870  No options  No options
3871  First char = 'x'  First char = 'x'
# Line 3950  No need char Line 3894  No need char
3894   3: xxab   3: xxab
3895      *** Failers      *** Failers
3896  No match  No match
3897      xyab      xyab
3898  No match  No match
3899    
3900  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3901  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3902    
3903  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3904  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3905    
3906  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3907  Capturing subpattern count = 1  Capturing subpattern count = 1
3908    May match empty string
3909  Options: anchored  Options: anchored
3910  No first char  No first char
3911  No need char  No need char
# Line 3970  No need char Line 3915  No need char
3915      a(b)c      a(b)c
3916   0: a(b)c   0: a(b)c
3917   1: c   1: c
3918      a(b(c))d      a(b(c))d
3919   0: a(b(c))d   0: a(b(c))d
3920   1: d   1: d
3921      *** Failers)      *** Failers)
3922  No match  No match
3923      a(b(c)d      a(b(c)d
3924  No match  No match
3925    
3926  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3927  Capturing subpattern count = 1  Capturing subpattern count = 1
3928  Options: anchored  Options: anchored
3929  No first char  No first char
# Line 3993  Need char = '<' Line 3938  Need char = '<'
3938   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
3939   1: (1(2)3)   1: (1(2)3)
3940    
3941  /(a(?1)b)/D  /(a(?1)b)/DZ
3942  ------------------------------------------------------------------  ------------------------------------------------------------------
3943    0  16 Bra 0          Bra
3944    3  10 Bra 1          CBra 1
3945    6     a          a
3946    8   3 Recurse          Recurse
3947   11     b          b
3948   13  10 Ket          Ket
3949   16  16 Ket          Ket
3950   19     End          End
3951  ------------------------------------------------------------------  ------------------------------------------------------------------
3952  Capturing subpattern count = 1  Capturing subpattern count = 1
3953  No options  No options
3954  First char = 'a'  First char = 'a'
3955  Need char = 'b'  Need char = 'b'
3956    
3957  /(a(?1)+b)/D  /(a(?1)+b)/DZ
3958  ------------------------------------------------------------------  ------------------------------------------------------------------
3959    0  22 Bra 0          Bra
3960    3  16 Bra 1          CBra 1
3961    6     a          a
3962    8   6 Bra 0          Once
3963   11   3 Recurse          Recurse
3964   14   6 KetRmax          KetRmax
3965   17     b          b
3966   19  16 Ket          Ket
3967   22  22 Ket          Ket
3968   25     End          End
3969  ------------------------------------------------------------------  ------------------------------------------------------------------
3970  Capturing subpattern count = 1  Capturing subpattern count = 1
3971  No options  No options
3972  First char = 'a'  First char = 'a'
3973  Need char = 'b'  Need char = 'b'
3974    
3975  /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/i  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
 Capturing subpattern count = 4  
 Max back reference = 4  
 Partial matching not supported  
 Options: anchored caseless  
 No first char  
 No need char  
     1221  
  0: 1221  
  1: 1221  
  2: 1  
     Satan, oscillate my metallic sonatas!  
  0: Satan, oscillate my metallic sonatas!  
  1: <unset>  
  2: <unset>  
  3: Satan, oscillate my metallic sonatas  
  4: S  
     A man, a plan, a canal: Panama!  
  0: A man, a plan, a canal: Panama!  
  1: <unset>  
  2: <unset>  
  3: A man, a plan, a canal: Panama  
  4: A  
     Able was I ere I saw Elba.  
  0: Able was I ere I saw Elba.  
  1: <unset>  
  2: <unset>  
  3: Able was I ere I saw Elba  
  4: A  
     *** Failers  
 No match  
     The quick brown fox  
 No match  
   
 /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/  
3976  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3977  Options: anchored  Options: anchored
3978  No first char  No first char
3979  No need char  No need char
# Line 4081  No need char Line 3991  No need char
3991  No match  No match
3992      ((2+2)*-3)-7)      ((2+2)*-3)-7)
3993  No match  No match
3994    
3995  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
3996  Capturing subpattern count = 2  Capturing subpattern count = 2
3997  Options: anchored  Options: anchored
3998  No first char  No first char
# Line 4091  No need char Line 4001  No need char
4001   0: xyz   0: xyz
4002   1: xyz   1: xyz
4003   2: y   2: y
4004      xxyzxyzz      xxyzxyzz
4005   0: xxyzxyzz   0: xxyzxyzz
4006   1: xxyzxyzz   1: xxyzxyzz
4007   2: xyzxyz   2: xyzxyz
# Line 4099  No need char Line 4009  No need char
4009  No match  No match
4010      xxyzz      xxyzz
4011  No match  No match
4012      xxyzxyzxyzz      xxyzxyzxyzz
4013  No match  No match
4014    
4015  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4016  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4017  Options: extended  Options: extended
4018  First char = '<'  First char = '<'
4019  Need char = '>'  Need char = '>'
# Line 4124  Need char = '>' Line 4033  Need char = '>'
4033   0: <def>   0: <def>
4034   1: <def>   1: <def>
4035   2: <def>   2: <def>
4036      <abc<>def>      <abc<>def>
4037   0: <abc<>def>   0: <abc<>def>
4038   1: <abc<>def>   1: <abc<>def>
4039   2: <abc<>def>   2: <abc<>def>
4040      <abc<>      <abc<>
4041   0: <>   0: <>
4042   1: <>   1: <>
4043   2: <>   2: <>
# Line 4137  No match Line 4046  No match
4046      <abc      <abc
4047  No match  No match
4048    
4049  /(?1)/  /(?1)/I
4050  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4051    
4052  /((?2)(abc)/  /((?2)(abc)/I
4053  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4054    
4055  /^(abc)def(?1)/  /^(abc)def(?1)/I
4056  Capturing subpattern count = 1  Capturing subpattern count = 1
4057  Options: anchored  Options: anchored
4058  No first char  No first char
# Line 4152  No need char Line 4061  No need char
4061   0: abcdefabc   0: abcdefabc
4062   1: abc   1: abc
4063    
4064  /^(a|b|c)=(?1)+/  /^(a|b|c)=(?1)+/I
4065  Capturing subpattern count = 1  Capturing subpattern count = 1
4066  Options: anchored  Options: anchored
4067  No first char  No first char
# Line 4163  No need char Line 4072  No need char
4072      a=b      a=b
4073   0: a=b   0: a=b
4074   1: a   1: a
4075      a=bc      a=bc
4076   0: a=bc   0: a=bc
4077   1: a   1: a
4078