1021 lines
		
	
	
		
			28 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			1021 lines
		
	
	
		
			28 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| # There are two sorts of patterns in this test. A number of them are
 | |
| # representative patterns whose lengths and offsets are checked. This is just a
 | |
| # doublecheck test to ensure the sizes don't go horribly wrong when something
 | |
| # is changed. The operation of these patterns is checked in other tests.
 | |
| #
 | |
| # This file also contains tests whose output varies with code unit size and/or
 | |
| # link size. Unicode support is required for these tests. There are separate
 | |
| # output files for each code unit size and link size.
 | |
| 
 | |
| #pattern fullbincode,memory
 | |
| 
 | |
| /((?i)b)/
 | |
| Memory allocation (code space): 24
 | |
| ------------------------------------------------------------------
 | |
|   0   9 Bra
 | |
|   2   5 CBra 1
 | |
|   5  /i b
 | |
|   7   5 Ket
 | |
|   9   9 Ket
 | |
|  11     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /(?s)(.*X|^B)/
 | |
| Memory allocation (code space): 38
 | |
| ------------------------------------------------------------------
 | |
|   0  16 Bra
 | |
|   2   7 CBra 1
 | |
|   5     AllAny*
 | |
|   7     X
 | |
|   9   5 Alt
 | |
|  11     ^
 | |
|  12     B
 | |
|  14  12 Ket
 | |
|  16  16 Ket
 | |
|  18     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /(?s:.*X|^B)/
 | |
| Memory allocation (code space): 36
 | |
| ------------------------------------------------------------------
 | |
|   0  15 Bra
 | |
|   2   6 Bra
 | |
|   4     AllAny*
 | |
|   6     X
 | |
|   8   5 Alt
 | |
|  10     ^
 | |
|  11     B
 | |
|  13  11 Ket
 | |
|  15  15 Ket
 | |
|  17     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /^[[:alnum:]]/
 | |
| Memory allocation (code space): 46
 | |
| ------------------------------------------------------------------
 | |
|   0  20 Bra
 | |
|   2     ^
 | |
|   3     [0-9A-Za-z]
 | |
|  20  20 Ket
 | |
|  22     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /#/Ix
 | |
| Memory allocation (code space): 10
 | |
| ------------------------------------------------------------------
 | |
|   0   2 Bra
 | |
|   2   2 Ket
 | |
|   4     End
 | |
| ------------------------------------------------------------------
 | |
| Capture group count = 0
 | |
| May match empty string
 | |
| Options: extended
 | |
| Subject length lower bound = 0
 | |
| 
 | |
| /a#/Ix
 | |
| Memory allocation (code space): 14
 | |
| ------------------------------------------------------------------
 | |
|   0   4 Bra
 | |
|   2     a
 | |
|   4   4 Ket
 | |
|   6     End
 | |
| ------------------------------------------------------------------
 | |
| Capture group count = 0
 | |
| Options: extended
 | |
| First code unit = 'a'
 | |
| Subject length lower bound = 1
 | |
| 
 | |
| /x?+/
 | |
| Memory allocation (code space): 14
 | |
| ------------------------------------------------------------------
 | |
|   0   4 Bra
 | |
|   2     x?+
 | |
|   4   4 Ket
 | |
|   6     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /x++/
 | |
| Memory allocation (code space): 14
 | |
| ------------------------------------------------------------------
 | |
|   0   4 Bra
 | |
|   2     x++
 | |
|   4   4 Ket
 | |
|   6     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /x{1,3}+/
 | |
| Memory allocation (code space): 20
 | |
| ------------------------------------------------------------------
 | |
|   0   7 Bra
 | |
|   2     x
 | |
|   4     x{0,2}+
 | |
|   7   7 Ket
 | |
|   9     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /(x)*+/
 | |
| Memory allocation (code space): 26
 | |
| ------------------------------------------------------------------
 | |
|   0  10 Bra
 | |
|   2     Braposzero
 | |
|   3   5 CBraPos 1
 | |
|   6     x
 | |
|   8   5 KetRpos
 | |
|  10  10 Ket
 | |
|  12     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
 | |
| Memory allocation (code space): 142
 | |
| ------------------------------------------------------------------
 | |
|   0  68 Bra
 | |
|   2     ^
 | |
|   3  63 CBra 1
 | |
|   6   5 CBra 2
 | |
|   9     a+
 | |
|  11   5 Ket
 | |
|  13  21 CBra 3
 | |
|  16     [ab]+?
 | |
|  34  21 Ket
 | |
|  36  21 CBra 4
 | |
|  39     [bc]+
 | |
|  57  21 Ket
 | |
|  59   5 CBra 5
 | |
|  62     \w*+
 | |
|  64   5 Ket
 | |
|  66  63 Ket
 | |
|  68  68 Ket
 | |
|  70     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| "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"
 | |
| Memory allocation (code space): 1648
 | |
| ------------------------------------------------------------------
 | |
|   0 821 Bra
 | |
|   2     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
 | |
| 820     \b
 | |
| 821 821 Ket
 | |
| 823     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| "\$\<\.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"
 | |
| Memory allocation (code space): 1628
 | |
| ------------------------------------------------------------------
 | |
|   0 811 Bra
 | |
|   2     $<.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
 | |
| 810     \b
 | |
| 811 811 Ket
 | |
| 813     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /(a(?1)b)/
 | |
| Memory allocation (code space): 32
 | |
| ------------------------------------------------------------------
 | |
|   0  13 Bra
 | |
|   2   9 CBra 1
 | |
|   5     a
 | |
|   7   2 Recurse
 | |
|   9     b
 | |
|  11   9 Ket
 | |
|  13  13 Ket
 | |
|  15     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /(a(?1)+b)/
 | |
| Memory allocation (code space): 40
 | |
| ------------------------------------------------------------------
 | |
|   0  17 Bra
 | |
|   2  13 CBra 1
 | |
|   5     a
 | |
|   7   4 SBra
 | |
|   9   2 Recurse
 | |
|  11   4 KetRmax
 | |
|  13     b
 | |
|  15  13 Ket
 | |
|  17  17 Ket
 | |
|  19     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /a(?P<name1>b|c)d(?P<longername2>e)/
 | |
| Memory allocation (code space): 54
 | |
| ------------------------------------------------------------------
 | |
|   0  24 Bra
 | |
|   2     a
 | |
|   4   5 CBra 1
 | |
|   7     b
 | |
|   9   4 Alt
 | |
|  11     c
 | |
|  13   9 Ket
 | |
|  15     d
 | |
|  17   5 CBra 2
 | |
|  20     e
 | |
|  22   5 Ket
 | |
|  24  24 Ket
 | |
|  26     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/
 | |
| Memory allocation (code space): 64
 | |
| ------------------------------------------------------------------
 | |
|   0  29 Bra
 | |
|   2  18 Bra
 | |
|   4     a
 | |
|   6  12 CBra 1
 | |
|   9     c
 | |
|  11   5 CBra 2
 | |
|  14     d
 | |
|  16   5 Ket
 | |
|  18  12 Ket
 | |
|  20  18 Ket
 | |
|  22   5 CBra 3
 | |
|  25     a
 | |
|  27   5 Ket
 | |
|  29  29 Ket
 | |
|  31     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /(?P<a>a)...(?P=a)bbb(?P>a)d/
 | |
| Memory allocation (code space): 54
 | |
| ------------------------------------------------------------------
 | |
|   0  24 Bra
 | |
|   2   5 CBra 1
 | |
|   5     a
 | |
|   7   5 Ket
 | |
|   9     Any
 | |
|  10     Any
 | |
|  11     Any
 | |
|  12     \1
 | |
|  14     bbb
 | |
|  20   2 Recurse
 | |
|  22     d
 | |
|  24  24 Ket
 | |
|  26     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /abc(?C255)de(?C)f/
 | |
| Memory allocation (code space): 50
 | |
| ------------------------------------------------------------------
 | |
|   0  22 Bra
 | |
|   2     abc
 | |
|   8     Callout 255 10 1
 | |
|  12     de
 | |
|  16     Callout 0 16 1
 | |
|  20     f
 | |
|  22  22 Ket
 | |
|  24     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /abcde/auto_callout
 | |
| Memory allocation (code space): 78
 | |
| ------------------------------------------------------------------
 | |
|   0  36 Bra
 | |
|   2     Callout 255 0 1
 | |
|   6     a
 | |
|   8     Callout 255 1 1
 | |
|  12     b
 | |
|  14     Callout 255 2 1
 | |
|  18     c
 | |
|  20     Callout 255 3 1
 | |
|  24     d
 | |
|  26     Callout 255 4 1
 | |
|  30     e
 | |
|  32     Callout 255 5 0
 | |
|  36  36 Ket
 | |
|  38     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /\x{100}/utf
 | |
| Memory allocation (code space): 14
 | |
| ------------------------------------------------------------------
 | |
|   0   4 Bra
 | |
|   2     \x{100}
 | |
|   4   4 Ket
 | |
|   6     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /\x{1000}/utf
 | |
| Memory allocation (code space): 14
 | |
| ------------------------------------------------------------------
 | |
|   0   4 Bra
 | |
|   2     \x{1000}
 | |
|   4   4 Ket
 | |
|   6     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /\x{10000}/utf
 | |
| Memory allocation (code space): 16
 | |
| ------------------------------------------------------------------
 | |
|   0   5 Bra
 | |
|   2     \x{10000}
 | |
|   5   5 Ket
 | |
|   7     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /\x{100000}/utf
 | |
| Memory allocation (code space): 16
 | |
| ------------------------------------------------------------------
 | |
|   0   5 Bra
 | |
|   2     \x{100000}
 | |
|   5   5 Ket
 | |
|   7     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /\x{10ffff}/utf
 | |
| Memory allocation (code space): 16
 | |
| ------------------------------------------------------------------
 | |
|   0   5 Bra
 | |
|   2     \x{10ffff}
 | |
|   5   5 Ket
 | |
|   7     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /\x{110000}/utf
 | |
| Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large
 | |
| 
 | |
| /[\x{ff}]/utf
 | |
| Memory allocation (code space): 14
 | |
| ------------------------------------------------------------------
 | |
|   0   4 Bra
 | |
|   2     \x{ff}
 | |
|   4   4 Ket
 | |
|   6     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[\x{100}]/utf
 | |
| Memory allocation (code space): 14
 | |
| ------------------------------------------------------------------
 | |
|   0   4 Bra
 | |
|   2     \x{100}
 | |
|   4   4 Ket
 | |
|   6     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /\x80/utf
 | |
| Memory allocation (code space): 14
 | |
| ------------------------------------------------------------------
 | |
|   0   4 Bra
 | |
|   2     \x{80}
 | |
|   4   4 Ket
 | |
|   6     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /\xff/utf
 | |
| Memory allocation (code space): 14
 | |
| ------------------------------------------------------------------
 | |
|   0   4 Bra
 | |
|   2     \x{ff}
 | |
|   4   4 Ket
 | |
|   6     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf
 | |
| Memory allocation (code space): 26
 | |
| ------------------------------------------------------------------
 | |
|   0  10 Bra
 | |
|   2     A\x{2262}\x{391}.
 | |
|  10  10 Ket
 | |
|  12     End
 | |
| ------------------------------------------------------------------
 | |
| Capture group count = 0
 | |
| Options: utf
 | |
| First code unit = 'A'
 | |
| Last code unit = '.'
 | |
| Subject length lower bound = 4
 | |
| 
 | |
| /\x{D55c}\x{ad6d}\x{C5B4}/I,utf
 | |
| Memory allocation (code space): 22
 | |
| ------------------------------------------------------------------
 | |
|   0   8 Bra
 | |
|   2     \x{d55c}\x{ad6d}\x{c5b4}
 | |
|   8   8 Ket
 | |
|  10     End
 | |
| ------------------------------------------------------------------
 | |
| Capture group count = 0
 | |
| Options: utf
 | |
| First code unit = \x{d55c}
 | |
| Last code unit = \x{c5b4}
 | |
| Subject length lower bound = 3
 | |
| 
 | |
| /\x{65e5}\x{672c}\x{8a9e}/I,utf
 | |
| Memory allocation (code space): 22
 | |
| ------------------------------------------------------------------
 | |
|   0   8 Bra
 | |
|   2     \x{65e5}\x{672c}\x{8a9e}
 | |
|   8   8 Ket
 | |
|  10     End
 | |
| ------------------------------------------------------------------
 | |
| Capture group count = 0
 | |
| Options: utf
 | |
| First code unit = \x{65e5}
 | |
| Last code unit = \x{8a9e}
 | |
| Subject length lower bound = 3
 | |
| 
 | |
| /[\x{100}]/utf
 | |
| Memory allocation (code space): 14
 | |
| ------------------------------------------------------------------
 | |
|   0   4 Bra
 | |
|   2     \x{100}
 | |
|   4   4 Ket
 | |
|   6     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[Z\x{100}]/utf
 | |
| Memory allocation (code space): 54
 | |
| ------------------------------------------------------------------
 | |
|   0  24 Bra
 | |
|   2     [Z\x{100}]
 | |
|  24  24 Ket
 | |
|  26     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /^[\x{100}\E-\Q\E\x{150}]/utf
 | |
| Memory allocation (code space): 26
 | |
| ------------------------------------------------------------------
 | |
|   0  10 Bra
 | |
|   2     ^
 | |
|   3     [\x{100}-\x{150}]
 | |
|  10  10 Ket
 | |
|  12     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /^[\QĀ\E-\QŐ\E]/utf
 | |
| Memory allocation (code space): 26
 | |
| ------------------------------------------------------------------
 | |
|   0  10 Bra
 | |
|   2     ^
 | |
|   3     [\x{100}-\x{150}]
 | |
|  10  10 Ket
 | |
|  12     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /^[\QĀ\E-\QŐ\E/utf
 | |
| Failed: error 106 at offset 13: missing terminating ] for character class
 | |
| 
 | |
| /[\p{L}]/
 | |
| Memory allocation (code space): 24
 | |
| ------------------------------------------------------------------
 | |
|   0   9 Bra
 | |
|   2     [\p{L}]
 | |
|   9   9 Ket
 | |
|  11     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[\p{^L}]/
 | |
| Memory allocation (code space): 24
 | |
| ------------------------------------------------------------------
 | |
|   0   9 Bra
 | |
|   2     [\P{L}]
 | |
|   9   9 Ket
 | |
|  11     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[\P{L}]/
 | |
| Memory allocation (code space): 24
 | |
| ------------------------------------------------------------------
 | |
|   0   9 Bra
 | |
|   2     [\P{L}]
 | |
|   9   9 Ket
 | |
|  11     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[\P{^L}]/
 | |
| Memory allocation (code space): 24
 | |
| ------------------------------------------------------------------
 | |
|   0   9 Bra
 | |
|   2     [\p{L}]
 | |
|   9   9 Ket
 | |
|  11     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[abc\p{L}\x{0660}]/utf
 | |
| Memory allocation (code space): 60
 | |
| ------------------------------------------------------------------
 | |
|   0  27 Bra
 | |
|   2     [a-c\p{L}\x{660}]
 | |
|  27  27 Ket
 | |
|  29     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[\p{Nd}]/utf
 | |
| Memory allocation (code space): 24
 | |
| ------------------------------------------------------------------
 | |
|   0   9 Bra
 | |
|   2     [\p{Nd}]
 | |
|   9   9 Ket
 | |
|  11     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[\p{Nd}+-]+/utf
 | |
| Memory allocation (code space): 58
 | |
| ------------------------------------------------------------------
 | |
|   0  26 Bra
 | |
|   2     [+\-\p{Nd}]++
 | |
|  26  26 Ket
 | |
|  28     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
 | |
| Memory allocation (code space): 32
 | |
| ------------------------------------------------------------------
 | |
|   0  13 Bra
 | |
|   2  /i A\x{391}\x{10427}\x{ff3a}\x{1fb0}
 | |
|  13  13 Ket
 | |
|  15     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
 | |
| Memory allocation (code space): 32
 | |
| ------------------------------------------------------------------
 | |
|   0  13 Bra
 | |
|   2     A\x{391}\x{10427}\x{ff3a}\x{1fb0}
 | |
|  13  13 Ket
 | |
|  15     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[\x{105}-\x{109}]/i,utf
 | |
| Memory allocation (code space): 24
 | |
| ------------------------------------------------------------------
 | |
|   0   9 Bra
 | |
|   2     [\x{104}-\x{109}]
 | |
|   9   9 Ket
 | |
|  11     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /( ( (?(1)0|) )*   )/x
 | |
| Memory allocation (code space): 52
 | |
| ------------------------------------------------------------------
 | |
|   0  23 Bra
 | |
|   2  19 CBra 1
 | |
|   5     Brazero
 | |
|   6  13 SCBra 2
 | |
|   9   6 Cond
 | |
|  11   1 Cond ref
 | |
|  13     0
 | |
|  15   2 Alt
 | |
|  17   8 Ket
 | |
|  19  13 KetRmax
 | |
|  21  19 Ket
 | |
|  23  23 Ket
 | |
|  25     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /(  (?(1)0|)*   )/x
 | |
| Memory allocation (code space): 42
 | |
| ------------------------------------------------------------------
 | |
|   0  18 Bra
 | |
|   2  14 CBra 1
 | |
|   5     Brazero
 | |
|   6   6 SCond
 | |
|   8   1 Cond ref
 | |
|  10     0
 | |
|  12   2 Alt
 | |
|  14   8 KetRmax
 | |
|  16  14 Ket
 | |
|  18  18 Ket
 | |
|  20     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[a]/
 | |
| Memory allocation (code space): 14
 | |
| ------------------------------------------------------------------
 | |
|   0   4 Bra
 | |
|   2     a
 | |
|   4   4 Ket
 | |
|   6     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[a]/utf
 | |
| Memory allocation (code space): 14
 | |
| ------------------------------------------------------------------
 | |
|   0   4 Bra
 | |
|   2     a
 | |
|   4   4 Ket
 | |
|   6     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[\xaa]/
 | |
| Memory allocation (code space): 14
 | |
| ------------------------------------------------------------------
 | |
|   0   4 Bra
 | |
|   2     \x{aa}
 | |
|   4   4 Ket
 | |
|   6     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[\xaa]/utf
 | |
| Memory allocation (code space): 14
 | |
| ------------------------------------------------------------------
 | |
|   0   4 Bra
 | |
|   2     \x{aa}
 | |
|   4   4 Ket
 | |
|   6     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[^a]/
 | |
| Memory allocation (code space): 14
 | |
| ------------------------------------------------------------------
 | |
|   0   4 Bra
 | |
|   2     [^a]
 | |
|   4   4 Ket
 | |
|   6     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[^a]/utf
 | |
| Memory allocation (code space): 14
 | |
| ------------------------------------------------------------------
 | |
|   0   4 Bra
 | |
|   2     [^a]
 | |
|   4   4 Ket
 | |
|   6     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[^\xaa]/
 | |
| Memory allocation (code space): 14
 | |
| ------------------------------------------------------------------
 | |
|   0   4 Bra
 | |
|   2     [^\x{aa}]
 | |
|   4   4 Ket
 | |
|   6     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[^\xaa]/utf
 | |
| Memory allocation (code space): 14
 | |
| ------------------------------------------------------------------
 | |
|   0   4 Bra
 | |
|   2     [^\x{aa}]
 | |
|   4   4 Ket
 | |
|   6     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| #pattern -memory
 | |
| 
 | |
| /[^\d]/utf,ucp
 | |
| ------------------------------------------------------------------
 | |
|   0   9 Bra
 | |
|   2     [^\p{Nd}]
 | |
|   9   9 Ket
 | |
|  11     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[[:^alpha:][:^cntrl:]]+/utf,ucp
 | |
| ------------------------------------------------------------------
 | |
|   0  13 Bra
 | |
|   2     [\P{L}\P{Cc}]++
 | |
|  13  13 Ket
 | |
|  15     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[[:^cntrl:][:^alpha:]]+/utf,ucp
 | |
| ------------------------------------------------------------------
 | |
|   0  13 Bra
 | |
|   2     [\P{Cc}\P{L}]++
 | |
|  13  13 Ket
 | |
|  15     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[[:alpha:]]+/utf,ucp
 | |
| ------------------------------------------------------------------
 | |
|   0  10 Bra
 | |
|   2     [\p{L}]++
 | |
|  10  10 Ket
 | |
|  12     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /[[:^alpha:]\S]+/utf,ucp
 | |
| ------------------------------------------------------------------
 | |
|   0  13 Bra
 | |
|   2     [\P{L}\P{Xsp}]++
 | |
|  13  13 Ket
 | |
|  15     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/
 | |
| ------------------------------------------------------------------
 | |
|   0  60 Bra
 | |
|   2     abc
 | |
|   8   5 CBra 1
 | |
|  11     d
 | |
|  13   4 Alt
 | |
|  15     e
 | |
|  17   9 Ket
 | |
|  19     *THEN
 | |
|  20     x
 | |
|  22  12 CBra 2
 | |
|  25     123
 | |
|  31     *THEN
 | |
|  32     4
 | |
|  34  24 Alt
 | |
|  36     567
 | |
|  42   5 CBra 3
 | |
|  45     b
 | |
|  47   4 Alt
 | |
|  49     q
 | |
|  51   9 Ket
 | |
|  53     *THEN
 | |
|  54     xx
 | |
|  58  36 Ket
 | |
|  60  60 Ket
 | |
|  62     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /(((a\2)|(a*)\g<-1>))*a?/
 | |
| ------------------------------------------------------------------
 | |
|   0  35 Bra
 | |
|   2     Brazero
 | |
|   3  28 SCBra 1
 | |
|   6  12 CBra 2
 | |
|   9   7 CBra 3
 | |
|  12     a
 | |
|  14     \2
 | |
|  16   7 Ket
 | |
|  18  11 Alt
 | |
|  20   5 CBra 4
 | |
|  23     a*
 | |
|  25   5 Ket
 | |
|  27  20 Recurse
 | |
|  29  23 Ket
 | |
|  31  28 KetRmax
 | |
|  33     a?+
 | |
|  35  35 Ket
 | |
|  37     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /((?+1)(\1))/
 | |
| ------------------------------------------------------------------
 | |
|   0  16 Bra
 | |
|   2  12 CBra 1
 | |
|   5   7 Recurse
 | |
|   7   5 CBra 2
 | |
|  10     \1
 | |
|  12   5 Ket
 | |
|  14  12 Ket
 | |
|  16  16 Ket
 | |
|  18     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| "(?1)(?#?'){2}(a)"
 | |
| ------------------------------------------------------------------
 | |
|   0  13 Bra
 | |
|   2   6 Recurse
 | |
|   4   6 Recurse
 | |
|   6   5 CBra 1
 | |
|   9     a
 | |
|  11   5 Ket
 | |
|  13  13 Ket
 | |
|  15     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /.((?2)(?R)|\1|$)()/
 | |
| ------------------------------------------------------------------
 | |
|   0  24 Bra
 | |
|   2     Any
 | |
|   3   7 CBra 1
 | |
|   6  19 Recurse
 | |
|   8   0 Recurse
 | |
|  10   4 Alt
 | |
|  12     \1
 | |
|  14   3 Alt
 | |
|  16     $
 | |
|  17  14 Ket
 | |
|  19   3 CBra 2
 | |
|  22   3 Ket
 | |
|  24  24 Ket
 | |
|  26     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /.((?3)(?R)()(?2)|\1|$)()/
 | |
| ------------------------------------------------------------------
 | |
|   0  31 Bra
 | |
|   2     Any
 | |
|   3  14 CBra 1
 | |
|   6  26 Recurse
 | |
|   8   0 Recurse
 | |
|  10   3 CBra 2
 | |
|  13   3 Ket
 | |
|  15  10 Recurse
 | |
|  17   4 Alt
 | |
|  19     \1
 | |
|  21   3 Alt
 | |
|  23     $
 | |
|  24  21 Ket
 | |
|  26   3 CBra 3
 | |
|  29   3 Ket
 | |
|  31  31 Ket
 | |
|  33     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| /(?1)()((((((\1++))\x85)+)|))/
 | |
| ------------------------------------------------------------------
 | |
|   0  50 Bra
 | |
|   2   4 Recurse
 | |
|   4   3 CBra 1
 | |
|   7   3 Ket
 | |
|   9  39 CBra 2
 | |
|  12  32 CBra 3
 | |
|  15  27 CBra 4
 | |
|  18  22 CBra 5
 | |
|  21  15 CBra 6
 | |
|  24  10 CBra 7
 | |
|  27   5 Once
 | |
|  29     \1+
 | |
|  32   5 Ket
 | |
|  34  10 Ket
 | |
|  36  15 Ket
 | |
|  38     \x{85}
 | |
|  40  22 KetRmax
 | |
|  42  27 Ket
 | |
|  44   2 Alt
 | |
|  46  34 Ket
 | |
|  48  39 Ket
 | |
|  50  50 Ket
 | |
|  52     End
 | |
| ------------------------------------------------------------------
 | |
| 
 | |
| # Check the absolute limit on nesting (?| etc. This varies with code unit
 | |
| # width because the workspace is a different number of bytes. It will fail
 | |
| # with link size 2 in 8-bit and 16-bit but not in 32-bit.
 | |
| 
 | |
| /(?|(?|(?J:(?|(?x:(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|
 | |
| )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
 | |
| /parens_nest_limit=1000,-fullbincode
 | |
| Failed: error 184 at offset 1504: (?| and/or (?J: or (?x: parentheses are too deeply nested
 | |
| 
 | |
| # Use "expand" to create some very long patterns with nested parentheses, in
 | |
| # order to test workspace overflow. Again, this varies with code unit width,
 | |
| # and even when it fails in two modes, the error offset differs. It also varies
 | |
| # with link size - hence multiple tests with different values.
 | |
| 
 | |
| /(?'ABC'\[[bar](]{792}*THEN:\[A]{255}\[)]{793}/expand,-fullbincode,parens_nest_limit=1000
 | |
| 
 | |
| /(?'ABC'\[[bar](]{793}*THEN:\[A]{255}\[)]{794}/expand,-fullbincode,parens_nest_limit=1000
 | |
| 
 | |
| /(?'ABC'\[[bar](]{1793}*THEN:\[A]{255}\[)]{1794}/expand,-fullbincode,parens_nest_limit=2000
 | |
| Failed: error 186 at offset 12820: regular expression is too complicated
 | |
| 
 | |
| /(?(1)(?1)){8,}+()/debug
 | |
| ------------------------------------------------------------------
 | |
|   0  79 Bra
 | |
|   2  70 Once
 | |
|   4   6 Cond
 | |
|   6   1 Cond ref
 | |
|   8  74 Recurse
 | |
|  10   6 Ket
 | |
|  12   6 Cond
 | |
|  14   1 Cond ref
 | |
|  16  74 Recurse
 | |
|  18   6 Ket
 | |
|  20   6 Cond
 | |
|  22   1 Cond ref
 | |
|  24  74 Recurse
 | |
|  26   6 Ket
 | |
|  28   6 Cond
 | |
|  30   1 Cond ref
 | |
|  32  74 Recurse
 | |
|  34   6 Ket
 | |
|  36   6 Cond
 | |
|  38   1 Cond ref
 | |
|  40  74 Recurse
 | |
|  42   6 Ket
 | |
|  44   6 Cond
 | |
|  46   1 Cond ref
 | |
|  48  74 Recurse
 | |
|  50   6 Ket
 | |
|  52   6 Cond
 | |
|  54   1 Cond ref
 | |
|  56  74 Recurse
 | |
|  58   6 Ket
 | |
|  60  10 SBraPos
 | |
|  62   6 SCond
 | |
|  64   1 Cond ref
 | |
|  66  74 Recurse
 | |
|  68   6 Ket
 | |
|  70  10 KetRpos
 | |
|  72  70 Ket
 | |
|  74   3 CBra 1
 | |
|  77   3 Ket
 | |
|  79  79 Ket
 | |
|  81     End
 | |
| ------------------------------------------------------------------
 | |
| Capture group count = 1
 | |
| Max back reference = 1
 | |
| May match empty string
 | |
| Subject length lower bound = 0
 | |
|     abcd
 | |
|  0: 
 | |
|  1: 
 | |
| 
 | |
| /(?(1)|a(?1)b){2,}+()/debug
 | |
| ------------------------------------------------------------------
 | |
|   0  43 Bra
 | |
|   2  34 Once
 | |
|   4   4 Cond
 | |
|   6   1 Cond ref
 | |
|   8   8 Alt
 | |
|  10     a
 | |
|  12  38 Recurse
 | |
|  14     b
 | |
|  16  12 Ket
 | |
|  18  16 SBraPos
 | |
|  20   4 SCond
 | |
|  22   1 Cond ref
 | |
|  24   8 Alt
 | |
|  26     a
 | |
|  28  38 Recurse
 | |
|  30     b
 | |
|  32  12 Ket
 | |
|  34  16 KetRpos
 | |
|  36  34 Ket
 | |
|  38   3 CBra 1
 | |
|  41   3 Ket
 | |
|  43  43 Ket
 | |
|  45     End
 | |
| ------------------------------------------------------------------
 | |
| Capture group count = 1
 | |
| Max back reference = 1
 | |
| May match empty string
 | |
| Subject length lower bound = 0
 | |
|     abcde
 | |
| No match
 | |
| 
 | |
| /((?1)(?2)(?3)(?4)(?5)(?6)(?7)(?8)(?9)(?9)(?8)(?7)(?6)(?5)(?4)(?3)(?2)(?1)(?0)){2,}()()()()()()()()()/debug
 | |
| ------------------------------------------------------------------
 | |
|   0 133 Bra
 | |
|   2  41 CBra 1
 | |
|   5   2 Recurse
 | |
|   7  88 Recurse
 | |
|   9  93 Recurse
 | |
|  11  98 Recurse
 | |
|  13 103 Recurse
 | |
|  15 108 Recurse
 | |
|  17 113 Recurse
 | |
|  19 118 Recurse
 | |
|  21 123 Recurse
 | |
|  23 123 Recurse
 | |
|  25 118 Recurse
 | |
|  27 113 Recurse
 | |
|  29 108 Recurse
 | |
|  31 103 Recurse
 | |
|  33  98 Recurse
 | |
|  35  93 Recurse
 | |
|  37  88 Recurse
 | |
|  39   2 Recurse
 | |
|  41   0 Recurse
 | |
|  43  41 Ket
 | |
|  45  41 SCBra 1
 | |
|  48   2 Recurse
 | |
|  50  88 Recurse
 | |
|  52  93 Recurse
 | |
|  54  98 Recurse
 | |
|  56 103 Recurse
 | |
|  58 108 Recurse
 | |
|  60 113 Recurse
 | |
|  62 118 Recurse
 | |
|  64 123 Recurse
 | |
|  66 123 Recurse
 | |
|  68 118 Recurse
 | |
|  70 113 Recurse
 | |
|  72 108 Recurse
 | |
|  74 103 Recurse
 | |
|  76  98 Recurse
 | |
|  78  93 Recurse
 | |
|  80  88 Recurse
 | |
|  82   2 Recurse
 | |
|  84   0 Recurse
 | |
|  86  41 KetRmax
 | |
|  88   3 CBra 2
 | |
|  91   3 Ket
 | |
|  93   3 CBra 3
 | |
|  96   3 Ket
 | |
|  98   3 CBra 4
 | |
| 101   3 Ket
 | |
| 103   3 CBra 5
 | |
| 106   3 Ket
 | |
| 108   3 CBra 6
 | |
| 111   3 Ket
 | |
| 113   3 CBra 7
 | |
| 116   3 Ket
 | |
| 118   3 CBra 8
 | |
| 121   3 Ket
 | |
| 123   3 CBra 9
 | |
| 126   3 Ket
 | |
| 128   3 CBra 10
 | |
| 131   3 Ket
 | |
| 133 133 Ket
 | |
| 135     End
 | |
| ------------------------------------------------------------------
 | |
| Capture group count = 10
 | |
| May match empty string
 | |
| Subject length lower bound = 0
 | |
| 
 | |
| /([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/
 | |
| Failed: error 114 at offset 509: missing closing parenthesis
 | |
| 
 | |
| /([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/-fullbincode
 | |
| 
 | |
| #pattern -fullbincode
 | |
| 
 | |
| /\[()]{65535}/expand
 | |
| Failed: error 120 at offset 131070: regular expression is too large
 | |
| 
 | |
| # End of testinput8
 |