/[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 426 by ph10, Wed Aug 26 15:38:32 2009 UTC revision 567 by ph10, Sat Nov 6 17:10:00 2010 UTC
# Line 1  Line 1 
1    /-- 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        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    /-- Originally, the Perl >= 5.10 things were in here too, but now I have
9        separated many (most?) of them out into test 11. However, there may still
10        be some that were overlooked. --/
11    
12  /(a)b|/I  /(a)b|/I
13  Capturing subpattern count = 1  Capturing subpattern count = 1
14  No options  No options
# Line 92  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 134  Capturing subpattern count = 0 Line 175  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
# Line 145  Capturing subpattern count = 0 Line 187  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
# Line 156  Capturing subpattern count = 0 Line 199  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])/IS  /(a|[^\dZ])/IS
# Line 163  Capturing subpattern count = 1 Line 207  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 183  Capturing subpattern count = 1 Line 228  Capturing subpattern count = 1
228  No options  No options
229  No first char  No first char
230  No need char  No need char
231    Subject length lower bound = 1
232  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
233    
234  /(ab\2)/  /(ab\2)/
# Line 331  No need char Line 377  No need char
377   2: <unset>   2: <unset>
378   3: def   3: def
379    
380  /abc/IP  /abc/P
381      abc      abc
382   0: abc   0: abc
383      *** Failers      *** Failers
384  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
385    
386  /^abc|def/IP  /^abc|def/P
387      abcdef      abcdef
388   0: abc   0: abc
389      abcdef\B      abcdef\B
390   0: def   0: def
391    
392  /.*((abc)$|(def))/IP  /.*((abc)$|(def))/P
393      defabc      defabc
394   0: defabc   0: defabc
395   1: abc   1: abc
# Line 353  No match: POSIX code 17: match failed Line 399  No match: POSIX code 17: match failed
399   1: def   1: def
400   3: def   3: def
401    
402  /the quick brown fox/IP  /the quick brown fox/P
403      the quick brown fox      the quick brown fox
404   0: the quick brown fox   0: the quick brown fox
405      *** Failers      *** Failers
# Line 361  No match: POSIX code 17: match failed Line 407  No match: POSIX code 17: match failed
407      The Quick Brown Fox      The Quick Brown Fox
408  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
409    
410  /the quick brown fox/IPi  /the quick brown fox/Pi
411      the quick brown fox      the quick brown fox
412   0: the quick brown fox   0: the quick brown fox
413      The Quick Brown Fox      The Quick Brown Fox
414   0: The Quick Brown Fox   0: The Quick Brown Fox
415    
416  /abc.def/IP  /abc.def/P
417      *** Failers      *** Failers
418  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
419      abc\ndef      abc\ndef
420  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
421    
422  /abc$/IP  /abc$/P
423      abc      abc
424   0: abc   0: abc
425      abc\n      abc\n
426   0: abc   0: abc
427    
428  /(abc)\2/IP  /(abc)\2/P
429  Failed: POSIX code 15: bad back reference at offset 7  Failed: POSIX code 15: bad back reference at offset 7
430    
431  /(abc\1)/IP  /(abc\1)/P
432      abc      abc
433  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
434    
# Line 516  Capturing subpattern count = 0 Line 562  Capturing subpattern count = 0
562  No options  No options
563  No first char  No first char
564  No need char  No need char
565    Subject length lower bound = 1
566  Starting byte set: a b c d  Starting byte set: a b c d
567    
568  /(?i)[abcd]/IS  /(?i)[abcd]/IS
# Line 523  Capturing subpattern count = 0 Line 570  Capturing subpattern count = 0
570  Options: caseless  Options: caseless
571  No first char  No first char
572  No need char  No need char
573    Subject length lower bound = 1
574  Starting byte set: A B C D a b c d  Starting byte set: A B C D a b c d
575    
576  /(?m)[xy]|(b|c)/IS  /(?m)[xy]|(b|c)/IS
# Line 530  Capturing subpattern count = 1 Line 578  Capturing subpattern count = 1
578  Options: multiline  Options: multiline
579  No first char  No first char
580  No need char  No need char
581    Subject length lower bound = 1
582  Starting byte set: b c x y  Starting byte set: b c x y
583    
584  /(^a|^b)/Im  /(^a|^b)/Im
# Line 594  Capturing subpattern count = 1 Line 643  Capturing subpattern count = 1
643  No options  No options
644  First char = 'b' (caseless)  First char = 'b' (caseless)
645  No need char  No need char
646  Study returned NULL  Subject length lower bound = 1
647    No set of starting bytes
648    
649  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
650  Capturing subpattern count = 1  Capturing subpattern count = 1
651  No options  No options
652  No first char  No first char
653  No need char  No need char
654    Subject length lower bound = 1
655  Starting byte set: C a b c d  Starting byte set: C a b c d
656    
657  /a$/I  /a$/I
# Line 665  Capturing subpattern count = 0 Line 716  Capturing subpattern count = 0
716  No options  No options
717  No first char  No first char
718  No need char  No need char
719    Subject length lower bound = 1
720  Starting byte set: a b  Starting byte set: a b
721    
722  /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
# Line 672  Capturing subpattern count = 1 Line 724  Capturing subpattern count = 1
724  No options  No options
725  No first char  No first char
726  Need char = 'a'  Need char = 'a'
727    Subject length lower bound = 5
728  Starting byte set: a o  Starting byte set: a o
729    
730  /(?!alphabet)[ab]/IS  /(?!alphabet)[ab]/IS
# Line 679  Capturing subpattern count = 0 Line 732  Capturing subpattern count = 0
732  No options  No options
733  No first char  No first char
734  No need char  No need char
735    Subject length lower bound = 1
736  Starting byte set: a b  Starting byte set: a b
737    
738  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
# Line 833  No match Line 887  No match
887      a      a
888  No match  No match
889    
890  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I  /This one is here because Perl behaves differently; see also the following/I
891  Capturing subpattern count = 0  Capturing subpattern count = 0
892  No options  No options
893  First char = 'T'  First char = 'T'
# Line 845  Max back reference = 1 Line 899  Max back reference = 1
899  Options: anchored  Options: anchored
900  No first char  No first char
901  No need char  No need char
902        aaaa
903    No match
904      aaaaaa      aaaaaa
905   0: aaaaaa  No match
906   1: aa  
907    /Perl does not fail these two for the final subjects. Neither did PCRE until/
908    /release 8.01. The problem is in backtracking into a subpattern that contains/
909    No match
910    /a recursive reference to itself. PCRE has now made these into atomic patterns./
911    No match
912    
913    /^(xa|=?\1a){2}$/
914        xa=xaa
915     0: xa=xaa
916     1: =xaa
917        ** Failers
918    No match
919        xa=xaaa
920    No match
921    
922    /^(xa|=?\1a)+$/
923        xa=xaa
924     0: xa=xaa
925     1: =xaa
926        ** Failers
927    No match
928        xa=xaaa
929    No match
930    
931  /These are syntax tests from Perl 5.005/I  /These are syntax tests from Perl 5.005/I
932  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 1615  No need char Line 1694  No need char
1694      \Nabc      \Nabc
1695  No match  No match
1696    
1697  /a*(b+)(z)(z)/IP  /a*(b+)(z)(z)/P
1698      aaaabbbbzzzz      aaaabbbbzzzz
1699   0: aaaabbbbzz   0: aaaabbbbzz
1700   1: bbbb   1: bbbb
# Line 1647  Capturing subpattern count = 0 Line 1726  Capturing subpattern count = 0
1726  Options: anchored  Options: anchored
1727  No first char  No first char
1728  Need char = 'd'  Need char = 'd'
1729  Study returned NULL  Subject length lower bound = 4
1730    No set of starting bytes
1731    
1732  /\(             # ( at start  /\(             # ( at start
1733    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1805  Need char = ')' Line 1885  Need char = ')'
1885   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1886   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1887   2: 123   2: 123
  3: <unset>  
1888    
1889  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1890  Capturing subpattern count = 3  Capturing subpattern count = 3
# Line 1880  Capturing subpattern count = 0 Line 1959  Capturing subpattern count = 0
1959  No options  No options
1960  No first char  No first char
1961  No need char  No need char
1962    Subject length lower bound = 1
1963  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  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
1964    _ 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    _ 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
1965    
# Line 1941  Contains explicit CR or LF match Line 2021  Contains explicit CR or LF match
2021  No options  No options
2022  No first char  No first char
2023  No need char  No need char
2024    Subject length lower bound = 1
2025  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2026    
2027  /^[[:cntrl:]]/DZ  /^[[:cntrl:]]/DZ
# Line 3147  Failed: POSIX collating elements are not Line 3228  Failed: POSIX collating elements are not
3228  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
3229    
3230  /\l/I  /\l/I
3231  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
3232    
3233  /\L/I  /\L/I
3234  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
3235    
3236  /\N{name}/I  /\N{name}/I
3237  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
3238    
3239  /\u/I  /\u/I
3240  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
3241    
3242  /\U/I  /\U/I
3243  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
3244    
3245  /[/I  /[/I
3246  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3411  Capturing subpattern count = 0 Line 3492  Capturing subpattern count = 0
3492  No options  No options
3493  No first char  No first char
3494  No need char  No need char
3495    Subject length lower bound = 1
3496  Starting byte set: a b  Starting byte set: a b
3497    
3498  /[^a]/I  /[^a]/I
# Line 3430  Capturing subpattern count = 0 Line 3512  Capturing subpattern count = 0
3512  No options  No options
3513  No first char  No first char
3514  Need char = '6'  Need char = '6'
3515    Subject length lower bound = 4
3516  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
3517    
3518  /a^b/I  /a^b/I
# Line 3463  Capturing subpattern count = 0 Line 3546  Capturing subpattern count = 0
3546  Options: caseless  Options: caseless
3547  No first char  No first char
3548  No need char  No need char
3549    Subject length lower bound = 1
3550  Starting byte set: A B a b  Starting byte set: A B a b
3551    
3552  /[ab](?i)cd/IS  /[ab](?i)cd/IS
# Line 3470  Capturing subpattern count = 0 Line 3554  Capturing subpattern count = 0
3554  No options  No options
3555  No first char  No first char
3556  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3557    Subject length lower bound = 3
3558  Starting byte set: a b  Starting byte set: a b
3559    
3560  /abc(?C)def/I  /abc(?C)def/I
# Line 3820  Capturing subpattern count = 0 Line 3905  Capturing subpattern count = 0
3905  No options  No options
3906  No first char  No first char
3907  No need char  No need char
3908    Subject length lower bound = 1
3909  Starting byte set: a b  Starting byte set: a b
3910    
3911  /(?R)/I  /(?R)/I
# Line 3939  No options Line 4025  No options
4025  First char = 'a'  First char = 'a'
4026  Need char = 'b'  Need char = 'b'
4027    
 /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii  
 Capturing subpattern count = 4  
 Max back reference = 4  
 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  
   
4028  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
4029  Capturing subpattern count = 2  Capturing subpattern count = 2
4030  Options: anchored  Options: anchored
# Line 4637  Capturing subpattern count = 3 Line 4690  Capturing subpattern count = 3
4690  Options: caseless  Options: caseless
4691  No first char  No first char
4692  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4693  Study returned NULL  Subject length lower bound = 8
4694    No set of starting bytes
4695       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4696   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4697   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4655  Capturing subpattern count = 0 Line 4709  Capturing subpattern count = 0
4709  No options  No options
4710  No first char  No first char
4711  Need char = 'b'  Need char = 'b'
4712  Study returned NULL  Subject length lower bound = 1
4713    No set of starting bytes
4714    
4715  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4716  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4675  Capturing subpattern count = 1 Line 4730  Capturing subpattern count = 1
4730  No options  No options
4731  No first char  No first char
4732  Need char = 'c'  Need char = 'c'
4733  Study returned NULL  Subject length lower bound = 1
4734    No set of starting bytes
4735    
4736  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4737  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 5458  Capturing subpattern count = 1 Line 5514  Capturing subpattern count = 1
5514  No options  No options
5515  No first char  No first char
5516  No need char  No need char
5517    Subject length lower bound = 1
5518  Starting byte set: a b  Starting byte set: a b
5519  Compiled regex written to testsavedregex  Compiled regex written to testsavedregex
5520  Study data written to testsavedregex  Study data written to testsavedregex
# Line 5478  Capturing subpattern count = 1 Line 5535  Capturing subpattern count = 1
5535  No options  No options
5536  No first char  No first char
5537  No need char  No need char
5538    Subject length lower bound = 1
5539  Starting byte set: a b  Starting byte set: a b
5540  Compiled regex written to testsavedregex  Compiled regex written to testsavedregex
5541  Study data written to testsavedregex  Study data written to testsavedregex
# Line 5548  No match Line 5606  No match
5606      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5607  No match  No match
5608    
5609  /ab.cd/IP  /ab.cd/P
5610      ab-cd      ab-cd
5611   0: ab-cd   0: ab-cd
5612      ab=cd      ab=cd
# Line 5558  No match: POSIX code 17: match failed Line 5616  No match: POSIX code 17: match failed
5616      ab\ncd      ab\ncd
5617  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
5618    
5619  /ab.cd/IPs  /ab.cd/Ps
5620      ab-cd      ab-cd
5621   0: ab-cd   0: ab-cd
5622      ab=cd      ab=cd
# Line 5858  No need char Line 5916  No need char
5916      ((this))      ((this))
5917   0: ((this))   0: ((this))
5918    
5919  /a(b)c/IPN  /a(b)c/PN
5920      abc      abc
5921  Matched with REG_NOSUB  Matched with REG_NOSUB
5922    
5923  /a(?P<name>b)c/IPN  /a(?P<name>b)c/PN
5924      abc      abc
5925  Matched with REG_NOSUB  Matched with REG_NOSUB
5926    
# Line 6190  Capturing subpattern count = 0 Line 6248  Capturing subpattern count = 0
6248  No options  No options
6249  No first char  No first char
6250  Need char = ','  Need char = ','
6251    Subject length lower bound = 1
6252  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6253      \x0b,\x0b      \x0b,\x0b
6254   0: ,   0: ,
# Line 6494  Capturing subpattern count = 1 Line 6553  Capturing subpattern count = 1
6553  No options  No options
6554  No first char  No first char
6555  No need char  No need char
6556    Subject length lower bound = 1
6557  Starting byte set: C a b c d  Starting byte set: C a b c d
6558    
6559  /()[ab]xyz/IS  /()[ab]xyz/IS
# Line 6501  Capturing subpattern count = 1 Line 6561  Capturing subpattern count = 1
6561  No options  No options
6562  No first char  No first char
6563  Need char = 'z'  Need char = 'z'
6564    Subject length lower bound = 4
6565  Starting byte set: a b  Starting byte set: a b
6566    
6567  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
# Line 6508  Capturing subpattern count = 1 Line 6569  Capturing subpattern count = 1
6569  No options  No options
6570  No first char  No first char
6571  Need char = 'z'  Need char = 'z'
6572    Subject length lower bound = 4
6573  Starting byte set: a b  Starting byte set: a b
6574    
6575  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
# Line 6515  Capturing subpattern count = 1 Line 6577  Capturing subpattern count = 1
6577  No options  No options
6578  No first char  No first char
6579  Need char = 'z'  Need char = 'z'
6580    Subject length lower bound = 4
6581  Starting byte set: a b c  Starting byte set: a b c
6582    
6583  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
# Line 6522  Capturing subpattern count = 1 Line 6585  Capturing subpattern count = 1
6585  No options  No options
6586  No first char  No first char
6587  Need char = 'z'  Need char = 'z'
6588    Subject length lower bound = 4
6589  Starting byte set: a b c  Starting byte set: a b c
6590    
6591  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
# Line 6529  Capturing subpattern count = 1 Line 6593  Capturing subpattern count = 1
6593  No options  No options
6594  No first char  No first char
6595  Need char = 'z'  Need char = 'z'
6596    Subject length lower bound = 4
6597  Starting byte set: a b c d  Starting byte set: a b c d
6598    
6599  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
# Line 6536  Capturing subpattern count = 1 Line 6601  Capturing subpattern count = 1
6601  No options  No options
6602  No first char  No first char
6603  Need char = 'z'  Need char = 'z'
6604    Subject length lower bound = 4
6605  Starting byte set: a b c d  Starting byte set: a b c d
6606    
6607  /^a*b\d/DZ  /^a*b\d/DZ
# Line 6628  Capturing subpattern count = 1 Line 6694  Capturing subpattern count = 1
6694  No options  No options
6695  No first char  No first char
6696  No need char  No need char
6697    Subject length lower bound = 1
6698  Starting byte set: a b c d  Starting byte set: a b c d
6699    
6700  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
# Line 6635  Capturing subpattern count = 1 Line 6702  Capturing subpattern count = 1
6702  No options  No options
6703  No first char  No first char
6704  No need char  No need char
6705    Subject length lower bound = 1
6706  Starting byte set: a b c d  Starting byte set: a b c d
6707    
6708  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
# Line 6642  Capturing subpattern count = 1 Line 6710  Capturing subpattern count = 1
6710  No options  No options
6711  No first char  No first char
6712  No need char  No need char
6713    Subject length lower bound = 1
6714  Starting byte set: a b c d  Starting byte set: a b c d
6715    
6716  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
# Line 6649  Capturing subpattern count = 1 Line 6718  Capturing subpattern count = 1
6718  No options  No options
6719  No first char  No first char
6720  No need char  No need char
6721    Subject length lower bound = 2
6722  Starting byte set: a b  Starting byte set: a b
6723    
6724  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7454  No match Line 7524  No match
7524          ^          ^
7525          CBra 1          CBra 1
7526          Cond          Cond
7527        2 Cond ref        2 Cond nref
7528          y          y
7529          Ket          Ket
7530          [()]          [()]
# Line 7572  Need char = ':' Line 7642  Need char = ':'
7642   0: abcd:   0: abcd:
7643   1: abcd   1: abcd
7644    
 /(?'abc'\w+):\k<abc>{2}/  
     a:aaxyz  
  0: a:aa  
  1: a  
     ab:ababxyz  
  0: ab:abab  
  1: ab  
     ** Failers  
 No match  
     a:axyz  
 No match  
     ab:abxyz  
 No match  
   
7645  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7646      adaa      adaa
7647   0: adaa   0: adaa
# Line 7612  No match Line 7668  No match
7668      bddd      bddd
7669  No match  No match
7670    
 /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x  
     abd  
  0: abd  
  1: a  
     ce  
  0: ce  
   
7671  /(?(<bc))/  /(?(<bc))/
7672  Failed: malformed number or name after (?( at offset 6  Failed: malformed number or name after (?( at offset 6
7673    
# Line 7649  Failed: reference to non-existent subpat Line 7698  Failed: reference to non-existent subpat
7698   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7699   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7700    
 /^(?(DEFINE) (?<A> a) (?<B> b) )  (?&A) (?&B) /x  
     abcd  
  0: ab  
  1: <unset>  
  2: <unset>  
   
 /(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT))  
   (?(DEFINE)  
   (?<NAME_PAT>[a-z]+)  
   (?<ADDRESS_PAT>\d+)  
   )/x  
     metcalfe 33  
  0: metcalfe 33  
  1: metcalfe  
  2: 33  
  3: <unset>  
  4: <unset>  
   
7701  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7702  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7703    
# Line 7844  Need char = 'P' Line 7875  Need char = 'P'
7875   0: PXP   0: PXP
7876   1: P   1: P
7877    
 /(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/  
     1.2.3.4  
  0: 1.2.3.4  
  1: <unset>  
  2: .4  
     131.111.10.206  
  0: 131.111.10.206  
  1: <unset>  
  2: .206  
     10.0.0.0  
  0: 10.0.0.0  
  1: <unset>  
  2: .0  
     ** Failers  
 No match  
     10.6  
 No match  
     455.3.4.5  
 No match  
   
 /\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/  
     1.2.3.4  
  0: 1.2.3.4  
  1: .4  
  2: <unset>  
     131.111.10.206  
  0: 131.111.10.206  
  1: .206  
  2: <unset>  
     10.0.0.0  
  0: 10.0.0.0  
  1: .0  
  2: <unset>  
     ** Failers  
 No match  
     10.6  
 No match  
     455.3.4.5  
 No match  
   
7878  /(?:a(?&abc)b)*(?<abc>x)/  /(?:a(?&abc)b)*(?<abc>x)/
7879      123axbaxbaxbx456      123axbaxbaxbx456
7880   0: axbaxbaxbx   0: axbaxbaxbx
# Line 7921  No match Line 7912  No match
7912     DEFabcABCXYZ     DEFabcABCXYZ
7913  No match  No match
7914    
 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/  
     ababababbbabZXXXX  
  0: ababababbbabZ  
  1: ab  
  2: b  
   
7915  /^(a)\g-2/  /^(a)\g-2/
7916  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
7917    
# Line 8182  Failed: reference to non-existent subpat Line 8167  Failed: reference to non-existent subpat
8167   0: Y!   0: Y!
8168   1: !   1: !
8169    
 /(foo)\Kbar/  
     foobar  
  0: bar  
  1: foo  
   
 /(foo)(\Kbar|baz)/  
     foobar  
  0: bar  
  1: foo  
  2: bar  
     foobaz  
  0: foobaz  
  1: foo  
  2: baz  
   
 /(foo\Kbar)baz/  
     foobarbaz  
  0: barbaz  
  1: foobar  
   
8170  /(?<A>tom|bon)-\k{A}/  /(?<A>tom|bon)-\k{A}/
8171      tom-tom      tom-tom
8172   0: tom-tom   0: tom-tom
# Line 8214  No match Line 8179  No match
8179      tom-bon      tom-bon
8180  No match  No match
8181    
 /(?<A>tom|bon)-\g{A}/  
     tom-tom  
  0: tom-tom  
  1: tom  
     bon-bon  
  0: bon-bon  
  1: bon  
   
8182  /\g{A/  /\g{A/
8183  Failed: syntax error in subpattern name (missing terminator) at offset 4  Failed: syntax error in subpattern name (missing terminator) at offset 4
8184    
# Line 8316  Failed: syntax error in subpattern name Line 8273  Failed: syntax error in subpattern name
8273   3: <unset>   3: <unset>
8274   4: x   4: x
8275    
 /(?|(abc)|(xyz))\1/  
     abcabc  
  0: abcabc  
  1: abc  
     xyzxyz  
  0: xyzxyz  
  1: xyz  
     ** Failers  
 No match  
     abcxyz  
 No match  
     xyzabc  
 No match  
   
 /(?|(abc)|(xyz))(?1)/  
     abcabc  
  0: abcabc  
  1: abc  
     xyzabc  
  0: xyzabc  
  1: xyz  
     ** Failers  
 No match  
     xyzxyz  
 No match  
   
 /\H\h\V\v/  
     X X\x0a  
  0: X X\x0a  
     X\x09X\x0b  
  0: X\x09X\x0b  
     ** Failers  
 No match  
     \xa0 X\x0a  
 No match  
   
 /\H*\h+\V?\v{3,4}/  
     \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a  
  0: \x09 \xa0X\x0a\x0b\x0c\x0d  
     \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a  
  0: \x09 \xa0\x0a\x0b\x0c\x0d  
     \x09\x20\xa0\x0a\x0b\x0c  
  0: \x09 \xa0\x0a\x0b\x0c  
     ** Failers  
 No match  
     \x09\x20\xa0\x0a\x0b  
 No match  
   
 /\H{3,4}/  
     XY  ABCDE  
  0: ABCD  
     XY  PQR ST  
  0: PQR  
   
 /.\h{3,4}./  
     XY  AB    PQRS  
  0: B    P  
   
 /\h*X\h?\H+Y\H?Z/  
     >XNNNYZ  
  0: XNNNYZ  
     >  X NYQZ  
  0:   X NYQZ  
     ** Failers  
 No match  
     >XYZ  
 No match  
     >  X NY Z  
 No match  
   
 /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/  
     >XY\x0aZ\x0aA\x0bNN\x0c  
  0: XY\x0aZ\x0aA\x0bNN\x0c  
     >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c  
  0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c  
   
8276  /[\h]/BZ  /[\h]/BZ
8277  ------------------------------------------------------------------  ------------------------------------------------------------------
8278          Bra          Bra
# Line 8688  Failed: missing terminating ] for charac Line 8569  Failed: missing terminating ] for charac
8569          End          End
8570  ------------------------------------------------------------------  ------------------------------------------------------------------
8571    
 /^a+(*FAIL)/  
     aaaaaa  
 No match  
   
 /a+b?c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*PRUNE)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*COMMIT)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*SKIP)c+(*FAIL)/  
     aaabcccaaabccc  
 No match  
   
 /^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/  
     aaaxxxxxx  
  0: aaaxxxxxx  
     aaa++++++  
  0: aaa  
     bbbxxxxx  
  0: bbbxxxxx  
     bbb+++++  
  0: bbb  
     cccxxxx  
  0: cccxxxx  
     ccc++++  
  0: ccc  
     dddddddd  
  0: ddd  
   
 /^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/  
     aaaxxxxxx  
  0: aaaxxxxxx  
  1: aaaxxxxxx  
     aaa++++++  
  0: aaa  
  1: aaa  
     bbbxxxxx  
  0: bbbxxxxx  
  1: bbbxxxxx  
     bbb+++++  
  0: bbb  
  1: bbb  
     cccxxxx  
  0: cccxxxx  
  1: cccxxxx  
     ccc++++  
  0: ccc  
  1: ccc  
     dddddddd  
  0: ddd  
  1: ddd  
   
 /a+b?(*THEN)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /(A (A|B(*ACCEPT)|C) D)(E)/x  
     ABX  
  0: AB  
     AADE  
  0: AADE  
  1: AAD  
  2: A  
  3: E  
     ACDE  
  0: ACDE  
  1: ACD  
  2: C  
  3: E  
     ** Failers  
 No match  
     AD  
 No match  
   
8572  /^a+(*FAIL)/C  /^a+(*FAIL)/C
8573      aaaaaa      aaaaaa
8574  --->aaaaaa  --->aaaaaa
# Line 8897  No match Line 8697  No match
8697  +13   ^  ^      (*FAIL)  +13   ^  ^      (*FAIL)
8698  No match  No match
8699    
 /a(*PRUNE:XXX)b/  
 Failed: (*VERB) with an argument is not supported at offset 8  
   
8700  /a(*MARK)b/  /a(*MARK)b/
8701  Failed: (*VERB) not recognized at offset 7  Failed: (*MARK) must have an argument at offset 7
8702    
8703  /(?i:A{1,}\6666666666)/  /(?i:A{1,}\6666666666)/
8704  Failed: number is too big at offset 19  Failed: number is too big at offset 19
# Line 8990  No match Line 8787  No match
8787  No match  No match
8788      a\x85b      a\x85b
8789  No match  No match
8790    
8791    /(*ANY).*/g
8792        abc\r\ndef
8793     0: abc
8794     0:
8795     0: def
8796     0:
8797    
8798    /(*ANYCRLF).*/g
8799        abc\r\ndef
8800     0: abc
8801     0:
8802     0: def
8803     0:
8804    
8805    /(*CRLF).*/g
8806        abc\r\ndef
8807     0: abc
8808     0:
8809     0: def
8810     0:
8811    
8812  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
8813  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 9240  Failed: unknown POSIX class name at offs Line 9058  Failed: unknown POSIX class name at offs
9058  /[[:a\dz:]]/  /[[:a\dz:]]/
9059  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
9060    
9061  /^(?<name>a|b\g<name>c)/  /(^(a|b\g<-1'c))/
9062      aaaa  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
9063    
9064  /^(?<name>a|b\g'name'c)/  /^(?+1)(?<a>x|y){0}z/
9065      aaaa      xzxx
9066   0: a   0: xz
9067   1: a      yzyy
9068      bacxxx   0: yz
9069   0: bac      ** Failers
9070   1: bac  No match
9071      bbaccxxx      xxz
9072   0: bbacc  No match
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
9073    
9074  /^(a|b\g<1>c)/  /(\3)(\1)(a)/
9075      aaaa      cat
9076   0: a  No match
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
9077    
9078  /^(a|b\g'1'c)/  /(\3)(\1)(a)/<JS>
9079      aaaa      cat
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
   
 /^(a|b\g'-1'c)/  
     aaaa  
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
   
 /(^(a|b\g<-1>c))/  
     aaaa  
  0: a  
  1: a  
  2: a  
     bacxxx  
  0: bac  
  1: bac  
  2: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
  2: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
  2: bbbaccc  
   
 /(^(a|b\g<-1'c))/  
 Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15  
   
 /(^(a|b\g{-1}))/  
     bacxxx  
 No match  
   
 /(?-i:\g<name>)(?i:(?<name>a))/  
     XaaX  
  0: aa  
  1: a  
     XAAX  
  0: AA  
  1: A  
   
 /(?i:\g<name>)(?-i:(?<name>a))/  
     XaaX  
  0: aa  
  1: a  
     ** Failers  
 No match  
     XAAX  
 No match  
   
 /(?-i:\g<+1>)(?i:(a))/  
     XaaX  
  0: aa  
  1: a  
     XAAX  
  0: AA  
  1: A  
   
 /(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/  
   
 /(?<n>a|b|c)\g<n>*/  
    abc  
  0: abc  
  1: a  
    accccbbb  
  0: accccbbb  
  1: a  
   
 /^(?+1)(?<a>x|y){0}z/  
     xzxx  
  0: xz  
  1: <unset>  
     yzyy  
  0: yz  
  1: <unset>  
     ** Failers  
 No match  
     xxz  
 No match  
   
 /(\3)(\1)(a)/  
     cat  
 No match  
   
 /(\3)(\1)(a)/<JS>  
     cat  
9080   0: a   0: a
9081   1:   1:
9082   2:   2:
# Line 9491  Capturing subpattern count = 1 Line 9180  Capturing subpattern count = 1
9180  No options  No options
9181  No first char  No first char
9182  No need char  No need char
9183    Subject length lower bound = 1
9184  Starting byte set: x y z  Starting byte set: x y z
9185    
9186  /(?(?=.*b)b|^)/CI  /(?(?=.*b)b|^)/CI
# Line 9638  No match Line 9328  No match
9328   0: "ab"   0: "ab"
9329   1:   1:
9330    
 /^X(?5)(a)(?|(b)|(q))(c)(d)(Y)/  
     XYabcdY  
  0: XYabcdY  
  1: a  
  2: b  
  3: c  
  4: d  
  5: Y  
   
9331  /^X(?5)(a)(?|(b)|(q))(c)(d)Y/  /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9332  Failed: reference to non-existent subpattern at offset 5  Failed: reference to non-existent subpattern at offset 5
9333    
# Line 9659  Failed: reference to non-existent subpat Line 9340  Failed: reference to non-existent subpat
9340   4: d   4: d
9341   5: Y   5: Y
9342    
 /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/  
     XYabcdY  
  0: XYabcdY  
  1: a  
  2: b  
  3: <unset>  
  4: <unset>  
  5: c  
  6: d  
  7: Y  
   
 /^X(?7)(a)(?|(b|(r)(s))|(q))(c)(d)(Y)/  
     XYabcdY  
  0: XYabcdY  
  1: a  
  2: b  
  3: <unset>  
  4: <unset>  
  5: c  
  6: d  
  7: Y  
   
 /^X(?7)(a)(?|(b|(?|(r)|(t))(s))|(q))(c)(d)(Y)/  
     XYabcdY  
  0: XYabcdY  
  1: a  
  2: b  
  3: <unset>  
  4: <unset>  
  5: c  
  6: d  
  7: Y  
   
9343  /Xa{2,4}b/  /Xa{2,4}b/
9344      X\P      X\P
9345  Partial match: X  Partial match: X
# Line 9918  Partial match: 123999 Line 9566  Partial match: 123999
9566    
9567  /Z(*F)/  /Z(*F)/
9568      Z\P      Z\P
9569  Partial match: Z  No match
9570      ZA\P      ZA\P
9571  No match  No match
9572    
9573  /Z(?!)/  /Z(?!)/
9574      Z\P      Z\P
9575  Partial match: Z  No match
9576      ZA\P      ZA\P
9577  No match  No match
9578    
9579  / End of testinput2 /  /dog(sbody)?/
9580        dogs\P
9581     0: dog
9582        dogs\P\P
9583    Partial match: dogs
9584    
9585    /dog(sbody)??/
9586        dogs\P
9587     0: dog
9588        dogs\P\P
9589     0: dog
9590    
9591    /dog|dogsbody/
9592        dogs\P
9593     0: dog
9594        dogs\P\P
9595     0: dog
9596    
9597    /dogsbody|dog/
9598        dogs\P
9599     0: dog
9600        dogs\P\P
9601    Partial match: dogs
9602    
9603    /\bthe cat\b/
9604        the cat\P
9605     0: the cat
9606        the cat\P\P
9607    Partial match: the cat
9608    
9609    /abc/
9610       abc\P
9611     0: abc
9612       abc\P\P
9613     0: abc
9614    
9615    /\w+A/P
9616       CDAAAAB
9617     0: CDAAAA
9618    
9619    /\w+A/PU
9620       CDAAAAB
9621     0: CDA
9622    
9623    /abc\K123/
9624        xyzabc123pqr
9625     0: 123
9626        xyzabc12\P
9627    Partial match: abc12
9628        xyzabc12\P\P
9629    Partial match: abc12
9630    
9631    /(?<=abc)123/
9632        xyzabc123pqr
9633     0: 123
9634        xyzabc12\P
9635    Partial match: abc12
9636        xyzabc12\P\P
9637    Partial match: abc12
9638    
9639    /\babc\b/
9640        +++abc+++
9641     0: abc
9642        +++ab\P
9643    Partial match: +ab
9644        +++ab\P\P
9645    Partial match: +ab
9646    
9647    /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9648    ------------------------------------------------------------------
9649            Bra
9650            Once
9651            Recurse
9652            Ket
9653            Once
9654            Recurse
9655            Ket
9656            Cond
9657            Cond def
9658            CBra 1
9659            <
9660            [^m]
9661            [^>]
9662            >
9663            [^<]
9664            Ket
9665            CBra 2
9666            \w*+
9667            Ket
9668            Ket
9669            Ket
9670            End
9671    ------------------------------------------------------------------
9672    
9673    /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9674    ------------------------------------------------------------------
9675            Bra
9676            Once
9677            Recurse
9678            Ket
9679            Once
9680            Recurse
9681            Ket
9682            Cond
9683            Cond def
9684            CBra 1
9685            <
9686            [\x00-/:-\xff] (neg)
9687            [^>]
9688            >
9689            [^<]
9690            Ket
9691            CBra 2
9692            \w*+
9693            Ket
9694            Ket
9695            Ket
9696            End
9697    ------------------------------------------------------------------
9698    
9699    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9700    ------------------------------------------------------------------
9701            Bra
9702            CBra 1
9703            ab
9704            Ket
9705            CBra 2
9706            x
9707            CBra 3
9708            y
9709            Ket
9710            z
9711            CBra 4
9712            cd
9713            Close 4
9714            Close 2
9715            *ACCEPT
9716            Ket
9717            Ket
9718            pq
9719            Ket
9720            End
9721    ------------------------------------------------------------------
9722    
9723    /abc\K/+
9724        abcdef
9725     0:
9726     0+ def
9727        abcdef\N\N
9728     0:
9729     0+ def
9730        xyzabcdef\N\N
9731     0:
9732     0+ def
9733        ** Failers
9734    No match
9735        abcdef\N
9736    No match
9737        xyzabcdef\N
9738    No match
9739    
9740    /^(?:(?=abc)|abc\K)/+
9741        abcdef
9742     0:
9743     0+ abcdef
9744        abcdef\N\N
9745     0:
9746     0+ def
9747        ** Failers
9748    No match
9749        abcdef\N
9750    No match
9751    
9752    /a?b?/+
9753        xyz
9754     0:
9755     0+ xyz
9756        xyzabc
9757     0:
9758     0+ xyzabc
9759        xyzabc\N
9760     0: ab
9761     0+ c
9762        xyzabc\N\N
9763     0:
9764     0+ yzabc
9765        xyz\N\N
9766     0:
9767     0+ yz
9768        ** Failers
9769     0:
9770     0+ ** Failers
9771        xyz\N
9772    No match
9773    
9774    /^a?b?/+
9775        xyz
9776     0:
9777     0+ xyz
9778        xyzabc
9779     0:
9780     0+ xyzabc
9781        ** Failers
9782     0:
9783     0+ ** Failers
9784        xyzabc\N
9785    No match
9786        xyzabc\N\N
9787    No match
9788        xyz\N\N
9789    No match
9790        xyz\N
9791    No match
9792    
9793    /^(?<name>a|b\g<name>c)/
9794        aaaa
9795     0: a
9796     1: a
9797        bacxxx
9798     0: bac
9799     1: bac
9800        bbaccxxx
9801     0: bbacc
9802     1: bbacc
9803        bbbacccxx
9804     0: bbbaccc
9805     1: bbbaccc
9806    
9807    /^(?<name>a|b\g'name'c)/
9808        aaaa
9809     0: a
9810     1: a
9811        bacxxx
9812     0: bac
9813     1: bac
9814        bbaccxxx
9815     0: bbacc
9816     1: bbacc
9817        bbbacccxx
9818     0: bbbaccc
9819     1: bbbaccc
9820    
9821    /^(a|b\g<1>c)/
9822        aaaa
9823     0: a
9824     1: a
9825        bacxxx
9826     0: bac
9827     1: bac
9828        bbaccxxx
9829     0: bbacc
9830     1: bbacc
9831        bbbacccxx
9832     0: bbbaccc
9833     1: bbbaccc
9834    
9835    /^(a|b\g'1'c)/
9836        aaaa
9837     0: a
9838     1: a
9839        bacxxx
9840     0: bac
9841     1: bac
9842        bbaccxxx
9843     0: bbacc
9844     1: bbacc
9845        bbbacccxx
9846     0: bbbaccc
9847     1: bbbaccc
9848    
9849    /^(a|b\g'-1'c)/
9850        aaaa
9851     0: a
9852     1: a
9853        bacxxx
9854     0: bac
9855     1: bac
9856        bbaccxxx
9857     0: bbacc
9858     1: bbacc
9859        bbbacccxx
9860     0: bbbaccc
9861     1: bbbaccc
9862    
9863    /(^(a|b\g<-1>c))/
9864        aaaa
9865     0: a
9866     1: a
9867     2: a
9868        bacxxx
9869     0: bac
9870     1: bac
9871     2: bac
9872        bbaccxxx
9873     0: bbacc
9874     1: bbacc
9875     2: bbacc
9876        bbbacccxx
9877     0: bbbaccc
9878     1: bbbaccc
9879     2: bbbaccc
9880    
9881    /(?-i:\g<name>)(?i:(?<name>a))/
9882        XaaX
9883     0: aa
9884     1: a
9885        XAAX
9886     0: AA
9887     1: A
9888    
9889    /(?i:\g<name>)(?-i:(?<name>a))/
9890        XaaX
9891     0: aa
9892     1: a
9893        ** Failers
9894    No match
9895        XAAX
9896    No match
9897    
9898    /(?-i:\g<+1>)(?i:(a))/
9899        XaaX
9900     0: aa
9901     1: a
9902        XAAX
9903     0: AA
9904     1: A
9905    
9906    /(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/
9907    
9908    /(?<n>a|b|c)\g<n>*/
9909       abc
9910     0: abc
9911     1: a
9912       accccbbb
9913     0: accccbbb
9914     1: a
9915    
9916    /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
9917        XYabcdY
9918     0: XYabcdY
9919     1: a
9920     2: b
9921     3: <unset>
9922     4: <unset>
9923     5: c
9924     6: d
9925     7: Y
9926    
9927    /(?<=b(?1)|zzz)(a)/
9928        xbaax
9929     0: a
9930     1: a
9931        xzzzax
9932     0: a
9933     1: a
9934    
9935    /(a)(?<=b\1)/
9936    Failed: lookbehind assertion is not fixed length at offset 10
9937    
9938    /(a)(?<=b+(?1))/
9939    Failed: lookbehind assertion is not fixed length at offset 13
9940    
9941    /(a+)(?<=b(?1))/
9942    Failed: lookbehind assertion is not fixed length at offset 14
9943    
9944    /(a(?<=b(?1)))/
9945    Failed: lookbehind assertion is not fixed length at offset 13
9946    
9947    /(?<=b(?1))xyz/
9948    Failed: reference to non-existent subpattern at offset 8
9949    
9950    /(?<=b(?1))xyz(b+)pqrstuvew/
9951    Failed: lookbehind assertion is not fixed length at offset 26
9952    
9953    /(a|bc)\1/SI
9954    Capturing subpattern count = 1
9955    Max back reference = 1
9956    No options
9957    No first char
9958    No need char
9959    Subject length lower bound = 2
9960    Starting byte set: a b
9961    
9962    /(a|bc)\1{2,3}/SI
9963    Capturing subpattern count = 1
9964    Max back reference = 1
9965    No options
9966    No first char
9967    No need char
9968    Subject length lower bound = 3
9969    Starting byte set: a b
9970    
9971    /(a|bc)(?1)/SI
9972    Capturing subpattern count = 1
9973    No options
9974    No first char
9975    No need char
9976    Subject length lower bound = 2
9977    Starting byte set: a b
9978    
9979    /(a|b\1)(a|b\1)/SI
9980    Capturing subpattern count = 2
9981    Max back reference = 1
9982    No options
9983    No first char
9984    No need char
9985    Subject length lower bound = 2
9986    Starting byte set: a b
9987    
9988    /(a|b\1){2}/SI
9989    Capturing subpattern count = 1
9990    Max back reference = 1
9991    No options
9992    No first char
9993    No need char
9994    Subject length lower bound = 2
9995    Starting byte set: a b
9996    
9997    /(a|bbbb\1)(a|bbbb\1)/SI
9998    Capturing subpattern count = 2
9999    Max back reference = 1
10000    No options
10001    No first char
10002    No need char
10003    Subject length lower bound = 2
10004    Starting byte set: a b
10005    
10006    /(a|bbbb\1){2}/SI
10007    Capturing subpattern count = 1
10008    Max back reference = 1
10009    No options
10010    No first char
10011    No need char
10012    Subject length lower bound = 2
10013    Starting byte set: a b
10014    
10015    /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/SI
10016    Capturing subpattern count = 1
10017    Options: anchored
10018    No first char
10019    Need char = ':'
10020    Subject length lower bound = 22
10021    No set of starting bytes
10022    
10023    /  (?: [\040\t] |  \(
10024    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10025    \)  )*                          # optional leading comment
10026    (?:    (?:
10027    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10028    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10029    |
10030    " (?:                      # opening quote...
10031    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10032    |                     #    or
10033    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10034    )* "  # closing quote
10035    )                    # initial word
10036    (?:  (?: [\040\t] |  \(
10037    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10038    \)  )*  \.  (?: [\040\t] |  \(
10039    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10040    \)  )*   (?:
10041    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10042    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10043    |
10044    " (?:                      # opening quote...
10045    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10046    |                     #    or
10047    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10048    )* "  # closing quote
10049    )  )* # further okay, if led by a period
10050    (?: [\040\t] |  \(
10051    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10052    \)  )*  @  (?: [\040\t] |  \(
10053    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10054    \)  )*    (?:
10055    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10056    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10057    |   \[                         # [
10058    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10059    \]                        #           ]
10060    )                           # initial subdomain
10061    (?:                                  #
10062    (?: [\040\t] |  \(
10063    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10064    \)  )*  \.                        # if led by a period...
10065    (?: [\040\t] |  \(
10066    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10067    \)  )*   (?:
10068    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10069    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10070    |   \[                         # [
10071    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10072    \]                        #           ]
10073    )                     #   ...further okay
10074    )*
10075    # address
10076    |                     #  or
10077    (?:
10078    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10079    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10080    |
10081    " (?:                      # opening quote...
10082    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10083    |                     #    or
10084    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10085    )* "  # closing quote
10086    )             # one word, optionally followed by....
10087    (?:
10088    [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
10089    \(
10090    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10091    \)       |  # comments, or...
10092    
10093    " (?:                      # opening quote...
10094    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10095    |                     #    or
10096    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10097    )* "  # closing quote
10098    # quoted strings
10099    )*
10100    <  (?: [\040\t] |  \(
10101    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10102    \)  )*                     # leading <
10103    (?:  @  (?: [\040\t] |  \(
10104    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10105    \)  )*    (?:
10106    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10107    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10108    |   \[                         # [
10109    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10110    \]                        #           ]
10111    )                           # initial subdomain
10112    (?:                                  #
10113    (?: [\040\t] |  \(
10114    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10115    \)  )*  \.                        # if led by a period...
10116    (?: [\040\t] |  \(
10117    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10118    \)  )*   (?:
10119    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10120    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10121    |   \[                         # [
10122    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10123    \]                        #           ]
10124    )                     #   ...further okay
10125    )*
10126    
10127    (?:  (?: [\040\t] |  \(
10128    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10129    \)  )*  ,  (?: [\040\t] |  \(
10130    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10131    \)  )*  @  (?: [\040\t] |  \(
10132    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10133    \)  )*    (?:
10134    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10135    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10136    |   \[                         # [
10137    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10138    \]                        #           ]
10139    )                           # initial subdomain
10140    (?:                                  #
10141    (?: [\040\t] |  \(
10142    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10143    \)  )*  \.                        # if led by a period...
10144    (?: [\040\t] |  \(
10145    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10146    \)  )*   (?:
10147    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10148    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10149    |   \[                         # [
10150    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10151    \]                        #           ]
10152    )                     #   ...further okay
10153    )*
10154    )* # further okay, if led by comma
10155    :                                # closing colon
10156    (?: [\040\t] |  \(
10157    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10158    \)  )*  )? #       optional route
10159    (?:
10160    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10161    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10162    |
10163    " (?:                      # opening quote...
10164    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10165    |                     #    or
10166    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10167    )* "  # closing quote
10168    )                    # initial word
10169    (?:  (?: [\040\t] |  \(
10170    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10171    \)  )*  \.  (?: [\040\t] |  \(
10172    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10173    \)  )*   (?:
10174    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10175    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10176    |
10177    " (?:                      # opening quote...
10178    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10179    |                     #    or
10180    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10181    )* "  # closing quote
10182    )  )* # further okay, if led by a period
10183    (?: [\040\t] |  \(
10184    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10185    \)  )*  @  (?: [\040\t] |  \(
10186    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10187    \)  )*    (?:
10188    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10189    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10190    |   \[                         # [
10191    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10192    \]                        #           ]
10193    )                           # initial subdomain
10194    (?:                                  #
10195    (?: [\040\t] |  \(
10196    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10197    \)  )*  \.                        # if led by a period...
10198    (?: [\040\t] |  \(
10199    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10200    \)  )*   (?:
10201    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10202    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10203    |   \[                         # [
10204    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10205    \]                        #           ]
10206    )                     #   ...further okay
10207    )*
10208    #       address spec
10209    (?: [\040\t] |  \(
10210    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10211    \)  )*  > #                  trailing >
10212    # name and address
10213    )  (?: [\040\t] |  \(
10214    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10215    \)  )*                       # optional trailing comment
10216    /xSI
10217    Capturing subpattern count = 0
10218    Contains explicit CR or LF match
10219    Options: extended
10220    No first char
10221    No need char
10222    Subject length lower bound = 3
10223    Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
10224      9 = ? 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 ^ _ ` a b c d e
10225      f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f
10226    
10227    /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS
10228    Capturing subpattern count = 11
10229    Options: caseless dotall
10230    First char = '<'
10231    Need char = '>'
10232    Subject length lower bound = 47
10233    No set of starting bytes
10234    
10235    "(?>.*/)foo"SI
10236    Capturing subpattern count = 0
10237    No options
10238    First char at start or follows newline
10239    Need char = 'o'
10240    Subject length lower bound = 4
10241    No set of starting bytes
10242    
10243    /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10244    Capturing subpattern count = 0
10245    Options: extended
10246    No first char
10247    Need char = '-'
10248    Subject length lower bound = 8
10249    No set of starting bytes
10250    
10251    /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10252    Capturing subpattern count = 1
10253    Options: caseless
10254    No first char
10255    No need char
10256    Subject length lower bound = 1
10257    Starting byte set: A B C a b c
10258    
10259    /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10260    Capturing subpattern count = 0
10261    No options
10262    No first char
10263    Need char = 'b'
10264    Subject length lower bound = 41
10265    Starting byte set: c d
10266    
10267    /<a[\s]+href[\s]*=[\s]*          # find <a href=
10268     ([\"\'])?                       # find single or double quote
10269     (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
10270                                     # quote, otherwise match up to next space
10271    /isxSI
10272    Capturing subpattern count = 3
10273    Max back reference = 1
10274    Options: caseless extended dotall
10275    First char = '<'
10276    Need char = '='
10277    Subject length lower bound = 9
10278    No set of starting bytes
10279    
10280    /^(?!:)                       # colon disallowed at start
10281      (?:                         # start of item
10282        (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
10283        (?(1)0 | () ) )           # if null previously matched, fail; else null
10284        :                         # followed by colon
10285      ){1,7}                      # end item; 1-7 of them required
10286      [0-9a-f]{1,4} $             # final hex number at end of string
10287      (?(1)|.)                    # check that there was an empty component
10288      /xiIS
10289    Capturing subpattern count = 1
10290    Options: anchored caseless extended
10291    No first char
10292    Need char = ':'
10293    Subject length lower bound = 2
10294    No set of starting bytes
10295    
10296    /(?|(?<a>A)|(?<a>B))/I
10297    Capturing subpattern count = 1
10298    Named capturing subpatterns:
10299      a   1
10300      a   1
10301    No options
10302    No first char
10303    No need char
10304        AB\Ca
10305     0: A
10306     1: A
10307      C A (1) a
10308        BA\Ca
10309     0: B
10310     1: B
10311      C B (1) a
10312    
10313    /(?|(?<a>A)|(?<b>B))/
10314    Failed: different names for subpatterns of the same number are not allowed at offset 15
10315    
10316    /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10317        b(?<quote> (?<apostrophe>')|(?<realquote>")) )
10318        (?('quote')[a-z]+|[0-9]+)/JIx
10319    Capturing subpattern count = 6
10320    Named capturing subpatterns:
10321      apostrophe   2
10322      apostrophe   5
10323      quote        1
10324      quote        4
10325      realquote    3
10326      realquote    6
10327    Options: extended dupnames
10328    No first char
10329    No need char
10330        a"aaaaa
10331     0: a"aaaaa
10332     1: "
10333     2: <unset>
10334     3: "
10335        b"aaaaa
10336     0: b"aaaaa
10337     1: <unset>
10338     2: <unset>
10339     3: <unset>
10340     4: "
10341     5: <unset>
10342     6: "
10343        ** Failers
10344    No match
10345        b"11111
10346    No match
10347        a"11111
10348    No match
10349    
10350    /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10351    ------------------------------------------------------------------
10352            Bra
10353            ^
10354            Bra
10355            CBra 1
10356            a
10357            Ket
10358            CBra 2
10359            b
10360            Ket
10361            CBra 3
10362            c
10363            Ket
10364            CBra 4
10365            d
10366            Ket
10367            Alt
10368            CBra 1
10369            e
10370            Ket
10371            Ket
10372            Cond
10373          4 Cond nref
10374            X
10375            Alt
10376            Y
10377            Ket
10378            Ket
10379            End
10380    ------------------------------------------------------------------
10381    Capturing subpattern count = 4
10382    Named capturing subpatterns:
10383      D   4
10384      D   1
10385    Options: anchored extended dupnames
10386    No first char
10387    No need char
10388        abcdX
10389     0: abcdX
10390     1: a
10391     2: b
10392     3: c
10393     4: d
10394        eX
10395     0: eX
10396     1: e
10397        ** Failers
10398    No match
10399        abcdY
10400    No match
10401        ey
10402    No match
10403    
10404    /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
10405    ------------------------------------------------------------------
10406            Bra
10407            CBra 1
10408            a
10409            Ket
10410            CBra 2
10411            b
10412            Ket
10413            CBra 3
10414            c
10415            Ket
10416            CBra 4
10417            d
10418            Cond
10419            Cond nrecurse 1
10420            $
10421            Alt
10422            Once
10423            Recurse
10424            Ket
10425            Ket
10426            Ket
10427            Ket
10428            End
10429    ------------------------------------------------------------------
10430    Capturing subpattern count = 4
10431    Named capturing subpatterns:
10432      A   1
10433      A   4
10434    Options: extended dupnames
10435    First char = 'a'
10436    Need char = 'd'
10437        abcdd
10438     0: abcdd
10439     1: a
10440     2: b
10441     3: c
10442     4: dd
10443        ** Failers
10444    No match
10445        abcdde
10446    No match
10447    
10448    /abcd*/
10449        xxxxabcd\P
10450     0: abcd
10451        xxxxabcd\P\P
10452    Partial match: abcd
10453    
10454    /abcd*/i
10455        xxxxabcd\P
10456     0: abcd
10457        xxxxabcd\P\P
10458    Partial match: abcd
10459        XXXXABCD\P
10460     0: ABCD
10461        XXXXABCD\P\P
10462    Partial match: ABCD
10463    
10464    /abc\d*/
10465        xxxxabc1\P
10466     0: abc1
10467        xxxxabc1\P\P
10468    Partial match: abc1
10469    
10470    /(a)bc\1*/
10471        xxxxabca\P
10472     0: abca
10473     1: a
10474        xxxxabca\P\P
10475    Partial match: abca
10476    
10477    /abc[de]*/
10478        xxxxabcde\P
10479     0: abcde
10480        xxxxabcde\P\P
10481    Partial match: abcde
10482    
10483    /-- This is not in the Perl >= 5.10 test because Perl seems currently to be
10484        broken and not behaving as specified in that it *does* bumpalong after
10485        hitting (*COMMIT). --/
10486    
10487    /(?1)(A(*COMMIT)|B)D/
10488        ABD
10489     0: ABD
10490     1: B
10491        XABD
10492     0: ABD
10493     1: B
10494        BAD
10495     0: BAD
10496     1: A
10497        ABXABD
10498     0: ABD
10499     1: B
10500        ** Failers
10501    No match
10502        ABX
10503    No match
10504        BAXBAD
10505    No match
10506    
10507    /(\3)(\1)(a)/<JS>
10508        cat
10509     0: a
10510     1:
10511     2:
10512     3: a
10513    
10514    /(\3)(\1)(a)/SI<JS>
10515    Capturing subpattern count = 3
10516    Max back reference = 3
10517    Options:
10518    No first char
10519    Need char = 'a'
10520    Subject length lower bound = 1
10521    No set of starting bytes
10522        cat
10523     0: a
10524     1:
10525     2:
10526     3: a
10527    
10528    /(\3)(\1)(a)/SI
10529    Capturing subpattern count = 3
10530    Max back reference = 3
10531    No options
10532    No first char
10533    Need char = 'a'
10534    Subject length lower bound = 3
10535    No set of starting bytes
10536        cat
10537    No match
10538    
10539    /i(?(DEFINE)(?<s>a))/SI
10540    Capturing subpattern count = 1
10541    Named capturing subpatterns:
10542      s   1
10543    No options
10544    First char = 'i'
10545    No need char
10546    Subject length lower bound = 1
10547    No set of starting bytes
10548        i
10549     0: i
10550    
10551    /()i(?(1)a)/SI
10552    Capturing subpattern count = 1
10553    No options
10554    No first char
10555    Need char = 'i'
10556    Subject length lower bound = 1
10557    Starting byte set: i
10558        ia
10559     0: ia
10560     1:
10561    
10562    /(?i)a(?-i)b|c/BZ
10563    ------------------------------------------------------------------
10564            Bra
10565         NC a
10566         00 Opt
10567            b
10568            Alt
10569         00 Opt
10570            c
10571            Ket
10572            End
10573    ------------------------------------------------------------------
10574        XabX
10575     0: ab
10576        XAbX
10577     0: Ab
10578        CcC
10579     0: c
10580        ** Failers
10581    No match
10582        XABX
10583    No match
10584    
10585    /(?i)a(?s)b|c/BZ
10586    ------------------------------------------------------------------
10587            Bra
10588         NC a
10589         05 Opt
10590         NC b
10591            Alt
10592         05 Opt
10593         NC c
10594            Ket
10595            End
10596    ------------------------------------------------------------------
10597    
10598    /(?i)a(?s-i)b|c/BZ
10599    ------------------------------------------------------------------
10600            Bra
10601         NC a
10602         04 Opt
10603            b
10604            Alt
10605         04 Opt
10606            c
10607            Ket
10608            End
10609    ------------------------------------------------------------------
10610    
10611    /^(ab(c\1)d|x){2}$/BZ
10612    ------------------------------------------------------------------
10613            Bra
10614            ^
10615            Once
10616            CBra 1
10617            ab
10618            CBra 2
10619            c
10620            \1
10621            Ket
10622            d
10623            Alt
10624            x
10625            Ket
10626            Ket
10627            Once
10628            CBra 1
10629            ab
10630            CBra 2
10631            c
10632            \1
10633            Ket
10634            d
10635            Alt
10636            x
10637            Ket
10638            Ket
10639            $
10640            Ket
10641            End
10642    ------------------------------------------------------------------
10643        xabcxd
10644     0: xabcxd
10645     1: abcxd
10646     2: cx
10647    
10648    /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10649    ------------------------------------------------------------------
10650            Bra
10651            ^
10652            Once
10653            Brazero
10654            Once
10655            Recurse
10656            KetRmax
10657            Ket
10658            Cond
10659            Cond def
10660            CBra 1
10661            Any
10662            Ket
10663            Ket
10664            $
10665            Ket
10666            End
10667    ------------------------------------------------------------------
10668    
10669    /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10670    ------------------------------------------------------------------
10671            Bra
10672            ^
10673            Brazero
10674            Once
10675            Recurse
10676            KetRmax
10677            Cond
10678            Cond def
10679            CBra 1
10680            Any
10681            Ket
10682            Ket
10683            $
10684            Ket
10685            End
10686    ------------------------------------------------------------------
10687    
10688    / -- The first four of these are not in the Perl >= 5.10 test because Perl
10689         documents that the use of \K in assertions is "not well defined". The
10690         last is here because Perl gives the match as "b" rather than "ab". I
10691         believe this to be a Perl bug. --/
10692    
10693    /(?=a\Kb)ab/
10694        ab
10695     0: b
10696    
10697    /(?!a\Kb)ac/
10698        ac
10699     0: ac
10700    
10701    /^abc(?<=b\Kc)d/
10702        abcd
10703     0: cd
10704    
10705    /^abc(?<!b\Kq)d/
10706        abcd
10707     0: abcd
10708    
10709    /(?>a\Kb)z|(ab)/
10710        ab
10711     0: ab
10712     1: ab
10713    
10714    /----------------------/
10715    
10716    /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10717    Failed: recursive call could loop indefinitely at offset 31
10718    
10719    /abc(*MARK:)pqr/
10720    Failed: (*MARK) must have an argument at offset 10
10721    
10722    /abc(*:)pqr/
10723    Failed: (*MARK) must have an argument at offset 6
10724    
10725    /abc(*FAIL:123)xyz/
10726    Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10727    
10728    /--- This should, and does, fail. In Perl, it does not, which I think is a
10729         bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10730    
10731    /A(*COMMIT)B/+K
10732        ACABX
10733    No match
10734    
10735    /--- These should be different, but in Perl 5.11 are not, which I think
10736         is a bug in Perl. ---/
10737    
10738    /A(*THEN)B|A(*THEN)C/K
10739        AC
10740     0: AC
10741    
10742    /A(*PRUNE)B|A(*PRUNE)C/K
10743        AC
10744    No match
10745    
10746    /--- A whole lot of tests of verbs with arguments are here rather than in test
10747         11 because Perl doesn't seem to follow its specification entirely
10748         correctly. ---/
10749    
10750    /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is
10751         not clear how Perl defines "involved in the failure of the match". ---/
10752    
10753    /^(A(*THEN:A)B|C(*THEN:B)D)/K
10754        AB
10755     0: AB
10756     1: AB
10757        CD
10758     0: CD
10759     1: CD
10760        ** Failers
10761    No match
10762        AC
10763    No match
10764        CB
10765    No match, mark = B
10766    
10767    /--- Check the use of names for success and failure. PCRE doesn't show these
10768    names for success, though Perl does, contrary to its spec. ---/
10769    
10770    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
10771        AB
10772     0: AB
10773     1: AB
10774        CD
10775     0: CD
10776     1: CD
10777        ** Failers
10778    No match
10779        AC
10780    No match, mark = A
10781        CB
10782    No match, mark = B
10783    
10784    /--- An empty name does not pass back an empty string. It is the same as if no
10785    name were given. ---/
10786    
10787    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K
10788        AB
10789     0: AB
10790     1: AB
10791        CD
10792     0: CD
10793     1: CD
10794    
10795    /--- PRUNE goes to next bumpalong; COMMIT does not. ---/
10796    
10797    /A(*PRUNE:A)B/K
10798        ACAB
10799     0: AB
10800    
10801    /(*MARK:A)(*PRUNE:B)(C|X)/K
10802        C
10803     0: C
10804     1: C
10805    MK: A
10806        D
10807    No match, mark = B
10808    
10809    /(*MARK:A)(*THEN:B)(C|X)/K
10810        C
10811     0: C
10812     1: C
10813    MK: A
10814        D
10815    No match, mark = B
10816    
10817    /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/
10818    
10819    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK
10820        AAAC
10821    No match
10822    
10823    /--- Same --/
10824    
10825    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK
10826        AAAC
10827    No match
10828    
10829    /--- This should fail; the SKIP advances by one, but when we get to AC, the
10830         PRUNE kills it. ---/
10831    
10832    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
10833        AAAC
10834    No match
10835    
10836    /A(*:A)A+(*SKIP)(B|Z) | AC/xK
10837        AAAC
10838    No match
10839    
10840    /--- This should fail, as a null name is the same as no name ---/
10841    
10842    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK
10843        AAAC
10844    No match
10845    
10846    /--- This fails in PCRE, and I think that is in accordance with Perl's
10847         documentation, though in Perl it succeeds. ---/
10848    
10849    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK
10850        AAAC
10851    No match
10852    
10853    /--- Mark names can be duplicated ---/
10854    
10855    /A(*:A)B|X(*:A)Y/K
10856        AABC
10857     0: AB
10858    MK: A
10859        XXYZ
10860     0: XY
10861    MK: A
10862    
10863    /^A(*:A)B|^X(*:A)Y/K
10864        ** Failers
10865    No match
10866        XAQQ
10867    No match, mark = A
10868    
10869    /--- A check on what happens after hitting a mark and them bumping along to
10870    something that does not even start. Perl reports tags after the failures here,
10871    though it does not when the individual letters are made into something
10872    more complicated. ---/
10873    
10874    /A(*:A)B|XX(*:B)Y/K
10875        AABC
10876     0: AB
10877    MK: A
10878        XXYZ
10879     0: XXY
10880    MK: B
10881        ** Failers
10882    No match
10883        XAQQ
10884    No match
10885        XAQQXZZ
10886    No match
10887        AXQQQ
10888    No match
10889        AXXQQQ
10890    No match
10891    
10892    /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10893    optimizations defeat this. So does the PCRE optimization unless we disable it
10894    with \Y. ---/
10895    
10896    /(*COMMIT)ABC/
10897        ABCDEFG
10898     0: ABC
10899        ** Failers
10900    No match
10901        DEFGABC\Y
10902    No match
10903    
10904    /--- Repeat some tests with added studying. ---/
10905    
10906    /A(*COMMIT)B/+KS
10907        ACABX
10908    No match
10909    
10910    /A(*THEN)B|A(*THEN)C/KS
10911        AC
10912     0: AC
10913    
10914    /A(*PRUNE)B|A(*PRUNE)C/KS
10915        AC
10916    No match
10917    
10918    /^(A(*THEN:A)B|C(*THEN:B)D)/KS
10919        AB
10920     0: AB
10921     1: AB
10922        CD
10923     0: CD
10924     1: CD
10925        ** Failers
10926    No match
10927        AC
10928    No match
10929        CB
10930    No match, mark = B
10931    
10932    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/KS
10933        AB
10934     0: AB
10935     1: AB
10936        CD
10937     0: CD
10938     1: CD
10939        ** Failers
10940    No match
10941        AC
10942    No match, mark = A
10943        CB
10944    No match, mark = B
10945    
10946    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/KS
10947        AB
10948     0: AB
10949     1: AB
10950        CD
10951     0: CD
10952     1: CD
10953    
10954    /A(*PRUNE:A)B/KS
10955        ACAB
10956     0: AB
10957    
10958    /(*MARK:A)(*PRUNE:B)(C|X)/KS
10959        C
10960     0: C
10961     1: C
10962    MK: A
10963        D
10964    No match
10965    
10966    /(*MARK:A)(*THEN:B)(C|X)/KS
10967        C
10968     0: C
10969     1: C
10970    MK: A
10971        D
10972    No match
10973    
10974    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xKS
10975        AAAC
10976    No match
10977    
10978    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xKS
10979        AAAC
10980    No match
10981    
10982    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xKS
10983        AAAC
10984    No match
10985    
10986    /A(*:A)A+(*SKIP)(B|Z) | AC/xKS
10987        AAAC
10988    No match
10989    
10990    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xKS
10991        AAAC
10992    No match
10993    
10994    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xKS
10995        AAAC
10996    No match
10997    
10998    /A(*:A)B|XX(*:B)Y/KS
10999        AABC
11000     0: AB
11001    MK: A
11002        XXYZ
11003     0: XXY
11004    MK: B
11005        ** Failers
11006    No match
11007        XAQQ
11008    No match
11009        XAQQXZZ
11010    No match
11011        AXQQQ
11012    No match
11013        AXXQQQ
11014    No match
11015    
11016    /(*COMMIT)ABC/
11017        ABCDEFG
11018     0: ABC
11019        ** Failers
11020    No match
11021        DEFGABC\Y
11022    No match
11023    
11024    /^(ab (c+(*THEN)cd) | xyz)/x
11025        abcccd
11026    No match
11027    
11028    /^(ab (c+(*PRUNE)cd) | xyz)/x
11029        abcccd
11030    No match
11031    
11032    /^(ab (c+(*FAIL)cd) | xyz)/x
11033        abcccd
11034    No match
11035    
11036    /--- Perl 5.11 gets some of these wrong ---/
11037    
11038    /(?>.(*ACCEPT))*?5/
11039        abcde
11040     0: a
11041    
11042    /(.(*ACCEPT))*?5/
11043        abcde
11044     0: a
11045     1: a
11046    
11047    /(.(*ACCEPT))5/
11048        abcde
11049     0: a
11050     1: a
11051    
11052    /(.(*ACCEPT))*5/
11053        abcde
11054     0: a
11055     1: a
11056    
11057    /A\NB./BZ
11058    ------------------------------------------------------------------
11059            Bra
11060            A
11061            Any
11062            B
11063            Any
11064            Ket
11065            End
11066    ------------------------------------------------------------------
11067        ACBD
11068     0: ACBD
11069        *** Failers
11070    No match
11071        A\nB
11072    No match
11073        ACB\n
11074    No match
11075    
11076    /A\NB./sBZ
11077    ------------------------------------------------------------------
11078            Bra
11079            A
11080            Any
11081            B
11082            AllAny
11083            Ket
11084            End
11085    ------------------------------------------------------------------
11086        ACBD
11087     0: ACBD
11088        ACB\n
11089     0: ACB\x0a
11090        *** Failers
11091    No match
11092        A\nB
11093    No match
11094    
11095    /A\NB/<crlf>
11096        A\nB
11097     0: A\x0aB
11098        A\rB
11099     0: A\x0dB
11100        ** Failers
11101    No match
11102        A\r\nB
11103    No match
11104    
11105    /\R+b/BZ
11106    ------------------------------------------------------------------
11107            Bra
11108            \R++
11109            b
11110            Ket
11111            End
11112    ------------------------------------------------------------------
11113    
11114    /\R+\n/BZ
11115    ------------------------------------------------------------------
11116            Bra
11117            \R+
11118            \x0a
11119            Ket
11120            End
11121    ------------------------------------------------------------------
11122    
11123    /\R+\d/BZ
11124    ------------------------------------------------------------------
11125            Bra
11126            \R++
11127            \d
11128            Ket
11129            End
11130    ------------------------------------------------------------------
11131    
11132    /\d*\R/BZ
11133    ------------------------------------------------------------------
11134            Bra
11135            \d*+
11136            \R
11137            Ket
11138            End
11139    ------------------------------------------------------------------
11140    
11141    /\s*\R/BZ
11142    ------------------------------------------------------------------
11143            Bra
11144            \s*+
11145            \R
11146            Ket
11147            End
11148    ------------------------------------------------------------------
11149    
11150    /-- Perl treats this one differently, not failing the second string. I believe
11151        that is a bug in Perl. --/
11152    
11153    /^((abc|abcx)(*THEN)y|abcd)/
11154        abcd
11155     0: abcd
11156     1: abcd
11157        *** Failers
11158    No match
11159        abcxy
11160    No match
11161    
11162    /(?<=abc)def/
11163        abc\P\P
11164    Partial match: abc
11165    
11166    /abc$/
11167        abc
11168     0: abc
11169        abc\P
11170     0: abc
11171        abc\P\P
11172    Partial match: abc
11173    
11174    /abc$/m
11175        abc
11176     0: abc
11177        abc\n
11178     0: abc
11179        abc\P\P
11180    Partial match: abc
11181        abc\n\P\P
11182     0: abc
11183        abc\P
11184     0: abc
11185        abc\n\P
11186     0: abc
11187    
11188    /abc\z/
11189        abc
11190     0: abc
11191        abc\P
11192     0: abc
11193        abc\P\P
11194    Partial match: abc
11195    
11196    /abc\Z/
11197        abc
11198     0: abc
11199        abc\P
11200     0: abc
11201        abc\P\P
11202    Partial match: abc
11203    
11204    /abc\b/
11205        abc
11206     0: abc
11207        abc\P
11208     0: abc
11209        abc\P\P
11210    Partial match: abc
11211    
11212    /abc\B/
11213        abc
11214    No match
11215        abc\P
11216    Partial match: abc
11217        abc\P\P
11218    Partial match: abc
11219    
11220    /.+/
11221        abc\>0
11222     0: abc
11223        abc\>1
11224     0: bc
11225        abc\>2
11226     0: c
11227        abc\>3
11228    No match
11229        abc\>4
11230    Error -24
11231        abc\>-4
11232    Error -24
11233    
11234    /-- End of testinput2 --/

Legend:
Removed from v.426  
changed lines
  Added in v.567

  ViewVC Help
Powered by ViewVC 1.1.5