# These are a few representative patterns whose lengths and offsets are to be
# shown when the link size is 2. This is just a doublecheck test to ensure the
# sizes don't go horribly wrong when something is changed. The pattern contents
# are all themselves checked in other tests. Unicode, including property
# support, is required for these tests.

#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
------------------------------------------------------------------
Capturing subpattern 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
------------------------------------------------------------------
Capturing subpattern 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 Once
  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
------------------------------------------------------------------
Capturing subpattern 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
------------------------------------------------------------------
Capturing subpattern 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
------------------------------------------------------------------
Capturing subpattern 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  39 Bra
  2     Brazero
  3  32 SCBra 1
  6  27 Once
  8  12 CBra 2
 11   7 CBra 3
 14     a
 16     \2
 18   7 Ket
 20  11 Alt
 22   5 CBra 4
 25     a*
 27   5 Ket
 29  22 Recurse
 31  23 Ket
 33  27 Ket
 35  32 KetRmax
 37     a?+
 39  39 Ket
 41     End
------------------------------------------------------------------

# End of testinput8