/-- 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. --/

/((?i)b)/BM
Memory allocation (code space): 21
------------------------------------------------------------------
  0  17 Bra
  3   9 CBra 1
  8  01 Opt
 10  NC b
 12   9 Ket
 15  00 Opt
 17  17 Ket
 20     End
------------------------------------------------------------------

/(?s)(.*X|^B)/BM
Memory allocation (code space): 25
------------------------------------------------------------------
  0  21 Bra
  3   9 CBra 1
  8     AllAny*
 10     X
 12   6 Alt
 15     ^
 16     B
 18  15 Ket
 21  21 Ket
 24     End
------------------------------------------------------------------

/(?s:.*X|^B)/BM
Memory allocation (code space): 29
------------------------------------------------------------------
  0  25 Bra
  3   9 Bra
  6  04 Opt
  8     AllAny*
 10     X
 12   8 Alt
 15  04 Opt
 17     ^
 18     B
 20  17 Ket
 23  00 Opt
 25  25 Ket
 28     End
------------------------------------------------------------------

/^[[:alnum:]]/BM
Memory allocation (code space): 41
------------------------------------------------------------------
  0  37 Bra
  3     ^
  4     [0-9A-Za-z]
 37  37 Ket
 40     End
------------------------------------------------------------------

/#/IxMD
Memory allocation (code space): 7
------------------------------------------------------------------
  0   3 Bra
  3   3 Ket
  6     End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: extended
No first char
No need char

/a#/IxMD
Memory allocation (code space): 9
------------------------------------------------------------------
  0   5 Bra
  3     a
  5   5 Ket
  8     End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: extended
First char = 'a'
No need char

/x?+/BM
Memory allocation (code space): 9
------------------------------------------------------------------
  0   5 Bra
  3     x?+
  5   5 Ket
  8     End
------------------------------------------------------------------

/x++/BM
Memory allocation (code space): 9
------------------------------------------------------------------
  0   5 Bra
  3     x++
  5   5 Ket
  8     End
------------------------------------------------------------------

/x{1,3}+/BM 
Memory allocation (code space): 19
------------------------------------------------------------------
  0  15 Bra
  3   9 Once
  6     x
  8     x{0,2}
 12   9 Ket
 15  15 Ket
 18     End
------------------------------------------------------------------

/(x)*+/BM
Memory allocation (code space): 24
------------------------------------------------------------------
  0  20 Bra
  3  14 Once
  6     Brazero
  7   7 CBra 1
 12     x
 14   7 KetRmax
 17  14 Ket
 20  20 Ket
 23     End
------------------------------------------------------------------

/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/BM
Memory allocation (code space): 120
------------------------------------------------------------------
  0 116 Bra
  3     ^
  4 109 CBra 1
  9   7 CBra 2
 14     a+
 16   7 Ket
 19  39 CBra 3
 24     [ab]+?
 58  39 Ket
 61  39 CBra 4
 66     [bc]+
100  39 Ket
103   7 CBra 5
108     \w*
110   7 Ket
113 109 Ket
116 116 Ket
119     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|BM
Memory allocation (code space): 826
------------------------------------------------------------------
  0 822 Bra
  3     8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X
821     \b
822 822 Ket
825     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|BM
Memory allocation (code space): 816
------------------------------------------------------------------
  0 812 Bra
  3     $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X
811     \b
812 812 Ket
815     End
------------------------------------------------------------------

/(a(?1)b)/BM
Memory allocation (code space): 28
------------------------------------------------------------------
  0  24 Bra
  3  18 CBra 1
  8     a
 10   6 Once
 13   3 Recurse
 16   6 Ket
 19     b
 21  18 Ket
 24  24 Ket
 27     End
------------------------------------------------------------------

/(a(?1)+b)/BM
Memory allocation (code space): 28
------------------------------------------------------------------
  0  24 Bra
  3  18 CBra 1
  8     a
 10   6 Once
 13   3 Recurse
 16   6 KetRmax
 19     b
 21  18 Ket
 24  24 Ket
 27     End
------------------------------------------------------------------

/a(?P<name1>b|c)d(?P<longername2>e)/BM
Memory allocation (code space): 42
------------------------------------------------------------------
  0  32 Bra
  3     a
  5   7 CBra 1
 10     b
 12   5 Alt
 15     c
 17  12 Ket
 20     d
 22   7 CBra 2
 27     e
 29   7 Ket
 32  32 Ket
 35     End
------------------------------------------------------------------

/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/BM
Memory allocation (code space): 54
------------------------------------------------------------------
  0  41 Bra
  3  25 Bra
  6     a
  8  17 CBra 1
 13     c
 15   7 CBra 2
 20     d
 22   7 Ket
 25  17 Ket
 28  25 Ket
 31   7 CBra 3
 36     a
 38   7 Ket
 41  41 Ket
 44     End
------------------------------------------------------------------

/(?P<a>a)...(?P=a)bbb(?P>a)d/BM
Memory allocation (code space): 43
------------------------------------------------------------------
  0  36 Bra
  3   7 CBra 1
  8     a
 10   7 Ket
 13     Any
 14     Any
 15     Any
 16     \1
 19     bbb
 25   6 Once
 28   3 Recurse
 31   6 Ket
 34     d
 36  36 Ket
 39     End
------------------------------------------------------------------

/abc(?C255)de(?C)f/BM
Memory allocation (code space): 31
------------------------------------------------------------------
  0  27 Bra
  3     abc
  9     Callout 255 10 1
 15     de
 19     Callout 0 16 1
 25     f
 27  27 Ket
 30     End
------------------------------------------------------------------

/abcde/CBM
Memory allocation (code space): 53
------------------------------------------------------------------
  0  49 Bra
  3     Callout 255 0 1
  9     a
 11     Callout 255 1 1
 17     b
 19     Callout 255 2 1
 25     c
 27     Callout 255 3 1
 33     d
 35     Callout 255 4 1
 41     e
 43     Callout 255 5 0
 49  49 Ket
 52     End
------------------------------------------------------------------

/\x{100}/8BM
Memory allocation (code space): 10
------------------------------------------------------------------
  0   6 Bra
  3     \x{100}
  6   6 Ket
  9     End
------------------------------------------------------------------

/\x{1000}/8BM
Memory allocation (code space): 11
------------------------------------------------------------------
  0   7 Bra
  3     \x{1000}
  7   7 Ket
 10     End
------------------------------------------------------------------

/\x{10000}/8BM
Memory allocation (code space): 12
------------------------------------------------------------------
  0   8 Bra
  3     \x{10000}
  8   8 Ket
 11     End
------------------------------------------------------------------

/\x{100000}/8BM
Memory allocation (code space): 12
------------------------------------------------------------------
  0   8 Bra
  3     \x{100000}
  8   8 Ket
 11     End
------------------------------------------------------------------

/\x{1000000}/8BM
Memory allocation (code space): 13
------------------------------------------------------------------
  0   9 Bra
  3     \x{1000000}
  9   9 Ket
 12     End
------------------------------------------------------------------

/\x{4000000}/8BM
Memory allocation (code space): 14
------------------------------------------------------------------
  0  10 Bra
  3     \x{4000000}
 10  10 Ket
 13     End
------------------------------------------------------------------

/\x{7fffFFFF}/8BM
Memory allocation (code space): 14
------------------------------------------------------------------
  0  10 Bra
  3     \x{7fffffff}
 10  10 Ket
 13     End
------------------------------------------------------------------

/[\x{ff}]/8BM
Memory allocation (code space): 10
------------------------------------------------------------------
  0   6 Bra
  3     \x{ff}
  6   6 Ket
  9     End
------------------------------------------------------------------

/[\x{100}]/8BM
Memory allocation (code space): 15
------------------------------------------------------------------
  0  11 Bra
  3     [\x{100}]
 11  11 Ket
 14     End
------------------------------------------------------------------

/\x80/8BM
Memory allocation (code space): 10
------------------------------------------------------------------
  0   6 Bra
  3     \x{80}
  6   6 Ket
  9     End
------------------------------------------------------------------

/\xff/8BM
Memory allocation (code space): 10
------------------------------------------------------------------
  0   6 Bra
  3     \x{ff}
  6   6 Ket
  9     End
------------------------------------------------------------------

/\x{0041}\x{2262}\x{0391}\x{002e}/D8M
Memory allocation (code space): 18
------------------------------------------------------------------
  0  14 Bra
  3     A\x{2262}\x{391}.
 14  14 Ket
 17     End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
First char = 'A'
Need char = '.'
    
/\x{D55c}\x{ad6d}\x{C5B4}/D8M 
Memory allocation (code space): 19
------------------------------------------------------------------
  0  15 Bra
  3     \x{d55c}\x{ad6d}\x{c5b4}
 15  15 Ket
 18     End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
First char = 237
Need char = 180

/\x{65e5}\x{672c}\x{8a9e}/D8M
Memory allocation (code space): 19
------------------------------------------------------------------
  0  15 Bra
  3     \x{65e5}\x{672c}\x{8a9e}
 15  15 Ket
 18     End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
First char = 230
Need char = 158

/[\x{100}]/8BM
Memory allocation (code space): 15
------------------------------------------------------------------
  0  11 Bra
  3     [\x{100}]
 11  11 Ket
 14     End
------------------------------------------------------------------

/[Z\x{100}]/8BM
Memory allocation (code space): 47
------------------------------------------------------------------
  0  43 Bra
  3     [Z\x{100}]
 43  43 Ket
 46     End
------------------------------------------------------------------

/^[\x{100}\E-\Q\E\x{150}]/B8M
Memory allocation (code space): 18
------------------------------------------------------------------
  0  14 Bra
  3     ^
  4     [\x{100}-\x{150}]
 14  14 Ket
 17     End
------------------------------------------------------------------

/^[\QĀ\E-\QŐ\E]/B8M
Memory allocation (code space): 18
------------------------------------------------------------------
  0  14 Bra
  3     ^
  4     [\x{100}-\x{150}]
 14  14 Ket
 17     End
------------------------------------------------------------------

/^[\QĀ\E-\QŐ\E/B8M
Failed: missing terminating ] for character class at offset 15

/[\p{L}]/BM
Memory allocation (code space): 15
------------------------------------------------------------------
  0  11 Bra
  3     [\p{L}]
 11  11 Ket
 14     End
------------------------------------------------------------------

/[\p{^L}]/BM
Memory allocation (code space): 15
------------------------------------------------------------------
  0  11 Bra
  3     [\P{L}]
 11  11 Ket
 14     End
------------------------------------------------------------------

/[\P{L}]/BM
Memory allocation (code space): 15
------------------------------------------------------------------
  0  11 Bra
  3     [\P{L}]
 11  11 Ket
 14     End
------------------------------------------------------------------

/[\P{^L}]/BM
Memory allocation (code space): 15
------------------------------------------------------------------
  0  11 Bra
  3     [\p{L}]
 11  11 Ket
 14     End
------------------------------------------------------------------

/[abc\p{L}\x{0660}]/8BM
Memory allocation (code space): 50
------------------------------------------------------------------
  0  46 Bra
  3     [a-c\p{L}\x{660}]
 46  46 Ket
 49     End
------------------------------------------------------------------

/[\p{Nd}]/8BM
Memory allocation (code space): 15
------------------------------------------------------------------
  0  11 Bra
  3     [\p{Nd}]
 11  11 Ket
 14     End
------------------------------------------------------------------

/[\p{Nd}+-]+/8BM
Memory allocation (code space): 48
------------------------------------------------------------------
  0  44 Bra
  3     [+\-\p{Nd}]+
 44  44 Ket
 47     End
------------------------------------------------------------------

/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8iBM
Memory allocation (code space): 25
------------------------------------------------------------------
  0  21 Bra
  3  NC A\x{391}\x{10427}\x{ff3a}\x{1fb0}
 21  21 Ket
 24     End
------------------------------------------------------------------

/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8BM
Memory allocation (code space): 25
------------------------------------------------------------------
  0  21 Bra
  3     A\x{391}\x{10427}\x{ff3a}\x{1fb0}
 21  21 Ket
 24     End
------------------------------------------------------------------

/[\x{105}-\x{109}]/8iBM
Memory allocation (code space): 17
------------------------------------------------------------------
  0  13 Bra
  3     [\x{104}-\x{109}]
 13  13 Ket
 16     End
------------------------------------------------------------------

/( ( (?(1)0|) )*   )/xBM
Memory allocation (code space): 38
------------------------------------------------------------------
  0  34 Bra
  3  28 CBra 1
  8     Brazero
  9  19 SCBra 2
 14   8 Cond
 17   1 Cond ref
 20     0
 22   3 Alt
 25  11 Ket
 28  19 KetRmax
 31  28 Ket
 34  34 Ket
 37     End
------------------------------------------------------------------

/(  (?(1)0|)*   )/xBM
Memory allocation (code space): 30
------------------------------------------------------------------
  0  26 Bra
  3  20 CBra 1
  8     Brazero
  9   8 SCond
 12   1 Cond ref
 15     0
 17   3 Alt
 20  11 KetRmax
 23  20 Ket
 26  26 Ket
 29     End
------------------------------------------------------------------

/[a]/BM
Memory allocation (code space): 9
------------------------------------------------------------------
  0   5 Bra
  3     a
  5   5 Ket
  8     End
------------------------------------------------------------------

/[a]/8BM
Memory allocation (code space): 9
------------------------------------------------------------------
  0   5 Bra
  3     a
  5   5 Ket
  8     End
------------------------------------------------------------------

/[\xaa]/BM
Memory allocation (code space): 9
------------------------------------------------------------------
  0   5 Bra
  3     \xaa
  5   5 Ket
  8     End
------------------------------------------------------------------

/[\xaa]/8BM
Memory allocation (code space): 10
------------------------------------------------------------------
  0   6 Bra
  3     \x{aa}
  6   6 Ket
  9     End
------------------------------------------------------------------

/[^a]/BM
Memory allocation (code space): 9
------------------------------------------------------------------
  0   5 Bra
  3     [^a]
  5   5 Ket
  8     End
------------------------------------------------------------------

/[^a]/8BM
Memory allocation (code space): 9
------------------------------------------------------------------
  0   5 Bra
  3     [^a]
  5   5 Ket
  8     End
------------------------------------------------------------------

/[^\xaa]/BM
Memory allocation (code space): 9
------------------------------------------------------------------
  0   5 Bra
  3     [^\xaa]
  5   5 Ket
  8     End
------------------------------------------------------------------

/[^\xaa]/8BM
Memory allocation (code space): 40
------------------------------------------------------------------
  0  36 Bra
  3     [\x00-\xa9\xab-\xff] (neg)
 36  36 Ket
 39     End
------------------------------------------------------------------

/[^\d]/8WB
------------------------------------------------------------------
  0  11 Bra
  3     [^\p{Nd}]
 11  11 Ket
 14     End
------------------------------------------------------------------

/[[:^alpha:][:^cntrl:]]+/8WB
------------------------------------------------------------------
  0  44 Bra
  3     [ -~\x80-\xff\P{L}]+
 44  44 Ket
 47     End
------------------------------------------------------------------

/[[:^cntrl:][:^alpha:]]+/8WB
------------------------------------------------------------------
  0  44 Bra
  3     [ -~\x80-\xff\P{L}]+
 44  44 Ket
 47     End
------------------------------------------------------------------

/[[:alpha:]]+/8WB
------------------------------------------------------------------
  0  12 Bra
  3     [\p{L}]+
 12  12 Ket
 15     End
------------------------------------------------------------------

/[[:^alpha:]\S]+/8WB
------------------------------------------------------------------
  0  15 Bra
  3     [\P{L}\P{Xsp}]+
 15  15 Ket
 18     End
------------------------------------------------------------------

/abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/B
------------------------------------------------------------------
  0  79 Bra
  3     abc
  9   7 CBra 1
 14     d
 16   5 Alt
 19     e
 21  12 Ket
 24     *THEN 24
 27     x
 29  16 CBra 2
 34     123
 40     *THEN 11
 43     4
 45  31 Alt
 48     567
 54   7 CBra 3
 59     b
 61   5 Alt
 64     q
 66  12 Ket
 69     *THEN 24
 72     xx
 76  47 Ket
 79  79 Ket
 82     End
------------------------------------------------------------------

/-- End of testinput10 --/