diff --git a/src/pcre2_compile.c b/src/pcre2_compile.c index eb1d83e3b..7121e7167 100644 --- a/src/pcre2_compile.c +++ b/src/pcre2_compile.c @@ -6292,7 +6292,7 @@ for (;; pptr++) /* Next do the memmove before any writes. */ memmove( code + 1 + LINK_SIZE + 1 + (need_map? 32/sizeof(PCRE2_UCHAR) : 0), - rest, rest_len*sizeof(PCRE2_UCHAR)); + rest, CU2BYTES(rest_len)); /* Finally write the header data. */ *code++ = OP_XCLASS; @@ -6333,7 +6333,7 @@ for (;; pptr++) PCRE2_UCHAR *map_start = previous + 1 + LINK_SIZE + 1; previous[1 + LINK_SIZE] |= ECL_MAP; memmove(map_start + 32/sizeof(PCRE2_UCHAR), map_start, - (code - map_start) * sizeof(PCRE2_UCHAR)); + CU2BYTES(code - map_start)); memcpy(map_start, op_info.bits.classbits, 32); code += 32 / sizeof(PCRE2_UCHAR); } diff --git a/src/pcre2_compile_class.c b/src/pcre2_compile_class.c index 6edef24a1..e79c43079 100644 --- a/src/pcre2_compile_class.c +++ b/src/pcre2_compile_class.c @@ -1118,7 +1118,7 @@ while (TRUE) local_negate = (meta == META_POSIX_NEG); posix_class = *(pptr++); - should_flip_negation = local_negate; /* Note negative special */ + if (local_negate) should_flip_negation = TRUE; /* Note negative special */ /* If matching is caseless, upper and lower are converted to alpha. This relies on the fact that the class table starts with alpha, @@ -1133,6 +1133,9 @@ while (TRUE) XCL_PROP/XCL_NOTPROP directly, which is done here. */ #ifdef SUPPORT_UNICODE + /* TODO This entire block of code here appears to be unreachable!? I simply + can't see how it can be hit, given that the frontend parser doesn't emit + META_POSIX for GRAPH/PRINT/PUNCT when UCP is set. */ if ((options & PCRE2_UCP) != 0 && (xoptions & PCRE2_EXTRA_ASCII_POSIX) == 0) { @@ -1146,7 +1149,7 @@ while (TRUE) ptype = (posix_class == PC_GRAPH)? PT_PXGRAPH : (posix_class == PC_PRINT)? PT_PXPRINT : PT_PXPUNCT; - PRIV(update_classbits)(ptype, 0, !local_negate, classbits); + PRIV(update_classbits)(ptype, 0, local_negate, classbits); if ((xclass_props & XCLASS_HIGH_ANY) == 0) { @@ -1226,7 +1229,7 @@ while (TRUE) if (local_negate) for (int i = 0; i < 8; i++) - classwords[i] |= (uint8_t)(~pbits.classwords[i]); + classwords[i] |= (uint32_t)(~pbits.classwords[i]); else for (int i = 0; i < 8; i++) classwords[i] |= pbits.classwords[i]; @@ -1865,7 +1868,7 @@ else if (lhs_op_info->op_single_type == ECL_ANY) /* no-op: drop the LHS, and memmove the RHS into its place */ if (lengthptr == NULL) memmove(lhs_op_info->code_start, rhs_op_info->code_start, - rhs_op_info->length); + CU2BYTES(rhs_op_info->length)); lhs_op_info->length = rhs_op_info->length; lhs_op_info->op_single_type = rhs_op_info->op_single_type; } @@ -1921,7 +1924,7 @@ else if (lhs_op_info->op_single_type == ECL_NONE) /* no-op: drop the LHS, and memmove the RHS into its place */ if (lengthptr == NULL) memmove(lhs_op_info->code_start, rhs_op_info->code_start, - rhs_op_info->length); + CU2BYTES(rhs_op_info->length)); lhs_op_info->length = rhs_op_info->length; lhs_op_info->op_single_type = rhs_op_info->op_single_type; } @@ -1977,7 +1980,7 @@ else if (lhs_op_info->op_single_type == ECL_NONE) /* no-op: drop the LHS, and memmove the RHS into its place */ if (lengthptr == NULL) memmove(lhs_op_info->code_start, rhs_op_info->code_start, - rhs_op_info->length); + CU2BYTES(rhs_op_info->length)); lhs_op_info->length = rhs_op_info->length; lhs_op_info->op_single_type = rhs_op_info->op_single_type; } @@ -1992,7 +1995,7 @@ else if (lhs_op_info->op_single_type == ECL_ANY) fold in the negation */ if (lengthptr == NULL) memmove(lhs_op_info->code_start, rhs_op_info->code_start, - rhs_op_info->length); + CU2BYTES(rhs_op_info->length)); lhs_op_info->length = rhs_op_info->length; lhs_op_info->op_single_type = rhs_op_info->op_single_type; @@ -2157,7 +2160,7 @@ switch (meta) map_start = code_start + 1 + LINK_SIZE + 1; data_start = map_start + 32 / sizeof(PCRE2_UCHAR); memcpy(pop_info->bits.classbits, map_start, 32); - memmove(map_start, data_start, (code - data_start) * sizeof(PCRE2_UCHAR)); + memmove(map_start, data_start, CU2BYTES(code - data_start)); /* Rewind the code pointer, but make sure we adjust *lengthptr, because we do need to reserve that space (even though we only use it temporarily). */ diff --git a/testdata/testoutput11-32 b/testdata/testoutput11-32 index d24dcdc97..b7cda3d07 100644 --- a/testdata/testoutput11-32 +++ b/testdata/testoutput11-32 @@ -903,9 +903,9 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\x{80000000}-\x{8000000f}] - cls:[\x{80000002}] - op: -- + xclass: [\x{80000000}-\x{8000000f}] + xclass: [^\x{80000002}] + AND ] Ket End @@ -922,9 +922,9 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\x{80000000}-\x{8000000f}] - cls:[\x{80000002}] - op: -- + xclass: [\x{80000000}-\x{8000000f}] + xclass: [^\x{80000002}] + AND ] Ket End @@ -947,9 +947,9 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\x{80000000}-\x{8000000f}] - cls:[\x{8fffffff}] - op: || + xclass: [\x{80000000}-\x{8000000f}] + xclass: [\x{8fffffff}] + OR ] Ket End @@ -968,9 +968,9 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\x{80000000}-\x{8000000f}] - cls:[\x{80000002}] - op: -- + xclass: [\x{80000000}-\x{8000000f}] + xclass: [^\x{80000002}] + AND ] Ket End @@ -987,9 +987,9 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\x{80000000}-\x{8000000f}] - cls:[\x{80000002}] - op: -- + xclass: [\x{80000000}-\x{8000000f}] + xclass: [^\x{80000002}] + AND ] Ket End diff --git a/testdata/testoutput2 b/testdata/testoutput2 index 629fe438d..78bab1be5 100644 --- a/testdata/testoutput2 +++ b/testdata/testoutput2 @@ -19677,11 +19677,7 @@ Failed: error 212 at offset 5: missing terminating ] for extended character clas /[a[B]]C/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[a] - cls:[B] - op: || - ] + [Ba] C Ket End @@ -19697,11 +19693,7 @@ No match /[[A][B]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[A] - cls:[B] - op: || - ] + [AB] Ket End ------------------------------------------------------------------ @@ -19718,11 +19710,7 @@ No match /[[A]||[B]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[A] - cls:[B] - op: || - ] + [AB] Ket End ------------------------------------------------------------------ @@ -19737,11 +19725,7 @@ No match /[[^A][B]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[^A] - cls:[B] - op: || - ] + [^A] Ket End ------------------------------------------------------------------ @@ -19756,12 +19740,7 @@ No match /[^[A][B]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[A] - cls:[B] - op: || - op: ^ - ] + [^AB] Ket End ------------------------------------------------------------------ @@ -19776,12 +19755,7 @@ No match /[^[A]&&[B]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[A] - cls:[B] - op: && - op: ^ - ] + AllAny Ket End ------------------------------------------------------------------ @@ -19795,11 +19769,7 @@ No match /[[AC]||[BC]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[AC] - cls:[BC] - op: || - ] + [A-C] Ket End ------------------------------------------------------------------ @@ -19816,11 +19786,7 @@ No match /[[AC]&&[BC]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[AC] - cls:[BC] - op: && - ] + [C] Ket End ------------------------------------------------------------------ @@ -19837,11 +19803,7 @@ No match /[[AC]--[BC]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[AC] - cls:[BC] - op: -- - ] + [A] Ket End ------------------------------------------------------------------ @@ -19858,11 +19820,7 @@ No match /[[AC]~~[BC]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[AC] - cls:[BC] - op: ~~ - ] + [AB] Ket End ------------------------------------------------------------------ @@ -19879,11 +19837,7 @@ No match /[A[]]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[A] - cls:[\]] - op: || - ] + [A\]] Ket End ------------------------------------------------------------------ @@ -19898,11 +19852,7 @@ No match /[A[^]]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[A] - cls:[^\]] - op: || - ] + [^\]] Ket End ------------------------------------------------------------------ @@ -19919,11 +19869,7 @@ No match /[A[]]/B,alt_extended_class,allow_empty_class ------------------------------------------------------------------ Bra - eclass[ - cls:[A] - cls:[] - op: || - ] + [A] Ket End ------------------------------------------------------------------ @@ -19938,11 +19884,7 @@ No match /[A[^]]/B,alt_extended_class,allow_empty_class ------------------------------------------------------------------ Bra - eclass[ - cls:[A] - AllAny - op: || - ] + AllAny Ket End ------------------------------------------------------------------ @@ -19958,11 +19900,7 @@ No match /[A-C--B]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[A-C] - cls:[B] - op: -- - ] + [AC] Ket End ------------------------------------------------------------------ @@ -19977,12 +19915,7 @@ No match /[^A-C--B]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[A-C] - cls:[B] - op: -- - op: ^ - ] + [^AC] Ket End ------------------------------------------------------------------ @@ -19997,11 +19930,7 @@ No match /[[\d\D]--b]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - AllAny - cls:[b] - op: -- - ] + [^b] Ket End ------------------------------------------------------------------ @@ -20016,11 +19945,7 @@ No match /[\dAC-E[:space:]&&[^z]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[\x09-\x0d 0-9AC-E] - cls:[^z] - op: && - ] + [\x09-\x0d 0-9AC-E] Ket End ------------------------------------------------------------------ @@ -20047,11 +19972,7 @@ No match /[z||[^\dAC-E[:space:]]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[z] - cls:[^\x09-\x0d 0-9AC-E] - op: || - ] + [^\x09-\x0d 0-9AC-E] Ket End ------------------------------------------------------------------ @@ -20080,11 +20001,7 @@ No match /[ab||cd]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[ab] - cls:[cd] - op: || - ] + [a-d] Ket End ------------------------------------------------------------------ @@ -20099,15 +20016,7 @@ No match /[[a]b||[c]d]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[a] - cls:[b] - op: || - cls:[c] - cls:[d] - op: || - op: || - ] + [a-d] Ket End ------------------------------------------------------------------ @@ -20122,15 +20031,7 @@ No match /[a[b]||c[d]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[a] - cls:[b] - op: || - cls:[c] - cls:[d] - op: || - op: || - ] + [a-d] Ket End ------------------------------------------------------------------ @@ -20145,11 +20046,7 @@ No match /[-&&-]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[\-] - cls:[\-] - op: && - ] + [\-] Ket End ------------------------------------------------------------------ @@ -20162,11 +20059,7 @@ No match /[a-&&-a]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[\-a] - cls:[\-a] - op: && - ] + [\-a] Ket End ------------------------------------------------------------------ @@ -20181,11 +20074,7 @@ No match /[-a&&a-]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[\-a] - cls:[\-a] - op: && - ] + [\-a] Ket End ------------------------------------------------------------------ @@ -20200,15 +20089,7 @@ No match /[[a]-&&-[a]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[a] - cls:[\-] - op: || - cls:[\-] - cls:[a] - op: || - op: && - ] + [\-a] Ket End ------------------------------------------------------------------ @@ -20223,15 +20104,7 @@ No match /[-[a]&&[a]-]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[\-] - cls:[a] - op: || - cls:[a] - cls:[\-] - op: || - op: && - ] + [\-a] Ket End ------------------------------------------------------------------ @@ -20247,12 +20120,7 @@ No match ------------------------------------------------------------------ Bra Bra - eclass[ - cls:[a] - cls:[^b] - op: || - op: ^ - ] + [b] Ket Ket End @@ -20270,13 +20138,7 @@ No match /[ ^ a[ ^ b] ]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[ ^a] - cls:[ ^b] - op: || - cls:[ ] - op: || - ] + [ ^ab] Ket End ------------------------------------------------------------------ @@ -20295,11 +20157,7 @@ No match /[a-c--b]+/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[a-c] - cls:[b] - op: -- - ]++ + [ac]++ Ket End ------------------------------------------------------------------ @@ -20314,11 +20172,7 @@ No match /[a-c--b]{2,3}/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[a-c] - cls:[b] - op: -- - ]{2,3}+ + [ac]{2,3}+ Ket End ------------------------------------------------------------------ @@ -20336,11 +20190,7 @@ No match ------------------------------------------------------------------ Bra x - eclass[ - cls:[a-c] - cls:[b] - op: -- - ]++ + [ac]++ y Ket End @@ -20364,15 +20214,7 @@ No match /[A--B--C--D]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[A] - cls:[B] - op: -- - cls:[C] - op: -- - cls:[D] - op: -- - ] + [A] Ket End ------------------------------------------------------------------ @@ -20385,13 +20227,7 @@ No match /[A--A--A]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[A] - cls:[A] - op: -- - cls:[A] - op: -- - ] + [] Ket End ------------------------------------------------------------------ @@ -20404,13 +20240,7 @@ No match /[[A--A]--A]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[A] - cls:[A] - op: -- - cls:[A] - op: -- - ] + [] Ket End ------------------------------------------------------------------ @@ -20423,13 +20253,7 @@ No match /[A--[A--A]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[A] - cls:[A] - cls:[A] - op: -- - op: -- - ] + [A] Ket End ------------------------------------------------------------------ @@ -20442,11 +20266,7 @@ No match /[A--^B]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[A] - cls:[B^] - op: -- - ] + [A] Ket End ------------------------------------------------------------------ @@ -20464,11 +20284,7 @@ No match ------------------------------------------------------------------ Bra CBra 1 - eclass[ - cls:[a-z] - cls:[n] - op: -- - ] + [a-mo-z] Ket \1 Ket @@ -20491,11 +20307,7 @@ No match Bra CBra 1 x - eclass[ - cls:[a-z] - cls:[n] - op: -- - ] + [a-mo-z] y Ket \1 @@ -20520,11 +20332,7 @@ No match \1 Alt CBra 1 - eclass[ - cls:[a-z] - cls:[n] - op: -- - ] + [a-mo-z] Ket Ket Bra @@ -20532,11 +20340,7 @@ No match \1 Alt CBra 1 - eclass[ - cls:[a-z] - cls:[n] - op: -- - ] + [a-mo-z] Ket Ket Ket @@ -20562,11 +20366,7 @@ No match \1 Alt CBra 1 - eclass[ - cls:[a-z] - cls:[n] - op: -- - ] + [a-mo-z] Ket KetRmax Ket @@ -20588,11 +20388,7 @@ No match /[\d-[z]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[\-0-9] - cls:[z] - op: || - ] + [\-0-9z] Ket End ------------------------------------------------------------------ @@ -20606,11 +20402,7 @@ No match /[\d-||z]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[\-0-9] - cls:[z] - op: || - ] + [\-0-9z] Ket End ------------------------------------------------------------------ @@ -20624,11 +20416,7 @@ No match /[z[\d-]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[z] - cls:[\-0-9] - op: || - ] + [\-0-9z] Ket End ------------------------------------------------------------------ @@ -20642,11 +20430,7 @@ No match /[1-[z]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[\-1] - cls:[z] - op: || - ] + [\-1z] Ket End ------------------------------------------------------------------ @@ -20660,11 +20444,7 @@ No match /[1-||z]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[\-1] - cls:[z] - op: || - ] + [\-1z] Ket End ------------------------------------------------------------------ @@ -20678,11 +20458,7 @@ No match /[z[1-]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[z] - cls:[\-1] - op: || - ] + [\-1z] Ket End ------------------------------------------------------------------ @@ -20783,11 +20559,7 @@ Failed: error 150 at offset 5: invalid range in character class /[abc -- b]+/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[ a-c] - cls:[ b] - op: -- - ]++ + [ac]++ Ket End ------------------------------------------------------------------ @@ -20818,9 +20590,7 @@ Failed: error 106 at offset 3: missing terminating ] for character class /(?[ []] ])/B,allow_empty_class ------------------------------------------------------------------ Bra - eclass[ - cls:[\]] - ] + [\]] Ket End ------------------------------------------------------------------ diff --git a/testdata/testoutput5 b/testdata/testoutput5 index 80d1fd531..3c25bafeb 100644 --- a/testdata/testoutput5 +++ b/testdata/testoutput5 @@ -6238,9 +6238,10 @@ Failed: error 115 at offset 52: reference to non-existent subpattern ------------------------------------------------------------------ Bra eclass[ - cls:[\p{Lu}] - cls:[\p{Nd}] - op: || + bitmap: [0-9A-Z\xc0-\xd6\xd8-\xde] + xclass: [\p{Lu}] + xclass: [\p{Nd}] + OR ] Ket End @@ -6259,9 +6260,10 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\p{L}] - cls:[\p{Nd}] - op: || + bitmap: [0-9A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\xff] + xclass: [\p{L}] + xclass: [\p{Nd}] + OR ] Ket End @@ -6280,9 +6282,10 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\p{Lu}] - cls:[\p{Nd}] - op: || + bitmap: [0-9A-Z\xc0-\xd6\xd8-\xde] + xclass: [\p{Lu}] + xclass: [\p{Nd}] + OR ] Ket End @@ -6299,9 +6302,10 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[^\p{L}] - cls:[\p{Nd}] - op: || + bitmap: [^A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\xff] + xclass: [^\p{L}] + xclass: [\p{Nd}] + OR ] Ket End @@ -6318,10 +6322,10 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\p{L}] - cls:[\p{Nd}] - op: || - op: ^ + bitmap: [^0-9A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\xff] + xclass: [^\p{L}] + xclass: [^\p{Nd}] + AND ] Ket End @@ -6338,10 +6342,10 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\p{L}] - cls:[\p{Nd}] - op: && - op: ^ + bitmap: [^] + xclass: [^\p{L}] + xclass: [^\p{Nd}] + OR ] Ket End @@ -6355,9 +6359,10 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\p{Lu}\p{Ll}] - cls:[\p{Nd}\p{Ll}] - op: || + bitmap: [0-9A-Za-z\xb5\xc0-\xd6\xd8-\xf6\xf8-\xff] + xclass: [\p{Lu}\p{Ll}] + xclass: [\p{Nd}\p{Ll}] + OR ] Ket End @@ -6376,9 +6381,10 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\p{Lu}\p{Ll}] - cls:[\p{Nd}\p{Ll}] - op: && + bitmap: [a-z\xb5\xdf-\xf6\xf8-\xff] + xclass: [\p{Lu}\p{Ll}] + xclass: [\p{Nd}\p{Ll}] + AND ] Ket End @@ -6397,9 +6403,10 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\p{Lu}\p{Ll}] - cls:[\p{Nd}\p{Ll}] - op: -- + bitmap: [A-Z\xc0-\xd6\xd8-\xde] + xclass: [\p{Lu}\p{Ll}] + xclass: [^\p{Nd}\p{Ll}] + AND ] Ket End @@ -6418,9 +6425,10 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\p{Lu}\p{Ll}] - cls:[\p{Nd}\p{Ll}] - op: ~~ + bitmap: [0-9A-Z\xc0-\xd6\xd8-\xde] + xclass: [\p{Lu}\p{Ll}] + xclass: [\p{Nd}\p{Ll}] + XOR ] Ket End @@ -6438,11 +6446,7 @@ No match /[\pL[]]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[\p{L}] - cls:[\]] - op: || - ] + [A-Z\]a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\xff\p{L}] Ket End ------------------------------------------------------------------ @@ -6457,11 +6461,7 @@ No match /[\pL[^]]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[\p{L}] - cls:[^\]] - op: || - ] + [^\]] Ket End ------------------------------------------------------------------ @@ -6478,11 +6478,7 @@ No match /[\pL[]]/B,alt_extended_class,allow_empty_class ------------------------------------------------------------------ Bra - eclass[ - cls:[\p{L}] - cls:[] - op: || - ] + [A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\xff\p{L}] Ket End ------------------------------------------------------------------ @@ -6497,11 +6493,7 @@ No match /[\pL[^]]/B,alt_extended_class,allow_empty_class ------------------------------------------------------------------ Bra - eclass[ - cls:[\p{L}] - AllAny - op: || - ] + AllAny Ket End ------------------------------------------------------------------ @@ -6517,11 +6509,7 @@ No match /[\dAC-E[:space:]\p{Lu}&&[^z]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[\x09-\x0d 0-9A-Z\xc0-\xd6\xd8-\xde\p{Lu}] - cls:[^z] - op: && - ] + [\x09-\x0d 0-9A-Z\xc0-\xd6\xd8-\xde\p{Lu}] Ket End ------------------------------------------------------------------ @@ -6546,11 +6534,7 @@ No match /[z||[^\dAC-E[:space:]\p{Lu}]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[z] - cls:[^\x09-\x0d 0-9A-Z\xc0-\xd6\xd8-\xde\p{Lu}] - op: || - ] + [^\x09-\x0d 0-9A-Z\xc0-\xd6\xd8-\xde\p{Lu}] Ket End ------------------------------------------------------------------ @@ -6579,11 +6563,7 @@ No match /[\p{Lu}\p{Nd}||cd]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[\p{Lu}\p{Nd}] - cls:[cd] - op: || - ] + [0-9A-Zcd\xc0-\xd6\xd8-\xde\p{Lu}\p{Nd}] Ket End ------------------------------------------------------------------ @@ -6601,13 +6581,10 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\p{Lu}] - cls:[\p{Nd}] - op: || - cls:[c] - cls:[d] - op: || - op: || + bitmap: [0-9A-Zcd\xc0-\xd6\xd8-\xde] + xclass: [\p{Lu}] + xclass: [\p{Nd}] + OR ] Ket End @@ -6626,13 +6603,10 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\p{Lu}] - cls:[\p{Nd}] - op: || - cls:[c] - cls:[d] - op: || - op: || + bitmap: [0-9A-Zcd\xc0-\xd6\xd8-\xde] + xclass: [\p{Lu}] + xclass: [\p{Nd}] + OR ] Ket End @@ -6783,9 +6757,10 @@ Failed: error 150 at offset 6: invalid range in character class ------------------------------------------------------------------ Bra eclass[ - cls:[\-A-Z\xc0-\xd6\xd8-\xde\p{Lu}] - cls:[\-A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\xff\p{L}] - op: && + bitmap: [\-A-Z\xc0-\xd6\xd8-\xde] + xclass: [\p{Lu}] + xclass: [\p{L}] + AND ] Ket End @@ -6802,9 +6777,10 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\-A-Z\xc0-\xd6\xd8-\xde\p{Lu}] - cls:[\-A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\xff\p{L}] - op: && + bitmap: [\-A-Z\xc0-\xd6\xd8-\xde] + xclass: [\p{Lu}] + xclass: [\p{L}] + AND ] Ket End @@ -6821,13 +6797,10 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\p{Lu}] - cls:[\-] - op: || - cls:[\-] - cls:[\p{L}] - op: || - op: && + bitmap: [\-A-Z\xc0-\xd6\xd8-\xde] + xclass: [\p{Lu}] + xclass: [\p{L}] + AND ] Ket End @@ -6844,13 +6817,10 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\-] - cls:[\p{Lu}] - op: || - cls:[\p{L}] - cls:[\-] - op: || - op: && + bitmap: [\-A-Z\xc0-\xd6\xd8-\xde] + xclass: [\p{Lu}] + xclass: [\p{L}] + AND ] Ket End @@ -6867,12 +6837,7 @@ No match ------------------------------------------------------------------ Bra Bra - eclass[ - cls:[5] - cls:[^\p{Nd}] - op: || - op: ^ - ] + [0-46-9\p{Nd}] Ket Ket End @@ -6891,12 +6856,7 @@ No match ------------------------------------------------------------------ Bra Bra - eclass[ - cls:[\p{Nd}] - cls:[^5] - op: || - op: ^ - ] + [] Ket Ket End @@ -6916,10 +6876,9 @@ No match Bra Bra eclass[ - cls:[\p{Nd}] - cls:[^\p{Nd}] - op: || - op: ^ + xclass: [^\p{Nd}] + xclass: [\p{Nd}] + AND ] Ket Ket @@ -6939,11 +6898,10 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[ ^a-z\xb5\xdf-\xf6\xf8-\xff\p{Ll}] - cls:[ 0-9^\p{Nd}] - op: || - cls:[ ] - op: || + bitmap: [ 0-9^a-z\xb5\xdf-\xf6\xf8-\xff] + xclass: [\p{Ll}] + xclass: [\p{Nd}] + OR ] Ket End @@ -6965,11 +6923,7 @@ No match /[a-c--\p{Nd}]+/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[a-c] - cls:[\p{Nd}] - op: -- - ]++ + [a-c]++ Ket End ------------------------------------------------------------------ @@ -6984,11 +6938,7 @@ No match /[a-c--\p{Nd}]{2,3}/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[a-c] - cls:[\p{Nd}] - op: -- - ]{2,3}+ + [a-c]{2,3}+ Ket End ------------------------------------------------------------------ @@ -7006,11 +6956,7 @@ No match ------------------------------------------------------------------ Bra x - eclass[ - cls:[a-c] - cls:[\p{Nd}] - op: -- - ]++ + [a-c]++ y Ket End @@ -7035,11 +6981,11 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\p{L}] - cls:[\p{L}] - op: -- - cls:[\p{L}] - op: -- + xclass: [\p{L}] + xclass: [^\p{L}] + AND + xclass: [^\p{L}] + AND ] Ket End @@ -7054,11 +7000,11 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\p{L}] - cls:[\p{L}] - op: -- - cls:[\p{L}] - op: -- + xclass: [\p{L}] + xclass: [^\p{L}] + AND + xclass: [^\p{L}] + AND ] Ket End @@ -7073,11 +7019,12 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\p{L}] - cls:[\p{L}] - cls:[\p{L}] - op: -- - op: -- + bitmap: [A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\xff] + xclass: [\p{L}] + xclass: [^\p{L}] + xclass: [\p{L}] + OR + AND ] Ket End @@ -7092,9 +7039,10 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\p{L}] - cls:[0-9^\p{Nd}] - op: -- + bitmap: [A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\xff] + xclass: [\p{L}] + xclass: [^\p{Nd}] + AND ] Ket End @@ -7111,13 +7059,7 @@ No match ------------------------------------------------------------------ Bra CBra 1 - eclass[ - cls:[a-z] - cls:[\p{L}] - cls:[n] - op: && - op: -- - ] + [a-mo-z] Ket \1 Ket @@ -7140,13 +7082,7 @@ No match Bra CBra 1 x - eclass[ - cls:[a-z] - cls:[\p{L}] - cls:[n] - op: && - op: -- - ] + [a-mo-z] y Ket \1 @@ -7171,13 +7107,7 @@ No match \1 Alt CBra 1 - eclass[ - cls:[a-z] - cls:[\p{L}] - cls:[n] - op: && - op: -- - ] + [a-mo-z] Ket Ket Bra @@ -7185,13 +7115,7 @@ No match \1 Alt CBra 1 - eclass[ - cls:[a-z] - cls:[\p{L}] - cls:[n] - op: && - op: -- - ] + [a-mo-z] Ket Ket Ket @@ -7217,13 +7141,7 @@ No match \1 Alt CBra 1 - eclass[ - cls:[a-z] - cls:[\p{L}] - cls:[n] - op: && - op: -- - ] + [a-mo-z] Ket KetRmax Ket @@ -7246,11 +7164,12 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\p{Nd}] - cls:[\p{L}] - cls:[\p{Lu}] - op: -- - op: || + bitmap: [0-9a-z\xaa\xb5\xba\xdf-\xf6\xf8-\xff] + xclass: [\p{Nd}] + xclass: [\p{L}] + xclass: [^\p{Lu}] + AND + OR ] Ket End @@ -7266,11 +7185,7 @@ No match /[\P{Nd}||2]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[\P{Nd}] - cls:[2] - op: || - ] + [\x00-/2:-\xff\P{Nd}] Ket End ------------------------------------------------------------------ @@ -7289,10 +7204,7 @@ No match /[^[\P{Nd}]]/B,alt_extended_class ------------------------------------------------------------------ Bra - eclass[ - cls:[\P{Nd}] - op: ^ - ] + [^\x00-/:-\xff\P{Nd}] Ket End ------------------------------------------------------------------ @@ -7312,9 +7224,10 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[\p{Lu}] - cls:[\p{Ll}] - op: ~~ + bitmap: [A-Za-z\xb5\xc0-\xd6\xd8-\xf6\xf8-\xff] + xclass: [\p{Lu}] + xclass: [\p{Ll}] + XOR ] Ket End @@ -7333,9 +7246,10 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[1A-Za-z\xb5\xc0-\xd6\xd8-\xf6\xf8-\xff\p{Lc}] - cls:[\p{Lc}] - op: ~~ + bitmap: [1] + xclass: [\p{Lc}] + xclass: [\p{Lc}] + XOR ] Ket End @@ -7354,9 +7268,10 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[1A-Z\xc0-\xd6\xd8-\xde\p{Lu}] - cls:[1a-z\xb5\xdf-\xf6\xf8-\xff\p{Ll}] - op: && + bitmap: [1] + xclass: [\p{Lu}] + xclass: [\p{Ll}] + AND ] Ket End @@ -7377,9 +7292,10 @@ No match ------------------------------------------------------------------ Bra eclass[ - cls:[1A-Za-z\xb5\xc0-\xd6\xd8-\xf6\xf8-\xff\p{Lc}] - cls:[1A-Za-z\xb5\xc0-\xd6\xd8-\xf6\xf8-\xff\p{Lc}] - op: && + bitmap: [1A-Za-z\xb5\xc0-\xd6\xd8-\xf6\xf8-\xff] + xclass: [\p{Lc}] + xclass: [\p{Lc}] + AND ] Ket End