summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2024-11-24 04:54:01 +0000
committerCoprDistGit <infra@openeuler.org>2024-11-24 04:54:01 +0000
commitfa531a873d206d6d1d1b5c6d9e9633b3fd0cfd9c (patch)
tree121fa70d44eb4032ba4e1c9ee7a961e0ea1dc0c3
parent644e6a7b740d0a2366abd1fd5e50948db70ce87c (diff)
automatic import of pcre2openeuler24.03_LTS
-rw-r--r--.gitignore1
-rw-r--r--backport-Add-Perl-titlecasing-475.patch69
-rw-r--r--backport-Fix-incorrect-positive-error-code-from-pcre2_substitute.patch65
-rw-r--r--backport-Fix-non-recognition-of-some-octal-escapes-in-substitute.patch263
-rw-r--r--backport-Guard-against-out-of-bounds-memory-access-when-parsing.patch78
-rw-r--r--backport-Improve-error-message-for-N-name-in-character-classes.patch68
-rw-r--r--backport-Remove-incorrect-optimization-in-DFA-matching-when-p.patch118
-rw-r--r--backport-pcre2_compile-avoid-1-byte-buffer-overread-parsing-V.patch118
-rw-r--r--backport-pcre2test-memory-reports-only-compiled-memory-usage-for.patch5223
-rw-r--r--pcre2-10.10-Fix-multilib.patch39
-rw-r--r--pcre2.spec224
-rw-r--r--sources1
12 files changed, 6267 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..80ebde9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/pcre2-10.44.tar.bz2
diff --git a/backport-Add-Perl-titlecasing-475.patch b/backport-Add-Perl-titlecasing-475.patch
new file mode 100644
index 0000000..6cf03b5
--- /dev/null
+++ b/backport-Add-Perl-titlecasing-475.patch
@@ -0,0 +1,69 @@
+From f334e76dc765f23670e957413bae18c9d20b1d82 Mon Sep 17 00:00:00 2001
+From: Nicholas Wilson <nicholas@nicholaswilson.me.uk>
+Date: Mon, 16 Sep 2024 17:38:40 +0100
+Subject: [PATCH] Add Perl titlecasing (#475)
+
+---
+ src/pcre2_substitute.c | 11 +++++++++++
+ testdata/testinput2 | 3 +++
+ testdata/testoutput2 | 4 ++++
+ 3 files changed, 18 insertions(+)
+
+diff --git a/src/pcre2_substitute.c b/src/pcre2_substitute.c
+index 1ccef0660..83ddb8364 100644
+--- a/src/pcre2_substitute.c
++++ b/src/pcre2_substitute.c
+@@ -839,6 +839,12 @@ do
+ forcecase = -1;
+ forcecasereset = 0;
+ ptr += 2;
++ if (ptr + 2 < repend && ptr[0] == CHAR_BACKSLASH && ptr[1] == CHAR_U)
++ {
++ /* Perl title-casing feature for \l\U (and \u\L) */
++ forcecasereset = 1;
++ ptr += 2;
++ }
+ continue;
+
+ case CHAR_U:
+@@ -850,6 +856,11 @@ do
+ forcecase = 1;
+ forcecasereset = 0;
+ ptr += 2;
++ if (ptr + 2 < repend && ptr[0] == CHAR_BACKSLASH && ptr[1] == CHAR_L)
++ {
++ forcecasereset = -1;
++ ptr += 2;
++ }
+ continue;
+
+ default:
+diff --git a/testdata/testinput2 b/testdata/testinput2
+index 51e2095c8..7a836c994 100644
+--- a/testdata/testinput2
++++ b/testdata/testinput2
+@@ -4612,6 +4612,9 @@ B)x/alt_verbnames,mark
+ /a(bc)(DE)/replace=a\u$1\U$1\E$1\l$2\L$2\Eab\Uab\LYZ\EDone,substitute_extended
+ abcDE
+
++/(Hello)|wORLD/g,replace=>${1:+\l\U$0:\u\L$0}<,substitute_extended
++ Hello between wORLD
++
+ /abcd/replace=xy\kz,substitute_extended
+ abcd
+
+diff --git a/testdata/testoutput2 b/testdata/testoutput2
+index eeb635d6d..7c71866b7 100644
+--- a/testdata/testoutput2
++++ b/testdata/testoutput2
+@@ -14854,6 +14854,10 @@ No match
+ abcDE
+ 1: aBcBCbcdEdeabAByzDone
+
++/(Hello)|wORLD/g,replace=>${1:+\l\U$0:\u\L$0}<,substitute_extended
++ Hello between wORLD
++ 2: >hELLO< between >World<
++
+ /abcd/replace=xy\kz,substitute_extended
+ abcd
+ Failed: error -57 at offset 4 in replacement: bad escape sequence in replacement string
diff --git a/backport-Fix-incorrect-positive-error-code-from-pcre2_substitute.patch b/backport-Fix-incorrect-positive-error-code-from-pcre2_substitute.patch
new file mode 100644
index 0000000..412ecbd
--- /dev/null
+++ b/backport-Fix-incorrect-positive-error-code-from-pcre2_substitute.patch
@@ -0,0 +1,65 @@
+From 829414f8e549fe7e4b1a6696ca70664e89e5e7f0 Mon Sep 17 00:00:00 2001
+From: Nicholas Wilson <niwilson@microsoft.com>
+Date: Wed, 18 Sep 2024 16:39:22 +0100
+Subject: [PATCH] Fix incorrect positive error code from pcre2_substitute()
+ (#481)
+
+---
+ src/pcre2_substitute.c | 4 +++-
+ testdata/testinput2 | 6 ++++++
+ testdata/testoutput2 | 10 ++++++++++
+ 3 files changed, 19 insertions(+), 1 deletion(-)
+
+diff --git a/src/pcre2_substitute.c b/src/pcre2_substitute.c
+index 86c1d1e69..862ea9f73 100644
+--- a/src/pcre2_substitute.c
++++ b/src/pcre2_substitute.c
+@@ -134,7 +134,9 @@ for (; ptr < ptrend; ptr++)
+ ptr -= 1; /* Back to last code unit of escape */
+ if (errorcode != 0)
+ {
+- rc = errorcode;
++ /* errorcode from check_escape is positive, so must not be returned by
++ pcre2_substitute(). */
++ rc = PCRE2_ERROR_BADREPESCAPE;
+ goto EXIT;
+ }
+
+diff --git a/testdata/testinput2 b/testdata/testinput2
+index c2abdb890..8be78ff50 100644
+--- a/testdata/testinput2
++++ b/testdata/testinput2
+@@ -4201,6 +4201,12 @@
+ 123abc123\=substitute_overflow_length,replace=[1]x$1z
+ 123abc123\=substitute_overflow_length,replace=[0]x$1z
+
++/a(b)c/substitute_extended
++ ZabcZ\=replace=>${1:+ yes : no }
++ ZabcZ\=replace=>${1:+ \o{100} : \o{100} }
++ ZabcZ\=replace=>${1:+ \o{Z} : no }
++ ZabcZ\=replace=>${1:+ yes : \o{Z} }
++
+ "((?=(?(?=(?(?=(?(?=()))))))))"
+ a
+
+diff --git a/testdata/testoutput2 b/testdata/testoutput2
+index 7a582cd23..ccf209b5c 100644
+--- a/testdata/testoutput2
++++ b/testdata/testoutput2
+@@ -13818,6 +13818,16 @@ Failed: error -48: no more memory: 10 code units are needed
+ 123abc123\=substitute_overflow_length,replace=[0]x$1z
+ Failed: error -48: no more memory: 10 code units are needed
+
++/a(b)c/substitute_extended
++ ZabcZ\=replace=>${1:+ yes : no }
++ 1: Z> yes Z
++ ZabcZ\=replace=>${1:+ \o{100} : \o{100} }
++ 1: Z> @ Z
++ ZabcZ\=replace=>${1:+ \o{Z} : no }
++Failed: error -57 at offset 9 in replacement: bad escape sequence in replacement string
++ ZabcZ\=replace=>${1:+ yes : \o{Z} }
++Failed: error -57 at offset 15 in replacement: bad escape sequence in replacement string
++
+ "((?=(?(?=(?(?=(?(?=()))))))))"
+ a
+ 0:
diff --git a/backport-Fix-non-recognition-of-some-octal-escapes-in-substitute.patch b/backport-Fix-non-recognition-of-some-octal-escapes-in-substitute.patch
new file mode 100644
index 0000000..1f959ca
--- /dev/null
+++ b/backport-Fix-non-recognition-of-some-octal-escapes-in-substitute.patch
@@ -0,0 +1,263 @@
+From d29e729000a3724e2aebaa64318dfd7530a55370 Mon Sep 17 00:00:00 2001
+From: Philip Hazel <Philip.Hazel@gmail.com>
+Date: Wed, 4 Sep 2024 16:18:35 +0100
+Subject: [PATCH] Fix non-recognition of some octal escapes in substitute
+ replacement strings
+
+---
+ src/pcre2_compile.c | 15 ++++++++-------
+ src/pcre2_substitute.c | 4 ++--
+ testdata/testinput11 | 6 ++++++
+ testdata/testinput2 | 12 ++++++++++++
+ testdata/testinput5 | 3 +++
+ testdata/testinput9 | 8 ++++++++
+ testdata/testoutput11-16 | 8 ++++++++
+ testdata/testoutput11-32 | 8 ++++++++
+ testdata/testoutput2 | 16 ++++++++++++++++
+ testdata/testoutput5 | 4 ++++
+ testdata/testoutput9 | 10 ++++++++++
+ 11 files changed, 85 insertions(+), 9 deletions(-)
+
+diff --git a/src/pcre2_compile.c b/src/pcre2_compile.c
+index 8e6787a..a4064f8 100644
+--- a/src/pcre2_compile.c
++++ b/src/pcre2_compile.c
+@@ -1528,8 +1528,8 @@ final code unit of the escape sequence.
+ This function is also called from pcre2_substitute() to handle escape sequences
+ in replacement strings. In this case, the cb argument is NULL, and in the case
+ of escapes that have further processing, only sequences that define a data
+-character are recognised. The isclass argument is not relevant; the options
+-argument is the final value of the compiled pattern's options.
++character are recognised. The options argument is the final value of the
++compiled pattern's options.
+
+ Arguments:
+ ptrptr points to the input position pointer
+@@ -1538,7 +1538,7 @@ Arguments:
+ errorcodeptr points to the errorcode variable (containing zero)
+ options the current options bits
+ xoptions the current extra options bits
+- isclass TRUE if inside a character class
++ isclassorsub TRUE if in a character class or called from pcre2_substitute()
+ cb compile data block or NULL when called from pcre2_substitute()
+
+ Returns: zero => a data character
+@@ -1549,7 +1549,7 @@ Returns: zero => a data character
+
+ int
+ PRIV(check_escape)(PCRE2_SPTR *ptrptr, PCRE2_SPTR ptrend, uint32_t *chptr,
+- int *errorcodeptr, uint32_t options, uint32_t xoptions, BOOL isclass,
++ int *errorcodeptr, uint32_t options, uint32_t xoptions, BOOL isclassorsub,
+ compile_block *cb)
+ {
+ BOOL utf = (options & PCRE2_UTF) != 0;
+@@ -1660,7 +1660,8 @@ else
+
+ if (cb == NULL)
+ {
+- if (c != CHAR_c && c != CHAR_o && c != CHAR_x)
++ if (c < CHAR_0 ||
++ (c > CHAR_9 && (c != CHAR_c && c != CHAR_o && c != CHAR_x)))
+ {
+ *errorcodeptr = ERR3;
+ return 0;
+@@ -1778,7 +1779,7 @@ else
+ */
+
+ case CHAR_g:
+- if (isclass) break;
++ if (isclassorsub) break;
+
+ if (ptr >= ptrend)
+ {
+@@ -1854,7 +1855,7 @@ else
+ case CHAR_1: case CHAR_2: case CHAR_3: case CHAR_4: case CHAR_5:
+ case CHAR_6: case CHAR_7: case CHAR_8: case CHAR_9:
+
+- if (!isclass)
++ if (!isclassorsub)
+ {
+ oldptr = ptr;
+ ptr--; /* Back to the digit */
+diff --git a/src/pcre2_substitute.c b/src/pcre2_substitute.c
+index 3ab94eb..069598c 100644
+--- a/src/pcre2_substitute.c
++++ b/src/pcre2_substitute.c
+@@ -130,7 +130,7 @@ for (; ptr < ptrend; ptr++)
+
+ ptr += 1; /* Must point after \ */
+ erc = PRIV(check_escape)(&ptr, ptrend, &ch, &errorcode,
+- code->overall_options, code->extra_options, FALSE, NULL);
++ code->overall_options, code->extra_options, TRUE, NULL);
+ ptr -= 1; /* Back to last code unit of escape */
+ if (errorcode != 0)
+ {
+@@ -864,7 +864,7 @@ do
+
+ ptr++; /* Point after \ */
+ rc = PRIV(check_escape)(&ptr, repend, &ch, &errorcode,
+- code->overall_options, code->extra_options, FALSE, NULL);
++ code->overall_options, code->extra_options, TRUE, NULL);
+ if (errorcode != 0) goto BADESCAPE;
+
+ switch(rc)
+diff --git a/testdata/testinput11 b/testdata/testinput11
+index 2bc8a25..69aea35 100644
+--- a/testdata/testinput11
++++ b/testdata/testinput11
+@@ -371,4 +371,10 @@
+ /(?i:A{1,}\6666666666)/
+ A\x{1b6}6666666
+
++/abc/substitute_extended,replace=>\777<
++ abc
++
++/abc/substitute_extended,replace=>\o{012345}<
++ abc
++
+ # End of testinput11
+diff --git a/testdata/testinput2 b/testdata/testinput2
+index bdd41ab..a8bd69d 100644
+--- a/testdata/testinput2
++++ b/testdata/testinput2
+@@ -4670,6 +4670,18 @@ B)x/alt_verbnames,mark
+ /abcd/g
+ >abcd1234abcd5678<\=replace=wxyz,substitute_matched
+
++/abc/substitute_extended,replace=>\045<
++ abc
++
++/abc/substitute_extended,replace=>\45<
++ abc
++
++/abc/substitute_extended,replace=>\o{45}<
++ abc
++
++/abc/substitute_extended,replace=>\845<
++ abc
++
+ /^(o(\1{72}{\"{\\{00000059079}\d*){74}}){19}/I
+
+ /((p(?'K/
+diff --git a/testdata/testinput5 b/testdata/testinput5
+index 7e04873..ff120e0 100644
+--- a/testdata/testinput5
++++ b/testdata/testinput5
+@@ -2531,4 +2531,7 @@
+ /(?<!(|l ))/utf
+ (?<!(|l ))
+
++/abc/utf,substitute_extended,replace=>\777<
++ abc
++
+ # End of testinput5
+diff --git a/testdata/testinput9 b/testdata/testinput9
+index 4eb228a..f2f5003 100644
+--- a/testdata/testinput9
++++ b/testdata/testinput9
+@@ -263,4 +263,12 @@
+ /(?i:A{1,}\6666666666)/
+ A\x{1b6}6666666
+
++# Should cause an error
++/abc/substitute_extended,replace=>\777<
++ abc
++
++# Should cause an error
++/abc/substitute_extended,replace=>\o{012345}<
++ abc
++
+ # End of testinput9
+diff --git a/testdata/testoutput11-16 b/testdata/testoutput11-16
+index 8768785..5d1ccab 100644
+--- a/testdata/testoutput11-16
++++ b/testdata/testoutput11-16
+@@ -665,4 +665,12 @@ Subject length lower bound = 1
+ A\x{1b6}6666666
+ 0: A\x{1b6}6666666
+
++/abc/substitute_extended,replace=>\777<
++ abc
++ 1: >\x{1ff}<
++
++/abc/substitute_extended,replace=>\o{012345}<
++ abc
++ 1: >\x{14e5}<
++
+ # End of testinput11
+diff --git a/testdata/testoutput11-32 b/testdata/testoutput11-32
+index 2c95f61..c1b8547 100644
+--- a/testdata/testoutput11-32
++++ b/testdata/testoutput11-32
+@@ -671,4 +671,12 @@ Subject length lower bound = 1
+ A\x{1b6}6666666
+ 0: A\x{1b6}6666666
+
++/abc/substitute_extended,replace=>\777<
++ abc
++ 1: >\x{1ff}<
++
++/abc/substitute_extended,replace=>\o{012345}<
++ abc
++ 1: >\x{14e5}<
++
+ # End of testinput11
+diff --git a/testdata/testoutput2 b/testdata/testoutput2
+index d59b26a..be0e1f6 100644
+--- a/testdata/testoutput2
++++ b/testdata/testoutput2
+@@ -14913,6 +14913,22 @@ Failed: error -55 at offset 3 in replacement: requested value is not set
+ >abcd1234abcd5678<\=replace=wxyz,substitute_matched
+ 2: >wxyz1234wxyz5678<
+
++/abc/substitute_extended,replace=>\045<
++ abc
++ 1: >%<
++
++/abc/substitute_extended,replace=>\45<
++ abc
++ 1: >%<
++
++/abc/substitute_extended,replace=>\o{45}<
++ abc
++ 1: >%<
++
++/abc/substitute_extended,replace=>\845<
++ abc
++ 1: >845<
++
+ /^(o(\1{72}{\"{\\{00000059079}\d*){74}}){19}/I
+ Capture group count = 2
+ Max back reference = 1
+diff --git a/testdata/testoutput5 b/testdata/testoutput5
+index b79959b..8db45a6 100644
+--- a/testdata/testoutput5
++++ b/testdata/testoutput5
+@@ -5515,4 +5515,8 @@ No match
+ (?<!(|l ))
+ No match
+
++/abc/utf,substitute_extended,replace=>\777<
++ abc
++ 1: >\x{1ff}<
++
+ # End of testinput5
+diff --git a/testdata/testoutput9 b/testdata/testoutput9
+index 1ec4317..17eb44b 100644
+--- a/testdata/testoutput9
++++ b/testdata/testoutput9
+@@ -371,4 +371,14 @@ Failed: error 176 at offset 259: name is too long in (*MARK), (*PRUNE), (*SKIP),
+ Failed: error 151 at offset 13: octal value is greater than \377 in 8-bit non-UTF-8 mode
+ A\x{1b6}6666666
+
++# Should cause an error
++/abc/substitute_extended,replace=>\777<
++ abc
++Failed: error -57 at offset 5 in replacement: bad escape sequence in replacement string
++
++# Should cause an error
++/abc/substitute_extended,replace=>\o{012345}<
++ abc
++Failed: error -57 at offset 10 in replacement: bad escape sequence in replacement string
++
+ # End of testinput9
diff --git a/backport-Guard-against-out-of-bounds-memory-access-when-parsing.patch b/backport-Guard-against-out-of-bounds-memory-access-when-parsing.patch
new file mode 100644
index 0000000..196ce7d
--- /dev/null
+++ b/backport-Guard-against-out-of-bounds-memory-access-when-parsing.patch
@@ -0,0 +1,78 @@
+From ef218fbba60bfe5b0a8ac9ea4445eac5fb0847e5 Mon Sep 17 00:00:00 2001
+From: Alex Dowad <alexinbeijing@gmail.com>
+Date: Sat, 7 Sep 2024 00:16:03 +0900
+Subject: [PATCH] Guard against out-of-bounds memory access when parsing
+ LIMIT_HEAP et al (#463)
+
+Patterns passed to pcre2_compile are not guaranteed to be
+null-terminated. Also, it can happen that there is an invalid
+pattern like this:
+
+ (*LIMIT_HEAP=123
+
+If the next byte of memory after the end of the pattern happens
+to be a digit, it will be parsed as part of the limit value. Or,
+if the next byte is a right parenthesis character, it will be taken
+as the end of the (*LIMIT_HEAP=nnn) construct.
+
+This will result in `skipatstart` being larger than `patlen`, which
+will result in underflow and an erroneous call to malloc requesting
+a huge number of bytes.
+---
+ src/pcre2_compile.c | 7 ++++---
+ testdata/testoutput15 | 4 ++--
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/src/pcre2_compile.c b/src/pcre2_compile.c
+index e6843bb13..410f220b3 100644
+--- a/src/pcre2_compile.c
++++ b/src/pcre2_compile.c
+@@ -10552,12 +10552,12 @@ if ((options & PCRE2_LITERAL) == 0)
+ ptr += pp;
+ goto HAD_EARLY_ERROR;
+ }
+- while (IS_DIGIT(ptr[pp]))
++ while (pp < patlen && IS_DIGIT(ptr[pp]))
+ {
+ if (c > UINT32_MAX / 10 - 1) break; /* Integer overflow */
+ c = c*10 + (ptr[pp++] - CHAR_0);
+ }
+- if (ptr[pp++] != CHAR_RIGHT_PARENTHESIS)
++ if (pp >= patlen || ptr[pp] != CHAR_RIGHT_PARENTHESIS)
+ {
+ errorcode = ERR60;
+ ptr += pp;
+@@ -10566,7 +10566,7 @@ if ((options & PCRE2_LITERAL) == 0)
+ if (p->type == PSO_LIMH) limit_heap = c;
+ else if (p->type == PSO_LIMM) limit_match = c;
+ else limit_depth = c;
+- skipatstart += pp - skipatstart;
++ skipatstart = ++pp;
+ break;
+ }
+ break; /* Out of the table scan loop */
+@@ -10574,6 +10574,7 @@ if ((options & PCRE2_LITERAL) == 0)
+ }
+ if (i >= sizeof(pso_list)/sizeof(pso)) break; /* Out of pso loop */
+ }
++ PCRE2_ASSERT(skipatstart <= patlen);
+ }
+
+ /* End of pattern-start options; advance to start of real regex. */
+diff --git a/testdata/testoutput15 b/testdata/testoutput15
+index aa9c5c930..f36faeeaf 100644
+--- a/testdata/testoutput15
++++ b/testdata/testoutput15
+@@ -111,10 +111,10 @@ Minimum depth limit = 10
+ 3: ee
+
+ /(*LIMIT_MATCH=12bc)abc/
+-Failed: error 160 at offset 17: (*VERB) not recognized or malformed
++Failed: error 160 at offset 16: (*VERB) not recognized or malformed
+
+ /(*LIMIT_MATCH=4294967290)abc/
+-Failed: error 160 at offset 24: (*VERB) not recognized or malformed
++Failed: error 160 at offset 23: (*VERB) not recognized or malformed
+
+ /(*LIMIT_DEPTH=4294967280)abc/I
+ Capture group count = 0
diff --git a/backport-Improve-error-message-for-N-name-in-character-classes.patch b/backport-Improve-error-message-for-N-name-in-character-classes.patch
new file mode 100644
index 0000000..8ad59b9
--- /dev/null
+++ b/backport-Improve-error-message-for-N-name-in-character-classes.patch
@@ -0,0 +1,68 @@
+From d704ee40c5324e5ff6c08f009a7aaa3b67b71565 Mon Sep 17 00:00:00 2001
+From: Nicholas Wilson <niwilson@microsoft.com>
+Date: Fri, 27 Sep 2024 16:31:01 +0100
+Subject: [PATCH] Improve error message for \N{name} in character classes
+ (#502)
+
+---
+ src/pcre2_compile.c | 8 ++++++++
+ testdata/testinput2 | 6 ++++++
+ testdata/testoutput2 | 9 +++++++++
+ 3 files changed, 23 insertions(+)
+
+diff --git a/src/pcre2_compile.c b/src/pcre2_compile.c
+index ec4940e63..fd554f1d2 100644
+--- a/src/pcre2_compile.c
++++ b/src/pcre2_compile.c
+@@ -1542,6 +1542,14 @@ else if ((i = escapes[c - ESCAPES_FIRST]) != 0)
+ #endif
+ }
+
++ /* Give an error in contexts where quantifiers are not allowed
++ (character classes; substitution strings). */
++
++ else if (isclassorsub || cb == NULL)
++ {
++ *errorcodeptr = ERR37;
++ }
++
+ /* Give an error if what follows is not a quantifier, but don't override
+ an error set by the quantifier reader (e.g. number overflow). */
+
+diff --git a/testdata/testinput2 b/testdata/testinput2
+index c6ee980..a33d987 100644
+--- a/testdata/testinput2
++++ b/testdata/testinput2
+@@ -913,6 +913,12 @@
+
+ /\N{25,ab}/
+
++/[\N]/
++
++/[\N{4}]/
++
++/[\N{name}]/
++
+ /a{1,3}b/ungreedy
+ ab
+
+diff --git a/testdata/testoutput2 b/testdata/testoutput2
+index 2f2b3d1..4c07b72 100644
+--- a/testdata/testoutput2
++++ b/testdata/testoutput2
+@@ -3245,6 +3245,15 @@ Failed: error 137 at offset 2: PCRE2 does not support \F, \L, \l, \N{name}, \U,
+ /\N{25,ab}/
+ Failed: error 137 at offset 2: PCRE2 does not support \F, \L, \l, \N{name}, \U, or \u
+
++/[\N]/
++Failed: error 171 at offset 3: \N is not supported in a class
++
++/[\N{4}]/
++Failed: error 137 at offset 3: PCRE2 does not support \F, \L, \l, \N{name}, \U, or \u
++
++/[\N{name}]/
++Failed: error 137 at offset 3: PCRE2 does not support \F, \L, \l, \N{name}, \U, or \u
++
+ /a{1,3}b/ungreedy
+ ab
+ 0: ab
diff --git a/backport-Remove-incorrect-optimization-in-DFA-matching-when-p.patch b/backport-Remove-incorrect-optimization-in-DFA-matching-when-p.patch
new file mode 100644
index 0000000..7d0382e
--- /dev/null
+++ b/backport-Remove-incorrect-optimization-in-DFA-matching-when-p.patch
@@ -0,0 +1,118 @@
+From 674b6640e702705e8e90125f972197fae3aa364d Mon Sep 17 00:00:00 2001
+From: Philip Hazel <Philip.Hazel@gmail.com>
+Date: Sat, 3 Aug 2024 17:18:56 +0100
+Subject: [PATCH] Remove incorrect optimization in DFA matching when partial
+ matching and (*F) are involved
+
+Conflict:don't modify ChangeLog; adapt context
+Reference:https://github.com/PCRE2Project/pcre2/commit/674b6640e702705e8e90125f972197fae3aa364d
+
+---
+ src/pcre2_dfa_match.c | 10 +---------
+ testdata/testinput6 | 9 +++++++++
+ testdata/testoutput6 | 13 +++++++++++++
+ 3 files changed, 23 insertions(+), 9 deletions(-)
+
+diff --git a/src/pcre2_dfa_match.c b/src/pcre2_dfa_match.c
+index 60f6b4f..1c4495f 100644
+--- a/src/pcre2_dfa_match.c
++++ b/src/pcre2_dfa_match.c
+@@ -7,7 +7,7 @@ and semantics are as close as possible to those of the Perl 5 language.
+
+ Written by Philip Hazel
+ Original API code Copyright (c) 1997-2012 University of Cambridge
+- New API code Copyright (c) 2016-2023 University of Cambridge
++ New API code Copyright (c) 2016-2024 University of Cambridge
+
+ -----------------------------------------------------------------------------
+ Redistribution and use in source and binary forms, with or without
+@@ -693,7 +693,6 @@ for (;;)
+ int i, j;
+ int clen, dlen;
+ uint32_t c, d;
+- int forced_fail = 0;
+ BOOL partial_newline = FALSE;
+ BOOL could_continue = reset_could_continue;
+ reset_could_continue = FALSE;
+@@ -2765,7 +2764,6 @@ for (;;)
+ though the other "backtracking verbs" are not supported. */
+
+ case OP_FAIL:
+- forced_fail++; /* Count FAILs for multiple states */
+ break;
+
+ case OP_ASSERT:
+@@ -3247,18 +3245,12 @@ for (;;)
+ matches that we are going to find. If partial matching has been requested,
+ check for appropriate conditions.
+
+- The "forced_ fail" variable counts the number of (*F) encountered for the
+- character. If it is equal to the original active_count (saved in
+- workspace[1]) it means that (*F) was found on every active state. In this
+- case we don't want to give a partial match.
+-
+ The "could_continue" variable is true if a state could have continued but
+ for the fact that the end of the subject was reached. */
+
+ if (new_count <= 0)
+ {
+ if (could_continue && /* Some could go on, and */
+- forced_fail != workspace[1] && /* Not all forced fail & */
+ ( /* either... */
+ (mb->moptions & PCRE2_PARTIAL_HARD) != 0 /* Hard partial */
+ || /* or... */
+diff --git a/testdata/testinput6 b/testdata/testinput6
+index 0ca0d23..b71a69c 100644
+--- a/testdata/testinput6
++++ b/testdata/testinput6
+@@ -4392,9 +4392,18 @@
+
+ /Z(*F)Q|ZXY/
+ Z\=ps
++ XY\=dfa_restart
+ \= Expect no match
+ ZA\=ps
+ X\=ps
++
++/Z(?:(*F)Q|XY)/
++ Z\=ps
++ XY\=dfa_restart
++
++/Z(*F)Q|Z(*F)XY/
++\= Expect no match
++ Z\=ps
+
+ /\bthe cat\b/
+ the cat\=ps
+diff --git a/testdata/testoutput6 b/testdata/testoutput6
+index 607b572..38c653e 100644
+--- a/testdata/testoutput6
++++ b/testdata/testoutput6
+@@ -6769,11 +6769,24 @@ Partial match: dogs
+ /Z(*F)Q|ZXY/
+ Z\=ps
+ Partial match: Z
++ XY\=dfa_restart
++ 0: XY
+ \= Expect no match
+ ZA\=ps
+ No match
+ X\=ps
+ No match
++
++/Z(?:(*F)Q|XY)/
++ Z\=ps
++Partial match: Z
++ XY\=dfa_restart
++ 0: XY
++
++/Z(*F)Q|Z(*F)XY/
++\= Expect no match
++ Z\=ps
++No match
+
+ /\bthe cat\b/
+ the cat\=ps
+--
+2.43.0
+
diff --git a/backport-pcre2_compile-avoid-1-byte-buffer-overread-parsing-V.patch b/backport-pcre2_compile-avoid-1-byte-buffer-overread-parsing-V.patch
new file mode 100644
index 0000000..8d349cc
--- /dev/null
+++ b/backport-pcre2_compile-avoid-1-byte-buffer-overread-parsing-V.patch
@@ -0,0 +1,118 @@
+From bc367f1880ae5ccc771d5780e35df4c42744a9c4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Carlo=20Marcelo=20Arenas=20Bel=C3=B3n?= <carenas@gmail.com>
+Date: Sun, 22 Sep 2024 01:49:03 -0700
+Subject: [PATCH] pcre2_compile: avoid 1 byte buffer overread parsing VERBs
+ (#487)
+
+As reported recently by ef218fb (Guard against out-of-bounds memory
+access when parsing LIMIT_HEAP et al (#463), 2024-09-07), a malformed
+pattern could result in reading 1 byte past its end.
+
+Fix a similar issue that affects all VERBs and add test cases to
+ensure the original bug and all its siblings are no longer an issue.
+
+While at it fix the wording of the related documentation.
+---
+ doc/pcre2syntax.3 | 4 ++--
+ src/pcre2_compile.c | 11 +++--------
+ testdata/testinput2 | 8 ++++++++
+ testdata/testoutput2 | 12 ++++++++++++
+ 4 files changed, 25 insertions(+), 10 deletions(-)
+
+diff --git a/doc/pcre2syntax.3 b/doc/pcre2syntax.3
+index 232125b82..db0bb6586 100644
+--- a/doc/pcre2syntax.3
++++ b/doc/pcre2syntax.3
+@@ -408,8 +408,8 @@ only one hyphen. Setting (but no unsetting) is allowed after (?^ for example
+ example (?i:...).
+ .P
+ The following are recognized only at the very start of a pattern or after one
+-of the newline or \eR options with similar syntax. More than one of them may
+-appear. For the first three, d is a decimal number.
++of the newline or \eR sequences or options with similar syntax. More than one
++of them may appear. For the first three, d is a decimal number.
+ .sp
+ (*LIMIT_DEPTH=d) set the backtracking limit to d
+ (*LIMIT_HEAP=d) set the heap size limit to d * 1024 bytes
+diff --git a/src/pcre2_compile.c b/src/pcre2_compile.c
+index 7e48b26..3d9a500 100644
+--- a/src/pcre2_compile.c
++++ b/src/pcre2_compile.c
+@@ -9877,13 +9877,14 @@ if ((options & PCRE2_LITERAL) == 0)
+ {
+ for (i = 0; i < sizeof(pso_list)/sizeof(pso); i++)
+ {
+- uint32_t c, pp;
+ const pso *p = pso_list + i;
+
+ if (patlen - skipatstart - 2 >= p->length &&
+ PRIV(strncmp_c8)(ptr + skipatstart + 2, (char *)(p->name),
+ p->length) == 0)
+ {
++ uint32_t c, pp;
++
+ skipatstart += p->length + 2;
+ switch(p->type)
+ {
+@@ -9910,18 +9911,12 @@ if ((options & PCRE2_LITERAL) == 0)
+ case PSO_LIMH:
+ c = 0;
+ pp = skipatstart;
+- if (!IS_DIGIT(ptr[pp]))
+- {
+- errorcode = ERR60;
+- ptr += pp;
+- goto HAD_EARLY_ERROR;
+- }
+ while (pp < patlen && IS_DIGIT(ptr[pp]))
+ {
+ if (c > UINT32_MAX / 10 - 1) break; /* Integer overflow */
+ c = c*10 + (ptr[pp++] - CHAR_0);
+ }
+- if (pp >= patlen || ptr[pp] != CHAR_RIGHT_PARENTHESIS)
++ if (pp >= patlen || pp == skipatstart || ptr[pp] != CHAR_RIGHT_PARENTHESIS)
+ {
+ errorcode = ERR60;
+ ptr += pp;
+diff --git a/testdata/testinput2 b/testdata/testinput2
+index a869c5bc2..542d14520 100644
+--- a/testdata/testinput2
++++ b/testdata/testinput2
+@@ -5261,6 +5261,14 @@ a)"xI
+
+ /(*LIMIT_HEAP=0)xxx/I
+
++/(*LIMIT_HEAP=123/use_length
++
++/(*LIMIT_MATCH=/use_length
++
++/(*CRLF)(*LIMIT_DEPTH=/use_length
++
++/(*CRLF)(*LIMIT_RECURSION=1)(*BOGUS/use_length
++
+ /\d{0,3}(*:abc)(?C1)xxx/callout_info
+
+ # ----------------------------------------------------------------------
+diff --git a/testdata/testoutput2 b/testdata/testoutput2
+index bf7b7620e..b99d64781 100644
+--- a/testdata/testoutput2
++++ b/testdata/testoutput2
+@@ -16220,6 +16220,18 @@ First code unit = 'x'
+ Last code unit = 'x'
+ Subject length lower bound = 3
+
++/(*LIMIT_HEAP=123/use_length
++Failed: error 160 at offset 16: (*VERB) not recognized or malformed
++
++/(*LIMIT_MATCH=/use_length
++Failed: error 160 at offset 14: (*VERB) not recognized or malformed
++
++/(*CRLF)(*LIMIT_DEPTH=/use_length
++Failed: error 160 at offset 21: (*VERB) not recognized or malformed
++
++/(*CRLF)(*LIMIT_RECURSION=1)(*BOGUS/use_length
++Failed: error 160 at offset 34: (*VERB) not recognized or malformed
++
+ /\d{0,3}(*:abc)(?C1)xxx/callout_info
+ Callout 1 x
+
diff --git a/backport-pcre2test-memory-reports-only-compiled-memory-usage-for.patch b/backport-pcre2test-memory-reports-only-compiled-memory-usage-for.patch
new file mode 100644
index 0000000..fa07a5f
--- /dev/null
+++ b/backport-pcre2test-memory-reports-only-compiled-memory-usage-for.patch
@@ -0,0 +1,5223 @@
+From 57906628d7babd27c01eb1c085d3e0cdd512189a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Carlo=20Marcelo=20Arenas=20Bel=C3=B3n?= <carenas@gmail.com>
+Date: Sun, 9 Jun 2024 08:22:15 -0700
+Subject: [PATCH] pcre2test: memory reports only compiled memory usage for
+ code/data (#418)
+
+Since 05aafb2 (Implement pcre2_set_max_pattern_compiled_length() and set
+this limit in the fuzzer, 2024-04-24), the memory modifier has reported
+the full size of the allocated "code" returned by `pcre2_compile`.
+
+Problem is that the size of the structure used to hold that in memory also
+depends on the platform ABI and even alignment by the compiler, and has
+been therefore fragile to compare.
+
+Revert to reporting only the additional memory that `pcre2_compile()` will
+use for the compiled pattern (including any data tables) and make sure
+that the limit provided with `pcre2_set_max_pattern_compiled_length()`
+also avoid the internal struct overhead.
+
+Fixes: #415
+---
+ doc/pcre2_set_max_pattern_compiled_length.3 | 8 +-
+ src/pcre2_compile.c | 4 +-
+ src/pcre2test.c | 17 +-
+ testdata/testoutput8-16-2 | 171 +++++++-------------
+ testdata/testoutput8-16-3 | 171 +++++++-------------
+ testdata/testoutput8-16-4 | 171 +++++++-------------
+ testdata/testoutput8-32-2 | 171 +++++++-------------
+ testdata/testoutput8-32-3 | 171 +++++++-------------
+ testdata/testoutput8-32-4 | 171 +++++++-------------
+ testdata/testoutput8-8-2 | 171 +++++++-------------
+ testdata/testoutput8-8-3 | 171 +++++++-------------
+ testdata/testoutput8-8-4 | 171 +++++++-------------
+ 12 files changed, 546 insertions(+), 1022 deletions(-)
+
+diff --git a/doc/pcre2_set_max_pattern_compiled_length.3 b/doc/pcre2_set_max_pattern_compiled_length.3
+index 472a7bbda..679c12c20 100644
+--- a/doc/pcre2_set_max_pattern_compiled_length.3
++++ b/doc/pcre2_set_max_pattern_compiled_length.3
+@@ -1,4 +1,4 @@
+-.TH PCRE2_SET_MAX_PATTERN_COMPILED_LENGTH 3 "24 April 2024" "PCRE2 10.44"
++.TH PCRE2_SET_MAX_PATTERN_COMPILED_LENGTH 3 "8 Jun 2024" "PCRE2 10.45"
+ .SH NAME
+ PCRE2 - Perl-compatible regular expressions (revised API)
+ .SH SYNOPSIS
+@@ -15,9 +15,9 @@ PCRE2 - Perl-compatible regular expressions (revised API)
+ .rs
+ .sp
+ This function sets, in a compile context, the maximum size (in bytes) for the
+-memory needed to hold the compiled version of a pattern that is compiled with
+-this context. The result is always zero. If a pattern that is passed to
+-\fBpcre2_compile()\fP with this context needs more memory, an error is
++memory needed to hold the compiled version of a pattern that is using this
++context. The result is always zero. If a pattern that is passed to
++\fBpcre2_compile()\fP referencing this context needs more memory, an error is
+ generated. The default is the largest number that a PCRE2_SIZE variable can
+ hold, which is effectively unlimited.
+ .P
+diff --git a/src/pcre2_compile.c b/src/pcre2_compile.c
+index 8e6787aba..cc5b96743 100644
+--- a/src/pcre2_compile.c
++++ b/src/pcre2_compile.c
+@@ -10608,8 +10608,7 @@ block for storing the compiled pattern and names table. Integer overflow should
+ no longer be possible because nowadays we limit the maximum value of
+ cb.names_found and cb.name_entry_size. */
+
+-re_blocksize = sizeof(pcre2_real_code) +
+- CU2BYTES(length +
++re_blocksize = CU2BYTES(length +
+ (PCRE2_SIZE)cb.names_found * (PCRE2_SIZE)cb.name_entry_size);
+
+ if (re_blocksize > ccontext->max_pattern_compiled_length)
+@@ -10618,6 +10617,7 @@ if (re_blocksize > ccontext->max_pattern_compiled_length)
+ goto HAD_CB_ERROR;
+ }
+
++re_blocksize += sizeof(pcre2_real_code);
+ re = (pcre2_real_code *)
+ ccontext->memctl.malloc(re_blocksize, ccontext->memctl.memory_data);
+ if (re == NULL)
+diff --git a/src/pcre2test.c b/src/pcre2test.c
+index 379034518..550ae4e4a 100644
+--- a/src/pcre2test.c
++++ b/src/pcre2test.c
+@@ -4397,7 +4397,7 @@ static void
+ show_memory_info(void)
+ {
+ uint32_t name_count, name_entry_size;
+-PCRE2_SIZE size, cblock_size;
++PCRE2_SIZE size, cblock_size, data_size;
+
+ /* One of the test_mode values will always be true, but to stop a compiler
+ warning we must initialize cblock_size. */
+@@ -4417,18 +4417,19 @@ if (test_mode == PCRE32_MODE) cblock_size = sizeof(pcre2_real_code_32);
+ (void)pattern_info(PCRE2_INFO_NAMECOUNT, &name_count, FALSE);
+ (void)pattern_info(PCRE2_INFO_NAMEENTRYSIZE, &name_entry_size, FALSE);
+
+-/* The uint32_t variables are cast before multiplying to stop code analyzers
+-grumbling about potential overflow. */
++/* The uint32_t variables are cast before multiplying to avoid potential
++ integer overflow. */
++data_size = (PCRE2_SIZE)name_count * (PCRE2_SIZE)name_entry_size * (PCRE2_SIZE)code_unit_size;
+
+-fprintf(outfile, "Memory allocation - compiled block : %" SIZ_FORM "\n", size);
+-fprintf(outfile, "Memory allocation - code portion : %" SIZ_FORM "\n", size -
+- (PCRE2_SIZE)name_count * (PCRE2_SIZE)name_entry_size * (PCRE2_SIZE)code_unit_size -
+- cblock_size);
++fprintf(outfile, "Memory allocation - code size : %" SIZ_FORM "\n", size -
++ cblock_size - data_size);
++if (data_size != 0)
++ fprintf(outfile, "Memory allocation - data size : %" SIZ_FORM "\n", data_size);
+
+ if (pat_patctl.jit != 0)
+ {
+ (void)pattern_info(PCRE2_INFO_JITSIZE, &size, FALSE);
+- fprintf(outfile, "Memory allocation - JIT code : %" SIZ_FORM "\n", size);
++ fprintf(outfile, "Memory allocation - JIT code : %" SIZ_FORM "\n", size);
+ }
+ }
+
+diff --git a/testdata/testoutput8-16-2 b/testdata/testoutput8-16-2
+index bcb9e1774..108c0bea4 100644
+--- a/testdata/testoutput8-16-2
++++ b/testdata/testoutput8-16-2
+@@ -10,8 +10,7 @@
+ #pattern fullbincode,memory
+
+ /((?i)b)/
+-Memory allocation - compiled block : 160
+-Memory allocation - code portion : 24
++Memory allocation - code size : 24
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 5 CBra 1
+@@ -22,8 +21,7 @@ Memory allocation - code portion : 24
+ ------------------------------------------------------------------
+
+ /(?s)(.*X|^B)/
+-Memory allocation - compiled block : 174
+-Memory allocation - code portion : 38
++Memory allocation - code size : 38
+ ------------------------------------------------------------------
+ 0 16 Bra
+ 2 7 CBra 1
+@@ -38,8 +36,7 @@ Memory allocation - code portion : 38
+ ------------------------------------------------------------------
+
+ /(?s:.*X|^B)/
+-Memory allocation - compiled block : 172
+-Memory allocation - code portion : 36
++Memory allocation - code size : 36
+ ------------------------------------------------------------------
+ 0 15 Bra
+ 2 6 Bra
+@@ -54,8 +51,7 @@ Memory allocation - code portion : 36
+ ------------------------------------------------------------------
+
+ /^[[:alnum:]]/
+-Memory allocation - compiled block : 182
+-Memory allocation - code portion : 46
++Memory allocation - code size : 46
+ ------------------------------------------------------------------
+ 0 20 Bra
+ 2 ^
+@@ -65,8 +61,7 @@ Memory allocation - code portion : 46
+ ------------------------------------------------------------------
+
+ /#/Ix
+-Memory allocation - compiled block : 146
+-Memory allocation - code portion : 10
++Memory allocation - code size : 10
+ ------------------------------------------------------------------
+ 0 2 Bra
+ 2 2 Ket
+@@ -78,8 +73,7 @@ Options: extended
+ Subject length lower bound = 0
+
+ /a#/Ix
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 a
+@@ -92,8 +86,7 @@ First code unit = 'a'
+ Subject length lower bound = 1
+
+ /x?+/
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 x?+
+@@ -102,8 +95,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /x++/
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 x++
+@@ -112,8 +104,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /x{1,3}+/
+-Memory allocation - compiled block : 156
+-Memory allocation - code portion : 20
++Memory allocation - code size : 20
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 2 x
+@@ -123,8 +114,7 @@ Memory allocation - code portion : 20
+ ------------------------------------------------------------------
+
+ /(x)*+/
+-Memory allocation - compiled block : 162
+-Memory allocation - code portion : 26
++Memory allocation - code size : 26
+ ------------------------------------------------------------------
+ 0 10 Bra
+ 2 Braposzero
+@@ -136,8 +126,7 @@ Memory allocation - code portion : 26
+ ------------------------------------------------------------------
+
+ /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
+-Memory allocation - compiled block : 278
+-Memory allocation - code portion : 142
++Memory allocation - code size : 142
+ ------------------------------------------------------------------
+ 0 68 Bra
+ 2 ^
+@@ -160,8 +149,7 @@ Memory allocation - code portion : 142
+ ------------------------------------------------------------------
+
+ "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 - compiled block : 1784
+-Memory allocation - code portion : 1648
++Memory allocation - code size : 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
+@@ -171,8 +159,7 @@ Memory allocation - code portion : 1648
+ ------------------------------------------------------------------
+
+ "\$\<\.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 - compiled block : 1764
+-Memory allocation - code portion : 1628
++Memory allocation - code size : 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
+@@ -182,8 +169,7 @@ Memory allocation - code portion : 1628
+ ------------------------------------------------------------------
+
+ /(a(?1)b)/
+-Memory allocation - compiled block : 168
+-Memory allocation - code portion : 32
++Memory allocation - code size : 32
+ ------------------------------------------------------------------
+ 0 13 Bra
+ 2 9 CBra 1
+@@ -196,8 +182,7 @@ Memory allocation - code portion : 32
+ ------------------------------------------------------------------
+
+ /(a(?1)+b)/
+-Memory allocation - compiled block : 176
+-Memory allocation - code portion : 40
++Memory allocation - code size : 40
+ ------------------------------------------------------------------
+ 0 17 Bra
+ 2 13 CBra 1
+@@ -212,8 +197,8 @@ Memory allocation - code portion : 40
+ ------------------------------------------------------------------
+
+ /a(?P<name1>b|c)d(?P<longername2>e)/
+-Memory allocation - compiled block : 242
+-Memory allocation - code portion : 54
++Memory allocation - code size : 54
++Memory allocation - data size : 52
+ ------------------------------------------------------------------
+ 0 24 Bra
+ 2 a
+@@ -231,8 +216,8 @@ Memory allocation - code portion : 54
+ ------------------------------------------------------------------
+
+ /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/
+-Memory allocation - compiled block : 218
+-Memory allocation - code portion : 64
++Memory allocation - code size : 64
++Memory allocation - data size : 18
+ ------------------------------------------------------------------
+ 0 29 Bra
+ 2 18 Bra
+@@ -252,8 +237,8 @@ Memory allocation - code portion : 64
+ ------------------------------------------------------------------
+
+ /(?P<a>a)...(?P=a)bbb(?P>a)d/
+-Memory allocation - compiled block : 196
+-Memory allocation - code portion : 54
++Memory allocation - code size : 54
++Memory allocation - data size : 6
+ ------------------------------------------------------------------
+ 0 24 Bra
+ 2 5 CBra 1
+@@ -271,8 +256,7 @@ Memory allocation - code portion : 54
+ ------------------------------------------------------------------
+
+ /abc(?C255)de(?C)f/
+-Memory allocation - compiled block : 186
+-Memory allocation - code portion : 50
++Memory allocation - code size : 50
+ ------------------------------------------------------------------
+ 0 22 Bra
+ 2 abc
+@@ -285,8 +269,7 @@ Memory allocation - code portion : 50
+ ------------------------------------------------------------------
+
+ /abcde/auto_callout
+-Memory allocation - compiled block : 214
+-Memory allocation - code portion : 78
++Memory allocation - code size : 78
+ ------------------------------------------------------------------
+ 0 36 Bra
+ 2 Callout 255 0 1
+@@ -305,8 +288,7 @@ Memory allocation - code portion : 78
+ ------------------------------------------------------------------
+
+ /\x{100}/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{100}
+@@ -315,8 +297,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /\x{1000}/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{1000}
+@@ -325,8 +306,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /\x{10000}/utf
+-Memory allocation - compiled block : 152
+-Memory allocation - code portion : 16
++Memory allocation - code size : 16
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 2 \x{10000}
+@@ -335,8 +315,7 @@ Memory allocation - code portion : 16
+ ------------------------------------------------------------------
+
+ /\x{100000}/utf
+-Memory allocation - compiled block : 152
+-Memory allocation - code portion : 16
++Memory allocation - code size : 16
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 2 \x{100000}
+@@ -345,8 +324,7 @@ Memory allocation - code portion : 16
+ ------------------------------------------------------------------
+
+ /\x{10ffff}/utf
+-Memory allocation - compiled block : 152
+-Memory allocation - code portion : 16
++Memory allocation - code size : 16
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 2 \x{10ffff}
+@@ -358,8 +336,7 @@ Memory allocation - code portion : 16
+ Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large
+
+ /[\x{ff}]/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{ff}
+@@ -368,8 +345,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /[\x{100}]/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{100}
+@@ -378,8 +354,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /\x80/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{80}
+@@ -388,8 +363,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /\xff/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{ff}
+@@ -398,8 +372,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf
+-Memory allocation - compiled block : 162
+-Memory allocation - code portion : 26
++Memory allocation - code size : 26
+ ------------------------------------------------------------------
+ 0 10 Bra
+ 2 A\x{2262}\x{391}.
+@@ -413,8 +386,7 @@ Last code unit = '.'
+ Subject length lower bound = 4
+
+ /\x{D55c}\x{ad6d}\x{C5B4}/I,utf
+-Memory allocation - compiled block : 158
+-Memory allocation - code portion : 22
++Memory allocation - code size : 22
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 2 \x{d55c}\x{ad6d}\x{c5b4}
+@@ -428,8 +400,7 @@ Last code unit = \x{c5b4}
+ Subject length lower bound = 3
+
+ /\x{65e5}\x{672c}\x{8a9e}/I,utf
+-Memory allocation - compiled block : 158
+-Memory allocation - code portion : 22
++Memory allocation - code size : 22
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 2 \x{65e5}\x{672c}\x{8a9e}
+@@ -443,8 +414,7 @@ Last code unit = \x{8a9e}
+ Subject length lower bound = 3
+
+ /[\x{100}]/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{100}
+@@ -453,8 +423,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /[Z\x{100}]/utf
+-Memory allocation - compiled block : 190
+-Memory allocation - code portion : 54
++Memory allocation - code size : 54
+ ------------------------------------------------------------------
+ 0 24 Bra
+ 2 [Z\x{100}]
+@@ -463,8 +432,7 @@ Memory allocation - code portion : 54
+ ------------------------------------------------------------------
+
+ /^[\x{100}\E-\Q\E\x{150}]/utf
+-Memory allocation - compiled block : 162
+-Memory allocation - code portion : 26
++Memory allocation - code size : 26
+ ------------------------------------------------------------------
+ 0 10 Bra
+ 2 ^
+@@ -474,8 +442,7 @@ Memory allocation - code portion : 26
+ ------------------------------------------------------------------
+
+ /^[\QĀ\E-\QŐ\E]/utf
+-Memory allocation - compiled block : 162
+-Memory allocation - code portion : 26
++Memory allocation - code size : 26
+ ------------------------------------------------------------------
+ 0 10 Bra
+ 2 ^
+@@ -488,8 +455,7 @@ Memory allocation - code portion : 26
+ Failed: error 106 at offset 13: missing terminating ] for character class
+
+ /[\p{L}]/
+-Memory allocation - compiled block : 160
+-Memory allocation - code portion : 24
++Memory allocation - code size : 24
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\p{L}]
+@@ -498,8 +464,7 @@ Memory allocation - code portion : 24
+ ------------------------------------------------------------------
+
+ /[\p{^L}]/
+-Memory allocation - compiled block : 160
+-Memory allocation - code portion : 24
++Memory allocation - code size : 24
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\P{L}]
+@@ -508,8 +473,7 @@ Memory allocation - code portion : 24
+ ------------------------------------------------------------------
+
+ /[\P{L}]/
+-Memory allocation - compiled block : 160
+-Memory allocation - code portion : 24
++Memory allocation - code size : 24
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\P{L}]
+@@ -518,8 +482,7 @@ Memory allocation - code portion : 24
+ ------------------------------------------------------------------
+
+ /[\P{^L}]/
+-Memory allocation - compiled block : 160
+-Memory allocation - code portion : 24
++Memory allocation - code size : 24
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\p{L}]
+@@ -528,8 +491,7 @@ Memory allocation - code portion : 24
+ ------------------------------------------------------------------
+
+ /[abc\p{L}\x{0660}]/utf
+-Memory allocation - compiled block : 196
+-Memory allocation - code portion : 60
++Memory allocation - code size : 60
+ ------------------------------------------------------------------
+ 0 27 Bra
+ 2 [a-c\p{L}\x{660}]
+@@ -538,8 +500,7 @@ Memory allocation - code portion : 60
+ ------------------------------------------------------------------
+
+ /[\p{Nd}]/utf
+-Memory allocation - compiled block : 160
+-Memory allocation - code portion : 24
++Memory allocation - code size : 24
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\p{Nd}]
+@@ -548,8 +509,7 @@ Memory allocation - code portion : 24
+ ------------------------------------------------------------------
+
+ /[\p{Nd}+-]+/utf
+-Memory allocation - compiled block : 194
+-Memory allocation - code portion : 58
++Memory allocation - code size : 58
+ ------------------------------------------------------------------
+ 0 26 Bra
+ 2 [+\-\p{Nd}]++
+@@ -558,8 +518,7 @@ Memory allocation - code portion : 58
+ ------------------------------------------------------------------
+
+ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
+-Memory allocation - compiled block : 168
+-Memory allocation - code portion : 32
++Memory allocation - code size : 32
+ ------------------------------------------------------------------
+ 0 13 Bra
+ 2 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0}
+@@ -568,8 +527,7 @@ Memory allocation - code portion : 32
+ ------------------------------------------------------------------
+
+ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
+-Memory allocation - compiled block : 168
+-Memory allocation - code portion : 32
++Memory allocation - code size : 32
+ ------------------------------------------------------------------
+ 0 13 Bra
+ 2 A\x{391}\x{10427}\x{ff3a}\x{1fb0}
+@@ -578,8 +536,7 @@ Memory allocation - code portion : 32
+ ------------------------------------------------------------------
+
+ /[\x{105}-\x{109}]/i,utf
+-Memory allocation - compiled block : 160
+-Memory allocation - code portion : 24
++Memory allocation - code size : 24
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\x{104}-\x{109}]
+@@ -588,8 +545,7 @@ Memory allocation - code portion : 24
+ ------------------------------------------------------------------
+
+ /( ( (?(1)0|) )* )/x
+-Memory allocation - compiled block : 188
+-Memory allocation - code portion : 52
++Memory allocation - code size : 52
+ ------------------------------------------------------------------
+ 0 23 Bra
+ 2 19 CBra 1
+@@ -607,8 +563,7 @@ Memory allocation - code portion : 52
+ ------------------------------------------------------------------
+
+ /( (?(1)0|)* )/x
+-Memory allocation - compiled block : 178
+-Memory allocation - code portion : 42
++Memory allocation - code size : 42
+ ------------------------------------------------------------------
+ 0 18 Bra
+ 2 14 CBra 1
+@@ -624,8 +579,7 @@ Memory allocation - code portion : 42
+ ------------------------------------------------------------------
+
+ /[a]/
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 a
+@@ -634,8 +588,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /[a]/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 a
+@@ -644,8 +597,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /[\xaa]/
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{aa}
+@@ -654,8 +606,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /[\xaa]/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{aa}
+@@ -664,8 +615,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /[^a]/
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 [^a]
+@@ -674,8 +624,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /[^a]/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 [^a]
+@@ -684,8 +633,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /[^\xaa]/
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 [^\x{aa}]
+@@ -694,8 +642,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /[^\xaa]/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 [^\x{aa}]
+diff --git a/testdata/testoutput8-16-3 b/testdata/testoutput8-16-3
+index 4ec13ea98..28acd251a 100644
+--- a/testdata/testoutput8-16-3
++++ b/testdata/testoutput8-16-3
+@@ -10,8 +10,7 @@
+ #pattern fullbincode,memory
+
+ /((?i)b)/
+-Memory allocation - compiled block : 168
+-Memory allocation - code portion : 32
++Memory allocation - code size : 32
+ ------------------------------------------------------------------
+ 0 12 Bra
+ 3 6 CBra 1
+@@ -22,8 +21,7 @@ Memory allocation - code portion : 32
+ ------------------------------------------------------------------
+
+ /(?s)(.*X|^B)/
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 20 Bra
+ 3 8 CBra 1
+@@ -38,8 +36,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /(?s:.*X|^B)/
+-Memory allocation - compiled block : 182
+-Memory allocation - code portion : 46
++Memory allocation - code size : 46
+ ------------------------------------------------------------------
+ 0 19 Bra
+ 3 7 Bra
+@@ -54,8 +51,7 @@ Memory allocation - code portion : 46
+ ------------------------------------------------------------------
+
+ /^[[:alnum:]]/
+-Memory allocation - compiled block : 186
+-Memory allocation - code portion : 50
++Memory allocation - code size : 50
+ ------------------------------------------------------------------
+ 0 21 Bra
+ 3 ^
+@@ -65,8 +61,7 @@ Memory allocation - code portion : 50
+ ------------------------------------------------------------------
+
+ /#/Ix
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 3 Bra
+ 3 3 Ket
+@@ -78,8 +73,7 @@ Options: extended
+ Subject length lower bound = 0
+
+ /a#/Ix
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 a
+@@ -92,8 +86,7 @@ First code unit = 'a'
+ Subject length lower bound = 1
+
+ /x?+/
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 x?+
+@@ -102,8 +95,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /x++/
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 x++
+@@ -112,8 +104,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /x{1,3}+/
+-Memory allocation - compiled block : 160
+-Memory allocation - code portion : 24
++Memory allocation - code size : 24
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 3 x
+@@ -123,8 +114,7 @@ Memory allocation - code portion : 24
+ ------------------------------------------------------------------
+
+ /(x)*+/
+-Memory allocation - compiled block : 170
+-Memory allocation - code portion : 34
++Memory allocation - code size : 34
+ ------------------------------------------------------------------
+ 0 13 Bra
+ 3 Braposzero
+@@ -136,8 +126,7 @@ Memory allocation - code portion : 34
+ ------------------------------------------------------------------
+
+ /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
+-Memory allocation - compiled block : 302
+-Memory allocation - code portion : 166
++Memory allocation - code size : 166
+ ------------------------------------------------------------------
+ 0 79 Bra
+ 3 ^
+@@ -160,8 +149,7 @@ Memory allocation - code portion : 166
+ ------------------------------------------------------------------
+
+ "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 - compiled block : 1788
+-Memory allocation - code portion : 1652
++Memory allocation - code size : 1652
+ ------------------------------------------------------------------
+ 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
+@@ -171,8 +159,7 @@ Memory allocation - code portion : 1652
+ ------------------------------------------------------------------
+
+ "\$\<\.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 - compiled block : 1768
+-Memory allocation - code portion : 1632
++Memory allocation - code size : 1632
+ ------------------------------------------------------------------
+ 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
+@@ -182,8 +169,7 @@ Memory allocation - code portion : 1632
+ ------------------------------------------------------------------
+
+ /(a(?1)b)/
+-Memory allocation - compiled block : 178
+-Memory allocation - code portion : 42
++Memory allocation - code size : 42
+ ------------------------------------------------------------------
+ 0 17 Bra
+ 3 11 CBra 1
+@@ -196,8 +182,7 @@ Memory allocation - code portion : 42
+ ------------------------------------------------------------------
+
+ /(a(?1)+b)/
+-Memory allocation - compiled block : 190
+-Memory allocation - code portion : 54
++Memory allocation - code size : 54
+ ------------------------------------------------------------------
+ 0 23 Bra
+ 3 17 CBra 1
+@@ -212,8 +197,8 @@ Memory allocation - code portion : 54
+ ------------------------------------------------------------------
+
+ /a(?P<name1>b|c)d(?P<longername2>e)/
+-Memory allocation - compiled block : 256
+-Memory allocation - code portion : 68
++Memory allocation - code size : 68
++Memory allocation - data size : 52
+ ------------------------------------------------------------------
+ 0 30 Bra
+ 3 a
+@@ -231,8 +216,8 @@ Memory allocation - code portion : 68
+ ------------------------------------------------------------------
+
+ /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/
+-Memory allocation - compiled block : 238
+-Memory allocation - code portion : 84
++Memory allocation - code size : 84
++Memory allocation - data size : 18
+ ------------------------------------------------------------------
+ 0 38 Bra
+ 3 23 Bra
+@@ -252,8 +237,8 @@ Memory allocation - code portion : 84
+ ------------------------------------------------------------------
+
+ /(?P<a>a)...(?P=a)bbb(?P>a)d/
+-Memory allocation - compiled block : 206
+-Memory allocation - code portion : 64
++Memory allocation - code size : 64
++Memory allocation - data size : 6
+ ------------------------------------------------------------------
+ 0 28 Bra
+ 3 6 CBra 1
+@@ -271,8 +256,7 @@ Memory allocation - code portion : 64
+ ------------------------------------------------------------------
+
+ /abc(?C255)de(?C)f/
+-Memory allocation - compiled block : 198
+-Memory allocation - code portion : 62
++Memory allocation - code size : 62
+ ------------------------------------------------------------------
+ 0 27 Bra
+ 3 abc
+@@ -285,8 +269,7 @@ Memory allocation - code portion : 62
+ ------------------------------------------------------------------
+
+ /abcde/auto_callout
+-Memory allocation - compiled block : 242
+-Memory allocation - code portion : 106
++Memory allocation - code size : 106
+ ------------------------------------------------------------------
+ 0 49 Bra
+ 3 Callout 255 0 1
+@@ -305,8 +288,7 @@ Memory allocation - code portion : 106
+ ------------------------------------------------------------------
+
+ /\x{100}/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 \x{100}
+@@ -315,8 +297,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /\x{1000}/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 \x{1000}
+@@ -325,8 +306,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /\x{10000}/utf
+-Memory allocation - compiled block : 156
+-Memory allocation - code portion : 20
++Memory allocation - code size : 20
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 3 \x{10000}
+@@ -335,8 +315,7 @@ Memory allocation - code portion : 20
+ ------------------------------------------------------------------
+
+ /\x{100000}/utf
+-Memory allocation - compiled block : 156
+-Memory allocation - code portion : 20
++Memory allocation - code size : 20
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 3 \x{100000}
+@@ -345,8 +324,7 @@ Memory allocation - code portion : 20
+ ------------------------------------------------------------------
+
+ /\x{10ffff}/utf
+-Memory allocation - compiled block : 156
+-Memory allocation - code portion : 20
++Memory allocation - code size : 20
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 3 \x{10ffff}
+@@ -358,8 +336,7 @@ Memory allocation - code portion : 20
+ Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large
+
+ /[\x{ff}]/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 \x{ff}
+@@ -368,8 +345,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[\x{100}]/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 \x{100}
+@@ -378,8 +354,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /\x80/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 \x{80}
+@@ -388,8 +363,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /\xff/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 \x{ff}
+@@ -398,8 +372,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf
+-Memory allocation - compiled block : 166
+-Memory allocation - code portion : 30
++Memory allocation - code size : 30
+ ------------------------------------------------------------------
+ 0 11 Bra
+ 3 A\x{2262}\x{391}.
+@@ -413,8 +386,7 @@ Last code unit = '.'
+ Subject length lower bound = 4
+
+ /\x{D55c}\x{ad6d}\x{C5B4}/I,utf
+-Memory allocation - compiled block : 162
+-Memory allocation - code portion : 26
++Memory allocation - code size : 26
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 3 \x{d55c}\x{ad6d}\x{c5b4}
+@@ -428,8 +400,7 @@ Last code unit = \x{c5b4}
+ Subject length lower bound = 3
+
+ /\x{65e5}\x{672c}\x{8a9e}/I,utf
+-Memory allocation - compiled block : 162
+-Memory allocation - code portion : 26
++Memory allocation - code size : 26
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 3 \x{65e5}\x{672c}\x{8a9e}
+@@ -443,8 +414,7 @@ Last code unit = \x{8a9e}
+ Subject length lower bound = 3
+
+ /[\x{100}]/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 \x{100}
+@@ -453,8 +423,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[Z\x{100}]/utf
+-Memory allocation - compiled block : 196
+-Memory allocation - code portion : 60
++Memory allocation - code size : 60
+ ------------------------------------------------------------------
+ 0 26 Bra
+ 3 [Z\x{100}]
+@@ -463,8 +432,7 @@ Memory allocation - code portion : 60
+ ------------------------------------------------------------------
+
+ /^[\x{100}\E-\Q\E\x{150}]/utf
+-Memory allocation - compiled block : 168
+-Memory allocation - code portion : 32
++Memory allocation - code size : 32
+ ------------------------------------------------------------------
+ 0 12 Bra
+ 3 ^
+@@ -474,8 +442,7 @@ Memory allocation - code portion : 32
+ ------------------------------------------------------------------
+
+ /^[\QĀ\E-\QŐ\E]/utf
+-Memory allocation - compiled block : 168
+-Memory allocation - code portion : 32
++Memory allocation - code size : 32
+ ------------------------------------------------------------------
+ 0 12 Bra
+ 3 ^
+@@ -488,8 +455,7 @@ Memory allocation - code portion : 32
+ Failed: error 106 at offset 13: missing terminating ] for character class
+
+ /[\p{L}]/
+-Memory allocation - compiled block : 166
+-Memory allocation - code portion : 30
++Memory allocation - code size : 30
+ ------------------------------------------------------------------
+ 0 11 Bra
+ 3 [\p{L}]
+@@ -498,8 +464,7 @@ Memory allocation - code portion : 30
+ ------------------------------------------------------------------
+
+ /[\p{^L}]/
+-Memory allocation - compiled block : 166
+-Memory allocation - code portion : 30
++Memory allocation - code size : 30
+ ------------------------------------------------------------------
+ 0 11 Bra
+ 3 [\P{L}]
+@@ -508,8 +473,7 @@ Memory allocation - code portion : 30
+ ------------------------------------------------------------------
+
+ /[\P{L}]/
+-Memory allocation - compiled block : 166
+-Memory allocation - code portion : 30
++Memory allocation - code size : 30
+ ------------------------------------------------------------------
+ 0 11 Bra
+ 3 [\P{L}]
+@@ -518,8 +482,7 @@ Memory allocation - code portion : 30
+ ------------------------------------------------------------------
+
+ /[\P{^L}]/
+-Memory allocation - compiled block : 166
+-Memory allocation - code portion : 30
++Memory allocation - code size : 30
+ ------------------------------------------------------------------
+ 0 11 Bra
+ 3 [\p{L}]
+@@ -528,8 +491,7 @@ Memory allocation - code portion : 30
+ ------------------------------------------------------------------
+
+ /[abc\p{L}\x{0660}]/utf
+-Memory allocation - compiled block : 202
+-Memory allocation - code portion : 66
++Memory allocation - code size : 66
+ ------------------------------------------------------------------
+ 0 29 Bra
+ 3 [a-c\p{L}\x{660}]
+@@ -538,8 +500,7 @@ Memory allocation - code portion : 66
+ ------------------------------------------------------------------
+
+ /[\p{Nd}]/utf
+-Memory allocation - compiled block : 166
+-Memory allocation - code portion : 30
++Memory allocation - code size : 30
+ ------------------------------------------------------------------
+ 0 11 Bra
+ 3 [\p{Nd}]
+@@ -548,8 +509,7 @@ Memory allocation - code portion : 30
+ ------------------------------------------------------------------
+
+ /[\p{Nd}+-]+/utf
+-Memory allocation - compiled block : 200
+-Memory allocation - code portion : 64
++Memory allocation - code size : 64
+ ------------------------------------------------------------------
+ 0 28 Bra
+ 3 [+\-\p{Nd}]++
+@@ -558,8 +518,7 @@ Memory allocation - code portion : 64
+ ------------------------------------------------------------------
+
+ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
+-Memory allocation - compiled block : 172
+-Memory allocation - code portion : 36
++Memory allocation - code size : 36
+ ------------------------------------------------------------------
+ 0 14 Bra
+ 3 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0}
+@@ -568,8 +527,7 @@ Memory allocation - code portion : 36
+ ------------------------------------------------------------------
+
+ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
+-Memory allocation - compiled block : 172
+-Memory allocation - code portion : 36
++Memory allocation - code size : 36
+ ------------------------------------------------------------------
+ 0 14 Bra
+ 3 A\x{391}\x{10427}\x{ff3a}\x{1fb0}
+@@ -578,8 +536,7 @@ Memory allocation - code portion : 36
+ ------------------------------------------------------------------
+
+ /[\x{105}-\x{109}]/i,utf
+-Memory allocation - compiled block : 166
+-Memory allocation - code portion : 30
++Memory allocation - code size : 30
+ ------------------------------------------------------------------
+ 0 11 Bra
+ 3 [\x{104}-\x{109}]
+@@ -588,8 +545,7 @@ Memory allocation - code portion : 30
+ ------------------------------------------------------------------
+
+ /( ( (?(1)0|) )* )/x
+-Memory allocation - compiled block : 206
+-Memory allocation - code portion : 70
++Memory allocation - code size : 70
+ ------------------------------------------------------------------
+ 0 31 Bra
+ 3 25 CBra 1
+@@ -607,8 +563,7 @@ Memory allocation - code portion : 70
+ ------------------------------------------------------------------
+
+ /( (?(1)0|)* )/x
+-Memory allocation - compiled block : 192
+-Memory allocation - code portion : 56
++Memory allocation - code size : 56
+ ------------------------------------------------------------------
+ 0 24 Bra
+ 3 18 CBra 1
+@@ -624,8 +579,7 @@ Memory allocation - code portion : 56
+ ------------------------------------------------------------------
+
+ /[a]/
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 a
+@@ -634,8 +588,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[a]/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 a
+@@ -644,8 +597,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[\xaa]/
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 \x{aa}
+@@ -654,8 +606,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[\xaa]/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 \x{aa}
+@@ -664,8 +615,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[^a]/
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 [^a]
+@@ -674,8 +624,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[^a]/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 [^a]
+@@ -684,8 +633,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[^\xaa]/
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 [^\x{aa}]
+@@ -694,8 +642,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[^\xaa]/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 [^\x{aa}]
+diff --git a/testdata/testoutput8-16-4 b/testdata/testoutput8-16-4
+index 4ec13ea98..28acd251a 100644
+--- a/testdata/testoutput8-16-4
++++ b/testdata/testoutput8-16-4
+@@ -10,8 +10,7 @@
+ #pattern fullbincode,memory
+
+ /((?i)b)/
+-Memory allocation - compiled block : 168
+-Memory allocation - code portion : 32
++Memory allocation - code size : 32
+ ------------------------------------------------------------------
+ 0 12 Bra
+ 3 6 CBra 1
+@@ -22,8 +21,7 @@ Memory allocation - code portion : 32
+ ------------------------------------------------------------------
+
+ /(?s)(.*X|^B)/
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 20 Bra
+ 3 8 CBra 1
+@@ -38,8 +36,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /(?s:.*X|^B)/
+-Memory allocation - compiled block : 182
+-Memory allocation - code portion : 46
++Memory allocation - code size : 46
+ ------------------------------------------------------------------
+ 0 19 Bra
+ 3 7 Bra
+@@ -54,8 +51,7 @@ Memory allocation - code portion : 46
+ ------------------------------------------------------------------
+
+ /^[[:alnum:]]/
+-Memory allocation - compiled block : 186
+-Memory allocation - code portion : 50
++Memory allocation - code size : 50
+ ------------------------------------------------------------------
+ 0 21 Bra
+ 3 ^
+@@ -65,8 +61,7 @@ Memory allocation - code portion : 50
+ ------------------------------------------------------------------
+
+ /#/Ix
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 3 Bra
+ 3 3 Ket
+@@ -78,8 +73,7 @@ Options: extended
+ Subject length lower bound = 0
+
+ /a#/Ix
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 a
+@@ -92,8 +86,7 @@ First code unit = 'a'
+ Subject length lower bound = 1
+
+ /x?+/
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 x?+
+@@ -102,8 +95,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /x++/
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 x++
+@@ -112,8 +104,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /x{1,3}+/
+-Memory allocation - compiled block : 160
+-Memory allocation - code portion : 24
++Memory allocation - code size : 24
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 3 x
+@@ -123,8 +114,7 @@ Memory allocation - code portion : 24
+ ------------------------------------------------------------------
+
+ /(x)*+/
+-Memory allocation - compiled block : 170
+-Memory allocation - code portion : 34
++Memory allocation - code size : 34
+ ------------------------------------------------------------------
+ 0 13 Bra
+ 3 Braposzero
+@@ -136,8 +126,7 @@ Memory allocation - code portion : 34
+ ------------------------------------------------------------------
+
+ /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
+-Memory allocation - compiled block : 302
+-Memory allocation - code portion : 166
++Memory allocation - code size : 166
+ ------------------------------------------------------------------
+ 0 79 Bra
+ 3 ^
+@@ -160,8 +149,7 @@ Memory allocation - code portion : 166
+ ------------------------------------------------------------------
+
+ "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 - compiled block : 1788
+-Memory allocation - code portion : 1652
++Memory allocation - code size : 1652
+ ------------------------------------------------------------------
+ 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
+@@ -171,8 +159,7 @@ Memory allocation - code portion : 1652
+ ------------------------------------------------------------------
+
+ "\$\<\.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 - compiled block : 1768
+-Memory allocation - code portion : 1632
++Memory allocation - code size : 1632
+ ------------------------------------------------------------------
+ 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
+@@ -182,8 +169,7 @@ Memory allocation - code portion : 1632
+ ------------------------------------------------------------------
+
+ /(a(?1)b)/
+-Memory allocation - compiled block : 178
+-Memory allocation - code portion : 42
++Memory allocation - code size : 42
+ ------------------------------------------------------------------
+ 0 17 Bra
+ 3 11 CBra 1
+@@ -196,8 +182,7 @@ Memory allocation - code portion : 42
+ ------------------------------------------------------------------
+
+ /(a(?1)+b)/
+-Memory allocation - compiled block : 190
+-Memory allocation - code portion : 54
++Memory allocation - code size : 54
+ ------------------------------------------------------------------
+ 0 23 Bra
+ 3 17 CBra 1
+@@ -212,8 +197,8 @@ Memory allocation - code portion : 54
+ ------------------------------------------------------------------
+
+ /a(?P<name1>b|c)d(?P<longername2>e)/
+-Memory allocation - compiled block : 256
+-Memory allocation - code portion : 68
++Memory allocation - code size : 68
++Memory allocation - data size : 52
+ ------------------------------------------------------------------
+ 0 30 Bra
+ 3 a
+@@ -231,8 +216,8 @@ Memory allocation - code portion : 68
+ ------------------------------------------------------------------
+
+ /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/
+-Memory allocation - compiled block : 238
+-Memory allocation - code portion : 84
++Memory allocation - code size : 84
++Memory allocation - data size : 18
+ ------------------------------------------------------------------
+ 0 38 Bra
+ 3 23 Bra
+@@ -252,8 +237,8 @@ Memory allocation - code portion : 84
+ ------------------------------------------------------------------
+
+ /(?P<a>a)...(?P=a)bbb(?P>a)d/
+-Memory allocation - compiled block : 206
+-Memory allocation - code portion : 64
++Memory allocation - code size : 64
++Memory allocation - data size : 6
+ ------------------------------------------------------------------
+ 0 28 Bra
+ 3 6 CBra 1
+@@ -271,8 +256,7 @@ Memory allocation - code portion : 64
+ ------------------------------------------------------------------
+
+ /abc(?C255)de(?C)f/
+-Memory allocation - compiled block : 198
+-Memory allocation - code portion : 62
++Memory allocation - code size : 62
+ ------------------------------------------------------------------
+ 0 27 Bra
+ 3 abc
+@@ -285,8 +269,7 @@ Memory allocation - code portion : 62
+ ------------------------------------------------------------------
+
+ /abcde/auto_callout
+-Memory allocation - compiled block : 242
+-Memory allocation - code portion : 106
++Memory allocation - code size : 106
+ ------------------------------------------------------------------
+ 0 49 Bra
+ 3 Callout 255 0 1
+@@ -305,8 +288,7 @@ Memory allocation - code portion : 106
+ ------------------------------------------------------------------
+
+ /\x{100}/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 \x{100}
+@@ -315,8 +297,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /\x{1000}/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 \x{1000}
+@@ -325,8 +306,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /\x{10000}/utf
+-Memory allocation - compiled block : 156
+-Memory allocation - code portion : 20
++Memory allocation - code size : 20
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 3 \x{10000}
+@@ -335,8 +315,7 @@ Memory allocation - code portion : 20
+ ------------------------------------------------------------------
+
+ /\x{100000}/utf
+-Memory allocation - compiled block : 156
+-Memory allocation - code portion : 20
++Memory allocation - code size : 20
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 3 \x{100000}
+@@ -345,8 +324,7 @@ Memory allocation - code portion : 20
+ ------------------------------------------------------------------
+
+ /\x{10ffff}/utf
+-Memory allocation - compiled block : 156
+-Memory allocation - code portion : 20
++Memory allocation - code size : 20
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 3 \x{10ffff}
+@@ -358,8 +336,7 @@ Memory allocation - code portion : 20
+ Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large
+
+ /[\x{ff}]/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 \x{ff}
+@@ -368,8 +345,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[\x{100}]/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 \x{100}
+@@ -378,8 +354,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /\x80/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 \x{80}
+@@ -388,8 +363,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /\xff/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 \x{ff}
+@@ -398,8 +372,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf
+-Memory allocation - compiled block : 166
+-Memory allocation - code portion : 30
++Memory allocation - code size : 30
+ ------------------------------------------------------------------
+ 0 11 Bra
+ 3 A\x{2262}\x{391}.
+@@ -413,8 +386,7 @@ Last code unit = '.'
+ Subject length lower bound = 4
+
+ /\x{D55c}\x{ad6d}\x{C5B4}/I,utf
+-Memory allocation - compiled block : 162
+-Memory allocation - code portion : 26
++Memory allocation - code size : 26
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 3 \x{d55c}\x{ad6d}\x{c5b4}
+@@ -428,8 +400,7 @@ Last code unit = \x{c5b4}
+ Subject length lower bound = 3
+
+ /\x{65e5}\x{672c}\x{8a9e}/I,utf
+-Memory allocation - compiled block : 162
+-Memory allocation - code portion : 26
++Memory allocation - code size : 26
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 3 \x{65e5}\x{672c}\x{8a9e}
+@@ -443,8 +414,7 @@ Last code unit = \x{8a9e}
+ Subject length lower bound = 3
+
+ /[\x{100}]/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 \x{100}
+@@ -453,8 +423,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[Z\x{100}]/utf
+-Memory allocation - compiled block : 196
+-Memory allocation - code portion : 60
++Memory allocation - code size : 60
+ ------------------------------------------------------------------
+ 0 26 Bra
+ 3 [Z\x{100}]
+@@ -463,8 +432,7 @@ Memory allocation - code portion : 60
+ ------------------------------------------------------------------
+
+ /^[\x{100}\E-\Q\E\x{150}]/utf
+-Memory allocation - compiled block : 168
+-Memory allocation - code portion : 32
++Memory allocation - code size : 32
+ ------------------------------------------------------------------
+ 0 12 Bra
+ 3 ^
+@@ -474,8 +442,7 @@ Memory allocation - code portion : 32
+ ------------------------------------------------------------------
+
+ /^[\QĀ\E-\QŐ\E]/utf
+-Memory allocation - compiled block : 168
+-Memory allocation - code portion : 32
++Memory allocation - code size : 32
+ ------------------------------------------------------------------
+ 0 12 Bra
+ 3 ^
+@@ -488,8 +455,7 @@ Memory allocation - code portion : 32
+ Failed: error 106 at offset 13: missing terminating ] for character class
+
+ /[\p{L}]/
+-Memory allocation - compiled block : 166
+-Memory allocation - code portion : 30
++Memory allocation - code size : 30
+ ------------------------------------------------------------------
+ 0 11 Bra
+ 3 [\p{L}]
+@@ -498,8 +464,7 @@ Memory allocation - code portion : 30
+ ------------------------------------------------------------------
+
+ /[\p{^L}]/
+-Memory allocation - compiled block : 166
+-Memory allocation - code portion : 30
++Memory allocation - code size : 30
+ ------------------------------------------------------------------
+ 0 11 Bra
+ 3 [\P{L}]
+@@ -508,8 +473,7 @@ Memory allocation - code portion : 30
+ ------------------------------------------------------------------
+
+ /[\P{L}]/
+-Memory allocation - compiled block : 166
+-Memory allocation - code portion : 30
++Memory allocation - code size : 30
+ ------------------------------------------------------------------
+ 0 11 Bra
+ 3 [\P{L}]
+@@ -518,8 +482,7 @@ Memory allocation - code portion : 30
+ ------------------------------------------------------------------
+
+ /[\P{^L}]/
+-Memory allocation - compiled block : 166
+-Memory allocation - code portion : 30
++Memory allocation - code size : 30
+ ------------------------------------------------------------------
+ 0 11 Bra
+ 3 [\p{L}]
+@@ -528,8 +491,7 @@ Memory allocation - code portion : 30
+ ------------------------------------------------------------------
+
+ /[abc\p{L}\x{0660}]/utf
+-Memory allocation - compiled block : 202
+-Memory allocation - code portion : 66
++Memory allocation - code size : 66
+ ------------------------------------------------------------------
+ 0 29 Bra
+ 3 [a-c\p{L}\x{660}]
+@@ -538,8 +500,7 @@ Memory allocation - code portion : 66
+ ------------------------------------------------------------------
+
+ /[\p{Nd}]/utf
+-Memory allocation - compiled block : 166
+-Memory allocation - code portion : 30
++Memory allocation - code size : 30
+ ------------------------------------------------------------------
+ 0 11 Bra
+ 3 [\p{Nd}]
+@@ -548,8 +509,7 @@ Memory allocation - code portion : 30
+ ------------------------------------------------------------------
+
+ /[\p{Nd}+-]+/utf
+-Memory allocation - compiled block : 200
+-Memory allocation - code portion : 64
++Memory allocation - code size : 64
+ ------------------------------------------------------------------
+ 0 28 Bra
+ 3 [+\-\p{Nd}]++
+@@ -558,8 +518,7 @@ Memory allocation - code portion : 64
+ ------------------------------------------------------------------
+
+ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
+-Memory allocation - compiled block : 172
+-Memory allocation - code portion : 36
++Memory allocation - code size : 36
+ ------------------------------------------------------------------
+ 0 14 Bra
+ 3 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0}
+@@ -568,8 +527,7 @@ Memory allocation - code portion : 36
+ ------------------------------------------------------------------
+
+ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
+-Memory allocation - compiled block : 172
+-Memory allocation - code portion : 36
++Memory allocation - code size : 36
+ ------------------------------------------------------------------
+ 0 14 Bra
+ 3 A\x{391}\x{10427}\x{ff3a}\x{1fb0}
+@@ -578,8 +536,7 @@ Memory allocation - code portion : 36
+ ------------------------------------------------------------------
+
+ /[\x{105}-\x{109}]/i,utf
+-Memory allocation - compiled block : 166
+-Memory allocation - code portion : 30
++Memory allocation - code size : 30
+ ------------------------------------------------------------------
+ 0 11 Bra
+ 3 [\x{104}-\x{109}]
+@@ -588,8 +545,7 @@ Memory allocation - code portion : 30
+ ------------------------------------------------------------------
+
+ /( ( (?(1)0|) )* )/x
+-Memory allocation - compiled block : 206
+-Memory allocation - code portion : 70
++Memory allocation - code size : 70
+ ------------------------------------------------------------------
+ 0 31 Bra
+ 3 25 CBra 1
+@@ -607,8 +563,7 @@ Memory allocation - code portion : 70
+ ------------------------------------------------------------------
+
+ /( (?(1)0|)* )/x
+-Memory allocation - compiled block : 192
+-Memory allocation - code portion : 56
++Memory allocation - code size : 56
+ ------------------------------------------------------------------
+ 0 24 Bra
+ 3 18 CBra 1
+@@ -624,8 +579,7 @@ Memory allocation - code portion : 56
+ ------------------------------------------------------------------
+
+ /[a]/
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 a
+@@ -634,8 +588,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[a]/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 a
+@@ -644,8 +597,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[\xaa]/
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 \x{aa}
+@@ -654,8 +606,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[\xaa]/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 \x{aa}
+@@ -664,8 +615,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[^a]/
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 [^a]
+@@ -674,8 +624,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[^a]/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 [^a]
+@@ -684,8 +633,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[^\xaa]/
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 [^\x{aa}]
+@@ -694,8 +642,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[^\xaa]/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 [^\x{aa}]
+diff --git a/testdata/testoutput8-32-2 b/testdata/testoutput8-32-2
+index d76f3aaab..90ea536fa 100644
+--- a/testdata/testoutput8-32-2
++++ b/testdata/testoutput8-32-2
+@@ -10,8 +10,7 @@
+ #pattern fullbincode,memory
+
+ /((?i)b)/
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 5 CBra 1
+@@ -22,8 +21,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /(?s)(.*X|^B)/
+-Memory allocation - compiled block : 212
+-Memory allocation - code portion : 76
++Memory allocation - code size : 76
+ ------------------------------------------------------------------
+ 0 16 Bra
+ 2 7 CBra 1
+@@ -38,8 +36,7 @@ Memory allocation - code portion : 76
+ ------------------------------------------------------------------
+
+ /(?s:.*X|^B)/
+-Memory allocation - compiled block : 208
+-Memory allocation - code portion : 72
++Memory allocation - code size : 72
+ ------------------------------------------------------------------
+ 0 15 Bra
+ 2 6 Bra
+@@ -54,8 +51,7 @@ Memory allocation - code portion : 72
+ ------------------------------------------------------------------
+
+ /^[[:alnum:]]/
+-Memory allocation - compiled block : 196
+-Memory allocation - code portion : 60
++Memory allocation - code size : 60
+ ------------------------------------------------------------------
+ 0 12 Bra
+ 2 ^
+@@ -65,8 +61,7 @@ Memory allocation - code portion : 60
+ ------------------------------------------------------------------
+
+ /#/Ix
+-Memory allocation - compiled block : 156
+-Memory allocation - code portion : 20
++Memory allocation - code size : 20
+ ------------------------------------------------------------------
+ 0 2 Bra
+ 2 2 Ket
+@@ -78,8 +73,7 @@ Options: extended
+ Subject length lower bound = 0
+
+ /a#/Ix
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 a
+@@ -92,8 +86,7 @@ First code unit = 'a'
+ Subject length lower bound = 1
+
+ /x?+/
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 x?+
+@@ -102,8 +95,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /x++/
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 x++
+@@ -112,8 +104,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /x{1,3}+/
+-Memory allocation - compiled block : 176
+-Memory allocation - code portion : 40
++Memory allocation - code size : 40
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 2 x
+@@ -123,8 +114,7 @@ Memory allocation - code portion : 40
+ ------------------------------------------------------------------
+
+ /(x)*+/
+-Memory allocation - compiled block : 188
+-Memory allocation - code portion : 52
++Memory allocation - code size : 52
+ ------------------------------------------------------------------
+ 0 10 Bra
+ 2 Braposzero
+@@ -136,8 +126,7 @@ Memory allocation - code portion : 52
+ ------------------------------------------------------------------
+
+ /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
+-Memory allocation - compiled block : 356
+-Memory allocation - code portion : 220
++Memory allocation - code size : 220
+ ------------------------------------------------------------------
+ 0 52 Bra
+ 2 ^
+@@ -160,8 +149,7 @@ Memory allocation - code portion : 220
+ ------------------------------------------------------------------
+
+ "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 - compiled block : 3432
+-Memory allocation - code portion : 3296
++Memory allocation - code size : 3296
+ ------------------------------------------------------------------
+ 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
+@@ -171,8 +159,7 @@ Memory allocation - code portion : 3296
+ ------------------------------------------------------------------
+
+ "\$\<\.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 - compiled block : 3392
+-Memory allocation - code portion : 3256
++Memory allocation - code size : 3256
+ ------------------------------------------------------------------
+ 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
+@@ -182,8 +169,7 @@ Memory allocation - code portion : 3256
+ ------------------------------------------------------------------
+
+ /(a(?1)b)/
+-Memory allocation - compiled block : 200
+-Memory allocation - code portion : 64
++Memory allocation - code size : 64
+ ------------------------------------------------------------------
+ 0 13 Bra
+ 2 9 CBra 1
+@@ -196,8 +182,7 @@ Memory allocation - code portion : 64
+ ------------------------------------------------------------------
+
+ /(a(?1)+b)/
+-Memory allocation - compiled block : 216
+-Memory allocation - code portion : 80
++Memory allocation - code size : 80
+ ------------------------------------------------------------------
+ 0 17 Bra
+ 2 13 CBra 1
+@@ -212,8 +197,8 @@ Memory allocation - code portion : 80
+ ------------------------------------------------------------------
+
+ /a(?P<name1>b|c)d(?P<longername2>e)/
+-Memory allocation - compiled block : 348
+-Memory allocation - code portion : 108
++Memory allocation - code size : 108
++Memory allocation - data size : 104
+ ------------------------------------------------------------------
+ 0 24 Bra
+ 2 a
+@@ -231,8 +216,8 @@ Memory allocation - code portion : 108
+ ------------------------------------------------------------------
+
+ /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/
+-Memory allocation - compiled block : 300
+-Memory allocation - code portion : 128
++Memory allocation - code size : 128
++Memory allocation - data size : 36
+ ------------------------------------------------------------------
+ 0 29 Bra
+ 2 18 Bra
+@@ -252,8 +237,8 @@ Memory allocation - code portion : 128
+ ------------------------------------------------------------------
+
+ /(?P<a>a)...(?P=a)bbb(?P>a)d/
+-Memory allocation - compiled block : 256
+-Memory allocation - code portion : 108
++Memory allocation - code size : 108
++Memory allocation - data size : 12
+ ------------------------------------------------------------------
+ 0 24 Bra
+ 2 5 CBra 1
+@@ -271,8 +256,7 @@ Memory allocation - code portion : 108
+ ------------------------------------------------------------------
+
+ /abc(?C255)de(?C)f/
+-Memory allocation - compiled block : 236
+-Memory allocation - code portion : 100
++Memory allocation - code size : 100
+ ------------------------------------------------------------------
+ 0 22 Bra
+ 2 abc
+@@ -285,8 +269,7 @@ Memory allocation - code portion : 100
+ ------------------------------------------------------------------
+
+ /abcde/auto_callout
+-Memory allocation - compiled block : 292
+-Memory allocation - code portion : 156
++Memory allocation - code size : 156
+ ------------------------------------------------------------------
+ 0 36 Bra
+ 2 Callout 255 0 1
+@@ -305,8 +288,7 @@ Memory allocation - code portion : 156
+ ------------------------------------------------------------------
+
+ /\x{100}/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{100}
+@@ -315,8 +297,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\x{1000}/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{1000}
+@@ -325,8 +306,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\x{10000}/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{10000}
+@@ -335,8 +315,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\x{100000}/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{100000}
+@@ -345,8 +324,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\x{10ffff}/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{10ffff}
+@@ -358,8 +336,7 @@ Memory allocation - code portion : 28
+ Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large
+
+ /[\x{ff}]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{ff}
+@@ -368,8 +345,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[\x{100}]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{100}
+@@ -378,8 +354,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\x80/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{80}
+@@ -388,8 +363,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\xff/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{ff}
+@@ -398,8 +372,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf
+-Memory allocation - compiled block : 188
+-Memory allocation - code portion : 52
++Memory allocation - code size : 52
+ ------------------------------------------------------------------
+ 0 10 Bra
+ 2 A\x{2262}\x{391}.
+@@ -413,8 +386,7 @@ Last code unit = '.'
+ Subject length lower bound = 4
+
+ /\x{D55c}\x{ad6d}\x{C5B4}/I,utf
+-Memory allocation - compiled block : 180
+-Memory allocation - code portion : 44
++Memory allocation - code size : 44
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 2 \x{d55c}\x{ad6d}\x{c5b4}
+@@ -428,8 +400,7 @@ Last code unit = \x{c5b4}
+ Subject length lower bound = 3
+
+ /\x{65e5}\x{672c}\x{8a9e}/I,utf
+-Memory allocation - compiled block : 180
+-Memory allocation - code portion : 44
++Memory allocation - code size : 44
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 2 \x{65e5}\x{672c}\x{8a9e}
+@@ -443,8 +414,7 @@ Last code unit = \x{8a9e}
+ Subject length lower bound = 3
+
+ /[\x{100}]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{100}
+@@ -453,8 +423,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[Z\x{100}]/utf
+-Memory allocation - compiled block : 212
+-Memory allocation - code portion : 76
++Memory allocation - code size : 76
+ ------------------------------------------------------------------
+ 0 16 Bra
+ 2 [Z\x{100}]
+@@ -463,8 +432,7 @@ Memory allocation - code portion : 76
+ ------------------------------------------------------------------
+
+ /^[\x{100}\E-\Q\E\x{150}]/utf
+-Memory allocation - compiled block : 188
+-Memory allocation - code portion : 52
++Memory allocation - code size : 52
+ ------------------------------------------------------------------
+ 0 10 Bra
+ 2 ^
+@@ -474,8 +442,7 @@ Memory allocation - code portion : 52
+ ------------------------------------------------------------------
+
+ /^[\QĀ\E-\QŐ\E]/utf
+-Memory allocation - compiled block : 188
+-Memory allocation - code portion : 52
++Memory allocation - code size : 52
+ ------------------------------------------------------------------
+ 0 10 Bra
+ 2 ^
+@@ -488,8 +455,7 @@ Memory allocation - code portion : 52
+ Failed: error 106 at offset 13: missing terminating ] for character class
+
+ /[\p{L}]/
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\p{L}]
+@@ -498,8 +464,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /[\p{^L}]/
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\P{L}]
+@@ -508,8 +473,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /[\P{L}]/
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\P{L}]
+@@ -518,8 +482,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /[\P{^L}]/
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\p{L}]
+@@ -528,8 +491,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /[abc\p{L}\x{0660}]/utf
+-Memory allocation - compiled block : 224
+-Memory allocation - code portion : 88
++Memory allocation - code size : 88
+ ------------------------------------------------------------------
+ 0 19 Bra
+ 2 [a-c\p{L}\x{660}]
+@@ -538,8 +500,7 @@ Memory allocation - code portion : 88
+ ------------------------------------------------------------------
+
+ /[\p{Nd}]/utf
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\p{Nd}]
+@@ -548,8 +509,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /[\p{Nd}+-]+/utf
+-Memory allocation - compiled block : 220
+-Memory allocation - code portion : 84
++Memory allocation - code size : 84
+ ------------------------------------------------------------------
+ 0 18 Bra
+ 2 [+\-\p{Nd}]++
+@@ -558,8 +518,7 @@ Memory allocation - code portion : 84
+ ------------------------------------------------------------------
+
+ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
+-Memory allocation - compiled block : 196
+-Memory allocation - code portion : 60
++Memory allocation - code size : 60
+ ------------------------------------------------------------------
+ 0 12 Bra
+ 2 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0}
+@@ -568,8 +527,7 @@ Memory allocation - code portion : 60
+ ------------------------------------------------------------------
+
+ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
+-Memory allocation - compiled block : 196
+-Memory allocation - code portion : 60
++Memory allocation - code size : 60
+ ------------------------------------------------------------------
+ 0 12 Bra
+ 2 A\x{391}\x{10427}\x{ff3a}\x{1fb0}
+@@ -578,8 +536,7 @@ Memory allocation - code portion : 60
+ ------------------------------------------------------------------
+
+ /[\x{105}-\x{109}]/i,utf
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\x{104}-\x{109}]
+@@ -588,8 +545,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /( ( (?(1)0|) )* )/x
+-Memory allocation - compiled block : 240
+-Memory allocation - code portion : 104
++Memory allocation - code size : 104
+ ------------------------------------------------------------------
+ 0 23 Bra
+ 2 19 CBra 1
+@@ -607,8 +563,7 @@ Memory allocation - code portion : 104
+ ------------------------------------------------------------------
+
+ /( (?(1)0|)* )/x
+-Memory allocation - compiled block : 220
+-Memory allocation - code portion : 84
++Memory allocation - code size : 84
+ ------------------------------------------------------------------
+ 0 18 Bra
+ 2 14 CBra 1
+@@ -624,8 +579,7 @@ Memory allocation - code portion : 84
+ ------------------------------------------------------------------
+
+ /[a]/
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 a
+@@ -634,8 +588,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[a]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 a
+@@ -644,8 +597,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[\xaa]/
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{aa}
+@@ -654,8 +606,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[\xaa]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{aa}
+@@ -664,8 +615,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[^a]/
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 [^a]
+@@ -674,8 +624,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[^a]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 [^a]
+@@ -684,8 +633,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[^\xaa]/
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 [^\x{aa}]
+@@ -694,8 +642,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[^\xaa]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 [^\x{aa}]
+diff --git a/testdata/testoutput8-32-3 b/testdata/testoutput8-32-3
+index d76f3aaab..90ea536fa 100644
+--- a/testdata/testoutput8-32-3
++++ b/testdata/testoutput8-32-3
+@@ -10,8 +10,7 @@
+ #pattern fullbincode,memory
+
+ /((?i)b)/
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 5 CBra 1
+@@ -22,8 +21,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /(?s)(.*X|^B)/
+-Memory allocation - compiled block : 212
+-Memory allocation - code portion : 76
++Memory allocation - code size : 76
+ ------------------------------------------------------------------
+ 0 16 Bra
+ 2 7 CBra 1
+@@ -38,8 +36,7 @@ Memory allocation - code portion : 76
+ ------------------------------------------------------------------
+
+ /(?s:.*X|^B)/
+-Memory allocation - compiled block : 208
+-Memory allocation - code portion : 72
++Memory allocation - code size : 72
+ ------------------------------------------------------------------
+ 0 15 Bra
+ 2 6 Bra
+@@ -54,8 +51,7 @@ Memory allocation - code portion : 72
+ ------------------------------------------------------------------
+
+ /^[[:alnum:]]/
+-Memory allocation - compiled block : 196
+-Memory allocation - code portion : 60
++Memory allocation - code size : 60
+ ------------------------------------------------------------------
+ 0 12 Bra
+ 2 ^
+@@ -65,8 +61,7 @@ Memory allocation - code portion : 60
+ ------------------------------------------------------------------
+
+ /#/Ix
+-Memory allocation - compiled block : 156
+-Memory allocation - code portion : 20
++Memory allocation - code size : 20
+ ------------------------------------------------------------------
+ 0 2 Bra
+ 2 2 Ket
+@@ -78,8 +73,7 @@ Options: extended
+ Subject length lower bound = 0
+
+ /a#/Ix
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 a
+@@ -92,8 +86,7 @@ First code unit = 'a'
+ Subject length lower bound = 1
+
+ /x?+/
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 x?+
+@@ -102,8 +95,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /x++/
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 x++
+@@ -112,8 +104,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /x{1,3}+/
+-Memory allocation - compiled block : 176
+-Memory allocation - code portion : 40
++Memory allocation - code size : 40
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 2 x
+@@ -123,8 +114,7 @@ Memory allocation - code portion : 40
+ ------------------------------------------------------------------
+
+ /(x)*+/
+-Memory allocation - compiled block : 188
+-Memory allocation - code portion : 52
++Memory allocation - code size : 52
+ ------------------------------------------------------------------
+ 0 10 Bra
+ 2 Braposzero
+@@ -136,8 +126,7 @@ Memory allocation - code portion : 52
+ ------------------------------------------------------------------
+
+ /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
+-Memory allocation - compiled block : 356
+-Memory allocation - code portion : 220
++Memory allocation - code size : 220
+ ------------------------------------------------------------------
+ 0 52 Bra
+ 2 ^
+@@ -160,8 +149,7 @@ Memory allocation - code portion : 220
+ ------------------------------------------------------------------
+
+ "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 - compiled block : 3432
+-Memory allocation - code portion : 3296
++Memory allocation - code size : 3296
+ ------------------------------------------------------------------
+ 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
+@@ -171,8 +159,7 @@ Memory allocation - code portion : 3296
+ ------------------------------------------------------------------
+
+ "\$\<\.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 - compiled block : 3392
+-Memory allocation - code portion : 3256
++Memory allocation - code size : 3256
+ ------------------------------------------------------------------
+ 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
+@@ -182,8 +169,7 @@ Memory allocation - code portion : 3256
+ ------------------------------------------------------------------
+
+ /(a(?1)b)/
+-Memory allocation - compiled block : 200
+-Memory allocation - code portion : 64
++Memory allocation - code size : 64
+ ------------------------------------------------------------------
+ 0 13 Bra
+ 2 9 CBra 1
+@@ -196,8 +182,7 @@ Memory allocation - code portion : 64
+ ------------------------------------------------------------------
+
+ /(a(?1)+b)/
+-Memory allocation - compiled block : 216
+-Memory allocation - code portion : 80
++Memory allocation - code size : 80
+ ------------------------------------------------------------------
+ 0 17 Bra
+ 2 13 CBra 1
+@@ -212,8 +197,8 @@ Memory allocation - code portion : 80
+ ------------------------------------------------------------------
+
+ /a(?P<name1>b|c)d(?P<longername2>e)/
+-Memory allocation - compiled block : 348
+-Memory allocation - code portion : 108
++Memory allocation - code size : 108
++Memory allocation - data size : 104
+ ------------------------------------------------------------------
+ 0 24 Bra
+ 2 a
+@@ -231,8 +216,8 @@ Memory allocation - code portion : 108
+ ------------------------------------------------------------------
+
+ /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/
+-Memory allocation - compiled block : 300
+-Memory allocation - code portion : 128
++Memory allocation - code size : 128
++Memory allocation - data size : 36
+ ------------------------------------------------------------------
+ 0 29 Bra
+ 2 18 Bra
+@@ -252,8 +237,8 @@ Memory allocation - code portion : 128
+ ------------------------------------------------------------------
+
+ /(?P<a>a)...(?P=a)bbb(?P>a)d/
+-Memory allocation - compiled block : 256
+-Memory allocation - code portion : 108
++Memory allocation - code size : 108
++Memory allocation - data size : 12
+ ------------------------------------------------------------------
+ 0 24 Bra
+ 2 5 CBra 1
+@@ -271,8 +256,7 @@ Memory allocation - code portion : 108
+ ------------------------------------------------------------------
+
+ /abc(?C255)de(?C)f/
+-Memory allocation - compiled block : 236
+-Memory allocation - code portion : 100
++Memory allocation - code size : 100
+ ------------------------------------------------------------------
+ 0 22 Bra
+ 2 abc
+@@ -285,8 +269,7 @@ Memory allocation - code portion : 100
+ ------------------------------------------------------------------
+
+ /abcde/auto_callout
+-Memory allocation - compiled block : 292
+-Memory allocation - code portion : 156
++Memory allocation - code size : 156
+ ------------------------------------------------------------------
+ 0 36 Bra
+ 2 Callout 255 0 1
+@@ -305,8 +288,7 @@ Memory allocation - code portion : 156
+ ------------------------------------------------------------------
+
+ /\x{100}/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{100}
+@@ -315,8 +297,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\x{1000}/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{1000}
+@@ -325,8 +306,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\x{10000}/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{10000}
+@@ -335,8 +315,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\x{100000}/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{100000}
+@@ -345,8 +324,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\x{10ffff}/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{10ffff}
+@@ -358,8 +336,7 @@ Memory allocation - code portion : 28
+ Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large
+
+ /[\x{ff}]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{ff}
+@@ -368,8 +345,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[\x{100}]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{100}
+@@ -378,8 +354,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\x80/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{80}
+@@ -388,8 +363,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\xff/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{ff}
+@@ -398,8 +372,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf
+-Memory allocation - compiled block : 188
+-Memory allocation - code portion : 52
++Memory allocation - code size : 52
+ ------------------------------------------------------------------
+ 0 10 Bra
+ 2 A\x{2262}\x{391}.
+@@ -413,8 +386,7 @@ Last code unit = '.'
+ Subject length lower bound = 4
+
+ /\x{D55c}\x{ad6d}\x{C5B4}/I,utf
+-Memory allocation - compiled block : 180
+-Memory allocation - code portion : 44
++Memory allocation - code size : 44
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 2 \x{d55c}\x{ad6d}\x{c5b4}
+@@ -428,8 +400,7 @@ Last code unit = \x{c5b4}
+ Subject length lower bound = 3
+
+ /\x{65e5}\x{672c}\x{8a9e}/I,utf
+-Memory allocation - compiled block : 180
+-Memory allocation - code portion : 44
++Memory allocation - code size : 44
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 2 \x{65e5}\x{672c}\x{8a9e}
+@@ -443,8 +414,7 @@ Last code unit = \x{8a9e}
+ Subject length lower bound = 3
+
+ /[\x{100}]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{100}
+@@ -453,8 +423,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[Z\x{100}]/utf
+-Memory allocation - compiled block : 212
+-Memory allocation - code portion : 76
++Memory allocation - code size : 76
+ ------------------------------------------------------------------
+ 0 16 Bra
+ 2 [Z\x{100}]
+@@ -463,8 +432,7 @@ Memory allocation - code portion : 76
+ ------------------------------------------------------------------
+
+ /^[\x{100}\E-\Q\E\x{150}]/utf
+-Memory allocation - compiled block : 188
+-Memory allocation - code portion : 52
++Memory allocation - code size : 52
+ ------------------------------------------------------------------
+ 0 10 Bra
+ 2 ^
+@@ -474,8 +442,7 @@ Memory allocation - code portion : 52
+ ------------------------------------------------------------------
+
+ /^[\QĀ\E-\QŐ\E]/utf
+-Memory allocation - compiled block : 188
+-Memory allocation - code portion : 52
++Memory allocation - code size : 52
+ ------------------------------------------------------------------
+ 0 10 Bra
+ 2 ^
+@@ -488,8 +455,7 @@ Memory allocation - code portion : 52
+ Failed: error 106 at offset 13: missing terminating ] for character class
+
+ /[\p{L}]/
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\p{L}]
+@@ -498,8 +464,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /[\p{^L}]/
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\P{L}]
+@@ -508,8 +473,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /[\P{L}]/
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\P{L}]
+@@ -518,8 +482,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /[\P{^L}]/
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\p{L}]
+@@ -528,8 +491,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /[abc\p{L}\x{0660}]/utf
+-Memory allocation - compiled block : 224
+-Memory allocation - code portion : 88
++Memory allocation - code size : 88
+ ------------------------------------------------------------------
+ 0 19 Bra
+ 2 [a-c\p{L}\x{660}]
+@@ -538,8 +500,7 @@ Memory allocation - code portion : 88
+ ------------------------------------------------------------------
+
+ /[\p{Nd}]/utf
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\p{Nd}]
+@@ -548,8 +509,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /[\p{Nd}+-]+/utf
+-Memory allocation - compiled block : 220
+-Memory allocation - code portion : 84
++Memory allocation - code size : 84
+ ------------------------------------------------------------------
+ 0 18 Bra
+ 2 [+\-\p{Nd}]++
+@@ -558,8 +518,7 @@ Memory allocation - code portion : 84
+ ------------------------------------------------------------------
+
+ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
+-Memory allocation - compiled block : 196
+-Memory allocation - code portion : 60
++Memory allocation - code size : 60
+ ------------------------------------------------------------------
+ 0 12 Bra
+ 2 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0}
+@@ -568,8 +527,7 @@ Memory allocation - code portion : 60
+ ------------------------------------------------------------------
+
+ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
+-Memory allocation - compiled block : 196
+-Memory allocation - code portion : 60
++Memory allocation - code size : 60
+ ------------------------------------------------------------------
+ 0 12 Bra
+ 2 A\x{391}\x{10427}\x{ff3a}\x{1fb0}
+@@ -578,8 +536,7 @@ Memory allocation - code portion : 60
+ ------------------------------------------------------------------
+
+ /[\x{105}-\x{109}]/i,utf
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\x{104}-\x{109}]
+@@ -588,8 +545,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /( ( (?(1)0|) )* )/x
+-Memory allocation - compiled block : 240
+-Memory allocation - code portion : 104
++Memory allocation - code size : 104
+ ------------------------------------------------------------------
+ 0 23 Bra
+ 2 19 CBra 1
+@@ -607,8 +563,7 @@ Memory allocation - code portion : 104
+ ------------------------------------------------------------------
+
+ /( (?(1)0|)* )/x
+-Memory allocation - compiled block : 220
+-Memory allocation - code portion : 84
++Memory allocation - code size : 84
+ ------------------------------------------------------------------
+ 0 18 Bra
+ 2 14 CBra 1
+@@ -624,8 +579,7 @@ Memory allocation - code portion : 84
+ ------------------------------------------------------------------
+
+ /[a]/
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 a
+@@ -634,8 +588,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[a]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 a
+@@ -644,8 +597,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[\xaa]/
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{aa}
+@@ -654,8 +606,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[\xaa]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{aa}
+@@ -664,8 +615,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[^a]/
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 [^a]
+@@ -674,8 +624,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[^a]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 [^a]
+@@ -684,8 +633,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[^\xaa]/
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 [^\x{aa}]
+@@ -694,8 +642,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[^\xaa]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 [^\x{aa}]
+diff --git a/testdata/testoutput8-32-4 b/testdata/testoutput8-32-4
+index d76f3aaab..90ea536fa 100644
+--- a/testdata/testoutput8-32-4
++++ b/testdata/testoutput8-32-4
+@@ -10,8 +10,7 @@
+ #pattern fullbincode,memory
+
+ /((?i)b)/
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 5 CBra 1
+@@ -22,8 +21,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /(?s)(.*X|^B)/
+-Memory allocation - compiled block : 212
+-Memory allocation - code portion : 76
++Memory allocation - code size : 76
+ ------------------------------------------------------------------
+ 0 16 Bra
+ 2 7 CBra 1
+@@ -38,8 +36,7 @@ Memory allocation - code portion : 76
+ ------------------------------------------------------------------
+
+ /(?s:.*X|^B)/
+-Memory allocation - compiled block : 208
+-Memory allocation - code portion : 72
++Memory allocation - code size : 72
+ ------------------------------------------------------------------
+ 0 15 Bra
+ 2 6 Bra
+@@ -54,8 +51,7 @@ Memory allocation - code portion : 72
+ ------------------------------------------------------------------
+
+ /^[[:alnum:]]/
+-Memory allocation - compiled block : 196
+-Memory allocation - code portion : 60
++Memory allocation - code size : 60
+ ------------------------------------------------------------------
+ 0 12 Bra
+ 2 ^
+@@ -65,8 +61,7 @@ Memory allocation - code portion : 60
+ ------------------------------------------------------------------
+
+ /#/Ix
+-Memory allocation - compiled block : 156
+-Memory allocation - code portion : 20
++Memory allocation - code size : 20
+ ------------------------------------------------------------------
+ 0 2 Bra
+ 2 2 Ket
+@@ -78,8 +73,7 @@ Options: extended
+ Subject length lower bound = 0
+
+ /a#/Ix
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 a
+@@ -92,8 +86,7 @@ First code unit = 'a'
+ Subject length lower bound = 1
+
+ /x?+/
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 x?+
+@@ -102,8 +95,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /x++/
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 x++
+@@ -112,8 +104,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /x{1,3}+/
+-Memory allocation - compiled block : 176
+-Memory allocation - code portion : 40
++Memory allocation - code size : 40
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 2 x
+@@ -123,8 +114,7 @@ Memory allocation - code portion : 40
+ ------------------------------------------------------------------
+
+ /(x)*+/
+-Memory allocation - compiled block : 188
+-Memory allocation - code portion : 52
++Memory allocation - code size : 52
+ ------------------------------------------------------------------
+ 0 10 Bra
+ 2 Braposzero
+@@ -136,8 +126,7 @@ Memory allocation - code portion : 52
+ ------------------------------------------------------------------
+
+ /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
+-Memory allocation - compiled block : 356
+-Memory allocation - code portion : 220
++Memory allocation - code size : 220
+ ------------------------------------------------------------------
+ 0 52 Bra
+ 2 ^
+@@ -160,8 +149,7 @@ Memory allocation - code portion : 220
+ ------------------------------------------------------------------
+
+ "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 - compiled block : 3432
+-Memory allocation - code portion : 3296
++Memory allocation - code size : 3296
+ ------------------------------------------------------------------
+ 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
+@@ -171,8 +159,7 @@ Memory allocation - code portion : 3296
+ ------------------------------------------------------------------
+
+ "\$\<\.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 - compiled block : 3392
+-Memory allocation - code portion : 3256
++Memory allocation - code size : 3256
+ ------------------------------------------------------------------
+ 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
+@@ -182,8 +169,7 @@ Memory allocation - code portion : 3256
+ ------------------------------------------------------------------
+
+ /(a(?1)b)/
+-Memory allocation - compiled block : 200
+-Memory allocation - code portion : 64
++Memory allocation - code size : 64
+ ------------------------------------------------------------------
+ 0 13 Bra
+ 2 9 CBra 1
+@@ -196,8 +182,7 @@ Memory allocation - code portion : 64
+ ------------------------------------------------------------------
+
+ /(a(?1)+b)/
+-Memory allocation - compiled block : 216
+-Memory allocation - code portion : 80
++Memory allocation - code size : 80
+ ------------------------------------------------------------------
+ 0 17 Bra
+ 2 13 CBra 1
+@@ -212,8 +197,8 @@ Memory allocation - code portion : 80
+ ------------------------------------------------------------------
+
+ /a(?P<name1>b|c)d(?P<longername2>e)/
+-Memory allocation - compiled block : 348
+-Memory allocation - code portion : 108
++Memory allocation - code size : 108
++Memory allocation - data size : 104
+ ------------------------------------------------------------------
+ 0 24 Bra
+ 2 a
+@@ -231,8 +216,8 @@ Memory allocation - code portion : 108
+ ------------------------------------------------------------------
+
+ /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/
+-Memory allocation - compiled block : 300
+-Memory allocation - code portion : 128
++Memory allocation - code size : 128
++Memory allocation - data size : 36
+ ------------------------------------------------------------------
+ 0 29 Bra
+ 2 18 Bra
+@@ -252,8 +237,8 @@ Memory allocation - code portion : 128
+ ------------------------------------------------------------------
+
+ /(?P<a>a)...(?P=a)bbb(?P>a)d/
+-Memory allocation - compiled block : 256
+-Memory allocation - code portion : 108
++Memory allocation - code size : 108
++Memory allocation - data size : 12
+ ------------------------------------------------------------------
+ 0 24 Bra
+ 2 5 CBra 1
+@@ -271,8 +256,7 @@ Memory allocation - code portion : 108
+ ------------------------------------------------------------------
+
+ /abc(?C255)de(?C)f/
+-Memory allocation - compiled block : 236
+-Memory allocation - code portion : 100
++Memory allocation - code size : 100
+ ------------------------------------------------------------------
+ 0 22 Bra
+ 2 abc
+@@ -285,8 +269,7 @@ Memory allocation - code portion : 100
+ ------------------------------------------------------------------
+
+ /abcde/auto_callout
+-Memory allocation - compiled block : 292
+-Memory allocation - code portion : 156
++Memory allocation - code size : 156
+ ------------------------------------------------------------------
+ 0 36 Bra
+ 2 Callout 255 0 1
+@@ -305,8 +288,7 @@ Memory allocation - code portion : 156
+ ------------------------------------------------------------------
+
+ /\x{100}/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{100}
+@@ -315,8 +297,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\x{1000}/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{1000}
+@@ -325,8 +306,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\x{10000}/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{10000}
+@@ -335,8 +315,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\x{100000}/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{100000}
+@@ -345,8 +324,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\x{10ffff}/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{10ffff}
+@@ -358,8 +336,7 @@ Memory allocation - code portion : 28
+ Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large
+
+ /[\x{ff}]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{ff}
+@@ -368,8 +345,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[\x{100}]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{100}
+@@ -378,8 +354,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\x80/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{80}
+@@ -388,8 +363,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\xff/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{ff}
+@@ -398,8 +372,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf
+-Memory allocation - compiled block : 188
+-Memory allocation - code portion : 52
++Memory allocation - code size : 52
+ ------------------------------------------------------------------
+ 0 10 Bra
+ 2 A\x{2262}\x{391}.
+@@ -413,8 +386,7 @@ Last code unit = '.'
+ Subject length lower bound = 4
+
+ /\x{D55c}\x{ad6d}\x{C5B4}/I,utf
+-Memory allocation - compiled block : 180
+-Memory allocation - code portion : 44
++Memory allocation - code size : 44
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 2 \x{d55c}\x{ad6d}\x{c5b4}
+@@ -428,8 +400,7 @@ Last code unit = \x{c5b4}
+ Subject length lower bound = 3
+
+ /\x{65e5}\x{672c}\x{8a9e}/I,utf
+-Memory allocation - compiled block : 180
+-Memory allocation - code portion : 44
++Memory allocation - code size : 44
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 2 \x{65e5}\x{672c}\x{8a9e}
+@@ -443,8 +414,7 @@ Last code unit = \x{8a9e}
+ Subject length lower bound = 3
+
+ /[\x{100}]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{100}
+@@ -453,8 +423,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[Z\x{100}]/utf
+-Memory allocation - compiled block : 212
+-Memory allocation - code portion : 76
++Memory allocation - code size : 76
+ ------------------------------------------------------------------
+ 0 16 Bra
+ 2 [Z\x{100}]
+@@ -463,8 +432,7 @@ Memory allocation - code portion : 76
+ ------------------------------------------------------------------
+
+ /^[\x{100}\E-\Q\E\x{150}]/utf
+-Memory allocation - compiled block : 188
+-Memory allocation - code portion : 52
++Memory allocation - code size : 52
+ ------------------------------------------------------------------
+ 0 10 Bra
+ 2 ^
+@@ -474,8 +442,7 @@ Memory allocation - code portion : 52
+ ------------------------------------------------------------------
+
+ /^[\QĀ\E-\QŐ\E]/utf
+-Memory allocation - compiled block : 188
+-Memory allocation - code portion : 52
++Memory allocation - code size : 52
+ ------------------------------------------------------------------
+ 0 10 Bra
+ 2 ^
+@@ -488,8 +455,7 @@ Memory allocation - code portion : 52
+ Failed: error 106 at offset 13: missing terminating ] for character class
+
+ /[\p{L}]/
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\p{L}]
+@@ -498,8 +464,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /[\p{^L}]/
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\P{L}]
+@@ -508,8 +473,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /[\P{L}]/
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\P{L}]
+@@ -518,8 +482,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /[\P{^L}]/
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\p{L}]
+@@ -528,8 +491,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /[abc\p{L}\x{0660}]/utf
+-Memory allocation - compiled block : 224
+-Memory allocation - code portion : 88
++Memory allocation - code size : 88
+ ------------------------------------------------------------------
+ 0 19 Bra
+ 2 [a-c\p{L}\x{660}]
+@@ -538,8 +500,7 @@ Memory allocation - code portion : 88
+ ------------------------------------------------------------------
+
+ /[\p{Nd}]/utf
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\p{Nd}]
+@@ -548,8 +509,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /[\p{Nd}+-]+/utf
+-Memory allocation - compiled block : 220
+-Memory allocation - code portion : 84
++Memory allocation - code size : 84
+ ------------------------------------------------------------------
+ 0 18 Bra
+ 2 [+\-\p{Nd}]++
+@@ -558,8 +518,7 @@ Memory allocation - code portion : 84
+ ------------------------------------------------------------------
+
+ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
+-Memory allocation - compiled block : 196
+-Memory allocation - code portion : 60
++Memory allocation - code size : 60
+ ------------------------------------------------------------------
+ 0 12 Bra
+ 2 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0}
+@@ -568,8 +527,7 @@ Memory allocation - code portion : 60
+ ------------------------------------------------------------------
+
+ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
+-Memory allocation - compiled block : 196
+-Memory allocation - code portion : 60
++Memory allocation - code size : 60
+ ------------------------------------------------------------------
+ 0 12 Bra
+ 2 A\x{391}\x{10427}\x{ff3a}\x{1fb0}
+@@ -578,8 +536,7 @@ Memory allocation - code portion : 60
+ ------------------------------------------------------------------
+
+ /[\x{105}-\x{109}]/i,utf
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 2 [\x{104}-\x{109}]
+@@ -588,8 +545,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /( ( (?(1)0|) )* )/x
+-Memory allocation - compiled block : 240
+-Memory allocation - code portion : 104
++Memory allocation - code size : 104
+ ------------------------------------------------------------------
+ 0 23 Bra
+ 2 19 CBra 1
+@@ -607,8 +563,7 @@ Memory allocation - code portion : 104
+ ------------------------------------------------------------------
+
+ /( (?(1)0|)* )/x
+-Memory allocation - compiled block : 220
+-Memory allocation - code portion : 84
++Memory allocation - code size : 84
+ ------------------------------------------------------------------
+ 0 18 Bra
+ 2 14 CBra 1
+@@ -624,8 +579,7 @@ Memory allocation - code portion : 84
+ ------------------------------------------------------------------
+
+ /[a]/
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 a
+@@ -634,8 +588,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[a]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 a
+@@ -644,8 +597,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[\xaa]/
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{aa}
+@@ -654,8 +606,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[\xaa]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 \x{aa}
+@@ -664,8 +615,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[^a]/
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 [^a]
+@@ -674,8 +624,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[^a]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 [^a]
+@@ -684,8 +633,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[^\xaa]/
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 [^\x{aa}]
+@@ -694,8 +642,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /[^\xaa]/utf
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 2 [^\x{aa}]
+diff --git a/testdata/testoutput8-8-2 b/testdata/testoutput8-8-2
+index f3811d952..779552ace 100644
+--- a/testdata/testoutput8-8-2
++++ b/testdata/testoutput8-8-2
+@@ -10,8 +10,7 @@
+ #pattern fullbincode,memory
+
+ /((?i)b)/
+-Memory allocation - compiled block : 153
+-Memory allocation - code portion : 17
++Memory allocation - code size : 17
+ ------------------------------------------------------------------
+ 0 13 Bra
+ 3 7 CBra 1
+@@ -22,8 +21,7 @@ Memory allocation - code portion : 17
+ ------------------------------------------------------------------
+
+ /(?s)(.*X|^B)/
+-Memory allocation - compiled block : 161
+-Memory allocation - code portion : 25
++Memory allocation - code size : 25
+ ------------------------------------------------------------------
+ 0 21 Bra
+ 3 9 CBra 1
+@@ -38,8 +36,7 @@ Memory allocation - code portion : 25
+ ------------------------------------------------------------------
+
+ /(?s:.*X|^B)/
+-Memory allocation - compiled block : 159
+-Memory allocation - code portion : 23
++Memory allocation - code size : 23
+ ------------------------------------------------------------------
+ 0 19 Bra
+ 3 7 Bra
+@@ -54,8 +51,7 @@ Memory allocation - code portion : 23
+ ------------------------------------------------------------------
+
+ /^[[:alnum:]]/
+-Memory allocation - compiled block : 177
+-Memory allocation - code portion : 41
++Memory allocation - code size : 41
+ ------------------------------------------------------------------
+ 0 37 Bra
+ 3 ^
+@@ -65,8 +61,7 @@ Memory allocation - code portion : 41
+ ------------------------------------------------------------------
+
+ /#/Ix
+-Memory allocation - compiled block : 143
+-Memory allocation - code portion : 7
++Memory allocation - code size : 7
+ ------------------------------------------------------------------
+ 0 3 Bra
+ 3 3 Ket
+@@ -78,8 +73,7 @@ Options: extended
+ Subject length lower bound = 0
+
+ /a#/Ix
+-Memory allocation - compiled block : 145
+-Memory allocation - code portion : 9
++Memory allocation - code size : 9
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 a
+@@ -92,8 +86,7 @@ First code unit = 'a'
+ Subject length lower bound = 1
+
+ /x?+/
+-Memory allocation - compiled block : 145
+-Memory allocation - code portion : 9
++Memory allocation - code size : 9
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 x?+
+@@ -102,8 +95,7 @@ Memory allocation - code portion : 9
+ ------------------------------------------------------------------
+
+ /x++/
+-Memory allocation - compiled block : 145
+-Memory allocation - code portion : 9
++Memory allocation - code size : 9
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 x++
+@@ -112,8 +104,7 @@ Memory allocation - code portion : 9
+ ------------------------------------------------------------------
+
+ /x{1,3}+/
+-Memory allocation - compiled block : 149
+-Memory allocation - code portion : 13
++Memory allocation - code size : 13
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 3 x
+@@ -123,8 +114,7 @@ Memory allocation - code portion : 13
+ ------------------------------------------------------------------
+
+ /(x)*+/
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 14 Bra
+ 3 Braposzero
+@@ -136,8 +126,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
+-Memory allocation - compiled block : 256
+-Memory allocation - code portion : 120
++Memory allocation - code size : 120
+ ------------------------------------------------------------------
+ 0 116 Bra
+ 3 ^
+@@ -160,8 +149,7 @@ Memory allocation - code portion : 120
+ ------------------------------------------------------------------
+
+ "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 - compiled block : 962
+-Memory allocation - code portion : 826
++Memory allocation - code size : 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
+@@ -171,8 +159,7 @@ Memory allocation - code portion : 826
+ ------------------------------------------------------------------
+
+ "\$\<\.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 - compiled block : 952
+-Memory allocation - code portion : 816
++Memory allocation - code size : 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
+@@ -182,8 +169,7 @@ Memory allocation - code portion : 816
+ ------------------------------------------------------------------
+
+ /(a(?1)b)/
+-Memory allocation - compiled block : 158
+-Memory allocation - code portion : 22
++Memory allocation - code size : 22
+ ------------------------------------------------------------------
+ 0 18 Bra
+ 3 12 CBra 1
+@@ -196,8 +182,7 @@ Memory allocation - code portion : 22
+ ------------------------------------------------------------------
+
+ /(a(?1)+b)/
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 24 Bra
+ 3 18 CBra 1
+@@ -212,8 +197,8 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /a(?P<name1>b|c)d(?P<longername2>e)/
+-Memory allocation - compiled block : 200
+-Memory allocation - code portion : 36
++Memory allocation - code size : 36
++Memory allocation - data size : 28
+ ------------------------------------------------------------------
+ 0 32 Bra
+ 3 a
+@@ -231,8 +216,8 @@ Memory allocation - code portion : 36
+ ------------------------------------------------------------------
+
+ /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/
+-Memory allocation - compiled block : 193
+-Memory allocation - code portion : 45
++Memory allocation - code size : 45
++Memory allocation - data size : 12
+ ------------------------------------------------------------------
+ 0 41 Bra
+ 3 25 Bra
+@@ -252,8 +237,8 @@ Memory allocation - code portion : 45
+ ------------------------------------------------------------------
+
+ /(?P<a>a)...(?P=a)bbb(?P>a)d/
+-Memory allocation - compiled block : 174
+-Memory allocation - code portion : 34
++Memory allocation - code size : 34
++Memory allocation - data size : 4
+ ------------------------------------------------------------------
+ 0 30 Bra
+ 3 7 CBra 1
+@@ -271,8 +256,7 @@ Memory allocation - code portion : 34
+ ------------------------------------------------------------------
+
+ /abc(?C255)de(?C)f/
+-Memory allocation - compiled block : 167
+-Memory allocation - code portion : 31
++Memory allocation - code size : 31
+ ------------------------------------------------------------------
+ 0 27 Bra
+ 3 abc
+@@ -285,8 +269,7 @@ Memory allocation - code portion : 31
+ ------------------------------------------------------------------
+
+ /abcde/auto_callout
+-Memory allocation - compiled block : 189
+-Memory allocation - code portion : 53
++Memory allocation - code size : 53
+ ------------------------------------------------------------------
+ 0 49 Bra
+ 3 Callout 255 0 1
+@@ -305,8 +288,7 @@ Memory allocation - code portion : 53
+ ------------------------------------------------------------------
+
+ /\x{100}/utf
+-Memory allocation - compiled block : 146
+-Memory allocation - code portion : 10
++Memory allocation - code size : 10
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 3 \x{100}
+@@ -315,8 +297,7 @@ Memory allocation - code portion : 10
+ ------------------------------------------------------------------
+
+ /\x{1000}/utf
+-Memory allocation - compiled block : 147
+-Memory allocation - code portion : 11
++Memory allocation - code size : 11
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 3 \x{1000}
+@@ -325,8 +306,7 @@ Memory allocation - code portion : 11
+ ------------------------------------------------------------------
+
+ /\x{10000}/utf
+-Memory allocation - compiled block : 148
+-Memory allocation - code portion : 12
++Memory allocation - code size : 12
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 3 \x{10000}
+@@ -335,8 +315,7 @@ Memory allocation - code portion : 12
+ ------------------------------------------------------------------
+
+ /\x{100000}/utf
+-Memory allocation - compiled block : 148
+-Memory allocation - code portion : 12
++Memory allocation - code size : 12
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 3 \x{100000}
+@@ -345,8 +324,7 @@ Memory allocation - code portion : 12
+ ------------------------------------------------------------------
+
+ /\x{10ffff}/utf
+-Memory allocation - compiled block : 148
+-Memory allocation - code portion : 12
++Memory allocation - code size : 12
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 3 \x{10ffff}
+@@ -358,8 +336,7 @@ Memory allocation - code portion : 12
+ Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large
+
+ /[\x{ff}]/utf
+-Memory allocation - compiled block : 146
+-Memory allocation - code portion : 10
++Memory allocation - code size : 10
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 3 \x{ff}
+@@ -368,8 +345,7 @@ Memory allocation - code portion : 10
+ ------------------------------------------------------------------
+
+ /[\x{100}]/utf
+-Memory allocation - compiled block : 146
+-Memory allocation - code portion : 10
++Memory allocation - code size : 10
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 3 \x{100}
+@@ -378,8 +354,7 @@ Memory allocation - code portion : 10
+ ------------------------------------------------------------------
+
+ /\x80/utf
+-Memory allocation - compiled block : 146
+-Memory allocation - code portion : 10
++Memory allocation - code size : 10
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 3 \x{80}
+@@ -388,8 +363,7 @@ Memory allocation - code portion : 10
+ ------------------------------------------------------------------
+
+ /\xff/utf
+-Memory allocation - compiled block : 146
+-Memory allocation - code portion : 10
++Memory allocation - code size : 10
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 3 \x{ff}
+@@ -398,8 +372,7 @@ Memory allocation - code portion : 10
+ ------------------------------------------------------------------
+
+ /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 14 Bra
+ 3 A\x{2262}\x{391}.
+@@ -413,8 +386,7 @@ Last code unit = '.'
+ Subject length lower bound = 4
+
+ /\x{D55c}\x{ad6d}\x{C5B4}/I,utf
+-Memory allocation - compiled block : 155
+-Memory allocation - code portion : 19
++Memory allocation - code size : 19
+ ------------------------------------------------------------------
+ 0 15 Bra
+ 3 \x{d55c}\x{ad6d}\x{c5b4}
+@@ -428,8 +400,7 @@ Last code unit = \xb4
+ Subject length lower bound = 3
+
+ /\x{65e5}\x{672c}\x{8a9e}/I,utf
+-Memory allocation - compiled block : 155
+-Memory allocation - code portion : 19
++Memory allocation - code size : 19
+ ------------------------------------------------------------------
+ 0 15 Bra
+ 3 \x{65e5}\x{672c}\x{8a9e}
+@@ -443,8 +414,7 @@ Last code unit = \x9e
+ Subject length lower bound = 3
+
+ /[\x{100}]/utf
+-Memory allocation - compiled block : 146
+-Memory allocation - code portion : 10
++Memory allocation - code size : 10
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 3 \x{100}
+@@ -453,8 +423,7 @@ Memory allocation - code portion : 10
+ ------------------------------------------------------------------
+
+ /[Z\x{100}]/utf
+-Memory allocation - compiled block : 183
+-Memory allocation - code portion : 47
++Memory allocation - code size : 47
+ ------------------------------------------------------------------
+ 0 43 Bra
+ 3 [Z\x{100}]
+@@ -463,8 +432,7 @@ Memory allocation - code portion : 47
+ ------------------------------------------------------------------
+
+ /^[\x{100}\E-\Q\E\x{150}]/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 14 Bra
+ 3 ^
+@@ -474,8 +442,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /^[\QĀ\E-\QŐ\E]/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 14 Bra
+ 3 ^
+@@ -488,8 +455,7 @@ Memory allocation - code portion : 18
+ Failed: error 106 at offset 15: missing terminating ] for character class
+
+ /[\p{L}]/
+-Memory allocation - compiled block : 151
+-Memory allocation - code portion : 15
++Memory allocation - code size : 15
+ ------------------------------------------------------------------
+ 0 11 Bra
+ 3 [\p{L}]
+@@ -498,8 +464,7 @@ Memory allocation - code portion : 15
+ ------------------------------------------------------------------
+
+ /[\p{^L}]/
+-Memory allocation - compiled block : 151
+-Memory allocation - code portion : 15
++Memory allocation - code size : 15
+ ------------------------------------------------------------------
+ 0 11 Bra
+ 3 [\P{L}]
+@@ -508,8 +473,7 @@ Memory allocation - code portion : 15
+ ------------------------------------------------------------------
+
+ /[\P{L}]/
+-Memory allocation - compiled block : 151
+-Memory allocation - code portion : 15
++Memory allocation - code size : 15
+ ------------------------------------------------------------------
+ 0 11 Bra
+ 3 [\P{L}]
+@@ -518,8 +482,7 @@ Memory allocation - code portion : 15
+ ------------------------------------------------------------------
+
+ /[\P{^L}]/
+-Memory allocation - compiled block : 151
+-Memory allocation - code portion : 15
++Memory allocation - code size : 15
+ ------------------------------------------------------------------
+ 0 11 Bra
+ 3 [\p{L}]
+@@ -528,8 +491,7 @@ Memory allocation - code portion : 15
+ ------------------------------------------------------------------
+
+ /[abc\p{L}\x{0660}]/utf
+-Memory allocation - compiled block : 186
+-Memory allocation - code portion : 50
++Memory allocation - code size : 50
+ ------------------------------------------------------------------
+ 0 46 Bra
+ 3 [a-c\p{L}\x{660}]
+@@ -538,8 +500,7 @@ Memory allocation - code portion : 50
+ ------------------------------------------------------------------
+
+ /[\p{Nd}]/utf
+-Memory allocation - compiled block : 151
+-Memory allocation - code portion : 15
++Memory allocation - code size : 15
+ ------------------------------------------------------------------
+ 0 11 Bra
+ 3 [\p{Nd}]
+@@ -548,8 +509,7 @@ Memory allocation - code portion : 15
+ ------------------------------------------------------------------
+
+ /[\p{Nd}+-]+/utf
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 48
++Memory allocation - code size : 48
+ ------------------------------------------------------------------
+ 0 44 Bra
+ 3 [+\-\p{Nd}]++
+@@ -558,8 +518,7 @@ Memory allocation - code portion : 48
+ ------------------------------------------------------------------
+
+ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
+-Memory allocation - compiled block : 161
+-Memory allocation - code portion : 25
++Memory allocation - code size : 25
+ ------------------------------------------------------------------
+ 0 21 Bra
+ 3 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0}
+@@ -568,8 +527,7 @@ Memory allocation - code portion : 25
+ ------------------------------------------------------------------
+
+ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
+-Memory allocation - compiled block : 161
+-Memory allocation - code portion : 25
++Memory allocation - code size : 25
+ ------------------------------------------------------------------
+ 0 21 Bra
+ 3 A\x{391}\x{10427}\x{ff3a}\x{1fb0}
+@@ -578,8 +536,7 @@ Memory allocation - code portion : 25
+ ------------------------------------------------------------------
+
+ /[\x{105}-\x{109}]/i,utf
+-Memory allocation - compiled block : 153
+-Memory allocation - code portion : 17
++Memory allocation - code size : 17
+ ------------------------------------------------------------------
+ 0 13 Bra
+ 3 [\x{104}-\x{109}]
+@@ -588,8 +545,7 @@ Memory allocation - code portion : 17
+ ------------------------------------------------------------------
+
+ /( ( (?(1)0|) )* )/x
+-Memory allocation - compiled block : 174
+-Memory allocation - code portion : 38
++Memory allocation - code size : 38
+ ------------------------------------------------------------------
+ 0 34 Bra
+ 3 28 CBra 1
+@@ -607,8 +563,7 @@ Memory allocation - code portion : 38
+ ------------------------------------------------------------------
+
+ /( (?(1)0|)* )/x
+-Memory allocation - compiled block : 166
+-Memory allocation - code portion : 30
++Memory allocation - code size : 30
+ ------------------------------------------------------------------
+ 0 26 Bra
+ 3 20 CBra 1
+@@ -624,8 +579,7 @@ Memory allocation - code portion : 30
+ ------------------------------------------------------------------
+
+ /[a]/
+-Memory allocation - compiled block : 145
+-Memory allocation - code portion : 9
++Memory allocation - code size : 9
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 a
+@@ -634,8 +588,7 @@ Memory allocation - code portion : 9
+ ------------------------------------------------------------------
+
+ /[a]/utf
+-Memory allocation - compiled block : 145
+-Memory allocation - code portion : 9
++Memory allocation - code size : 9
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 a
+@@ -644,8 +597,7 @@ Memory allocation - code portion : 9
+ ------------------------------------------------------------------
+
+ /[\xaa]/
+-Memory allocation - compiled block : 145
+-Memory allocation - code portion : 9
++Memory allocation - code size : 9
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 \x{aa}
+@@ -654,8 +606,7 @@ Memory allocation - code portion : 9
+ ------------------------------------------------------------------
+
+ /[\xaa]/utf
+-Memory allocation - compiled block : 146
+-Memory allocation - code portion : 10
++Memory allocation - code size : 10
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 3 \x{aa}
+@@ -664,8 +615,7 @@ Memory allocation - code portion : 10
+ ------------------------------------------------------------------
+
+ /[^a]/
+-Memory allocation - compiled block : 145
+-Memory allocation - code portion : 9
++Memory allocation - code size : 9
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 [^a]
+@@ -674,8 +624,7 @@ Memory allocation - code portion : 9
+ ------------------------------------------------------------------
+
+ /[^a]/utf
+-Memory allocation - compiled block : 145
+-Memory allocation - code portion : 9
++Memory allocation - code size : 9
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 [^a]
+@@ -684,8 +633,7 @@ Memory allocation - code portion : 9
+ ------------------------------------------------------------------
+
+ /[^\xaa]/
+-Memory allocation - compiled block : 145
+-Memory allocation - code portion : 9
++Memory allocation - code size : 9
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 3 [^\x{aa}]
+@@ -694,8 +642,7 @@ Memory allocation - code portion : 9
+ ------------------------------------------------------------------
+
+ /[^\xaa]/utf
+-Memory allocation - compiled block : 146
+-Memory allocation - code portion : 10
++Memory allocation - code size : 10
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 3 [^\x{aa}]
+diff --git a/testdata/testoutput8-8-3 b/testdata/testoutput8-8-3
+index 48e0b8aab..2657ce899 100644
+--- a/testdata/testoutput8-8-3
++++ b/testdata/testoutput8-8-3
+@@ -10,8 +10,7 @@
+ #pattern fullbincode,memory
+
+ /((?i)b)/
+-Memory allocation - compiled block : 157
+-Memory allocation - code portion : 21
++Memory allocation - code size : 21
+ ------------------------------------------------------------------
+ 0 16 Bra
+ 4 8 CBra 1
+@@ -22,8 +21,7 @@ Memory allocation - code portion : 21
+ ------------------------------------------------------------------
+
+ /(?s)(.*X|^B)/
+-Memory allocation - compiled block : 166
+-Memory allocation - code portion : 30
++Memory allocation - code size : 30
+ ------------------------------------------------------------------
+ 0 25 Bra
+ 4 10 CBra 1
+@@ -38,8 +36,7 @@ Memory allocation - code portion : 30
+ ------------------------------------------------------------------
+
+ /(?s:.*X|^B)/
+-Memory allocation - compiled block : 164
+-Memory allocation - code portion : 28
++Memory allocation - code size : 28
+ ------------------------------------------------------------------
+ 0 23 Bra
+ 4 8 Bra
+@@ -54,8 +51,7 @@ Memory allocation - code portion : 28
+ ------------------------------------------------------------------
+
+ /^[[:alnum:]]/
+-Memory allocation - compiled block : 179
+-Memory allocation - code portion : 43
++Memory allocation - code size : 43
+ ------------------------------------------------------------------
+ 0 38 Bra
+ 4 ^
+@@ -65,8 +61,7 @@ Memory allocation - code portion : 43
+ ------------------------------------------------------------------
+
+ /#/Ix
+-Memory allocation - compiled block : 145
+-Memory allocation - code portion : 9
++Memory allocation - code size : 9
+ ------------------------------------------------------------------
+ 0 4 Bra
+ 4 4 Ket
+@@ -78,8 +73,7 @@ Options: extended
+ Subject length lower bound = 0
+
+ /a#/Ix
+-Memory allocation - compiled block : 147
+-Memory allocation - code portion : 11
++Memory allocation - code size : 11
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 4 a
+@@ -92,8 +86,7 @@ First code unit = 'a'
+ Subject length lower bound = 1
+
+ /x?+/
+-Memory allocation - compiled block : 147
+-Memory allocation - code portion : 11
++Memory allocation - code size : 11
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 4 x?+
+@@ -102,8 +95,7 @@ Memory allocation - code portion : 11
+ ------------------------------------------------------------------
+
+ /x++/
+-Memory allocation - compiled block : 147
+-Memory allocation - code portion : 11
++Memory allocation - code size : 11
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 4 x++
+@@ -112,8 +104,7 @@ Memory allocation - code portion : 11
+ ------------------------------------------------------------------
+
+ /x{1,3}+/
+-Memory allocation - compiled block : 151
+-Memory allocation - code portion : 15
++Memory allocation - code size : 15
+ ------------------------------------------------------------------
+ 0 10 Bra
+ 4 x
+@@ -123,8 +114,7 @@ Memory allocation - code portion : 15
+ ------------------------------------------------------------------
+
+ /(x)*+/
+-Memory allocation - compiled block : 158
+-Memory allocation - code portion : 22
++Memory allocation - code size : 22
+ ------------------------------------------------------------------
+ 0 17 Bra
+ 4 Braposzero
+@@ -136,8 +126,7 @@ Memory allocation - code portion : 22
+ ------------------------------------------------------------------
+
+ /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
+-Memory allocation - compiled block : 268
+-Memory allocation - code portion : 132
++Memory allocation - code size : 132
+ ------------------------------------------------------------------
+ 0 127 Bra
+ 4 ^
+@@ -160,8 +149,7 @@ Memory allocation - code portion : 132
+ ------------------------------------------------------------------
+
+ "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 - compiled block : 964
+-Memory allocation - code portion : 828
++Memory allocation - code size : 828
+ ------------------------------------------------------------------
+ 0 823 Bra
+ 4 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
+@@ -171,8 +159,7 @@ Memory allocation - code portion : 828
+ ------------------------------------------------------------------
+
+ "\$\<\.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 - compiled block : 954
+-Memory allocation - code portion : 818
++Memory allocation - code size : 818
+ ------------------------------------------------------------------
+ 0 813 Bra
+ 4 $<.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
+@@ -182,8 +169,7 @@ Memory allocation - code portion : 818
+ ------------------------------------------------------------------
+
+ /(a(?1)b)/
+-Memory allocation - compiled block : 163
+-Memory allocation - code portion : 27
++Memory allocation - code size : 27
+ ------------------------------------------------------------------
+ 0 22 Bra
+ 4 14 CBra 1
+@@ -196,8 +182,7 @@ Memory allocation - code portion : 27
+ ------------------------------------------------------------------
+
+ /(a(?1)+b)/
+-Memory allocation - compiled block : 171
+-Memory allocation - code portion : 35
++Memory allocation - code size : 35
+ ------------------------------------------------------------------
+ 0 30 Bra
+ 4 22 CBra 1
+@@ -212,8 +197,8 @@ Memory allocation - code portion : 35
+ ------------------------------------------------------------------
+
+ /a(?P<name1>b|c)d(?P<longername2>e)/
+-Memory allocation - compiled block : 207
+-Memory allocation - code portion : 43
++Memory allocation - code size : 43
++Memory allocation - data size : 28
+ ------------------------------------------------------------------
+ 0 38 Bra
+ 4 a
+@@ -231,8 +216,8 @@ Memory allocation - code portion : 43
+ ------------------------------------------------------------------
+
+ /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/
+-Memory allocation - compiled block : 203
+-Memory allocation - code portion : 55
++Memory allocation - code size : 55
++Memory allocation - data size : 12
+ ------------------------------------------------------------------
+ 0 50 Bra
+ 4 30 Bra
+@@ -252,8 +237,8 @@ Memory allocation - code portion : 55
+ ------------------------------------------------------------------
+
+ /(?P<a>a)...(?P=a)bbb(?P>a)d/
+-Memory allocation - compiled block : 179
+-Memory allocation - code portion : 39
++Memory allocation - code size : 39
++Memory allocation - data size : 4
+ ------------------------------------------------------------------
+ 0 34 Bra
+ 4 8 CBra 1
+@@ -271,8 +256,7 @@ Memory allocation - code portion : 39
+ ------------------------------------------------------------------
+
+ /abc(?C255)de(?C)f/
+-Memory allocation - compiled block : 173
+-Memory allocation - code portion : 37
++Memory allocation - code size : 37
+ ------------------------------------------------------------------
+ 0 32 Bra
+ 4 abc
+@@ -285,8 +269,7 @@ Memory allocation - code portion : 37
+ ------------------------------------------------------------------
+
+ /abcde/auto_callout
+-Memory allocation - compiled block : 203
+-Memory allocation - code portion : 67
++Memory allocation - code size : 67
+ ------------------------------------------------------------------
+ 0 62 Bra
+ 4 Callout 255 0 1
+@@ -305,8 +288,7 @@ Memory allocation - code portion : 67
+ ------------------------------------------------------------------
+
+ /\x{100}/utf
+-Memory allocation - compiled block : 148
+-Memory allocation - code portion : 12
++Memory allocation - code size : 12
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 4 \x{100}
+@@ -315,8 +297,7 @@ Memory allocation - code portion : 12
+ ------------------------------------------------------------------
+
+ /\x{1000}/utf
+-Memory allocation - compiled block : 149
+-Memory allocation - code portion : 13
++Memory allocation - code size : 13
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 4 \x{1000}
+@@ -325,8 +306,7 @@ Memory allocation - code portion : 13
+ ------------------------------------------------------------------
+
+ /\x{10000}/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 4 \x{10000}
+@@ -335,8 +315,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /\x{100000}/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 4 \x{100000}
+@@ -345,8 +324,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /\x{10ffff}/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 4 \x{10ffff}
+@@ -358,8 +336,7 @@ Memory allocation - code portion : 14
+ Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large
+
+ /[\x{ff}]/utf
+-Memory allocation - compiled block : 148
+-Memory allocation - code portion : 12
++Memory allocation - code size : 12
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 4 \x{ff}
+@@ -368,8 +345,7 @@ Memory allocation - code portion : 12
+ ------------------------------------------------------------------
+
+ /[\x{100}]/utf
+-Memory allocation - compiled block : 148
+-Memory allocation - code portion : 12
++Memory allocation - code size : 12
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 4 \x{100}
+@@ -378,8 +354,7 @@ Memory allocation - code portion : 12
+ ------------------------------------------------------------------
+
+ /\x80/utf
+-Memory allocation - compiled block : 148
+-Memory allocation - code portion : 12
++Memory allocation - code size : 12
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 4 \x{80}
+@@ -388,8 +363,7 @@ Memory allocation - code portion : 12
+ ------------------------------------------------------------------
+
+ /\xff/utf
+-Memory allocation - compiled block : 148
+-Memory allocation - code portion : 12
++Memory allocation - code size : 12
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 4 \x{ff}
+@@ -398,8 +372,7 @@ Memory allocation - code portion : 12
+ ------------------------------------------------------------------
+
+ /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf
+-Memory allocation - compiled block : 156
+-Memory allocation - code portion : 20
++Memory allocation - code size : 20
+ ------------------------------------------------------------------
+ 0 15 Bra
+ 4 A\x{2262}\x{391}.
+@@ -413,8 +386,7 @@ Last code unit = '.'
+ Subject length lower bound = 4
+
+ /\x{D55c}\x{ad6d}\x{C5B4}/I,utf
+-Memory allocation - compiled block : 157
+-Memory allocation - code portion : 21
++Memory allocation - code size : 21
+ ------------------------------------------------------------------
+ 0 16 Bra
+ 4 \x{d55c}\x{ad6d}\x{c5b4}
+@@ -428,8 +400,7 @@ Last code unit = \xb4
+ Subject length lower bound = 3
+
+ /\x{65e5}\x{672c}\x{8a9e}/I,utf
+-Memory allocation - compiled block : 157
+-Memory allocation - code portion : 21
++Memory allocation - code size : 21
+ ------------------------------------------------------------------
+ 0 16 Bra
+ 4 \x{65e5}\x{672c}\x{8a9e}
+@@ -443,8 +414,7 @@ Last code unit = \x9e
+ Subject length lower bound = 3
+
+ /[\x{100}]/utf
+-Memory allocation - compiled block : 148
+-Memory allocation - code portion : 12
++Memory allocation - code size : 12
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 4 \x{100}
+@@ -453,8 +423,7 @@ Memory allocation - code portion : 12
+ ------------------------------------------------------------------
+
+ /[Z\x{100}]/utf
+-Memory allocation - compiled block : 186
+-Memory allocation - code portion : 50
++Memory allocation - code size : 50
+ ------------------------------------------------------------------
+ 0 45 Bra
+ 4 [Z\x{100}]
+@@ -463,8 +432,7 @@ Memory allocation - code portion : 50
+ ------------------------------------------------------------------
+
+ /^[\x{100}\E-\Q\E\x{150}]/utf
+-Memory allocation - compiled block : 157
+-Memory allocation - code portion : 21
++Memory allocation - code size : 21
+ ------------------------------------------------------------------
+ 0 16 Bra
+ 4 ^
+@@ -474,8 +442,7 @@ Memory allocation - code portion : 21
+ ------------------------------------------------------------------
+
+ /^[\QĀ\E-\QŐ\E]/utf
+-Memory allocation - compiled block : 157
+-Memory allocation - code portion : 21
++Memory allocation - code size : 21
+ ------------------------------------------------------------------
+ 0 16 Bra
+ 4 ^
+@@ -488,8 +455,7 @@ Memory allocation - code portion : 21
+ Failed: error 106 at offset 15: missing terminating ] for character class
+
+ /[\p{L}]/
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 13 Bra
+ 4 [\p{L}]
+@@ -498,8 +464,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[\p{^L}]/
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 13 Bra
+ 4 [\P{L}]
+@@ -508,8 +473,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[\P{L}]/
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 13 Bra
+ 4 [\P{L}]
+@@ -518,8 +482,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[\P{^L}]/
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 13 Bra
+ 4 [\p{L}]
+@@ -528,8 +491,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[abc\p{L}\x{0660}]/utf
+-Memory allocation - compiled block : 189
+-Memory allocation - code portion : 53
++Memory allocation - code size : 53
+ ------------------------------------------------------------------
+ 0 48 Bra
+ 4 [a-c\p{L}\x{660}]
+@@ -538,8 +500,7 @@ Memory allocation - code portion : 53
+ ------------------------------------------------------------------
+
+ /[\p{Nd}]/utf
+-Memory allocation - compiled block : 154
+-Memory allocation - code portion : 18
++Memory allocation - code size : 18
+ ------------------------------------------------------------------
+ 0 13 Bra
+ 4 [\p{Nd}]
+@@ -548,8 +509,7 @@ Memory allocation - code portion : 18
+ ------------------------------------------------------------------
+
+ /[\p{Nd}+-]+/utf
+-Memory allocation - compiled block : 187
+-Memory allocation - code portion : 51
++Memory allocation - code size : 51
+ ------------------------------------------------------------------
+ 0 46 Bra
+ 4 [+\-\p{Nd}]++
+@@ -558,8 +518,7 @@ Memory allocation - code portion : 51
+ ------------------------------------------------------------------
+
+ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
+-Memory allocation - compiled block : 163
+-Memory allocation - code portion : 27
++Memory allocation - code size : 27
+ ------------------------------------------------------------------
+ 0 22 Bra
+ 4 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0}
+@@ -568,8 +527,7 @@ Memory allocation - code portion : 27
+ ------------------------------------------------------------------
+
+ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
+-Memory allocation - compiled block : 163
+-Memory allocation - code portion : 27
++Memory allocation - code size : 27
+ ------------------------------------------------------------------
+ 0 22 Bra
+ 4 A\x{391}\x{10427}\x{ff3a}\x{1fb0}
+@@ -578,8 +536,7 @@ Memory allocation - code portion : 27
+ ------------------------------------------------------------------
+
+ /[\x{105}-\x{109}]/i,utf
+-Memory allocation - compiled block : 156
+-Memory allocation - code portion : 20
++Memory allocation - code size : 20
+ ------------------------------------------------------------------
+ 0 15 Bra
+ 4 [\x{104}-\x{109}]
+@@ -588,8 +545,7 @@ Memory allocation - code portion : 20
+ ------------------------------------------------------------------
+
+ /( ( (?(1)0|) )* )/x
+-Memory allocation - compiled block : 183
+-Memory allocation - code portion : 47
++Memory allocation - code size : 47
+ ------------------------------------------------------------------
+ 0 42 Bra
+ 4 34 CBra 1
+@@ -607,8 +563,7 @@ Memory allocation - code portion : 47
+ ------------------------------------------------------------------
+
+ /( (?(1)0|)* )/x
+-Memory allocation - compiled block : 173
+-Memory allocation - code portion : 37
++Memory allocation - code size : 37
+ ------------------------------------------------------------------
+ 0 32 Bra
+ 4 24 CBra 1
+@@ -624,8 +579,7 @@ Memory allocation - code portion : 37
+ ------------------------------------------------------------------
+
+ /[a]/
+-Memory allocation - compiled block : 147
+-Memory allocation - code portion : 11
++Memory allocation - code size : 11
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 4 a
+@@ -634,8 +588,7 @@ Memory allocation - code portion : 11
+ ------------------------------------------------------------------
+
+ /[a]/utf
+-Memory allocation - compiled block : 147
+-Memory allocation - code portion : 11
++Memory allocation - code size : 11
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 4 a
+@@ -644,8 +597,7 @@ Memory allocation - code portion : 11
+ ------------------------------------------------------------------
+
+ /[\xaa]/
+-Memory allocation - compiled block : 147
+-Memory allocation - code portion : 11
++Memory allocation - code size : 11
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 4 \x{aa}
+@@ -654,8 +606,7 @@ Memory allocation - code portion : 11
+ ------------------------------------------------------------------
+
+ /[\xaa]/utf
+-Memory allocation - compiled block : 148
+-Memory allocation - code portion : 12
++Memory allocation - code size : 12
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 4 \x{aa}
+@@ -664,8 +615,7 @@ Memory allocation - code portion : 12
+ ------------------------------------------------------------------
+
+ /[^a]/
+-Memory allocation - compiled block : 147
+-Memory allocation - code portion : 11
++Memory allocation - code size : 11
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 4 [^a]
+@@ -674,8 +624,7 @@ Memory allocation - code portion : 11
+ ------------------------------------------------------------------
+
+ /[^a]/utf
+-Memory allocation - compiled block : 147
+-Memory allocation - code portion : 11
++Memory allocation - code size : 11
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 4 [^a]
+@@ -684,8 +633,7 @@ Memory allocation - code portion : 11
+ ------------------------------------------------------------------
+
+ /[^\xaa]/
+-Memory allocation - compiled block : 147
+-Memory allocation - code portion : 11
++Memory allocation - code size : 11
+ ------------------------------------------------------------------
+ 0 6 Bra
+ 4 [^\x{aa}]
+@@ -694,8 +642,7 @@ Memory allocation - code portion : 11
+ ------------------------------------------------------------------
+
+ /[^\xaa]/utf
+-Memory allocation - compiled block : 148
+-Memory allocation - code portion : 12
++Memory allocation - code size : 12
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 4 [^\x{aa}]
+diff --git a/testdata/testoutput8-8-4 b/testdata/testoutput8-8-4
+index 81cf0f763..8bfac41a4 100644
+--- a/testdata/testoutput8-8-4
++++ b/testdata/testoutput8-8-4
+@@ -10,8 +10,7 @@
+ #pattern fullbincode,memory
+
+ /((?i)b)/
+-Memory allocation - compiled block : 161
+-Memory allocation - code portion : 25
++Memory allocation - code size : 25
+ ------------------------------------------------------------------
+ 0 19 Bra
+ 5 9 CBra 1
+@@ -22,8 +21,7 @@ Memory allocation - code portion : 25
+ ------------------------------------------------------------------
+
+ /(?s)(.*X|^B)/
+-Memory allocation - compiled block : 171
+-Memory allocation - code portion : 35
++Memory allocation - code size : 35
+ ------------------------------------------------------------------
+ 0 29 Bra
+ 5 11 CBra 1
+@@ -38,8 +36,7 @@ Memory allocation - code portion : 35
+ ------------------------------------------------------------------
+
+ /(?s:.*X|^B)/
+-Memory allocation - compiled block : 169
+-Memory allocation - code portion : 33
++Memory allocation - code size : 33
+ ------------------------------------------------------------------
+ 0 27 Bra
+ 5 9 Bra
+@@ -54,8 +51,7 @@ Memory allocation - code portion : 33
+ ------------------------------------------------------------------
+
+ /^[[:alnum:]]/
+-Memory allocation - compiled block : 181
+-Memory allocation - code portion : 45
++Memory allocation - code size : 45
+ ------------------------------------------------------------------
+ 0 39 Bra
+ 5 ^
+@@ -65,8 +61,7 @@ Memory allocation - code portion : 45
+ ------------------------------------------------------------------
+
+ /#/Ix
+-Memory allocation - compiled block : 147
+-Memory allocation - code portion : 11
++Memory allocation - code size : 11
+ ------------------------------------------------------------------
+ 0 5 Bra
+ 5 5 Ket
+@@ -78,8 +73,7 @@ Options: extended
+ Subject length lower bound = 0
+
+ /a#/Ix
+-Memory allocation - compiled block : 149
+-Memory allocation - code portion : 13
++Memory allocation - code size : 13
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 5 a
+@@ -92,8 +86,7 @@ First code unit = 'a'
+ Subject length lower bound = 1
+
+ /x?+/
+-Memory allocation - compiled block : 149
+-Memory allocation - code portion : 13
++Memory allocation - code size : 13
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 5 x?+
+@@ -102,8 +95,7 @@ Memory allocation - code portion : 13
+ ------------------------------------------------------------------
+
+ /x++/
+-Memory allocation - compiled block : 149
+-Memory allocation - code portion : 13
++Memory allocation - code size : 13
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 5 x++
+@@ -112,8 +104,7 @@ Memory allocation - code portion : 13
+ ------------------------------------------------------------------
+
+ /x{1,3}+/
+-Memory allocation - compiled block : 153
+-Memory allocation - code portion : 17
++Memory allocation - code size : 17
+ ------------------------------------------------------------------
+ 0 11 Bra
+ 5 x
+@@ -123,8 +114,7 @@ Memory allocation - code portion : 17
+ ------------------------------------------------------------------
+
+ /(x)*+/
+-Memory allocation - compiled block : 162
+-Memory allocation - code portion : 26
++Memory allocation - code size : 26
+ ------------------------------------------------------------------
+ 0 20 Bra
+ 5 Braposzero
+@@ -136,8 +126,7 @@ Memory allocation - code portion : 26
+ ------------------------------------------------------------------
+
+ /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
+-Memory allocation - compiled block : 280
+-Memory allocation - code portion : 144
++Memory allocation - code size : 144
+ ------------------------------------------------------------------
+ 0 138 Bra
+ 5 ^
+@@ -160,8 +149,7 @@ Memory allocation - code portion : 144
+ ------------------------------------------------------------------
+
+ "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 - compiled block : 966
+-Memory allocation - code portion : 830
++Memory allocation - code size : 830
+ ------------------------------------------------------------------
+ 0 824 Bra
+ 5 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
+@@ -171,8 +159,7 @@ Memory allocation - code portion : 830
+ ------------------------------------------------------------------
+
+ "\$\<\.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 - compiled block : 956
+-Memory allocation - code portion : 820
++Memory allocation - code size : 820
+ ------------------------------------------------------------------
+ 0 814 Bra
+ 5 $<.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
+@@ -182,8 +169,7 @@ Memory allocation - code portion : 820
+ ------------------------------------------------------------------
+
+ /(a(?1)b)/
+-Memory allocation - compiled block : 168
+-Memory allocation - code portion : 32
++Memory allocation - code size : 32
+ ------------------------------------------------------------------
+ 0 26 Bra
+ 5 16 CBra 1
+@@ -196,8 +182,7 @@ Memory allocation - code portion : 32
+ ------------------------------------------------------------------
+
+ /(a(?1)+b)/
+-Memory allocation - compiled block : 178
+-Memory allocation - code portion : 42
++Memory allocation - code size : 42
+ ------------------------------------------------------------------
+ 0 36 Bra
+ 5 26 CBra 1
+@@ -212,8 +197,8 @@ Memory allocation - code portion : 42
+ ------------------------------------------------------------------
+
+ /a(?P<name1>b|c)d(?P<longername2>e)/
+-Memory allocation - compiled block : 214
+-Memory allocation - code portion : 50
++Memory allocation - code size : 50
++Memory allocation - data size : 28
+ ------------------------------------------------------------------
+ 0 44 Bra
+ 5 a
+@@ -231,8 +216,8 @@ Memory allocation - code portion : 50
+ ------------------------------------------------------------------
+
+ /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/
+-Memory allocation - compiled block : 213
+-Memory allocation - code portion : 65
++Memory allocation - code size : 65
++Memory allocation - data size : 12
+ ------------------------------------------------------------------
+ 0 59 Bra
+ 5 35 Bra
+@@ -252,8 +237,8 @@ Memory allocation - code portion : 65
+ ------------------------------------------------------------------
+
+ /(?P<a>a)...(?P=a)bbb(?P>a)d/
+-Memory allocation - compiled block : 184
+-Memory allocation - code portion : 44
++Memory allocation - code size : 44
++Memory allocation - data size : 4
+ ------------------------------------------------------------------
+ 0 38 Bra
+ 5 9 CBra 1
+@@ -271,8 +256,7 @@ Memory allocation - code portion : 44
+ ------------------------------------------------------------------
+
+ /abc(?C255)de(?C)f/
+-Memory allocation - compiled block : 179
+-Memory allocation - code portion : 43
++Memory allocation - code size : 43
+ ------------------------------------------------------------------
+ 0 37 Bra
+ 5 abc
+@@ -285,8 +269,7 @@ Memory allocation - code portion : 43
+ ------------------------------------------------------------------
+
+ /abcde/auto_callout
+-Memory allocation - compiled block : 217
+-Memory allocation - code portion : 81
++Memory allocation - code size : 81
+ ------------------------------------------------------------------
+ 0 75 Bra
+ 5 Callout 255 0 1
+@@ -305,8 +288,7 @@ Memory allocation - code portion : 81
+ ------------------------------------------------------------------
+
+ /\x{100}/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 5 \x{100}
+@@ -315,8 +297,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /\x{1000}/utf
+-Memory allocation - compiled block : 151
+-Memory allocation - code portion : 15
++Memory allocation - code size : 15
+ ------------------------------------------------------------------
+ 0 9 Bra
+ 5 \x{1000}
+@@ -325,8 +306,7 @@ Memory allocation - code portion : 15
+ ------------------------------------------------------------------
+
+ /\x{10000}/utf
+-Memory allocation - compiled block : 152
+-Memory allocation - code portion : 16
++Memory allocation - code size : 16
+ ------------------------------------------------------------------
+ 0 10 Bra
+ 5 \x{10000}
+@@ -335,8 +315,7 @@ Memory allocation - code portion : 16
+ ------------------------------------------------------------------
+
+ /\x{100000}/utf
+-Memory allocation - compiled block : 152
+-Memory allocation - code portion : 16
++Memory allocation - code size : 16
+ ------------------------------------------------------------------
+ 0 10 Bra
+ 5 \x{100000}
+@@ -345,8 +324,7 @@ Memory allocation - code portion : 16
+ ------------------------------------------------------------------
+
+ /\x{10ffff}/utf
+-Memory allocation - compiled block : 152
+-Memory allocation - code portion : 16
++Memory allocation - code size : 16
+ ------------------------------------------------------------------
+ 0 10 Bra
+ 5 \x{10ffff}
+@@ -358,8 +336,7 @@ Memory allocation - code portion : 16
+ Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large
+
+ /[\x{ff}]/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 5 \x{ff}
+@@ -368,8 +345,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /[\x{100}]/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 5 \x{100}
+@@ -378,8 +354,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /\x80/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 5 \x{80}
+@@ -388,8 +363,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /\xff/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 5 \x{ff}
+@@ -398,8 +372,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /\x{0041}\x{2262}\x{0391}\x{002e}/I,utf
+-Memory allocation - compiled block : 158
+-Memory allocation - code portion : 22
++Memory allocation - code size : 22
+ ------------------------------------------------------------------
+ 0 16 Bra
+ 5 A\x{2262}\x{391}.
+@@ -413,8 +386,7 @@ Last code unit = '.'
+ Subject length lower bound = 4
+
+ /\x{D55c}\x{ad6d}\x{C5B4}/I,utf
+-Memory allocation - compiled block : 159
+-Memory allocation - code portion : 23
++Memory allocation - code size : 23
+ ------------------------------------------------------------------
+ 0 17 Bra
+ 5 \x{d55c}\x{ad6d}\x{c5b4}
+@@ -428,8 +400,7 @@ Last code unit = \xb4
+ Subject length lower bound = 3
+
+ /\x{65e5}\x{672c}\x{8a9e}/I,utf
+-Memory allocation - compiled block : 159
+-Memory allocation - code portion : 23
++Memory allocation - code size : 23
+ ------------------------------------------------------------------
+ 0 17 Bra
+ 5 \x{65e5}\x{672c}\x{8a9e}
+@@ -443,8 +414,7 @@ Last code unit = \x9e
+ Subject length lower bound = 3
+
+ /[\x{100}]/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 5 \x{100}
+@@ -453,8 +423,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /[Z\x{100}]/utf
+-Memory allocation - compiled block : 189
+-Memory allocation - code portion : 53
++Memory allocation - code size : 53
+ ------------------------------------------------------------------
+ 0 47 Bra
+ 5 [Z\x{100}]
+@@ -463,8 +432,7 @@ Memory allocation - code portion : 53
+ ------------------------------------------------------------------
+
+ /^[\x{100}\E-\Q\E\x{150}]/utf
+-Memory allocation - compiled block : 160
+-Memory allocation - code portion : 24
++Memory allocation - code size : 24
+ ------------------------------------------------------------------
+ 0 18 Bra
+ 5 ^
+@@ -474,8 +442,7 @@ Memory allocation - code portion : 24
+ ------------------------------------------------------------------
+
+ /^[\QĀ\E-\QŐ\E]/utf
+-Memory allocation - compiled block : 160
+-Memory allocation - code portion : 24
++Memory allocation - code size : 24
+ ------------------------------------------------------------------
+ 0 18 Bra
+ 5 ^
+@@ -488,8 +455,7 @@ Memory allocation - code portion : 24
+ Failed: error 106 at offset 15: missing terminating ] for character class
+
+ /[\p{L}]/
+-Memory allocation - compiled block : 157
+-Memory allocation - code portion : 21
++Memory allocation - code size : 21
+ ------------------------------------------------------------------
+ 0 15 Bra
+ 5 [\p{L}]
+@@ -498,8 +464,7 @@ Memory allocation - code portion : 21
+ ------------------------------------------------------------------
+
+ /[\p{^L}]/
+-Memory allocation - compiled block : 157
+-Memory allocation - code portion : 21
++Memory allocation - code size : 21
+ ------------------------------------------------------------------
+ 0 15 Bra
+ 5 [\P{L}]
+@@ -508,8 +473,7 @@ Memory allocation - code portion : 21
+ ------------------------------------------------------------------
+
+ /[\P{L}]/
+-Memory allocation - compiled block : 157
+-Memory allocation - code portion : 21
++Memory allocation - code size : 21
+ ------------------------------------------------------------------
+ 0 15 Bra
+ 5 [\P{L}]
+@@ -518,8 +482,7 @@ Memory allocation - code portion : 21
+ ------------------------------------------------------------------
+
+ /[\P{^L}]/
+-Memory allocation - compiled block : 157
+-Memory allocation - code portion : 21
++Memory allocation - code size : 21
+ ------------------------------------------------------------------
+ 0 15 Bra
+ 5 [\p{L}]
+@@ -528,8 +491,7 @@ Memory allocation - code portion : 21
+ ------------------------------------------------------------------
+
+ /[abc\p{L}\x{0660}]/utf
+-Memory allocation - compiled block : 192
+-Memory allocation - code portion : 56
++Memory allocation - code size : 56
+ ------------------------------------------------------------------
+ 0 50 Bra
+ 5 [a-c\p{L}\x{660}]
+@@ -538,8 +500,7 @@ Memory allocation - code portion : 56
+ ------------------------------------------------------------------
+
+ /[\p{Nd}]/utf
+-Memory allocation - compiled block : 157
+-Memory allocation - code portion : 21
++Memory allocation - code size : 21
+ ------------------------------------------------------------------
+ 0 15 Bra
+ 5 [\p{Nd}]
+@@ -548,8 +509,7 @@ Memory allocation - code portion : 21
+ ------------------------------------------------------------------
+
+ /[\p{Nd}+-]+/utf
+-Memory allocation - compiled block : 190
+-Memory allocation - code portion : 54
++Memory allocation - code size : 54
+ ------------------------------------------------------------------
+ 0 48 Bra
+ 5 [+\-\p{Nd}]++
+@@ -558,8 +518,7 @@ Memory allocation - code portion : 54
+ ------------------------------------------------------------------
+
+ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
+-Memory allocation - compiled block : 165
+-Memory allocation - code portion : 29
++Memory allocation - code size : 29
+ ------------------------------------------------------------------
+ 0 23 Bra
+ 5 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0}
+@@ -568,8 +527,7 @@ Memory allocation - code portion : 29
+ ------------------------------------------------------------------
+
+ /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
+-Memory allocation - compiled block : 165
+-Memory allocation - code portion : 29
++Memory allocation - code size : 29
+ ------------------------------------------------------------------
+ 0 23 Bra
+ 5 A\x{391}\x{10427}\x{ff3a}\x{1fb0}
+@@ -578,8 +536,7 @@ Memory allocation - code portion : 29
+ ------------------------------------------------------------------
+
+ /[\x{105}-\x{109}]/i,utf
+-Memory allocation - compiled block : 159
+-Memory allocation - code portion : 23
++Memory allocation - code size : 23
+ ------------------------------------------------------------------
+ 0 17 Bra
+ 5 [\x{104}-\x{109}]
+@@ -588,8 +545,7 @@ Memory allocation - code portion : 23
+ ------------------------------------------------------------------
+
+ /( ( (?(1)0|) )* )/x
+-Memory allocation - compiled block : 192
+-Memory allocation - code portion : 56
++Memory allocation - code size : 56
+ ------------------------------------------------------------------
+ 0 50 Bra
+ 5 40 CBra 1
+@@ -607,8 +563,7 @@ Memory allocation - code portion : 56
+ ------------------------------------------------------------------
+
+ /( (?(1)0|)* )/x
+-Memory allocation - compiled block : 180
+-Memory allocation - code portion : 44
++Memory allocation - code size : 44
+ ------------------------------------------------------------------
+ 0 38 Bra
+ 5 28 CBra 1
+@@ -624,8 +579,7 @@ Memory allocation - code portion : 44
+ ------------------------------------------------------------------
+
+ /[a]/
+-Memory allocation - compiled block : 149
+-Memory allocation - code portion : 13
++Memory allocation - code size : 13
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 5 a
+@@ -634,8 +588,7 @@ Memory allocation - code portion : 13
+ ------------------------------------------------------------------
+
+ /[a]/utf
+-Memory allocation - compiled block : 149
+-Memory allocation - code portion : 13
++Memory allocation - code size : 13
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 5 a
+@@ -644,8 +597,7 @@ Memory allocation - code portion : 13
+ ------------------------------------------------------------------
+
+ /[\xaa]/
+-Memory allocation - compiled block : 149
+-Memory allocation - code portion : 13
++Memory allocation - code size : 13
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 5 \x{aa}
+@@ -654,8 +606,7 @@ Memory allocation - code portion : 13
+ ------------------------------------------------------------------
+
+ /[\xaa]/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 5 \x{aa}
+@@ -664,8 +615,7 @@ Memory allocation - code portion : 14
+ ------------------------------------------------------------------
+
+ /[^a]/
+-Memory allocation - compiled block : 149
+-Memory allocation - code portion : 13
++Memory allocation - code size : 13
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 5 [^a]
+@@ -674,8 +624,7 @@ Memory allocation - code portion : 13
+ ------------------------------------------------------------------
+
+ /[^a]/utf
+-Memory allocation - compiled block : 149
+-Memory allocation - code portion : 13
++Memory allocation - code size : 13
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 5 [^a]
+@@ -684,8 +633,7 @@ Memory allocation - code portion : 13
+ ------------------------------------------------------------------
+
+ /[^\xaa]/
+-Memory allocation - compiled block : 149
+-Memory allocation - code portion : 13
++Memory allocation - code size : 13
+ ------------------------------------------------------------------
+ 0 7 Bra
+ 5 [^\x{aa}]
+@@ -694,8 +642,7 @@ Memory allocation - code portion : 13
+ ------------------------------------------------------------------
+
+ /[^\xaa]/utf
+-Memory allocation - compiled block : 150
+-Memory allocation - code portion : 14
++Memory allocation - code size : 14
+ ------------------------------------------------------------------
+ 0 8 Bra
+ 5 [^\x{aa}]
diff --git a/pcre2-10.10-Fix-multilib.patch b/pcre2-10.10-Fix-multilib.patch
new file mode 100644
index 0000000..89c7d80
--- /dev/null
+++ b/pcre2-10.10-Fix-multilib.patch
@@ -0,0 +1,39 @@
+From 8b6b10229201e5b148979a24e06c640dbbcfbad9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Fri, 20 Feb 2015 14:34:26 +0100
+Subject: [PATCH] Fix multilib
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Do not set RPATH nor add explicit -L path to compiler.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+
+diff --git a/pcre2-config.in b/pcre2-config.in
+index 932160e..dbef5e5 100644
+--- a/pcre2-config.in
++++ b/pcre2-config.in
+@@ -28,19 +28,7 @@ if test $# -eq 0; then
+ fi
+
+ libR=
+-case `uname -s` in
+- *SunOS*)
+- libR=" -R@libdir@"
+- ;;
+- *BSD*)
+- libR=" -Wl,-R@libdir@"
+- ;;
+-esac
+-
+ libS=
+-if test @libdir@ != /usr/lib ; then
+- libS=-L@libdir@
+-fi
+
+ while test $# -gt 0; do
+ case "$1" in
+--
+2.1.0
+
diff --git a/pcre2.spec b/pcre2.spec
new file mode 100644
index 0000000..7832ea9
--- /dev/null
+++ b/pcre2.spec
@@ -0,0 +1,224 @@
+Name: pcre2
+Version: 10.44
+Release: 1
+Summary: Perl Compatible Regular Expressions
+License: BSD-3-Clause AND FSFULLR AND X11 AND GPL-2.0-or-later AND FSFAP AND FSFUL AND GPL-3.0-or-later
+URL: https://www.pcre.org/
+Source0: https://github.com/PCRE2Project/pcre2/releases/download/%{name}-%{version}/%{name}-%{version}.tar.bz2
+
+# Do no set RPATH if libdir is not /usr/lib
+Patch0: pcre2-10.10-Fix-multilib.patch
+
+Patch6001: backport-Remove-incorrect-optimization-in-DFA-matching-when-p.patch
+Patch6002: backport-Fix-non-recognition-of-some-octal-escapes-in-substitute.patch
+Patch6003: backport-Guard-against-out-of-bounds-memory-access-when-parsing.patch
+Patch6004: backport-Add-Perl-titlecasing-475.patch
+Patch6005: backport-Fix-incorrect-positive-error-code-from-pcre2_substitute.patch
+Patch6006: backport-pcre2_compile-avoid-1-byte-buffer-overread-parsing-V.patch
+Patch6007: backport-Improve-error-message-for-N-name-in-character-classes.patch
+Patch6008: backport-pcre2test-memory-reports-only-compiled-memory-usage-for.patch
+
+BuildRequires: autoconf libtool automake coreutils gcc make readline-devel
+Obsoletes: pcre2-utf16 pcre2-utf32 pcre2-tools
+Provides: pcre2-utf16 pcre2-utf32 pcre2-tools
+Provides: bundled(sljit)
+
+%description
+PCRE2 is a re-working of the original PCRE1 library to provide an entirely new
+API. Since its initial release in 2015, there has been further development of
+the code and it now differs from PCRE1 in more than just the API.
+PCRE2 is written in C, and it has its own API. There are three sets of
+functions, one for the 8-bit library, which processes strings of bytes, one for
+the 16-bit library, which processes strings of 16-bit values, and one for the
+32-bit library, which processes strings of 32-bit values. Unlike PCRE1, there
+are no C++ wrappers.
+
+The distribution does contain a set of C wrapper functions for the 8-bit
+library that are based on the POSIX regular expression API (see the pcre2posix
+man page). These are built into a library called libpcre2-posix. Note that this
+just provides a POSIX calling interface to PCRE2; the regular expressions
+themselves still follow Perl syntax and semantics. The POSIX API is restricted,
+and does not give full access to all of PCRE2's facilities.
+
+%package devel
+Summary: Development files for %{name}
+Requires: %{name} = %{version}-%{release}
+Obsoletes: pcre2-static < %{version}-%{release}
+Provides: pcre2-static = %{version}-%{release}
+
+%description devel
+%{summary}.
+
+%package help
+Summary: Man pages for %{name}
+BuildArch: noarch
+
+%description help
+%{summary}.
+
+%prep
+%autosetup -n %{name}-%{version} -p1
+
+%build
+autoreconf -vif
+%configure \
+%ifarch sw_64
+ --disable-jit \
+%else
+ --enable-jit \
+%endif
+ --enable-pcre2grep-jit \
+ --disable-bsr-anycrlf \
+ --disable-coverage \
+ --disable-ebcdic \
+ --disable-fuzz-support \
+ --disable-jit-sealloc \
+ --disable-never-backslash-C \
+ --enable-newline-is-lf \
+ --enable-pcre2-8 \
+ --enable-pcre2-16 \
+ --enable-pcre2-32 \
+ --enable-pcre2grep-callout \
+ --enable-pcre2grep-jit \
+ --disable-pcre2grep-libbz2 \
+ --disable-pcre2grep-libz \
+ --disable-pcre2test-libedit \
+ --enable-pcre2test-libreadline \
+ --disable-rebuild-chartables \
+ --enable-shared \
+ --enable-static \
+ --enable-unicode \
+ --disable-valgrind \
+ --disable-silent-rules
+
+%make_build
+
+%install
+%make_install
+%delete_la
+
+%check
+%make_build check
+
+%files
+%license %{_pkgdocdir}/{COPYING,LICENCE}
+%exclude %{_pkgdocdir}/ChangeLog
+%doc AUTHORS NEWS HACKING README
+%{_libdir}/libpcre2-8.so.*
+%{_libdir}/libpcre2-posix.so.*
+%{_libdir}/libpcre2-16.so.*
+%{_libdir}/libpcre2-32.so.*
+%{_bindir}/pcre2grep
+%{_bindir}/pcre2test
+
+%files devel
+%{_includedir}/*.h
+%{_libdir}/*.so
+%{_libdir}/*.a
+%{_libdir}/pkgconfig/*
+%{_bindir}/pcre2-config
+%doc ./src/pcre2demo.c
+
+%files help
+%{_mandir}/man1/*
+%{_mandir}/man3/*
+%{_pkgdocdir}/*.txt
+%{_pkgdocdir}/html/
+
+%changelog
+* Sun Nov 24 2024 Funda Wang <fundawang@yeah.net> - 10.44-1
+- update to 10.44
+
+* Tue Nov 19 2024 yanglongkang <yanglongkang@h-partners.com> - 10.42-11
+- DESC:sync patches from upstream
+
+* Thu Oct 31 2024 xujing <xujing125@huawei.com> - 10.42-10
+- DESC:sync patches to fix grep testcase failed
+
+* Tue Sep 03 2024 dongyuzhen <dongyuzhen@h-partners.com> - 10.42-9
+- DESC:Remove incorrect optimization in DFA matching when partial matching and (*F) are involved
+
+* Tue Jul 23 2024 fuanan <fuanan3@h-partners.com> - 10.42-8
+- DESC:document better possible multiline matching misses
+
+* Tue May 07 2024 xujing <xujing125@huawei.com> - 10.42-7
+- DESC:Fixing an issue using empty character sets in jit
+
+* Wed Mar 06 2024 xujing <xujing125@huawei.com> - 10.42-6
+- DESC:exclude ChangeLog to avoid x86_64 conflict with i686
+
+* Mon Jan 22 2024 xujing <xujing125@huawei.com> - 10.42-5
+- DESC:Sanity checks for ctype functions
+ Fix incorrect class character matches in JIT
+
+* Mon Jan 22 2024 xujing <xujing125@huawei.com> - 10.42-4
+- DESC:sync patches from upstream to fix some bugs
+
+* Thu Dec 14 2023 xujing <xujing125@huawei.com> - 10.42-3
+- DESC:fix a possible integer overflow in DFA matching (#305)
+
+* Mon Dec 04 2023 Jingwiw <wangjingwei@iscas.ac.cn> - 10.42-2
+- enable riscv jit and fix error for sv48-sv57
+
+* Tue Jul 18 2023 zhangchenglin <zhangchenglin@kylinos.cn> - 10.42-1
+- upgrade to 10.42-1
+
+* Mon Jun 26 2023 yangmingtai <yangmingtai@huawei.com> - 10.40-4
+- DESC:sync community patches
+
+* Thu Mar 16 2023 yangmingtai <yangmingtai@huawei.com> - 10.40-3
+- DESC:sync community patches
+
+* Sat Nov 26 2022 huyubiao <huyubiao@huawei.com> - 10.40-2
+- Update the Source0 URL.
+
+* Fri Nov 18 2022 dillon chen <dillon.chen@gmail.com> - 10.40-1
+- update to 10.40
+
+* Mon Nov 14 2022 zhaozhen <zhaozhen@loongson.cn> - 10.39-5
+- Type:enhancement
+- ID:NA
+- SUG:NA
+- DESC:fix build error for loongarch64
+
+* Thu Nov 3 2022 wuzx<wuzx1226@qq.com> - 10.39-4
+- Add sw64 architecture
+
+* Tue Oct 18 2022 yangmingtai <yangmingtai@huawei.com> - 10.39-3
+- DESC:sync community patchs
+
+* Sat May 28 2022 yangmingtai <yangmingtai@huawei.com> - 10.39-2
+- DESC:fix CVE-2022-1586 and CVE-2022-1587
+
+* Tue Feb 8 2022 yangzhuangzhuang <yangzhuangzhuang1@h-partners.com> - 10.39-1
+- Type:requirement
+- ID:NA
+- SUG:NA
+- DESC:update to 10.39
+
+* Thu Jan 21 2021 yixiangzhike <zhangxingliang3@huawei.com> - 10.36-1
+- Type:requirement
+- ID:NA
+- SUG:NA
+- DESC:update to 10.36
+
+* Fri Jul 24 2020 zhangxingliang <zhangxingliang3@huawei.com> - 10.35-1
+- Type:update
+- ID:NA
+- SUG:NA
+- DESC:update to 10.35
+
+* Tue Jun 2 2020 whoisxxx <zhangxuzhou4@huawei.com> - 10.33-4
+- DESC: Disable jit for RISC-V
+
+* Tue Apr 7 2020 openEuler Buildteam <buildteam@openeuler.org> - 10.33-3
+- Type:cves
+- ID:CVE-2019-20454
+- SUG:NA
+- DESC:fix CVE-2019-20454
+
+* Mon Feb 3 2020 openEuler Buildteam <buildteam@openeuler.org> - 10.33-2
+- Fix stack buffer overflow
+
+* Sat Sep 14 2019 openEuler Buildteam <buildteam@openeuler.org> - 10.33-1
+- Package init
diff --git a/sources b/sources
new file mode 100644
index 0000000..c506ed4
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+9d1fe11e2e919c7b395e3e8f0a5c3eec pcre2-10.44.tar.bz2