Annotation of embedaddon/php/ext/mbstring/oniguruma/enc/unicode.c, revision 1.1.1.1

1.1       misho       1: /**********************************************************************
                      2:   unicode.c -  Oniguruma (regular expression library)
                      3: **********************************************************************/
                      4: /*-
                      5:  * Copyright (c) 2002-2004  K.Kosako  <sndgk393 AT ybb DOT ne DOT jp>
                      6:  * All rights reserved.
                      7:  *
                      8:  * Redistribution and use in source and binary forms, with or without
                      9:  * modification, are permitted provided that the following conditions
                     10:  * are met:
                     11:  * 1. Redistributions of source code must retain the above copyright
                     12:  *    notice, this list of conditions and the following disclaimer.
                     13:  * 2. Redistributions in binary form must reproduce the above copyright
                     14:  *    notice, this list of conditions and the following disclaimer in the
                     15:  *    documentation and/or other materials provided with the distribution.
                     16:  *
                     17:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
                     18:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     19:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     20:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
                     21:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     22:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     23:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     24:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     25:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     26:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     27:  * SUCH DAMAGE.
                     28:  */
                     29: 
                     30: #include "regenc.h"
                     31: 
                     32: 
                     33: const unsigned short OnigEnc_Unicode_ISO_8859_1_CtypeTable[256] = {
                     34:   0x2008, 0x2008, 0x2008, 0x2008, 0x2008, 0x2008, 0x2008, 0x2008,
                     35:   0x2008, 0x228c, 0x2289, 0x2288, 0x2288, 0x2288, 0x2008, 0x2008,
                     36:   0x2008, 0x2008, 0x2008, 0x2008, 0x2008, 0x2008, 0x2008, 0x2008,
                     37:   0x2008, 0x2008, 0x2008, 0x2008, 0x2008, 0x2008, 0x2008, 0x2008,
                     38:   0x2284, 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x21a0,
                     39:   0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x21a0,
                     40:   0x38b0, 0x38b0, 0x38b0, 0x38b0, 0x38b0, 0x38b0, 0x38b0, 0x38b0,
                     41:   0x38b0, 0x38b0, 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x21a0,
                     42:   0x21a0, 0x3ca2, 0x3ca2, 0x3ca2, 0x3ca2, 0x3ca2, 0x3ca2, 0x34a2,
                     43:   0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,
                     44:   0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,
                     45:   0x34a2, 0x34a2, 0x34a2, 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x31a0,
                     46:   0x21a0, 0x38e2, 0x38e2, 0x38e2, 0x38e2, 0x38e2, 0x38e2, 0x30e2,
                     47:   0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,
                     48:   0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,
                     49:   0x30e2, 0x30e2, 0x30e2, 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x2008,
                     50:   0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0288, 0x0008, 0x0008,
                     51:   0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,
                     52:   0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,
                     53:   0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,
                     54:   0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0,
                     55:   0x00a0, 0x00a0, 0x10e2, 0x01a0, 0x00a0, 0x00a8, 0x00a0, 0x00a0,
                     56:   0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x10e2, 0x00a0, 0x01a0,
                     57:   0x00a0, 0x10a0, 0x10e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0,
                     58:   0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2,
                     59:   0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2,
                     60:   0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x00a0,
                     61:   0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x10e2,
                     62:   0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2,
                     63:   0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2,
                     64:   0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x00a0,
                     65:   0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2
                     66: };
                     67: 
                     68: static const OnigCodePoint CRAlnum[] = {
                     69: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                     70:   414,
                     71: #else
                     72:   9,
                     73: #endif
                     74:   0x0030, 0x0039,
                     75:   0x0041, 0x005a,
                     76:   0x0061, 0x007a,
                     77:   0x00aa, 0x00aa,
                     78:   0x00b5, 0x00b5,
                     79:   0x00ba, 0x00ba,
                     80:   0x00c0, 0x00d6,
                     81:   0x00d8, 0x00f6,
                     82:   0x00f8, 0x0236
                     83: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                     84:   ,
                     85:   0x0250, 0x02c1,
                     86:   0x02c6, 0x02d1,
                     87:   0x02e0, 0x02e4,
                     88:   0x02ee, 0x02ee,
                     89:   0x0300, 0x0357,
                     90:   0x035d, 0x036f,
                     91:   0x037a, 0x037a,
                     92:   0x0386, 0x0386,
                     93:   0x0388, 0x038a,
                     94:   0x038c, 0x038c,
                     95:   0x038e, 0x03a1,
                     96:   0x03a3, 0x03ce,
                     97:   0x03d0, 0x03f5,
                     98:   0x03f7, 0x03fb,
                     99:   0x0400, 0x0481,
                    100:   0x0483, 0x0486,
                    101:   0x0488, 0x04ce,
                    102:   0x04d0, 0x04f5,
                    103:   0x04f8, 0x04f9,
                    104:   0x0500, 0x050f,
                    105:   0x0531, 0x0556,
                    106:   0x0559, 0x0559,
                    107:   0x0561, 0x0587,
                    108:   0x0591, 0x05a1,
                    109:   0x05a3, 0x05b9,
                    110:   0x05bb, 0x05bd,
                    111:   0x05bf, 0x05bf,
                    112:   0x05c1, 0x05c2,
                    113:   0x05c4, 0x05c4,
                    114:   0x05d0, 0x05ea,
                    115:   0x05f0, 0x05f2,
                    116:   0x0610, 0x0615,
                    117:   0x0621, 0x063a,
                    118:   0x0640, 0x0658,
                    119:   0x0660, 0x0669,
                    120:   0x066e, 0x06d3,
                    121:   0x06d5, 0x06dc,
                    122:   0x06de, 0x06e8,
                    123:   0x06ea, 0x06fc,
                    124:   0x06ff, 0x06ff,
                    125:   0x0710, 0x074a,
                    126:   0x074d, 0x074f,
                    127:   0x0780, 0x07b1,
                    128:   0x0901, 0x0939,
                    129:   0x093c, 0x094d,
                    130:   0x0950, 0x0954,
                    131:   0x0958, 0x0963,
                    132:   0x0966, 0x096f,
                    133:   0x0981, 0x0983,
                    134:   0x0985, 0x098c,
                    135:   0x098f, 0x0990,
                    136:   0x0993, 0x09a8,
                    137:   0x09aa, 0x09b0,
                    138:   0x09b2, 0x09b2,
                    139:   0x09b6, 0x09b9,
                    140:   0x09bc, 0x09c4,
                    141:   0x09c7, 0x09c8,
                    142:   0x09cb, 0x09cd,
                    143:   0x09d7, 0x09d7,
                    144:   0x09dc, 0x09dd,
                    145:   0x09df, 0x09e3,
                    146:   0x09e6, 0x09f1,
                    147:   0x0a01, 0x0a03,
                    148:   0x0a05, 0x0a0a,
                    149:   0x0a0f, 0x0a10,
                    150:   0x0a13, 0x0a28,
                    151:   0x0a2a, 0x0a30,
                    152:   0x0a32, 0x0a33,
                    153:   0x0a35, 0x0a36,
                    154:   0x0a38, 0x0a39,
                    155:   0x0a3c, 0x0a3c,
                    156:   0x0a3e, 0x0a42,
                    157:   0x0a47, 0x0a48,
                    158:   0x0a4b, 0x0a4d,
                    159:   0x0a59, 0x0a5c,
                    160:   0x0a5e, 0x0a5e,
                    161:   0x0a66, 0x0a74,
                    162:   0x0a81, 0x0a83,
                    163:   0x0a85, 0x0a8d,
                    164:   0x0a8f, 0x0a91,
                    165:   0x0a93, 0x0aa8,
                    166:   0x0aaa, 0x0ab0,
                    167:   0x0ab2, 0x0ab3,
                    168:   0x0ab5, 0x0ab9,
                    169:   0x0abc, 0x0ac5,
                    170:   0x0ac7, 0x0ac9,
                    171:   0x0acb, 0x0acd,
                    172:   0x0ad0, 0x0ad0,
                    173:   0x0ae0, 0x0ae3,
                    174:   0x0ae6, 0x0aef,
                    175:   0x0b01, 0x0b03,
                    176:   0x0b05, 0x0b0c,
                    177:   0x0b0f, 0x0b10,
                    178:   0x0b13, 0x0b28,
                    179:   0x0b2a, 0x0b30,
                    180:   0x0b32, 0x0b33,
                    181:   0x0b35, 0x0b39,
                    182:   0x0b3c, 0x0b43,
                    183:   0x0b47, 0x0b48,
                    184:   0x0b4b, 0x0b4d,
                    185:   0x0b56, 0x0b57,
                    186:   0x0b5c, 0x0b5d,
                    187:   0x0b5f, 0x0b61,
                    188:   0x0b66, 0x0b6f,
                    189:   0x0b71, 0x0b71,
                    190:   0x0b82, 0x0b83,
                    191:   0x0b85, 0x0b8a,
                    192:   0x0b8e, 0x0b90,
                    193:   0x0b92, 0x0b95,
                    194:   0x0b99, 0x0b9a,
                    195:   0x0b9c, 0x0b9c,
                    196:   0x0b9e, 0x0b9f,
                    197:   0x0ba3, 0x0ba4,
                    198:   0x0ba8, 0x0baa,
                    199:   0x0bae, 0x0bb5,
                    200:   0x0bb7, 0x0bb9,
                    201:   0x0bbe, 0x0bc2,
                    202:   0x0bc6, 0x0bc8,
                    203:   0x0bca, 0x0bcd,
                    204:   0x0bd7, 0x0bd7,
                    205:   0x0be7, 0x0bef,
                    206:   0x0c01, 0x0c03,
                    207:   0x0c05, 0x0c0c,
                    208:   0x0c0e, 0x0c10,
                    209:   0x0c12, 0x0c28,
                    210:   0x0c2a, 0x0c33,
                    211:   0x0c35, 0x0c39,
                    212:   0x0c3e, 0x0c44,
                    213:   0x0c46, 0x0c48,
                    214:   0x0c4a, 0x0c4d,
                    215:   0x0c55, 0x0c56,
                    216:   0x0c60, 0x0c61,
                    217:   0x0c66, 0x0c6f,
                    218:   0x0c82, 0x0c83,
                    219:   0x0c85, 0x0c8c,
                    220:   0x0c8e, 0x0c90,
                    221:   0x0c92, 0x0ca8,
                    222:   0x0caa, 0x0cb3,
                    223:   0x0cb5, 0x0cb9,
                    224:   0x0cbc, 0x0cc4,
                    225:   0x0cc6, 0x0cc8,
                    226:   0x0cca, 0x0ccd,
                    227:   0x0cd5, 0x0cd6,
                    228:   0x0cde, 0x0cde,
                    229:   0x0ce0, 0x0ce1,
                    230:   0x0ce6, 0x0cef,
                    231:   0x0d02, 0x0d03,
                    232:   0x0d05, 0x0d0c,
                    233:   0x0d0e, 0x0d10,
                    234:   0x0d12, 0x0d28,
                    235:   0x0d2a, 0x0d39,
                    236:   0x0d3e, 0x0d43,
                    237:   0x0d46, 0x0d48,
                    238:   0x0d4a, 0x0d4d,
                    239:   0x0d57, 0x0d57,
                    240:   0x0d60, 0x0d61,
                    241:   0x0d66, 0x0d6f,
                    242:   0x0d82, 0x0d83,
                    243:   0x0d85, 0x0d96,
                    244:   0x0d9a, 0x0db1,
                    245:   0x0db3, 0x0dbb,
                    246:   0x0dbd, 0x0dbd,
                    247:   0x0dc0, 0x0dc6,
                    248:   0x0dca, 0x0dca,
                    249:   0x0dcf, 0x0dd4,
                    250:   0x0dd6, 0x0dd6,
                    251:   0x0dd8, 0x0ddf,
                    252:   0x0df2, 0x0df3,
                    253:   0x0e01, 0x0e3a,
                    254:   0x0e40, 0x0e4e,
                    255:   0x0e50, 0x0e59,
                    256:   0x0e81, 0x0e82,
                    257:   0x0e84, 0x0e84,
                    258:   0x0e87, 0x0e88,
                    259:   0x0e8a, 0x0e8a,
                    260:   0x0e8d, 0x0e8d,
                    261:   0x0e94, 0x0e97,
                    262:   0x0e99, 0x0e9f,
                    263:   0x0ea1, 0x0ea3,
                    264:   0x0ea5, 0x0ea5,
                    265:   0x0ea7, 0x0ea7,
                    266:   0x0eaa, 0x0eab,
                    267:   0x0ead, 0x0eb9,
                    268:   0x0ebb, 0x0ebd,
                    269:   0x0ec0, 0x0ec4,
                    270:   0x0ec6, 0x0ec6,
                    271:   0x0ec8, 0x0ecd,
                    272:   0x0ed0, 0x0ed9,
                    273:   0x0edc, 0x0edd,
                    274:   0x0f00, 0x0f00,
                    275:   0x0f18, 0x0f19,
                    276:   0x0f20, 0x0f29,
                    277:   0x0f35, 0x0f35,
                    278:   0x0f37, 0x0f37,
                    279:   0x0f39, 0x0f39,
                    280:   0x0f3e, 0x0f47,
                    281:   0x0f49, 0x0f6a,
                    282:   0x0f71, 0x0f84,
                    283:   0x0f86, 0x0f8b,
                    284:   0x0f90, 0x0f97,
                    285:   0x0f99, 0x0fbc,
                    286:   0x0fc6, 0x0fc6,
                    287:   0x1000, 0x1021,
                    288:   0x1023, 0x1027,
                    289:   0x1029, 0x102a,
                    290:   0x102c, 0x1032,
                    291:   0x1036, 0x1039,
                    292:   0x1040, 0x1049,
                    293:   0x1050, 0x1059,
                    294:   0x10a0, 0x10c5,
                    295:   0x10d0, 0x10f8,
                    296:   0x1100, 0x1159,
                    297:   0x115f, 0x11a2,
                    298:   0x11a8, 0x11f9,
                    299:   0x1200, 0x1206,
                    300:   0x1208, 0x1246,
                    301:   0x1248, 0x1248,
                    302:   0x124a, 0x124d,
                    303:   0x1250, 0x1256,
                    304:   0x1258, 0x1258,
                    305:   0x125a, 0x125d,
                    306:   0x1260, 0x1286,
                    307:   0x1288, 0x1288,
                    308:   0x128a, 0x128d,
                    309:   0x1290, 0x12ae,
                    310:   0x12b0, 0x12b0,
                    311:   0x12b2, 0x12b5,
                    312:   0x12b8, 0x12be,
                    313:   0x12c0, 0x12c0,
                    314:   0x12c2, 0x12c5,
                    315:   0x12c8, 0x12ce,
                    316:   0x12d0, 0x12d6,
                    317:   0x12d8, 0x12ee,
                    318:   0x12f0, 0x130e,
                    319:   0x1310, 0x1310,
                    320:   0x1312, 0x1315,
                    321:   0x1318, 0x131e,
                    322:   0x1320, 0x1346,
                    323:   0x1348, 0x135a,
                    324:   0x1369, 0x1371,
                    325:   0x13a0, 0x13f4,
                    326:   0x1401, 0x166c,
                    327:   0x166f, 0x1676,
                    328:   0x1681, 0x169a,
                    329:   0x16a0, 0x16ea,
                    330:   0x1700, 0x170c,
                    331:   0x170e, 0x1714,
                    332:   0x1720, 0x1734,
                    333:   0x1740, 0x1753,
                    334:   0x1760, 0x176c,
                    335:   0x176e, 0x1770,
                    336:   0x1772, 0x1773,
                    337:   0x1780, 0x17b3,
                    338:   0x17b6, 0x17d3,
                    339:   0x17d7, 0x17d7,
                    340:   0x17dc, 0x17dd,
                    341:   0x17e0, 0x17e9,
                    342:   0x180b, 0x180d,
                    343:   0x1810, 0x1819,
                    344:   0x1820, 0x1877,
                    345:   0x1880, 0x18a9,
                    346:   0x1900, 0x191c,
                    347:   0x1920, 0x192b,
                    348:   0x1930, 0x193b,
                    349:   0x1946, 0x196d,
                    350:   0x1970, 0x1974,
                    351:   0x1d00, 0x1d6b,
                    352:   0x1e00, 0x1e9b,
                    353:   0x1ea0, 0x1ef9,
                    354:   0x1f00, 0x1f15,
                    355:   0x1f18, 0x1f1d,
                    356:   0x1f20, 0x1f45,
                    357:   0x1f48, 0x1f4d,
                    358:   0x1f50, 0x1f57,
                    359:   0x1f59, 0x1f59,
                    360:   0x1f5b, 0x1f5b,
                    361:   0x1f5d, 0x1f5d,
                    362:   0x1f5f, 0x1f7d,
                    363:   0x1f80, 0x1fb4,
                    364:   0x1fb6, 0x1fbc,
                    365:   0x1fbe, 0x1fbe,
                    366:   0x1fc2, 0x1fc4,
                    367:   0x1fc6, 0x1fcc,
                    368:   0x1fd0, 0x1fd3,
                    369:   0x1fd6, 0x1fdb,
                    370:   0x1fe0, 0x1fec,
                    371:   0x1ff2, 0x1ff4,
                    372:   0x1ff6, 0x1ffc,
                    373:   0x2071, 0x2071,
                    374:   0x207f, 0x207f,
                    375:   0x20d0, 0x20ea,
                    376:   0x2102, 0x2102,
                    377:   0x2107, 0x2107,
                    378:   0x210a, 0x2113,
                    379:   0x2115, 0x2115,
                    380:   0x2119, 0x211d,
                    381:   0x2124, 0x2124,
                    382:   0x2126, 0x2126,
                    383:   0x2128, 0x2128,
                    384:   0x212a, 0x212d,
                    385:   0x212f, 0x2131,
                    386:   0x2133, 0x2139,
                    387:   0x213d, 0x213f,
                    388:   0x2145, 0x2149,
                    389:   0x3005, 0x3006,
                    390:   0x302a, 0x302f,
                    391:   0x3031, 0x3035,
                    392:   0x303b, 0x303c,
                    393:   0x3041, 0x3096,
                    394:   0x3099, 0x309a,
                    395:   0x309d, 0x309f,
                    396:   0x30a1, 0x30fa,
                    397:   0x30fc, 0x30ff,
                    398:   0x3105, 0x312c,
                    399:   0x3131, 0x318e,
                    400:   0x31a0, 0x31b7,
                    401:   0x31f0, 0x31ff,
                    402:   0x3400, 0x4db5,
                    403:   0x4e00, 0x9fa5,
                    404:   0xa000, 0xa48c,
                    405:   0xac00, 0xd7a3,
                    406:   0xf900, 0xfa2d,
                    407:   0xfa30, 0xfa6a,
                    408:   0xfb00, 0xfb06,
                    409:   0xfb13, 0xfb17,
                    410:   0xfb1d, 0xfb28,
                    411:   0xfb2a, 0xfb36,
                    412:   0xfb38, 0xfb3c,
                    413:   0xfb3e, 0xfb3e,
                    414:   0xfb40, 0xfb41,
                    415:   0xfb43, 0xfb44,
                    416:   0xfb46, 0xfbb1,
                    417:   0xfbd3, 0xfd3d,
                    418:   0xfd50, 0xfd8f,
                    419:   0xfd92, 0xfdc7,
                    420:   0xfdf0, 0xfdfb,
                    421:   0xfe00, 0xfe0f,
                    422:   0xfe20, 0xfe23,
                    423:   0xfe70, 0xfe74,
                    424:   0xfe76, 0xfefc,
                    425:   0xff10, 0xff19,
                    426:   0xff21, 0xff3a,
                    427:   0xff41, 0xff5a,
                    428:   0xff66, 0xffbe,
                    429:   0xffc2, 0xffc7,
                    430:   0xffca, 0xffcf,
                    431:   0xffd2, 0xffd7,
                    432:   0xffda, 0xffdc,
                    433:   0x10000, 0x1000b,
                    434:   0x1000d, 0x10026,
                    435:   0x10028, 0x1003a,
                    436:   0x1003c, 0x1003d,
                    437:   0x1003f, 0x1004d,
                    438:   0x10050, 0x1005d,
                    439:   0x10080, 0x100fa,
                    440:   0x10300, 0x1031e,
                    441:   0x10330, 0x10349,
                    442:   0x10380, 0x1039d,
                    443:   0x10400, 0x1049d,
                    444:   0x104a0, 0x104a9,
                    445:   0x10800, 0x10805,
                    446:   0x10808, 0x10808,
                    447:   0x1080a, 0x10835,
                    448:   0x10837, 0x10838,
                    449:   0x1083c, 0x1083c,
                    450:   0x1083f, 0x1083f,
                    451:   0x1d165, 0x1d169,
                    452:   0x1d16d, 0x1d172,
                    453:   0x1d17b, 0x1d182,
                    454:   0x1d185, 0x1d18b,
                    455:   0x1d1aa, 0x1d1ad,
                    456:   0x1d400, 0x1d454,
                    457:   0x1d456, 0x1d49c,
                    458:   0x1d49e, 0x1d49f,
                    459:   0x1d4a2, 0x1d4a2,
                    460:   0x1d4a5, 0x1d4a6,
                    461:   0x1d4a9, 0x1d4ac,
                    462:   0x1d4ae, 0x1d4b9,
                    463:   0x1d4bb, 0x1d4bb,
                    464:   0x1d4bd, 0x1d4c3,
                    465:   0x1d4c5, 0x1d505,
                    466:   0x1d507, 0x1d50a,
                    467:   0x1d50d, 0x1d514,
                    468:   0x1d516, 0x1d51c,
                    469:   0x1d51e, 0x1d539,
                    470:   0x1d53b, 0x1d53e,
                    471:   0x1d540, 0x1d544,
                    472:   0x1d546, 0x1d546,
                    473:   0x1d54a, 0x1d550,
                    474:   0x1d552, 0x1d6a3,
                    475:   0x1d6a8, 0x1d6c0,
                    476:   0x1d6c2, 0x1d6da,
                    477:   0x1d6dc, 0x1d6fa,
                    478:   0x1d6fc, 0x1d714,
                    479:   0x1d716, 0x1d734,
                    480:   0x1d736, 0x1d74e,
                    481:   0x1d750, 0x1d76e,
                    482:   0x1d770, 0x1d788,
                    483:   0x1d78a, 0x1d7a8,
                    484:   0x1d7aa, 0x1d7c2,
                    485:   0x1d7c4, 0x1d7c9,
                    486:   0x1d7ce, 0x1d7ff,
                    487:   0x20000, 0x2a6d6,
                    488:   0x2f800, 0x2fa1d,
                    489:   0xe0100, 0xe01ef
                    490: #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
                    491: }; /* end of CRAlnum */
                    492: 
                    493: static const OnigCodePoint CRAlpha[] = {
                    494: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                    495:   396,
                    496: #else
                    497:   8,
                    498: #endif
                    499:   0x0041, 0x005a,
                    500:   0x0061, 0x007a,
                    501:   0x00aa, 0x00aa,
                    502:   0x00b5, 0x00b5,
                    503:   0x00ba, 0x00ba,
                    504:   0x00c0, 0x00d6,
                    505:   0x00d8, 0x00f6,
                    506:   0x00f8, 0x0236
                    507: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                    508:   ,
                    509:   0x0250, 0x02c1,
                    510:   0x02c6, 0x02d1,
                    511:   0x02e0, 0x02e4,
                    512:   0x02ee, 0x02ee,
                    513:   0x0300, 0x0357,
                    514:   0x035d, 0x036f,
                    515:   0x037a, 0x037a,
                    516:   0x0386, 0x0386,
                    517:   0x0388, 0x038a,
                    518:   0x038c, 0x038c,
                    519:   0x038e, 0x03a1,
                    520:   0x03a3, 0x03ce,
                    521:   0x03d0, 0x03f5,
                    522:   0x03f7, 0x03fb,
                    523:   0x0400, 0x0481,
                    524:   0x0483, 0x0486,
                    525:   0x0488, 0x04ce,
                    526:   0x04d0, 0x04f5,
                    527:   0x04f8, 0x04f9,
                    528:   0x0500, 0x050f,
                    529:   0x0531, 0x0556,
                    530:   0x0559, 0x0559,
                    531:   0x0561, 0x0587,
                    532:   0x0591, 0x05a1,
                    533:   0x05a3, 0x05b9,
                    534:   0x05bb, 0x05bd,
                    535:   0x05bf, 0x05bf,
                    536:   0x05c1, 0x05c2,
                    537:   0x05c4, 0x05c4,
                    538:   0x05d0, 0x05ea,
                    539:   0x05f0, 0x05f2,
                    540:   0x0610, 0x0615,
                    541:   0x0621, 0x063a,
                    542:   0x0640, 0x0658,
                    543:   0x066e, 0x06d3,
                    544:   0x06d5, 0x06dc,
                    545:   0x06de, 0x06e8,
                    546:   0x06ea, 0x06ef,
                    547:   0x06fa, 0x06fc,
                    548:   0x06ff, 0x06ff,
                    549:   0x0710, 0x074a,
                    550:   0x074d, 0x074f,
                    551:   0x0780, 0x07b1,
                    552:   0x0901, 0x0939,
                    553:   0x093c, 0x094d,
                    554:   0x0950, 0x0954,
                    555:   0x0958, 0x0963,
                    556:   0x0981, 0x0983,
                    557:   0x0985, 0x098c,
                    558:   0x098f, 0x0990,
                    559:   0x0993, 0x09a8,
                    560:   0x09aa, 0x09b0,
                    561:   0x09b2, 0x09b2,
                    562:   0x09b6, 0x09b9,
                    563:   0x09bc, 0x09c4,
                    564:   0x09c7, 0x09c8,
                    565:   0x09cb, 0x09cd,
                    566:   0x09d7, 0x09d7,
                    567:   0x09dc, 0x09dd,
                    568:   0x09df, 0x09e3,
                    569:   0x09f0, 0x09f1,
                    570:   0x0a01, 0x0a03,
                    571:   0x0a05, 0x0a0a,
                    572:   0x0a0f, 0x0a10,
                    573:   0x0a13, 0x0a28,
                    574:   0x0a2a, 0x0a30,
                    575:   0x0a32, 0x0a33,
                    576:   0x0a35, 0x0a36,
                    577:   0x0a38, 0x0a39,
                    578:   0x0a3c, 0x0a3c,
                    579:   0x0a3e, 0x0a42,
                    580:   0x0a47, 0x0a48,
                    581:   0x0a4b, 0x0a4d,
                    582:   0x0a59, 0x0a5c,
                    583:   0x0a5e, 0x0a5e,
                    584:   0x0a70, 0x0a74,
                    585:   0x0a81, 0x0a83,
                    586:   0x0a85, 0x0a8d,
                    587:   0x0a8f, 0x0a91,
                    588:   0x0a93, 0x0aa8,
                    589:   0x0aaa, 0x0ab0,
                    590:   0x0ab2, 0x0ab3,
                    591:   0x0ab5, 0x0ab9,
                    592:   0x0abc, 0x0ac5,
                    593:   0x0ac7, 0x0ac9,
                    594:   0x0acb, 0x0acd,
                    595:   0x0ad0, 0x0ad0,
                    596:   0x0ae0, 0x0ae3,
                    597:   0x0b01, 0x0b03,
                    598:   0x0b05, 0x0b0c,
                    599:   0x0b0f, 0x0b10,
                    600:   0x0b13, 0x0b28,
                    601:   0x0b2a, 0x0b30,
                    602:   0x0b32, 0x0b33,
                    603:   0x0b35, 0x0b39,
                    604:   0x0b3c, 0x0b43,
                    605:   0x0b47, 0x0b48,
                    606:   0x0b4b, 0x0b4d,
                    607:   0x0b56, 0x0b57,
                    608:   0x0b5c, 0x0b5d,
                    609:   0x0b5f, 0x0b61,
                    610:   0x0b71, 0x0b71,
                    611:   0x0b82, 0x0b83,
                    612:   0x0b85, 0x0b8a,
                    613:   0x0b8e, 0x0b90,
                    614:   0x0b92, 0x0b95,
                    615:   0x0b99, 0x0b9a,
                    616:   0x0b9c, 0x0b9c,
                    617:   0x0b9e, 0x0b9f,
                    618:   0x0ba3, 0x0ba4,
                    619:   0x0ba8, 0x0baa,
                    620:   0x0bae, 0x0bb5,
                    621:   0x0bb7, 0x0bb9,
                    622:   0x0bbe, 0x0bc2,
                    623:   0x0bc6, 0x0bc8,
                    624:   0x0bca, 0x0bcd,
                    625:   0x0bd7, 0x0bd7,
                    626:   0x0c01, 0x0c03,
                    627:   0x0c05, 0x0c0c,
                    628:   0x0c0e, 0x0c10,
                    629:   0x0c12, 0x0c28,
                    630:   0x0c2a, 0x0c33,
                    631:   0x0c35, 0x0c39,
                    632:   0x0c3e, 0x0c44,
                    633:   0x0c46, 0x0c48,
                    634:   0x0c4a, 0x0c4d,
                    635:   0x0c55, 0x0c56,
                    636:   0x0c60, 0x0c61,
                    637:   0x0c82, 0x0c83,
                    638:   0x0c85, 0x0c8c,
                    639:   0x0c8e, 0x0c90,
                    640:   0x0c92, 0x0ca8,
                    641:   0x0caa, 0x0cb3,
                    642:   0x0cb5, 0x0cb9,
                    643:   0x0cbc, 0x0cc4,
                    644:   0x0cc6, 0x0cc8,
                    645:   0x0cca, 0x0ccd,
                    646:   0x0cd5, 0x0cd6,
                    647:   0x0cde, 0x0cde,
                    648:   0x0ce0, 0x0ce1,
                    649:   0x0d02, 0x0d03,
                    650:   0x0d05, 0x0d0c,
                    651:   0x0d0e, 0x0d10,
                    652:   0x0d12, 0x0d28,
                    653:   0x0d2a, 0x0d39,
                    654:   0x0d3e, 0x0d43,
                    655:   0x0d46, 0x0d48,
                    656:   0x0d4a, 0x0d4d,
                    657:   0x0d57, 0x0d57,
                    658:   0x0d60, 0x0d61,
                    659:   0x0d82, 0x0d83,
                    660:   0x0d85, 0x0d96,
                    661:   0x0d9a, 0x0db1,
                    662:   0x0db3, 0x0dbb,
                    663:   0x0dbd, 0x0dbd,
                    664:   0x0dc0, 0x0dc6,
                    665:   0x0dca, 0x0dca,
                    666:   0x0dcf, 0x0dd4,
                    667:   0x0dd6, 0x0dd6,
                    668:   0x0dd8, 0x0ddf,
                    669:   0x0df2, 0x0df3,
                    670:   0x0e01, 0x0e3a,
                    671:   0x0e40, 0x0e4e,
                    672:   0x0e81, 0x0e82,
                    673:   0x0e84, 0x0e84,
                    674:   0x0e87, 0x0e88,
                    675:   0x0e8a, 0x0e8a,
                    676:   0x0e8d, 0x0e8d,
                    677:   0x0e94, 0x0e97,
                    678:   0x0e99, 0x0e9f,
                    679:   0x0ea1, 0x0ea3,
                    680:   0x0ea5, 0x0ea5,
                    681:   0x0ea7, 0x0ea7,
                    682:   0x0eaa, 0x0eab,
                    683:   0x0ead, 0x0eb9,
                    684:   0x0ebb, 0x0ebd,
                    685:   0x0ec0, 0x0ec4,
                    686:   0x0ec6, 0x0ec6,
                    687:   0x0ec8, 0x0ecd,
                    688:   0x0edc, 0x0edd,
                    689:   0x0f00, 0x0f00,
                    690:   0x0f18, 0x0f19,
                    691:   0x0f35, 0x0f35,
                    692:   0x0f37, 0x0f37,
                    693:   0x0f39, 0x0f39,
                    694:   0x0f3e, 0x0f47,
                    695:   0x0f49, 0x0f6a,
                    696:   0x0f71, 0x0f84,
                    697:   0x0f86, 0x0f8b,
                    698:   0x0f90, 0x0f97,
                    699:   0x0f99, 0x0fbc,
                    700:   0x0fc6, 0x0fc6,
                    701:   0x1000, 0x1021,
                    702:   0x1023, 0x1027,
                    703:   0x1029, 0x102a,
                    704:   0x102c, 0x1032,
                    705:   0x1036, 0x1039,
                    706:   0x1050, 0x1059,
                    707:   0x10a0, 0x10c5,
                    708:   0x10d0, 0x10f8,
                    709:   0x1100, 0x1159,
                    710:   0x115f, 0x11a2,
                    711:   0x11a8, 0x11f9,
                    712:   0x1200, 0x1206,
                    713:   0x1208, 0x1246,
                    714:   0x1248, 0x1248,
                    715:   0x124a, 0x124d,
                    716:   0x1250, 0x1256,
                    717:   0x1258, 0x1258,
                    718:   0x125a, 0x125d,
                    719:   0x1260, 0x1286,
                    720:   0x1288, 0x1288,
                    721:   0x128a, 0x128d,
                    722:   0x1290, 0x12ae,
                    723:   0x12b0, 0x12b0,
                    724:   0x12b2, 0x12b5,
                    725:   0x12b8, 0x12be,
                    726:   0x12c0, 0x12c0,
                    727:   0x12c2, 0x12c5,
                    728:   0x12c8, 0x12ce,
                    729:   0x12d0, 0x12d6,
                    730:   0x12d8, 0x12ee,
                    731:   0x12f0, 0x130e,
                    732:   0x1310, 0x1310,
                    733:   0x1312, 0x1315,
                    734:   0x1318, 0x131e,
                    735:   0x1320, 0x1346,
                    736:   0x1348, 0x135a,
                    737:   0x13a0, 0x13f4,
                    738:   0x1401, 0x166c,
                    739:   0x166f, 0x1676,
                    740:   0x1681, 0x169a,
                    741:   0x16a0, 0x16ea,
                    742:   0x1700, 0x170c,
                    743:   0x170e, 0x1714,
                    744:   0x1720, 0x1734,
                    745:   0x1740, 0x1753,
                    746:   0x1760, 0x176c,
                    747:   0x176e, 0x1770,
                    748:   0x1772, 0x1773,
                    749:   0x1780, 0x17b3,
                    750:   0x17b6, 0x17d3,
                    751:   0x17d7, 0x17d7,
                    752:   0x17dc, 0x17dd,
                    753:   0x180b, 0x180d,
                    754:   0x1820, 0x1877,
                    755:   0x1880, 0x18a9,
                    756:   0x1900, 0x191c,
                    757:   0x1920, 0x192b,
                    758:   0x1930, 0x193b,
                    759:   0x1950, 0x196d,
                    760:   0x1970, 0x1974,
                    761:   0x1d00, 0x1d6b,
                    762:   0x1e00, 0x1e9b,
                    763:   0x1ea0, 0x1ef9,
                    764:   0x1f00, 0x1f15,
                    765:   0x1f18, 0x1f1d,
                    766:   0x1f20, 0x1f45,
                    767:   0x1f48, 0x1f4d,
                    768:   0x1f50, 0x1f57,
                    769:   0x1f59, 0x1f59,
                    770:   0x1f5b, 0x1f5b,
                    771:   0x1f5d, 0x1f5d,
                    772:   0x1f5f, 0x1f7d,
                    773:   0x1f80, 0x1fb4,
                    774:   0x1fb6, 0x1fbc,
                    775:   0x1fbe, 0x1fbe,
                    776:   0x1fc2, 0x1fc4,
                    777:   0x1fc6, 0x1fcc,
                    778:   0x1fd0, 0x1fd3,
                    779:   0x1fd6, 0x1fdb,
                    780:   0x1fe0, 0x1fec,
                    781:   0x1ff2, 0x1ff4,
                    782:   0x1ff6, 0x1ffc,
                    783:   0x2071, 0x2071,
                    784:   0x207f, 0x207f,
                    785:   0x20d0, 0x20ea,
                    786:   0x2102, 0x2102,
                    787:   0x2107, 0x2107,
                    788:   0x210a, 0x2113,
                    789:   0x2115, 0x2115,
                    790:   0x2119, 0x211d,
                    791:   0x2124, 0x2124,
                    792:   0x2126, 0x2126,
                    793:   0x2128, 0x2128,
                    794:   0x212a, 0x212d,
                    795:   0x212f, 0x2131,
                    796:   0x2133, 0x2139,
                    797:   0x213d, 0x213f,
                    798:   0x2145, 0x2149,
                    799:   0x3005, 0x3006,
                    800:   0x302a, 0x302f,
                    801:   0x3031, 0x3035,
                    802:   0x303b, 0x303c,
                    803:   0x3041, 0x3096,
                    804:   0x3099, 0x309a,
                    805:   0x309d, 0x309f,
                    806:   0x30a1, 0x30fa,
                    807:   0x30fc, 0x30ff,
                    808:   0x3105, 0x312c,
                    809:   0x3131, 0x318e,
                    810:   0x31a0, 0x31b7,
                    811:   0x31f0, 0x31ff,
                    812:   0x3400, 0x4db5,
                    813:   0x4e00, 0x9fa5,
                    814:   0xa000, 0xa48c,
                    815:   0xac00, 0xd7a3,
                    816:   0xf900, 0xfa2d,
                    817:   0xfa30, 0xfa6a,
                    818:   0xfb00, 0xfb06,
                    819:   0xfb13, 0xfb17,
                    820:   0xfb1d, 0xfb28,
                    821:   0xfb2a, 0xfb36,
                    822:   0xfb38, 0xfb3c,
                    823:   0xfb3e, 0xfb3e,
                    824:   0xfb40, 0xfb41,
                    825:   0xfb43, 0xfb44,
                    826:   0xfb46, 0xfbb1,
                    827:   0xfbd3, 0xfd3d,
                    828:   0xfd50, 0xfd8f,
                    829:   0xfd92, 0xfdc7,
                    830:   0xfdf0, 0xfdfb,
                    831:   0xfe00, 0xfe0f,
                    832:   0xfe20, 0xfe23,
                    833:   0xfe70, 0xfe74,
                    834:   0xfe76, 0xfefc,
                    835:   0xff21, 0xff3a,
                    836:   0xff41, 0xff5a,
                    837:   0xff66, 0xffbe,
                    838:   0xffc2, 0xffc7,
                    839:   0xffca, 0xffcf,
                    840:   0xffd2, 0xffd7,
                    841:   0xffda, 0xffdc,
                    842:   0x10000, 0x1000b,
                    843:   0x1000d, 0x10026,
                    844:   0x10028, 0x1003a,
                    845:   0x1003c, 0x1003d,
                    846:   0x1003f, 0x1004d,
                    847:   0x10050, 0x1005d,
                    848:   0x10080, 0x100fa,
                    849:   0x10300, 0x1031e,
                    850:   0x10330, 0x10349,
                    851:   0x10380, 0x1039d,
                    852:   0x10400, 0x1049d,
                    853:   0x10800, 0x10805,
                    854:   0x10808, 0x10808,
                    855:   0x1080a, 0x10835,
                    856:   0x10837, 0x10838,
                    857:   0x1083c, 0x1083c,
                    858:   0x1083f, 0x1083f,
                    859:   0x1d165, 0x1d169,
                    860:   0x1d16d, 0x1d172,
                    861:   0x1d17b, 0x1d182,
                    862:   0x1d185, 0x1d18b,
                    863:   0x1d1aa, 0x1d1ad,
                    864:   0x1d400, 0x1d454,
                    865:   0x1d456, 0x1d49c,
                    866:   0x1d49e, 0x1d49f,
                    867:   0x1d4a2, 0x1d4a2,
                    868:   0x1d4a5, 0x1d4a6,
                    869:   0x1d4a9, 0x1d4ac,
                    870:   0x1d4ae, 0x1d4b9,
                    871:   0x1d4bb, 0x1d4bb,
                    872:   0x1d4bd, 0x1d4c3,
                    873:   0x1d4c5, 0x1d505,
                    874:   0x1d507, 0x1d50a,
                    875:   0x1d50d, 0x1d514,
                    876:   0x1d516, 0x1d51c,
                    877:   0x1d51e, 0x1d539,
                    878:   0x1d53b, 0x1d53e,
                    879:   0x1d540, 0x1d544,
                    880:   0x1d546, 0x1d546,
                    881:   0x1d54a, 0x1d550,
                    882:   0x1d552, 0x1d6a3,
                    883:   0x1d6a8, 0x1d6c0,
                    884:   0x1d6c2, 0x1d6da,
                    885:   0x1d6dc, 0x1d6fa,
                    886:   0x1d6fc, 0x1d714,
                    887:   0x1d716, 0x1d734,
                    888:   0x1d736, 0x1d74e,
                    889:   0x1d750, 0x1d76e,
                    890:   0x1d770, 0x1d788,
                    891:   0x1d78a, 0x1d7a8,
                    892:   0x1d7aa, 0x1d7c2,
                    893:   0x1d7c4, 0x1d7c9,
                    894:   0x20000, 0x2a6d6,
                    895:   0x2f800, 0x2fa1d,
                    896:   0xe0100, 0xe01ef
                    897: #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
                    898: }; /* end of CRAlpha */
                    899: 
                    900: static const OnigCodePoint CRBlank[] = {
                    901: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                    902:   9,
                    903: #else
                    904:   3,
                    905: #endif
                    906:   0x0009, 0x0009,
                    907:   0x0020, 0x0020,
                    908:   0x00a0, 0x00a0
                    909: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                    910:   ,
                    911:   0x1680, 0x1680,
                    912:   0x180e, 0x180e,
                    913:   0x2000, 0x200a,
                    914:   0x202f, 0x202f,
                    915:   0x205f, 0x205f,
                    916:   0x3000, 0x3000
                    917: #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
                    918: }; /* end of CRBlank */
                    919: 
                    920: static const OnigCodePoint CRCntrl[] = {
                    921: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                    922:   19,
                    923: #else
                    924:   3,
                    925: #endif
                    926:   0x0000, 0x001f,
                    927:   0x007f, 0x009f,
                    928:   0x00ad, 0x00ad
                    929: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                    930:   ,
                    931:   0x0600, 0x0603,
                    932:   0x06dd, 0x06dd,
                    933:   0x070f, 0x070f,
                    934:   0x17b4, 0x17b5,
                    935:   0x200b, 0x200f,
                    936:   0x202a, 0x202e,
                    937:   0x2060, 0x2063,
                    938:   0x206a, 0x206f,
                    939:   0xd800, 0xf8ff,
                    940:   0xfeff, 0xfeff,
                    941:   0xfff9, 0xfffb,
                    942:   0x1d173, 0x1d17a,
                    943:   0xe0001, 0xe0001,
                    944:   0xe0020, 0xe007f,
                    945:   0xf0000, 0xffffd,
                    946:   0x100000, 0x10fffd
                    947: #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
                    948: }; /* end of CRCntrl */
                    949: 
                    950: static const OnigCodePoint CRDigit[] = {
                    951: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                    952:   23,
                    953: #else
                    954:   1,
                    955: #endif
                    956:   0x0030, 0x0039
                    957: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                    958:   ,
                    959:   0x0660, 0x0669,
                    960:   0x06f0, 0x06f9,
                    961:   0x0966, 0x096f,
                    962:   0x09e6, 0x09ef,
                    963:   0x0a66, 0x0a6f,
                    964:   0x0ae6, 0x0aef,
                    965:   0x0b66, 0x0b6f,
                    966:   0x0be7, 0x0bef,
                    967:   0x0c66, 0x0c6f,
                    968:   0x0ce6, 0x0cef,
                    969:   0x0d66, 0x0d6f,
                    970:   0x0e50, 0x0e59,
                    971:   0x0ed0, 0x0ed9,
                    972:   0x0f20, 0x0f29,
                    973:   0x1040, 0x1049,
                    974:   0x1369, 0x1371,
                    975:   0x17e0, 0x17e9,
                    976:   0x1810, 0x1819,
                    977:   0x1946, 0x194f,
                    978:   0xff10, 0xff19,
                    979:   0x104a0, 0x104a9,
                    980:   0x1d7ce, 0x1d7ff
                    981: #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
                    982: }; /* end of CRDigit */
                    983: 
                    984: static const OnigCodePoint CRGraph[] = {
                    985: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                    986:   405,
                    987: #else
                    988:   2,
                    989: #endif
                    990:   0x0021, 0x007e,
                    991:   0x00a1, 0x0236
                    992: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                    993:   ,
                    994:   0x0250, 0x0357,
                    995:   0x035d, 0x036f,
                    996:   0x0374, 0x0375,
                    997:   0x037a, 0x037a,
                    998:   0x037e, 0x037e,
                    999:   0x0384, 0x038a,
                   1000:   0x038c, 0x038c,
                   1001:   0x038e, 0x03a1,
                   1002:   0x03a3, 0x03ce,
                   1003:   0x03d0, 0x03fb,
                   1004:   0x0400, 0x0486,
                   1005:   0x0488, 0x04ce,
                   1006:   0x04d0, 0x04f5,
                   1007:   0x04f8, 0x04f9,
                   1008:   0x0500, 0x050f,
                   1009:   0x0531, 0x0556,
                   1010:   0x0559, 0x055f,
                   1011:   0x0561, 0x0587,
                   1012:   0x0589, 0x058a,
                   1013:   0x0591, 0x05a1,
                   1014:   0x05a3, 0x05b9,
                   1015:   0x05bb, 0x05c4,
                   1016:   0x05d0, 0x05ea,
                   1017:   0x05f0, 0x05f4,
                   1018:   0x0600, 0x0603,
                   1019:   0x060c, 0x0615,
                   1020:   0x061b, 0x061b,
                   1021:   0x061f, 0x061f,
                   1022:   0x0621, 0x063a,
                   1023:   0x0640, 0x0658,
                   1024:   0x0660, 0x070d,
                   1025:   0x070f, 0x074a,
                   1026:   0x074d, 0x074f,
                   1027:   0x0780, 0x07b1,
                   1028:   0x0901, 0x0939,
                   1029:   0x093c, 0x094d,
                   1030:   0x0950, 0x0954,
                   1031:   0x0958, 0x0970,
                   1032:   0x0981, 0x0983,
                   1033:   0x0985, 0x098c,
                   1034:   0x098f, 0x0990,
                   1035:   0x0993, 0x09a8,
                   1036:   0x09aa, 0x09b0,
                   1037:   0x09b2, 0x09b2,
                   1038:   0x09b6, 0x09b9,
                   1039:   0x09bc, 0x09c4,
                   1040:   0x09c7, 0x09c8,
                   1041:   0x09cb, 0x09cd,
                   1042:   0x09d7, 0x09d7,
                   1043:   0x09dc, 0x09dd,
                   1044:   0x09df, 0x09e3,
                   1045:   0x09e6, 0x09fa,
                   1046:   0x0a01, 0x0a03,
                   1047:   0x0a05, 0x0a0a,
                   1048:   0x0a0f, 0x0a10,
                   1049:   0x0a13, 0x0a28,
                   1050:   0x0a2a, 0x0a30,
                   1051:   0x0a32, 0x0a33,
                   1052:   0x0a35, 0x0a36,
                   1053:   0x0a38, 0x0a39,
                   1054:   0x0a3c, 0x0a3c,
                   1055:   0x0a3e, 0x0a42,
                   1056:   0x0a47, 0x0a48,
                   1057:   0x0a4b, 0x0a4d,
                   1058:   0x0a59, 0x0a5c,
                   1059:   0x0a5e, 0x0a5e,
                   1060:   0x0a66, 0x0a74,
                   1061:   0x0a81, 0x0a83,
                   1062:   0x0a85, 0x0a8d,
                   1063:   0x0a8f, 0x0a91,
                   1064:   0x0a93, 0x0aa8,
                   1065:   0x0aaa, 0x0ab0,
                   1066:   0x0ab2, 0x0ab3,
                   1067:   0x0ab5, 0x0ab9,
                   1068:   0x0abc, 0x0ac5,
                   1069:   0x0ac7, 0x0ac9,
                   1070:   0x0acb, 0x0acd,
                   1071:   0x0ad0, 0x0ad0,
                   1072:   0x0ae0, 0x0ae3,
                   1073:   0x0ae6, 0x0aef,
                   1074:   0x0af1, 0x0af1,
                   1075:   0x0b01, 0x0b03,
                   1076:   0x0b05, 0x0b0c,
                   1077:   0x0b0f, 0x0b10,
                   1078:   0x0b13, 0x0b28,
                   1079:   0x0b2a, 0x0b30,
                   1080:   0x0b32, 0x0b33,
                   1081:   0x0b35, 0x0b39,
                   1082:   0x0b3c, 0x0b43,
                   1083:   0x0b47, 0x0b48,
                   1084:   0x0b4b, 0x0b4d,
                   1085:   0x0b56, 0x0b57,
                   1086:   0x0b5c, 0x0b5d,
                   1087:   0x0b5f, 0x0b61,
                   1088:   0x0b66, 0x0b71,
                   1089:   0x0b82, 0x0b83,
                   1090:   0x0b85, 0x0b8a,
                   1091:   0x0b8e, 0x0b90,
                   1092:   0x0b92, 0x0b95,
                   1093:   0x0b99, 0x0b9a,
                   1094:   0x0b9c, 0x0b9c,
                   1095:   0x0b9e, 0x0b9f,
                   1096:   0x0ba3, 0x0ba4,
                   1097:   0x0ba8, 0x0baa,
                   1098:   0x0bae, 0x0bb5,
                   1099:   0x0bb7, 0x0bb9,
                   1100:   0x0bbe, 0x0bc2,
                   1101:   0x0bc6, 0x0bc8,
                   1102:   0x0bca, 0x0bcd,
                   1103:   0x0bd7, 0x0bd7,
                   1104:   0x0be7, 0x0bfa,
                   1105:   0x0c01, 0x0c03,
                   1106:   0x0c05, 0x0c0c,
                   1107:   0x0c0e, 0x0c10,
                   1108:   0x0c12, 0x0c28,
                   1109:   0x0c2a, 0x0c33,
                   1110:   0x0c35, 0x0c39,
                   1111:   0x0c3e, 0x0c44,
                   1112:   0x0c46, 0x0c48,
                   1113:   0x0c4a, 0x0c4d,
                   1114:   0x0c55, 0x0c56,
                   1115:   0x0c60, 0x0c61,
                   1116:   0x0c66, 0x0c6f,
                   1117:   0x0c82, 0x0c83,
                   1118:   0x0c85, 0x0c8c,
                   1119:   0x0c8e, 0x0c90,
                   1120:   0x0c92, 0x0ca8,
                   1121:   0x0caa, 0x0cb3,
                   1122:   0x0cb5, 0x0cb9,
                   1123:   0x0cbc, 0x0cc4,
                   1124:   0x0cc6, 0x0cc8,
                   1125:   0x0cca, 0x0ccd,
                   1126:   0x0cd5, 0x0cd6,
                   1127:   0x0cde, 0x0cde,
                   1128:   0x0ce0, 0x0ce1,
                   1129:   0x0ce6, 0x0cef,
                   1130:   0x0d02, 0x0d03,
                   1131:   0x0d05, 0x0d0c,
                   1132:   0x0d0e, 0x0d10,
                   1133:   0x0d12, 0x0d28,
                   1134:   0x0d2a, 0x0d39,
                   1135:   0x0d3e, 0x0d43,
                   1136:   0x0d46, 0x0d48,
                   1137:   0x0d4a, 0x0d4d,
                   1138:   0x0d57, 0x0d57,
                   1139:   0x0d60, 0x0d61,
                   1140:   0x0d66, 0x0d6f,
                   1141:   0x0d82, 0x0d83,
                   1142:   0x0d85, 0x0d96,
                   1143:   0x0d9a, 0x0db1,
                   1144:   0x0db3, 0x0dbb,
                   1145:   0x0dbd, 0x0dbd,
                   1146:   0x0dc0, 0x0dc6,
                   1147:   0x0dca, 0x0dca,
                   1148:   0x0dcf, 0x0dd4,
                   1149:   0x0dd6, 0x0dd6,
                   1150:   0x0dd8, 0x0ddf,
                   1151:   0x0df2, 0x0df4,
                   1152:   0x0e01, 0x0e3a,
                   1153:   0x0e3f, 0x0e5b,
                   1154:   0x0e81, 0x0e82,
                   1155:   0x0e84, 0x0e84,
                   1156:   0x0e87, 0x0e88,
                   1157:   0x0e8a, 0x0e8a,
                   1158:   0x0e8d, 0x0e8d,
                   1159:   0x0e94, 0x0e97,
                   1160:   0x0e99, 0x0e9f,
                   1161:   0x0ea1, 0x0ea3,
                   1162:   0x0ea5, 0x0ea5,
                   1163:   0x0ea7, 0x0ea7,
                   1164:   0x0eaa, 0x0eab,
                   1165:   0x0ead, 0x0eb9,
                   1166:   0x0ebb, 0x0ebd,
                   1167:   0x0ec0, 0x0ec4,
                   1168:   0x0ec6, 0x0ec6,
                   1169:   0x0ec8, 0x0ecd,
                   1170:   0x0ed0, 0x0ed9,
                   1171:   0x0edc, 0x0edd,
                   1172:   0x0f00, 0x0f47,
                   1173:   0x0f49, 0x0f6a,
                   1174:   0x0f71, 0x0f8b,
                   1175:   0x0f90, 0x0f97,
                   1176:   0x0f99, 0x0fbc,
                   1177:   0x0fbe, 0x0fcc,
                   1178:   0x0fcf, 0x0fcf,
                   1179:   0x1000, 0x1021,
                   1180:   0x1023, 0x1027,
                   1181:   0x1029, 0x102a,
                   1182:   0x102c, 0x1032,
                   1183:   0x1036, 0x1039,
                   1184:   0x1040, 0x1059,
                   1185:   0x10a0, 0x10c5,
                   1186:   0x10d0, 0x10f8,
                   1187:   0x10fb, 0x10fb,
                   1188:   0x1100, 0x1159,
                   1189:   0x115f, 0x11a2,
                   1190:   0x11a8, 0x11f9,
                   1191:   0x1200, 0x1206,
                   1192:   0x1208, 0x1246,
                   1193:   0x1248, 0x1248,
                   1194:   0x124a, 0x124d,
                   1195:   0x1250, 0x1256,
                   1196:   0x1258, 0x1258,
                   1197:   0x125a, 0x125d,
                   1198:   0x1260, 0x1286,
                   1199:   0x1288, 0x1288,
                   1200:   0x128a, 0x128d,
                   1201:   0x1290, 0x12ae,
                   1202:   0x12b0, 0x12b0,
                   1203:   0x12b2, 0x12b5,
                   1204:   0x12b8, 0x12be,
                   1205:   0x12c0, 0x12c0,
                   1206:   0x12c2, 0x12c5,
                   1207:   0x12c8, 0x12ce,
                   1208:   0x12d0, 0x12d6,
                   1209:   0x12d8, 0x12ee,
                   1210:   0x12f0, 0x130e,
                   1211:   0x1310, 0x1310,
                   1212:   0x1312, 0x1315,
                   1213:   0x1318, 0x131e,
                   1214:   0x1320, 0x1346,
                   1215:   0x1348, 0x135a,
                   1216:   0x1361, 0x137c,
                   1217:   0x13a0, 0x13f4,
                   1218:   0x1401, 0x1676,
                   1219:   0x1681, 0x169c,
                   1220:   0x16a0, 0x16f0,
                   1221:   0x1700, 0x170c,
                   1222:   0x170e, 0x1714,
                   1223:   0x1720, 0x1736,
                   1224:   0x1740, 0x1753,
                   1225:   0x1760, 0x176c,
                   1226:   0x176e, 0x1770,
                   1227:   0x1772, 0x1773,
                   1228:   0x1780, 0x17dd,
                   1229:   0x17e0, 0x17e9,
                   1230:   0x17f0, 0x17f9,
                   1231:   0x1800, 0x180d,
                   1232:   0x1810, 0x1819,
                   1233:   0x1820, 0x1877,
                   1234:   0x1880, 0x18a9,
                   1235:   0x1900, 0x191c,
                   1236:   0x1920, 0x192b,
                   1237:   0x1930, 0x193b,
                   1238:   0x1940, 0x1940,
                   1239:   0x1944, 0x196d,
                   1240:   0x1970, 0x1974,
                   1241:   0x19e0, 0x19ff,
                   1242:   0x1d00, 0x1d6b,
                   1243:   0x1e00, 0x1e9b,
                   1244:   0x1ea0, 0x1ef9,
                   1245:   0x1f00, 0x1f15,
                   1246:   0x1f18, 0x1f1d,
                   1247:   0x1f20, 0x1f45,
                   1248:   0x1f48, 0x1f4d,
                   1249:   0x1f50, 0x1f57,
                   1250:   0x1f59, 0x1f59,
                   1251:   0x1f5b, 0x1f5b,
                   1252:   0x1f5d, 0x1f5d,
                   1253:   0x1f5f, 0x1f7d,
                   1254:   0x1f80, 0x1fb4,
                   1255:   0x1fb6, 0x1fc4,
                   1256:   0x1fc6, 0x1fd3,
                   1257:   0x1fd6, 0x1fdb,
                   1258:   0x1fdd, 0x1fef,
                   1259:   0x1ff2, 0x1ff4,
                   1260:   0x1ff6, 0x1ffe,
                   1261:   0x200b, 0x2027,
                   1262:   0x202a, 0x202e,
                   1263:   0x2030, 0x2054,
                   1264:   0x2057, 0x2057,
                   1265:   0x2060, 0x2063,
                   1266:   0x206a, 0x2071,
                   1267:   0x2074, 0x208e,
                   1268:   0x20a0, 0x20b1,
                   1269:   0x20d0, 0x20ea,
                   1270:   0x2100, 0x213b,
                   1271:   0x213d, 0x214b,
                   1272:   0x2153, 0x2183,
                   1273:   0x2190, 0x23d0,
                   1274:   0x2400, 0x2426,
                   1275:   0x2440, 0x244a,
                   1276:   0x2460, 0x2617,
                   1277:   0x2619, 0x267d,
                   1278:   0x2680, 0x2691,
                   1279:   0x26a0, 0x26a1,
                   1280:   0x2701, 0x2704,
                   1281:   0x2706, 0x2709,
                   1282:   0x270c, 0x2727,
                   1283:   0x2729, 0x274b,
                   1284:   0x274d, 0x274d,
                   1285:   0x274f, 0x2752,
                   1286:   0x2756, 0x2756,
                   1287:   0x2758, 0x275e,
                   1288:   0x2761, 0x2794,
                   1289:   0x2798, 0x27af,
                   1290:   0x27b1, 0x27be,
                   1291:   0x27d0, 0x27eb,
                   1292:   0x27f0, 0x2b0d,
                   1293:   0x2e80, 0x2e99,
                   1294:   0x2e9b, 0x2ef3,
                   1295:   0x2f00, 0x2fd5,
                   1296:   0x2ff0, 0x2ffb,
                   1297:   0x3001, 0x303f,
                   1298:   0x3041, 0x3096,
                   1299:   0x3099, 0x30ff,
                   1300:   0x3105, 0x312c,
                   1301:   0x3131, 0x318e,
                   1302:   0x3190, 0x31b7,
                   1303:   0x31f0, 0x321e,
                   1304:   0x3220, 0x3243,
                   1305:   0x3250, 0x327d,
                   1306:   0x327f, 0x32fe,
                   1307:   0x3300, 0x4db5,
                   1308:   0x4dc0, 0x9fa5,
                   1309:   0xa000, 0xa48c,
                   1310:   0xa490, 0xa4c6,
                   1311:   0xac00, 0xd7a3,
                   1312:   0xe000, 0xfa2d,
                   1313:   0xfa30, 0xfa6a,
                   1314:   0xfb00, 0xfb06,
                   1315:   0xfb13, 0xfb17,
                   1316:   0xfb1d, 0xfb36,
                   1317:   0xfb38, 0xfb3c,
                   1318:   0xfb3e, 0xfb3e,
                   1319:   0xfb40, 0xfb41,
                   1320:   0xfb43, 0xfb44,
                   1321:   0xfb46, 0xfbb1,
                   1322:   0xfbd3, 0xfd3f,
                   1323:   0xfd50, 0xfd8f,
                   1324:   0xfd92, 0xfdc7,
                   1325:   0xfdf0, 0xfdfd,
                   1326:   0xfe00, 0xfe0f,
                   1327:   0xfe20, 0xfe23,
                   1328:   0xfe30, 0xfe52,
                   1329:   0xfe54, 0xfe66,
                   1330:   0xfe68, 0xfe6b,
                   1331:   0xfe70, 0xfe74,
                   1332:   0xfe76, 0xfefc,
                   1333:   0xfeff, 0xfeff,
                   1334:   0xff01, 0xffbe,
                   1335:   0xffc2, 0xffc7,
                   1336:   0xffca, 0xffcf,
                   1337:   0xffd2, 0xffd7,
                   1338:   0xffda, 0xffdc,
                   1339:   0xffe0, 0xffe6,
                   1340:   0xffe8, 0xffee,
                   1341:   0xfff9, 0xfffd,
                   1342:   0x10000, 0x1000b,
                   1343:   0x1000d, 0x10026,
                   1344:   0x10028, 0x1003a,
                   1345:   0x1003c, 0x1003d,
                   1346:   0x1003f, 0x1004d,
                   1347:   0x10050, 0x1005d,
                   1348:   0x10080, 0x100fa,
                   1349:   0x10100, 0x10102,
                   1350:   0x10107, 0x10133,
                   1351:   0x10137, 0x1013f,
                   1352:   0x10300, 0x1031e,
                   1353:   0x10320, 0x10323,
                   1354:   0x10330, 0x1034a,
                   1355:   0x10380, 0x1039d,
                   1356:   0x1039f, 0x1039f,
                   1357:   0x10400, 0x1049d,
                   1358:   0x104a0, 0x104a9,
                   1359:   0x10800, 0x10805,
                   1360:   0x10808, 0x10808,
                   1361:   0x1080a, 0x10835,
                   1362:   0x10837, 0x10838,
                   1363:   0x1083c, 0x1083c,
                   1364:   0x1083f, 0x1083f,
                   1365:   0x1d000, 0x1d0f5,
                   1366:   0x1d100, 0x1d126,
                   1367:   0x1d12a, 0x1d1dd,
                   1368:   0x1d300, 0x1d356,
                   1369:   0x1d400, 0x1d454,
                   1370:   0x1d456, 0x1d49c,
                   1371:   0x1d49e, 0x1d49f,
                   1372:   0x1d4a2, 0x1d4a2,
                   1373:   0x1d4a5, 0x1d4a6,
                   1374:   0x1d4a9, 0x1d4ac,
                   1375:   0x1d4ae, 0x1d4b9,
                   1376:   0x1d4bb, 0x1d4bb,
                   1377:   0x1d4bd, 0x1d4c3,
                   1378:   0x1d4c5, 0x1d505,
                   1379:   0x1d507, 0x1d50a,
                   1380:   0x1d50d, 0x1d514,
                   1381:   0x1d516, 0x1d51c,
                   1382:   0x1d51e, 0x1d539,
                   1383:   0x1d53b, 0x1d53e,
                   1384:   0x1d540, 0x1d544,
                   1385:   0x1d546, 0x1d546,
                   1386:   0x1d54a, 0x1d550,
                   1387:   0x1d552, 0x1d6a3,
                   1388:   0x1d6a8, 0x1d7c9,
                   1389:   0x1d7ce, 0x1d7ff,
                   1390:   0x20000, 0x2a6d6,
                   1391:   0x2f800, 0x2fa1d,
                   1392:   0xe0001, 0xe0001,
                   1393:   0xe0020, 0xe007f,
                   1394:   0xe0100, 0xe01ef,
                   1395:   0xf0000, 0xffffd,
                   1396:   0x100000, 0x10fffd
                   1397: #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
                   1398: }; /* end of CRGraph */
                   1399: 
                   1400: static const OnigCodePoint CRLower[] = {
                   1401: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                   1402:   424,
                   1403: #else
                   1404:   6,
                   1405: #endif
                   1406:   0x0061, 0x007a,
                   1407:   0x00aa, 0x00aa,
                   1408:   0x00b5, 0x00b5,
                   1409:   0x00ba, 0x00ba,
                   1410:   0x00df, 0x00f6,
                   1411:   0x00f8, 0x00ff
                   1412: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                   1413:   ,
                   1414:   0x0101, 0x0101,
                   1415:   0x0103, 0x0103,
                   1416:   0x0105, 0x0105,
                   1417:   0x0107, 0x0107,
                   1418:   0x0109, 0x0109,
                   1419:   0x010b, 0x010b,
                   1420:   0x010d, 0x010d,
                   1421:   0x010f, 0x010f,
                   1422:   0x0111, 0x0111,
                   1423:   0x0113, 0x0113,
                   1424:   0x0115, 0x0115,
                   1425:   0x0117, 0x0117,
                   1426:   0x0119, 0x0119,
                   1427:   0x011b, 0x011b,
                   1428:   0x011d, 0x011d,
                   1429:   0x011f, 0x011f,
                   1430:   0x0121, 0x0121,
                   1431:   0x0123, 0x0123,
                   1432:   0x0125, 0x0125,
                   1433:   0x0127, 0x0127,
                   1434:   0x0129, 0x0129,
                   1435:   0x012b, 0x012b,
                   1436:   0x012d, 0x012d,
                   1437:   0x012f, 0x012f,
                   1438:   0x0131, 0x0131,
                   1439:   0x0133, 0x0133,
                   1440:   0x0135, 0x0135,
                   1441:   0x0137, 0x0138,
                   1442:   0x013a, 0x013a,
                   1443:   0x013c, 0x013c,
                   1444:   0x013e, 0x013e,
                   1445:   0x0140, 0x0140,
                   1446:   0x0142, 0x0142,
                   1447:   0x0144, 0x0144,
                   1448:   0x0146, 0x0146,
                   1449:   0x0148, 0x0149,
                   1450:   0x014b, 0x014b,
                   1451:   0x014d, 0x014d,
                   1452:   0x014f, 0x014f,
                   1453:   0x0151, 0x0151,
                   1454:   0x0153, 0x0153,
                   1455:   0x0155, 0x0155,
                   1456:   0x0157, 0x0157,
                   1457:   0x0159, 0x0159,
                   1458:   0x015b, 0x015b,
                   1459:   0x015d, 0x015d,
                   1460:   0x015f, 0x015f,
                   1461:   0x0161, 0x0161,
                   1462:   0x0163, 0x0163,
                   1463:   0x0165, 0x0165,
                   1464:   0x0167, 0x0167,
                   1465:   0x0169, 0x0169,
                   1466:   0x016b, 0x016b,
                   1467:   0x016d, 0x016d,
                   1468:   0x016f, 0x016f,
                   1469:   0x0171, 0x0171,
                   1470:   0x0173, 0x0173,
                   1471:   0x0175, 0x0175,
                   1472:   0x0177, 0x0177,
                   1473:   0x017a, 0x017a,
                   1474:   0x017c, 0x017c,
                   1475:   0x017e, 0x0180,
                   1476:   0x0183, 0x0183,
                   1477:   0x0185, 0x0185,
                   1478:   0x0188, 0x0188,
                   1479:   0x018c, 0x018d,
                   1480:   0x0192, 0x0192,
                   1481:   0x0195, 0x0195,
                   1482:   0x0199, 0x019b,
                   1483:   0x019e, 0x019e,
                   1484:   0x01a1, 0x01a1,
                   1485:   0x01a3, 0x01a3,
                   1486:   0x01a5, 0x01a5,
                   1487:   0x01a8, 0x01a8,
                   1488:   0x01aa, 0x01ab,
                   1489:   0x01ad, 0x01ad,
                   1490:   0x01b0, 0x01b0,
                   1491:   0x01b4, 0x01b4,
                   1492:   0x01b6, 0x01b6,
                   1493:   0x01b9, 0x01ba,
                   1494:   0x01bd, 0x01bf,
                   1495:   0x01c6, 0x01c6,
                   1496:   0x01c9, 0x01c9,
                   1497:   0x01cc, 0x01cc,
                   1498:   0x01ce, 0x01ce,
                   1499:   0x01d0, 0x01d0,
                   1500:   0x01d2, 0x01d2,
                   1501:   0x01d4, 0x01d4,
                   1502:   0x01d6, 0x01d6,
                   1503:   0x01d8, 0x01d8,
                   1504:   0x01da, 0x01da,
                   1505:   0x01dc, 0x01dd,
                   1506:   0x01df, 0x01df,
                   1507:   0x01e1, 0x01e1,
                   1508:   0x01e3, 0x01e3,
                   1509:   0x01e5, 0x01e5,
                   1510:   0x01e7, 0x01e7,
                   1511:   0x01e9, 0x01e9,
                   1512:   0x01eb, 0x01eb,
                   1513:   0x01ed, 0x01ed,
                   1514:   0x01ef, 0x01f0,
                   1515:   0x01f3, 0x01f3,
                   1516:   0x01f5, 0x01f5,
                   1517:   0x01f9, 0x01f9,
                   1518:   0x01fb, 0x01fb,
                   1519:   0x01fd, 0x01fd,
                   1520:   0x01ff, 0x01ff,
                   1521:   0x0201, 0x0201,
                   1522:   0x0203, 0x0203,
                   1523:   0x0205, 0x0205,
                   1524:   0x0207, 0x0207,
                   1525:   0x0209, 0x0209,
                   1526:   0x020b, 0x020b,
                   1527:   0x020d, 0x020d,
                   1528:   0x020f, 0x020f,
                   1529:   0x0211, 0x0211,
                   1530:   0x0213, 0x0213,
                   1531:   0x0215, 0x0215,
                   1532:   0x0217, 0x0217,
                   1533:   0x0219, 0x0219,
                   1534:   0x021b, 0x021b,
                   1535:   0x021d, 0x021d,
                   1536:   0x021f, 0x021f,
                   1537:   0x0221, 0x0221,
                   1538:   0x0223, 0x0223,
                   1539:   0x0225, 0x0225,
                   1540:   0x0227, 0x0227,
                   1541:   0x0229, 0x0229,
                   1542:   0x022b, 0x022b,
                   1543:   0x022d, 0x022d,
                   1544:   0x022f, 0x022f,
                   1545:   0x0231, 0x0231,
                   1546:   0x0233, 0x0236,
                   1547:   0x0250, 0x02af,
                   1548:   0x0390, 0x0390,
                   1549:   0x03ac, 0x03ce,
                   1550:   0x03d0, 0x03d1,
                   1551:   0x03d5, 0x03d7,
                   1552:   0x03d9, 0x03d9,
                   1553:   0x03db, 0x03db,
                   1554:   0x03dd, 0x03dd,
                   1555:   0x03df, 0x03df,
                   1556:   0x03e1, 0x03e1,
                   1557:   0x03e3, 0x03e3,
                   1558:   0x03e5, 0x03e5,
                   1559:   0x03e7, 0x03e7,
                   1560:   0x03e9, 0x03e9,
                   1561:   0x03eb, 0x03eb,
                   1562:   0x03ed, 0x03ed,
                   1563:   0x03ef, 0x03f3,
                   1564:   0x03f5, 0x03f5,
                   1565:   0x03f8, 0x03f8,
                   1566:   0x03fb, 0x03fb,
                   1567:   0x0430, 0x045f,
                   1568:   0x0461, 0x0461,
                   1569:   0x0463, 0x0463,
                   1570:   0x0465, 0x0465,
                   1571:   0x0467, 0x0467,
                   1572:   0x0469, 0x0469,
                   1573:   0x046b, 0x046b,
                   1574:   0x046d, 0x046d,
                   1575:   0x046f, 0x046f,
                   1576:   0x0471, 0x0471,
                   1577:   0x0473, 0x0473,
                   1578:   0x0475, 0x0475,
                   1579:   0x0477, 0x0477,
                   1580:   0x0479, 0x0479,
                   1581:   0x047b, 0x047b,
                   1582:   0x047d, 0x047d,
                   1583:   0x047f, 0x047f,
                   1584:   0x0481, 0x0481,
                   1585:   0x048b, 0x048b,
                   1586:   0x048d, 0x048d,
                   1587:   0x048f, 0x048f,
                   1588:   0x0491, 0x0491,
                   1589:   0x0493, 0x0493,
                   1590:   0x0495, 0x0495,
                   1591:   0x0497, 0x0497,
                   1592:   0x0499, 0x0499,
                   1593:   0x049b, 0x049b,
                   1594:   0x049d, 0x049d,
                   1595:   0x049f, 0x049f,
                   1596:   0x04a1, 0x04a1,
                   1597:   0x04a3, 0x04a3,
                   1598:   0x04a5, 0x04a5,
                   1599:   0x04a7, 0x04a7,
                   1600:   0x04a9, 0x04a9,
                   1601:   0x04ab, 0x04ab,
                   1602:   0x04ad, 0x04ad,
                   1603:   0x04af, 0x04af,
                   1604:   0x04b1, 0x04b1,
                   1605:   0x04b3, 0x04b3,
                   1606:   0x04b5, 0x04b5,
                   1607:   0x04b7, 0x04b7,
                   1608:   0x04b9, 0x04b9,
                   1609:   0x04bb, 0x04bb,
                   1610:   0x04bd, 0x04bd,
                   1611:   0x04bf, 0x04bf,
                   1612:   0x04c2, 0x04c2,
                   1613:   0x04c4, 0x04c4,
                   1614:   0x04c6, 0x04c6,
                   1615:   0x04c8, 0x04c8,
                   1616:   0x04ca, 0x04ca,
                   1617:   0x04cc, 0x04cc,
                   1618:   0x04ce, 0x04ce,
                   1619:   0x04d1, 0x04d1,
                   1620:   0x04d3, 0x04d3,
                   1621:   0x04d5, 0x04d5,
                   1622:   0x04d7, 0x04d7,
                   1623:   0x04d9, 0x04d9,
                   1624:   0x04db, 0x04db,
                   1625:   0x04dd, 0x04dd,
                   1626:   0x04df, 0x04df,
                   1627:   0x04e1, 0x04e1,
                   1628:   0x04e3, 0x04e3,
                   1629:   0x04e5, 0x04e5,
                   1630:   0x04e7, 0x04e7,
                   1631:   0x04e9, 0x04e9,
                   1632:   0x04eb, 0x04eb,
                   1633:   0x04ed, 0x04ed,
                   1634:   0x04ef, 0x04ef,
                   1635:   0x04f1, 0x04f1,
                   1636:   0x04f3, 0x04f3,
                   1637:   0x04f5, 0x04f5,
                   1638:   0x04f9, 0x04f9,
                   1639:   0x0501, 0x0501,
                   1640:   0x0503, 0x0503,
                   1641:   0x0505, 0x0505,
                   1642:   0x0507, 0x0507,
                   1643:   0x0509, 0x0509,
                   1644:   0x050b, 0x050b,
                   1645:   0x050d, 0x050d,
                   1646:   0x050f, 0x050f,
                   1647:   0x0561, 0x0587,
                   1648:   0x1d00, 0x1d2b,
                   1649:   0x1d62, 0x1d6b,
                   1650:   0x1e01, 0x1e01,
                   1651:   0x1e03, 0x1e03,
                   1652:   0x1e05, 0x1e05,
                   1653:   0x1e07, 0x1e07,
                   1654:   0x1e09, 0x1e09,
                   1655:   0x1e0b, 0x1e0b,
                   1656:   0x1e0d, 0x1e0d,
                   1657:   0x1e0f, 0x1e0f,
                   1658:   0x1e11, 0x1e11,
                   1659:   0x1e13, 0x1e13,
                   1660:   0x1e15, 0x1e15,
                   1661:   0x1e17, 0x1e17,
                   1662:   0x1e19, 0x1e19,
                   1663:   0x1e1b, 0x1e1b,
                   1664:   0x1e1d, 0x1e1d,
                   1665:   0x1e1f, 0x1e1f,
                   1666:   0x1e21, 0x1e21,
                   1667:   0x1e23, 0x1e23,
                   1668:   0x1e25, 0x1e25,
                   1669:   0x1e27, 0x1e27,
                   1670:   0x1e29, 0x1e29,
                   1671:   0x1e2b, 0x1e2b,
                   1672:   0x1e2d, 0x1e2d,
                   1673:   0x1e2f, 0x1e2f,
                   1674:   0x1e31, 0x1e31,
                   1675:   0x1e33, 0x1e33,
                   1676:   0x1e35, 0x1e35,
                   1677:   0x1e37, 0x1e37,
                   1678:   0x1e39, 0x1e39,
                   1679:   0x1e3b, 0x1e3b,
                   1680:   0x1e3d, 0x1e3d,
                   1681:   0x1e3f, 0x1e3f,
                   1682:   0x1e41, 0x1e41,
                   1683:   0x1e43, 0x1e43,
                   1684:   0x1e45, 0x1e45,
                   1685:   0x1e47, 0x1e47,
                   1686:   0x1e49, 0x1e49,
                   1687:   0x1e4b, 0x1e4b,
                   1688:   0x1e4d, 0x1e4d,
                   1689:   0x1e4f, 0x1e4f,
                   1690:   0x1e51, 0x1e51,
                   1691:   0x1e53, 0x1e53,
                   1692:   0x1e55, 0x1e55,
                   1693:   0x1e57, 0x1e57,
                   1694:   0x1e59, 0x1e59,
                   1695:   0x1e5b, 0x1e5b,
                   1696:   0x1e5d, 0x1e5d,
                   1697:   0x1e5f, 0x1e5f,
                   1698:   0x1e61, 0x1e61,
                   1699:   0x1e63, 0x1e63,
                   1700:   0x1e65, 0x1e65,
                   1701:   0x1e67, 0x1e67,
                   1702:   0x1e69, 0x1e69,
                   1703:   0x1e6b, 0x1e6b,
                   1704:   0x1e6d, 0x1e6d,
                   1705:   0x1e6f, 0x1e6f,
                   1706:   0x1e71, 0x1e71,
                   1707:   0x1e73, 0x1e73,
                   1708:   0x1e75, 0x1e75,
                   1709:   0x1e77, 0x1e77,
                   1710:   0x1e79, 0x1e79,
                   1711:   0x1e7b, 0x1e7b,
                   1712:   0x1e7d, 0x1e7d,
                   1713:   0x1e7f, 0x1e7f,
                   1714:   0x1e81, 0x1e81,
                   1715:   0x1e83, 0x1e83,
                   1716:   0x1e85, 0x1e85,
                   1717:   0x1e87, 0x1e87,
                   1718:   0x1e89, 0x1e89,
                   1719:   0x1e8b, 0x1e8b,
                   1720:   0x1e8d, 0x1e8d,
                   1721:   0x1e8f, 0x1e8f,
                   1722:   0x1e91, 0x1e91,
                   1723:   0x1e93, 0x1e93,
                   1724:   0x1e95, 0x1e9b,
                   1725:   0x1ea1, 0x1ea1,
                   1726:   0x1ea3, 0x1ea3,
                   1727:   0x1ea5, 0x1ea5,
                   1728:   0x1ea7, 0x1ea7,
                   1729:   0x1ea9, 0x1ea9,
                   1730:   0x1eab, 0x1eab,
                   1731:   0x1ead, 0x1ead,
                   1732:   0x1eaf, 0x1eaf,
                   1733:   0x1eb1, 0x1eb1,
                   1734:   0x1eb3, 0x1eb3,
                   1735:   0x1eb5, 0x1eb5,
                   1736:   0x1eb7, 0x1eb7,
                   1737:   0x1eb9, 0x1eb9,
                   1738:   0x1ebb, 0x1ebb,
                   1739:   0x1ebd, 0x1ebd,
                   1740:   0x1ebf, 0x1ebf,
                   1741:   0x1ec1, 0x1ec1,
                   1742:   0x1ec3, 0x1ec3,
                   1743:   0x1ec5, 0x1ec5,
                   1744:   0x1ec7, 0x1ec7,
                   1745:   0x1ec9, 0x1ec9,
                   1746:   0x1ecb, 0x1ecb,
                   1747:   0x1ecd, 0x1ecd,
                   1748:   0x1ecf, 0x1ecf,
                   1749:   0x1ed1, 0x1ed1,
                   1750:   0x1ed3, 0x1ed3,
                   1751:   0x1ed5, 0x1ed5,
                   1752:   0x1ed7, 0x1ed7,
                   1753:   0x1ed9, 0x1ed9,
                   1754:   0x1edb, 0x1edb,
                   1755:   0x1edd, 0x1edd,
                   1756:   0x1edf, 0x1edf,
                   1757:   0x1ee1, 0x1ee1,
                   1758:   0x1ee3, 0x1ee3,
                   1759:   0x1ee5, 0x1ee5,
                   1760:   0x1ee7, 0x1ee7,
                   1761:   0x1ee9, 0x1ee9,
                   1762:   0x1eeb, 0x1eeb,
                   1763:   0x1eed, 0x1eed,
                   1764:   0x1eef, 0x1eef,
                   1765:   0x1ef1, 0x1ef1,
                   1766:   0x1ef3, 0x1ef3,
                   1767:   0x1ef5, 0x1ef5,
                   1768:   0x1ef7, 0x1ef7,
                   1769:   0x1ef9, 0x1ef9,
                   1770:   0x1f00, 0x1f07,
                   1771:   0x1f10, 0x1f15,
                   1772:   0x1f20, 0x1f27,
                   1773:   0x1f30, 0x1f37,
                   1774:   0x1f40, 0x1f45,
                   1775:   0x1f50, 0x1f57,
                   1776:   0x1f60, 0x1f67,
                   1777:   0x1f70, 0x1f7d,
                   1778:   0x1f80, 0x1f87,
                   1779:   0x1f90, 0x1f97,
                   1780:   0x1fa0, 0x1fa7,
                   1781:   0x1fb0, 0x1fb4,
                   1782:   0x1fb6, 0x1fb7,
                   1783:   0x1fbe, 0x1fbe,
                   1784:   0x1fc2, 0x1fc4,
                   1785:   0x1fc6, 0x1fc7,
                   1786:   0x1fd0, 0x1fd3,
                   1787:   0x1fd6, 0x1fd7,
                   1788:   0x1fe0, 0x1fe7,
                   1789:   0x1ff2, 0x1ff4,
                   1790:   0x1ff6, 0x1ff7,
                   1791:   0x2071, 0x2071,
                   1792:   0x207f, 0x207f,
                   1793:   0x210a, 0x210a,
                   1794:   0x210e, 0x210f,
                   1795:   0x2113, 0x2113,
                   1796:   0x212f, 0x212f,
                   1797:   0x2134, 0x2134,
                   1798:   0x2139, 0x2139,
                   1799:   0x213d, 0x213d,
                   1800:   0x2146, 0x2149,
                   1801:   0xfb00, 0xfb06,
                   1802:   0xfb13, 0xfb17,
                   1803:   0xff41, 0xff5a,
                   1804:   0x10428, 0x1044f,
                   1805:   0x1d41a, 0x1d433,
                   1806:   0x1d44e, 0x1d454,
                   1807:   0x1d456, 0x1d467,
                   1808:   0x1d482, 0x1d49b,
                   1809:   0x1d4b6, 0x1d4b9,
                   1810:   0x1d4bb, 0x1d4bb,
                   1811:   0x1d4bd, 0x1d4c3,
                   1812:   0x1d4c5, 0x1d4cf,
                   1813:   0x1d4ea, 0x1d503,
                   1814:   0x1d51e, 0x1d537,
                   1815:   0x1d552, 0x1d56b,
                   1816:   0x1d586, 0x1d59f,
                   1817:   0x1d5ba, 0x1d5d3,
                   1818:   0x1d5ee, 0x1d607,
                   1819:   0x1d622, 0x1d63b,
                   1820:   0x1d656, 0x1d66f,
                   1821:   0x1d68a, 0x1d6a3,
                   1822:   0x1d6c2, 0x1d6da,
                   1823:   0x1d6dc, 0x1d6e1,
                   1824:   0x1d6fc, 0x1d714,
                   1825:   0x1d716, 0x1d71b,
                   1826:   0x1d736, 0x1d74e,
                   1827:   0x1d750, 0x1d755,
                   1828:   0x1d770, 0x1d788,
                   1829:   0x1d78a, 0x1d78f,
                   1830:   0x1d7aa, 0x1d7c2,
                   1831:   0x1d7c4, 0x1d7c9
                   1832: #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
                   1833: }; /* end of CRLower */
                   1834: 
                   1835: static const OnigCodePoint CRPrint[] = {
                   1836: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                   1837:   405,
                   1838: #else
                   1839:   4,
                   1840: #endif
                   1841:   0x0009, 0x000d,
                   1842:   0x0020, 0x007e,
                   1843:   0x0085, 0x0085,
                   1844:   0x00a0, 0x0236
                   1845: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                   1846:   ,
                   1847:   0x0250, 0x0357,
                   1848:   0x035d, 0x036f,
                   1849:   0x0374, 0x0375,
                   1850:   0x037a, 0x037a,
                   1851:   0x037e, 0x037e,
                   1852:   0x0384, 0x038a,
                   1853:   0x038c, 0x038c,
                   1854:   0x038e, 0x03a1,
                   1855:   0x03a3, 0x03ce,
                   1856:   0x03d0, 0x03fb,
                   1857:   0x0400, 0x0486,
                   1858:   0x0488, 0x04ce,
                   1859:   0x04d0, 0x04f5,
                   1860:   0x04f8, 0x04f9,
                   1861:   0x0500, 0x050f,
                   1862:   0x0531, 0x0556,
                   1863:   0x0559, 0x055f,
                   1864:   0x0561, 0x0587,
                   1865:   0x0589, 0x058a,
                   1866:   0x0591, 0x05a1,
                   1867:   0x05a3, 0x05b9,
                   1868:   0x05bb, 0x05c4,
                   1869:   0x05d0, 0x05ea,
                   1870:   0x05f0, 0x05f4,
                   1871:   0x0600, 0x0603,
                   1872:   0x060c, 0x0615,
                   1873:   0x061b, 0x061b,
                   1874:   0x061f, 0x061f,
                   1875:   0x0621, 0x063a,
                   1876:   0x0640, 0x0658,
                   1877:   0x0660, 0x070d,
                   1878:   0x070f, 0x074a,
                   1879:   0x074d, 0x074f,
                   1880:   0x0780, 0x07b1,
                   1881:   0x0901, 0x0939,
                   1882:   0x093c, 0x094d,
                   1883:   0x0950, 0x0954,
                   1884:   0x0958, 0x0970,
                   1885:   0x0981, 0x0983,
                   1886:   0x0985, 0x098c,
                   1887:   0x098f, 0x0990,
                   1888:   0x0993, 0x09a8,
                   1889:   0x09aa, 0x09b0,
                   1890:   0x09b2, 0x09b2,
                   1891:   0x09b6, 0x09b9,
                   1892:   0x09bc, 0x09c4,
                   1893:   0x09c7, 0x09c8,
                   1894:   0x09cb, 0x09cd,
                   1895:   0x09d7, 0x09d7,
                   1896:   0x09dc, 0x09dd,
                   1897:   0x09df, 0x09e3,
                   1898:   0x09e6, 0x09fa,
                   1899:   0x0a01, 0x0a03,
                   1900:   0x0a05, 0x0a0a,
                   1901:   0x0a0f, 0x0a10,
                   1902:   0x0a13, 0x0a28,
                   1903:   0x0a2a, 0x0a30,
                   1904:   0x0a32, 0x0a33,
                   1905:   0x0a35, 0x0a36,
                   1906:   0x0a38, 0x0a39,
                   1907:   0x0a3c, 0x0a3c,
                   1908:   0x0a3e, 0x0a42,
                   1909:   0x0a47, 0x0a48,
                   1910:   0x0a4b, 0x0a4d,
                   1911:   0x0a59, 0x0a5c,
                   1912:   0x0a5e, 0x0a5e,
                   1913:   0x0a66, 0x0a74,
                   1914:   0x0a81, 0x0a83,
                   1915:   0x0a85, 0x0a8d,
                   1916:   0x0a8f, 0x0a91,
                   1917:   0x0a93, 0x0aa8,
                   1918:   0x0aaa, 0x0ab0,
                   1919:   0x0ab2, 0x0ab3,
                   1920:   0x0ab5, 0x0ab9,
                   1921:   0x0abc, 0x0ac5,
                   1922:   0x0ac7, 0x0ac9,
                   1923:   0x0acb, 0x0acd,
                   1924:   0x0ad0, 0x0ad0,
                   1925:   0x0ae0, 0x0ae3,
                   1926:   0x0ae6, 0x0aef,
                   1927:   0x0af1, 0x0af1,
                   1928:   0x0b01, 0x0b03,
                   1929:   0x0b05, 0x0b0c,
                   1930:   0x0b0f, 0x0b10,
                   1931:   0x0b13, 0x0b28,
                   1932:   0x0b2a, 0x0b30,
                   1933:   0x0b32, 0x0b33,
                   1934:   0x0b35, 0x0b39,
                   1935:   0x0b3c, 0x0b43,
                   1936:   0x0b47, 0x0b48,
                   1937:   0x0b4b, 0x0b4d,
                   1938:   0x0b56, 0x0b57,
                   1939:   0x0b5c, 0x0b5d,
                   1940:   0x0b5f, 0x0b61,
                   1941:   0x0b66, 0x0b71,
                   1942:   0x0b82, 0x0b83,
                   1943:   0x0b85, 0x0b8a,
                   1944:   0x0b8e, 0x0b90,
                   1945:   0x0b92, 0x0b95,
                   1946:   0x0b99, 0x0b9a,
                   1947:   0x0b9c, 0x0b9c,
                   1948:   0x0b9e, 0x0b9f,
                   1949:   0x0ba3, 0x0ba4,
                   1950:   0x0ba8, 0x0baa,
                   1951:   0x0bae, 0x0bb5,
                   1952:   0x0bb7, 0x0bb9,
                   1953:   0x0bbe, 0x0bc2,
                   1954:   0x0bc6, 0x0bc8,
                   1955:   0x0bca, 0x0bcd,
                   1956:   0x0bd7, 0x0bd7,
                   1957:   0x0be7, 0x0bfa,
                   1958:   0x0c01, 0x0c03,
                   1959:   0x0c05, 0x0c0c,
                   1960:   0x0c0e, 0x0c10,
                   1961:   0x0c12, 0x0c28,
                   1962:   0x0c2a, 0x0c33,
                   1963:   0x0c35, 0x0c39,
                   1964:   0x0c3e, 0x0c44,
                   1965:   0x0c46, 0x0c48,
                   1966:   0x0c4a, 0x0c4d,
                   1967:   0x0c55, 0x0c56,
                   1968:   0x0c60, 0x0c61,
                   1969:   0x0c66, 0x0c6f,
                   1970:   0x0c82, 0x0c83,
                   1971:   0x0c85, 0x0c8c,
                   1972:   0x0c8e, 0x0c90,
                   1973:   0x0c92, 0x0ca8,
                   1974:   0x0caa, 0x0cb3,
                   1975:   0x0cb5, 0x0cb9,
                   1976:   0x0cbc, 0x0cc4,
                   1977:   0x0cc6, 0x0cc8,
                   1978:   0x0cca, 0x0ccd,
                   1979:   0x0cd5, 0x0cd6,
                   1980:   0x0cde, 0x0cde,
                   1981:   0x0ce0, 0x0ce1,
                   1982:   0x0ce6, 0x0cef,
                   1983:   0x0d02, 0x0d03,
                   1984:   0x0d05, 0x0d0c,
                   1985:   0x0d0e, 0x0d10,
                   1986:   0x0d12, 0x0d28,
                   1987:   0x0d2a, 0x0d39,
                   1988:   0x0d3e, 0x0d43,
                   1989:   0x0d46, 0x0d48,
                   1990:   0x0d4a, 0x0d4d,
                   1991:   0x0d57, 0x0d57,
                   1992:   0x0d60, 0x0d61,
                   1993:   0x0d66, 0x0d6f,
                   1994:   0x0d82, 0x0d83,
                   1995:   0x0d85, 0x0d96,
                   1996:   0x0d9a, 0x0db1,
                   1997:   0x0db3, 0x0dbb,
                   1998:   0x0dbd, 0x0dbd,
                   1999:   0x0dc0, 0x0dc6,
                   2000:   0x0dca, 0x0dca,
                   2001:   0x0dcf, 0x0dd4,
                   2002:   0x0dd6, 0x0dd6,
                   2003:   0x0dd8, 0x0ddf,
                   2004:   0x0df2, 0x0df4,
                   2005:   0x0e01, 0x0e3a,
                   2006:   0x0e3f, 0x0e5b,
                   2007:   0x0e81, 0x0e82,
                   2008:   0x0e84, 0x0e84,
                   2009:   0x0e87, 0x0e88,
                   2010:   0x0e8a, 0x0e8a,
                   2011:   0x0e8d, 0x0e8d,
                   2012:   0x0e94, 0x0e97,
                   2013:   0x0e99, 0x0e9f,
                   2014:   0x0ea1, 0x0ea3,
                   2015:   0x0ea5, 0x0ea5,
                   2016:   0x0ea7, 0x0ea7,
                   2017:   0x0eaa, 0x0eab,
                   2018:   0x0ead, 0x0eb9,
                   2019:   0x0ebb, 0x0ebd,
                   2020:   0x0ec0, 0x0ec4,
                   2021:   0x0ec6, 0x0ec6,
                   2022:   0x0ec8, 0x0ecd,
                   2023:   0x0ed0, 0x0ed9,
                   2024:   0x0edc, 0x0edd,
                   2025:   0x0f00, 0x0f47,
                   2026:   0x0f49, 0x0f6a,
                   2027:   0x0f71, 0x0f8b,
                   2028:   0x0f90, 0x0f97,
                   2029:   0x0f99, 0x0fbc,
                   2030:   0x0fbe, 0x0fcc,
                   2031:   0x0fcf, 0x0fcf,
                   2032:   0x1000, 0x1021,
                   2033:   0x1023, 0x1027,
                   2034:   0x1029, 0x102a,
                   2035:   0x102c, 0x1032,
                   2036:   0x1036, 0x1039,
                   2037:   0x1040, 0x1059,
                   2038:   0x10a0, 0x10c5,
                   2039:   0x10d0, 0x10f8,
                   2040:   0x10fb, 0x10fb,
                   2041:   0x1100, 0x1159,
                   2042:   0x115f, 0x11a2,
                   2043:   0x11a8, 0x11f9,
                   2044:   0x1200, 0x1206,
                   2045:   0x1208, 0x1246,
                   2046:   0x1248, 0x1248,
                   2047:   0x124a, 0x124d,
                   2048:   0x1250, 0x1256,
                   2049:   0x1258, 0x1258,
                   2050:   0x125a, 0x125d,
                   2051:   0x1260, 0x1286,
                   2052:   0x1288, 0x1288,
                   2053:   0x128a, 0x128d,
                   2054:   0x1290, 0x12ae,
                   2055:   0x12b0, 0x12b0,
                   2056:   0x12b2, 0x12b5,
                   2057:   0x12b8, 0x12be,
                   2058:   0x12c0, 0x12c0,
                   2059:   0x12c2, 0x12c5,
                   2060:   0x12c8, 0x12ce,
                   2061:   0x12d0, 0x12d6,
                   2062:   0x12d8, 0x12ee,
                   2063:   0x12f0, 0x130e,
                   2064:   0x1310, 0x1310,
                   2065:   0x1312, 0x1315,
                   2066:   0x1318, 0x131e,
                   2067:   0x1320, 0x1346,
                   2068:   0x1348, 0x135a,
                   2069:   0x1361, 0x137c,
                   2070:   0x13a0, 0x13f4,
                   2071:   0x1401, 0x1676,
                   2072:   0x1680, 0x169c,
                   2073:   0x16a0, 0x16f0,
                   2074:   0x1700, 0x170c,
                   2075:   0x170e, 0x1714,
                   2076:   0x1720, 0x1736,
                   2077:   0x1740, 0x1753,
                   2078:   0x1760, 0x176c,
                   2079:   0x176e, 0x1770,
                   2080:   0x1772, 0x1773,
                   2081:   0x1780, 0x17dd,
                   2082:   0x17e0, 0x17e9,
                   2083:   0x17f0, 0x17f9,
                   2084:   0x1800, 0x180e,
                   2085:   0x1810, 0x1819,
                   2086:   0x1820, 0x1877,
                   2087:   0x1880, 0x18a9,
                   2088:   0x1900, 0x191c,
                   2089:   0x1920, 0x192b,
                   2090:   0x1930, 0x193b,
                   2091:   0x1940, 0x1940,
                   2092:   0x1944, 0x196d,
                   2093:   0x1970, 0x1974,
                   2094:   0x19e0, 0x19ff,
                   2095:   0x1d00, 0x1d6b,
                   2096:   0x1e00, 0x1e9b,
                   2097:   0x1ea0, 0x1ef9,
                   2098:   0x1f00, 0x1f15,
                   2099:   0x1f18, 0x1f1d,
                   2100:   0x1f20, 0x1f45,
                   2101:   0x1f48, 0x1f4d,
                   2102:   0x1f50, 0x1f57,
                   2103:   0x1f59, 0x1f59,
                   2104:   0x1f5b, 0x1f5b,
                   2105:   0x1f5d, 0x1f5d,
                   2106:   0x1f5f, 0x1f7d,
                   2107:   0x1f80, 0x1fb4,
                   2108:   0x1fb6, 0x1fc4,
                   2109:   0x1fc6, 0x1fd3,
                   2110:   0x1fd6, 0x1fdb,
                   2111:   0x1fdd, 0x1fef,
                   2112:   0x1ff2, 0x1ff4,
                   2113:   0x1ff6, 0x1ffe,
                   2114:   0x2000, 0x2054,
                   2115:   0x2057, 0x2057,
                   2116:   0x205f, 0x2063,
                   2117:   0x206a, 0x2071,
                   2118:   0x2074, 0x208e,
                   2119:   0x20a0, 0x20b1,
                   2120:   0x20d0, 0x20ea,
                   2121:   0x2100, 0x213b,
                   2122:   0x213d, 0x214b,
                   2123:   0x2153, 0x2183,
                   2124:   0x2190, 0x23d0,
                   2125:   0x2400, 0x2426,
                   2126:   0x2440, 0x244a,
                   2127:   0x2460, 0x2617,
                   2128:   0x2619, 0x267d,
                   2129:   0x2680, 0x2691,
                   2130:   0x26a0, 0x26a1,
                   2131:   0x2701, 0x2704,
                   2132:   0x2706, 0x2709,
                   2133:   0x270c, 0x2727,
                   2134:   0x2729, 0x274b,
                   2135:   0x274d, 0x274d,
                   2136:   0x274f, 0x2752,
                   2137:   0x2756, 0x2756,
                   2138:   0x2758, 0x275e,
                   2139:   0x2761, 0x2794,
                   2140:   0x2798, 0x27af,
                   2141:   0x27b1, 0x27be,
                   2142:   0x27d0, 0x27eb,
                   2143:   0x27f0, 0x2b0d,
                   2144:   0x2e80, 0x2e99,
                   2145:   0x2e9b, 0x2ef3,
                   2146:   0x2f00, 0x2fd5,
                   2147:   0x2ff0, 0x2ffb,
                   2148:   0x3000, 0x303f,
                   2149:   0x3041, 0x3096,
                   2150:   0x3099, 0x30ff,
                   2151:   0x3105, 0x312c,
                   2152:   0x3131, 0x318e,
                   2153:   0x3190, 0x31b7,
                   2154:   0x31f0, 0x321e,
                   2155:   0x3220, 0x3243,
                   2156:   0x3250, 0x327d,
                   2157:   0x327f, 0x32fe,
                   2158:   0x3300, 0x4db5,
                   2159:   0x4dc0, 0x9fa5,
                   2160:   0xa000, 0xa48c,
                   2161:   0xa490, 0xa4c6,
                   2162:   0xac00, 0xd7a3,
                   2163:   0xe000, 0xfa2d,
                   2164:   0xfa30, 0xfa6a,
                   2165:   0xfb00, 0xfb06,
                   2166:   0xfb13, 0xfb17,
                   2167:   0xfb1d, 0xfb36,
                   2168:   0xfb38, 0xfb3c,
                   2169:   0xfb3e, 0xfb3e,
                   2170:   0xfb40, 0xfb41,
                   2171:   0xfb43, 0xfb44,
                   2172:   0xfb46, 0xfbb1,
                   2173:   0xfbd3, 0xfd3f,
                   2174:   0xfd50, 0xfd8f,
                   2175:   0xfd92, 0xfdc7,
                   2176:   0xfdf0, 0xfdfd,
                   2177:   0xfe00, 0xfe0f,
                   2178:   0xfe20, 0xfe23,
                   2179:   0xfe30, 0xfe52,
                   2180:   0xfe54, 0xfe66,
                   2181:   0xfe68, 0xfe6b,
                   2182:   0xfe70, 0xfe74,
                   2183:   0xfe76, 0xfefc,
                   2184:   0xfeff, 0xfeff,
                   2185:   0xff01, 0xffbe,
                   2186:   0xffc2, 0xffc7,
                   2187:   0xffca, 0xffcf,
                   2188:   0xffd2, 0xffd7,
                   2189:   0xffda, 0xffdc,
                   2190:   0xffe0, 0xffe6,
                   2191:   0xffe8, 0xffee,
                   2192:   0xfff9, 0xfffd,
                   2193:   0x10000, 0x1000b,
                   2194:   0x1000d, 0x10026,
                   2195:   0x10028, 0x1003a,
                   2196:   0x1003c, 0x1003d,
                   2197:   0x1003f, 0x1004d,
                   2198:   0x10050, 0x1005d,
                   2199:   0x10080, 0x100fa,
                   2200:   0x10100, 0x10102,
                   2201:   0x10107, 0x10133,
                   2202:   0x10137, 0x1013f,
                   2203:   0x10300, 0x1031e,
                   2204:   0x10320, 0x10323,
                   2205:   0x10330, 0x1034a,
                   2206:   0x10380, 0x1039d,
                   2207:   0x1039f, 0x1039f,
                   2208:   0x10400, 0x1049d,
                   2209:   0x104a0, 0x104a9,
                   2210:   0x10800, 0x10805,
                   2211:   0x10808, 0x10808,
                   2212:   0x1080a, 0x10835,
                   2213:   0x10837, 0x10838,
                   2214:   0x1083c, 0x1083c,
                   2215:   0x1083f, 0x1083f,
                   2216:   0x1d000, 0x1d0f5,
                   2217:   0x1d100, 0x1d126,
                   2218:   0x1d12a, 0x1d1dd,
                   2219:   0x1d300, 0x1d356,
                   2220:   0x1d400, 0x1d454,
                   2221:   0x1d456, 0x1d49c,
                   2222:   0x1d49e, 0x1d49f,
                   2223:   0x1d4a2, 0x1d4a2,
                   2224:   0x1d4a5, 0x1d4a6,
                   2225:   0x1d4a9, 0x1d4ac,
                   2226:   0x1d4ae, 0x1d4b9,
                   2227:   0x1d4bb, 0x1d4bb,
                   2228:   0x1d4bd, 0x1d4c3,
                   2229:   0x1d4c5, 0x1d505,
                   2230:   0x1d507, 0x1d50a,
                   2231:   0x1d50d, 0x1d514,
                   2232:   0x1d516, 0x1d51c,
                   2233:   0x1d51e, 0x1d539,
                   2234:   0x1d53b, 0x1d53e,
                   2235:   0x1d540, 0x1d544,
                   2236:   0x1d546, 0x1d546,
                   2237:   0x1d54a, 0x1d550,
                   2238:   0x1d552, 0x1d6a3,
                   2239:   0x1d6a8, 0x1d7c9,
                   2240:   0x1d7ce, 0x1d7ff,
                   2241:   0x20000, 0x2a6d6,
                   2242:   0x2f800, 0x2fa1d,
                   2243:   0xe0001, 0xe0001,
                   2244:   0xe0020, 0xe007f,
                   2245:   0xe0100, 0xe01ef,
                   2246:   0xf0000, 0xffffd,
                   2247:   0x100000, 0x10fffd
                   2248: #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
                   2249: }; /* end of CRPrint */
                   2250: 
                   2251: static const OnigCodePoint CRPunct[] = {
                   2252: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                   2253:   86,
                   2254: #else
                   2255:   14,
                   2256: #endif
                   2257:   0x0021, 0x0023,
                   2258:   0x0025, 0x002a,
                   2259:   0x002c, 0x002f,
                   2260:   0x003a, 0x003b,
                   2261:   0x003f, 0x0040,
                   2262:   0x005b, 0x005d,
                   2263:   0x005f, 0x005f,
                   2264:   0x007b, 0x007b,
                   2265:   0x007d, 0x007d,
                   2266:   0x00a1, 0x00a1,
                   2267:   0x00ab, 0x00ab,
                   2268:   0x00b7, 0x00b7,
                   2269:   0x00bb, 0x00bb,
                   2270:   0x00bf, 0x00bf
                   2271: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                   2272:   ,
                   2273:   0x037e, 0x037e,
                   2274:   0x0387, 0x0387,
                   2275:   0x055a, 0x055f,
                   2276:   0x0589, 0x058a,
                   2277:   0x05be, 0x05be,
                   2278:   0x05c0, 0x05c0,
                   2279:   0x05c3, 0x05c3,
                   2280:   0x05f3, 0x05f4,
                   2281:   0x060c, 0x060d,
                   2282:   0x061b, 0x061b,
                   2283:   0x061f, 0x061f,
                   2284:   0x066a, 0x066d,
                   2285:   0x06d4, 0x06d4,
                   2286:   0x0700, 0x070d,
                   2287:   0x0964, 0x0965,
                   2288:   0x0970, 0x0970,
                   2289:   0x0df4, 0x0df4,
                   2290:   0x0e4f, 0x0e4f,
                   2291:   0x0e5a, 0x0e5b,
                   2292:   0x0f04, 0x0f12,
                   2293:   0x0f3a, 0x0f3d,
                   2294:   0x0f85, 0x0f85,
                   2295:   0x104a, 0x104f,
                   2296:   0x10fb, 0x10fb,
                   2297:   0x1361, 0x1368,
                   2298:   0x166d, 0x166e,
                   2299:   0x169b, 0x169c,
                   2300:   0x16eb, 0x16ed,
                   2301:   0x1735, 0x1736,
                   2302:   0x17d4, 0x17d6,
                   2303:   0x17d8, 0x17da,
                   2304:   0x1800, 0x180a,
                   2305:   0x1944, 0x1945,
                   2306:   0x2010, 0x2027,
                   2307:   0x2030, 0x2043,
                   2308:   0x2045, 0x2051,
                   2309:   0x2053, 0x2054,
                   2310:   0x2057, 0x2057,
                   2311:   0x207d, 0x207e,
                   2312:   0x208d, 0x208e,
                   2313:   0x2329, 0x232a,
                   2314:   0x23b4, 0x23b6,
                   2315:   0x2768, 0x2775,
                   2316:   0x27e6, 0x27eb,
                   2317:   0x2983, 0x2998,
                   2318:   0x29d8, 0x29db,
                   2319:   0x29fc, 0x29fd,
                   2320:   0x3001, 0x3003,
                   2321:   0x3008, 0x3011,
                   2322:   0x3014, 0x301f,
                   2323:   0x3030, 0x3030,
                   2324:   0x303d, 0x303d,
                   2325:   0x30a0, 0x30a0,
                   2326:   0x30fb, 0x30fb,
                   2327:   0xfd3e, 0xfd3f,
                   2328:   0xfe30, 0xfe52,
                   2329:   0xfe54, 0xfe61,
                   2330:   0xfe63, 0xfe63,
                   2331:   0xfe68, 0xfe68,
                   2332:   0xfe6a, 0xfe6b,
                   2333:   0xff01, 0xff03,
                   2334:   0xff05, 0xff0a,
                   2335:   0xff0c, 0xff0f,
                   2336:   0xff1a, 0xff1b,
                   2337:   0xff1f, 0xff20,
                   2338:   0xff3b, 0xff3d,
                   2339:   0xff3f, 0xff3f,
                   2340:   0xff5b, 0xff5b,
                   2341:   0xff5d, 0xff5d,
                   2342:   0xff5f, 0xff65,
                   2343:   0x10100, 0x10101,
                   2344:   0x1039f, 0x1039f
                   2345: #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
                   2346: }; /* end of CRPunct */
                   2347: 
                   2348: static const OnigCodePoint CRSpace[] = {
                   2349: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                   2350:   11,
                   2351: #else
                   2352:   4,
                   2353: #endif
                   2354:   0x0009, 0x000d,
                   2355:   0x0020, 0x0020,
                   2356:   0x0085, 0x0085,
                   2357:   0x00a0, 0x00a0
                   2358: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                   2359:   ,
                   2360:   0x1680, 0x1680,
                   2361:   0x180e, 0x180e,
                   2362:   0x2000, 0x200a,
                   2363:   0x2028, 0x2029,
                   2364:   0x202f, 0x202f,
                   2365:   0x205f, 0x205f,
                   2366:   0x3000, 0x3000
                   2367: #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
                   2368: }; /* end of CRSpace */
                   2369: 
                   2370: static const OnigCodePoint CRUpper[] = {
                   2371: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                   2372:   421,
                   2373: #else
                   2374:   3,
                   2375: #endif
                   2376:   0x0041, 0x005a,
                   2377:   0x00c0, 0x00d6,
                   2378:   0x00d8, 0x00de
                   2379: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                   2380:   ,
                   2381:   0x0100, 0x0100,
                   2382:   0x0102, 0x0102,
                   2383:   0x0104, 0x0104,
                   2384:   0x0106, 0x0106,
                   2385:   0x0108, 0x0108,
                   2386:   0x010a, 0x010a,
                   2387:   0x010c, 0x010c,
                   2388:   0x010e, 0x010e,
                   2389:   0x0110, 0x0110,
                   2390:   0x0112, 0x0112,
                   2391:   0x0114, 0x0114,
                   2392:   0x0116, 0x0116,
                   2393:   0x0118, 0x0118,
                   2394:   0x011a, 0x011a,
                   2395:   0x011c, 0x011c,
                   2396:   0x011e, 0x011e,
                   2397:   0x0120, 0x0120,
                   2398:   0x0122, 0x0122,
                   2399:   0x0124, 0x0124,
                   2400:   0x0126, 0x0126,
                   2401:   0x0128, 0x0128,
                   2402:   0x012a, 0x012a,
                   2403:   0x012c, 0x012c,
                   2404:   0x012e, 0x012e,
                   2405:   0x0130, 0x0130,
                   2406:   0x0132, 0x0132,
                   2407:   0x0134, 0x0134,
                   2408:   0x0136, 0x0136,
                   2409:   0x0139, 0x0139,
                   2410:   0x013b, 0x013b,
                   2411:   0x013d, 0x013d,
                   2412:   0x013f, 0x013f,
                   2413:   0x0141, 0x0141,
                   2414:   0x0143, 0x0143,
                   2415:   0x0145, 0x0145,
                   2416:   0x0147, 0x0147,
                   2417:   0x014a, 0x014a,
                   2418:   0x014c, 0x014c,
                   2419:   0x014e, 0x014e,
                   2420:   0x0150, 0x0150,
                   2421:   0x0152, 0x0152,
                   2422:   0x0154, 0x0154,
                   2423:   0x0156, 0x0156,
                   2424:   0x0158, 0x0158,
                   2425:   0x015a, 0x015a,
                   2426:   0x015c, 0x015c,
                   2427:   0x015e, 0x015e,
                   2428:   0x0160, 0x0160,
                   2429:   0x0162, 0x0162,
                   2430:   0x0164, 0x0164,
                   2431:   0x0166, 0x0166,
                   2432:   0x0168, 0x0168,
                   2433:   0x016a, 0x016a,
                   2434:   0x016c, 0x016c,
                   2435:   0x016e, 0x016e,
                   2436:   0x0170, 0x0170,
                   2437:   0x0172, 0x0172,
                   2438:   0x0174, 0x0174,
                   2439:   0x0176, 0x0176,
                   2440:   0x0178, 0x0179,
                   2441:   0x017b, 0x017b,
                   2442:   0x017d, 0x017d,
                   2443:   0x0181, 0x0182,
                   2444:   0x0184, 0x0184,
                   2445:   0x0186, 0x0187,
                   2446:   0x0189, 0x018b,
                   2447:   0x018e, 0x0191,
                   2448:   0x0193, 0x0194,
                   2449:   0x0196, 0x0198,
                   2450:   0x019c, 0x019d,
                   2451:   0x019f, 0x01a0,
                   2452:   0x01a2, 0x01a2,
                   2453:   0x01a4, 0x01a4,
                   2454:   0x01a6, 0x01a7,
                   2455:   0x01a9, 0x01a9,
                   2456:   0x01ac, 0x01ac,
                   2457:   0x01ae, 0x01af,
                   2458:   0x01b1, 0x01b3,
                   2459:   0x01b5, 0x01b5,
                   2460:   0x01b7, 0x01b8,
                   2461:   0x01bc, 0x01bc,
                   2462:   0x01c4, 0x01c4,
                   2463:   0x01c7, 0x01c7,
                   2464:   0x01ca, 0x01ca,
                   2465:   0x01cd, 0x01cd,
                   2466:   0x01cf, 0x01cf,
                   2467:   0x01d1, 0x01d1,
                   2468:   0x01d3, 0x01d3,
                   2469:   0x01d5, 0x01d5,
                   2470:   0x01d7, 0x01d7,
                   2471:   0x01d9, 0x01d9,
                   2472:   0x01db, 0x01db,
                   2473:   0x01de, 0x01de,
                   2474:   0x01e0, 0x01e0,
                   2475:   0x01e2, 0x01e2,
                   2476:   0x01e4, 0x01e4,
                   2477:   0x01e6, 0x01e6,
                   2478:   0x01e8, 0x01e8,
                   2479:   0x01ea, 0x01ea,
                   2480:   0x01ec, 0x01ec,
                   2481:   0x01ee, 0x01ee,
                   2482:   0x01f1, 0x01f1,
                   2483:   0x01f4, 0x01f4,
                   2484:   0x01f6, 0x01f8,
                   2485:   0x01fa, 0x01fa,
                   2486:   0x01fc, 0x01fc,
                   2487:   0x01fe, 0x01fe,
                   2488:   0x0200, 0x0200,
                   2489:   0x0202, 0x0202,
                   2490:   0x0204, 0x0204,
                   2491:   0x0206, 0x0206,
                   2492:   0x0208, 0x0208,
                   2493:   0x020a, 0x020a,
                   2494:   0x020c, 0x020c,
                   2495:   0x020e, 0x020e,
                   2496:   0x0210, 0x0210,
                   2497:   0x0212, 0x0212,
                   2498:   0x0214, 0x0214,
                   2499:   0x0216, 0x0216,
                   2500:   0x0218, 0x0218,
                   2501:   0x021a, 0x021a,
                   2502:   0x021c, 0x021c,
                   2503:   0x021e, 0x021e,
                   2504:   0x0220, 0x0220,
                   2505:   0x0222, 0x0222,
                   2506:   0x0224, 0x0224,
                   2507:   0x0226, 0x0226,
                   2508:   0x0228, 0x0228,
                   2509:   0x022a, 0x022a,
                   2510:   0x022c, 0x022c,
                   2511:   0x022e, 0x022e,
                   2512:   0x0230, 0x0230,
                   2513:   0x0232, 0x0232,
                   2514:   0x0386, 0x0386,
                   2515:   0x0388, 0x038a,
                   2516:   0x038c, 0x038c,
                   2517:   0x038e, 0x038f,
                   2518:   0x0391, 0x03a1,
                   2519:   0x03a3, 0x03ab,
                   2520:   0x03d2, 0x03d4,
                   2521:   0x03d8, 0x03d8,
                   2522:   0x03da, 0x03da,
                   2523:   0x03dc, 0x03dc,
                   2524:   0x03de, 0x03de,
                   2525:   0x03e0, 0x03e0,
                   2526:   0x03e2, 0x03e2,
                   2527:   0x03e4, 0x03e4,
                   2528:   0x03e6, 0x03e6,
                   2529:   0x03e8, 0x03e8,
                   2530:   0x03ea, 0x03ea,
                   2531:   0x03ec, 0x03ec,
                   2532:   0x03ee, 0x03ee,
                   2533:   0x03f4, 0x03f4,
                   2534:   0x03f7, 0x03f7,
                   2535:   0x03f9, 0x03fa,
                   2536:   0x0400, 0x042f,
                   2537:   0x0460, 0x0460,
                   2538:   0x0462, 0x0462,
                   2539:   0x0464, 0x0464,
                   2540:   0x0466, 0x0466,
                   2541:   0x0468, 0x0468,
                   2542:   0x046a, 0x046a,
                   2543:   0x046c, 0x046c,
                   2544:   0x046e, 0x046e,
                   2545:   0x0470, 0x0470,
                   2546:   0x0472, 0x0472,
                   2547:   0x0474, 0x0474,
                   2548:   0x0476, 0x0476,
                   2549:   0x0478, 0x0478,
                   2550:   0x047a, 0x047a,
                   2551:   0x047c, 0x047c,
                   2552:   0x047e, 0x047e,
                   2553:   0x0480, 0x0480,
                   2554:   0x048a, 0x048a,
                   2555:   0x048c, 0x048c,
                   2556:   0x048e, 0x048e,
                   2557:   0x0490, 0x0490,
                   2558:   0x0492, 0x0492,
                   2559:   0x0494, 0x0494,
                   2560:   0x0496, 0x0496,
                   2561:   0x0498, 0x0498,
                   2562:   0x049a, 0x049a,
                   2563:   0x049c, 0x049c,
                   2564:   0x049e, 0x049e,
                   2565:   0x04a0, 0x04a0,
                   2566:   0x04a2, 0x04a2,
                   2567:   0x04a4, 0x04a4,
                   2568:   0x04a6, 0x04a6,
                   2569:   0x04a8, 0x04a8,
                   2570:   0x04aa, 0x04aa,
                   2571:   0x04ac, 0x04ac,
                   2572:   0x04ae, 0x04ae,
                   2573:   0x04b0, 0x04b0,
                   2574:   0x04b2, 0x04b2,
                   2575:   0x04b4, 0x04b4,
                   2576:   0x04b6, 0x04b6,
                   2577:   0x04b8, 0x04b8,
                   2578:   0x04ba, 0x04ba,
                   2579:   0x04bc, 0x04bc,
                   2580:   0x04be, 0x04be,
                   2581:   0x04c0, 0x04c1,
                   2582:   0x04c3, 0x04c3,
                   2583:   0x04c5, 0x04c5,
                   2584:   0x04c7, 0x04c7,
                   2585:   0x04c9, 0x04c9,
                   2586:   0x04cb, 0x04cb,
                   2587:   0x04cd, 0x04cd,
                   2588:   0x04d0, 0x04d0,
                   2589:   0x04d2, 0x04d2,
                   2590:   0x04d4, 0x04d4,
                   2591:   0x04d6, 0x04d6,
                   2592:   0x04d8, 0x04d8,
                   2593:   0x04da, 0x04da,
                   2594:   0x04dc, 0x04dc,
                   2595:   0x04de, 0x04de,
                   2596:   0x04e0, 0x04e0,
                   2597:   0x04e2, 0x04e2,
                   2598:   0x04e4, 0x04e4,
                   2599:   0x04e6, 0x04e6,
                   2600:   0x04e8, 0x04e8,
                   2601:   0x04ea, 0x04ea,
                   2602:   0x04ec, 0x04ec,
                   2603:   0x04ee, 0x04ee,
                   2604:   0x04f0, 0x04f0,
                   2605:   0x04f2, 0x04f2,
                   2606:   0x04f4, 0x04f4,
                   2607:   0x04f8, 0x04f8,
                   2608:   0x0500, 0x0500,
                   2609:   0x0502, 0x0502,
                   2610:   0x0504, 0x0504,
                   2611:   0x0506, 0x0506,
                   2612:   0x0508, 0x0508,
                   2613:   0x050a, 0x050a,
                   2614:   0x050c, 0x050c,
                   2615:   0x050e, 0x050e,
                   2616:   0x0531, 0x0556,
                   2617:   0x10a0, 0x10c5,
                   2618:   0x1e00, 0x1e00,
                   2619:   0x1e02, 0x1e02,
                   2620:   0x1e04, 0x1e04,
                   2621:   0x1e06, 0x1e06,
                   2622:   0x1e08, 0x1e08,
                   2623:   0x1e0a, 0x1e0a,
                   2624:   0x1e0c, 0x1e0c,
                   2625:   0x1e0e, 0x1e0e,
                   2626:   0x1e10, 0x1e10,
                   2627:   0x1e12, 0x1e12,
                   2628:   0x1e14, 0x1e14,
                   2629:   0x1e16, 0x1e16,
                   2630:   0x1e18, 0x1e18,
                   2631:   0x1e1a, 0x1e1a,
                   2632:   0x1e1c, 0x1e1c,
                   2633:   0x1e1e, 0x1e1e,
                   2634:   0x1e20, 0x1e20,
                   2635:   0x1e22, 0x1e22,
                   2636:   0x1e24, 0x1e24,
                   2637:   0x1e26, 0x1e26,
                   2638:   0x1e28, 0x1e28,
                   2639:   0x1e2a, 0x1e2a,
                   2640:   0x1e2c, 0x1e2c,
                   2641:   0x1e2e, 0x1e2e,
                   2642:   0x1e30, 0x1e30,
                   2643:   0x1e32, 0x1e32,
                   2644:   0x1e34, 0x1e34,
                   2645:   0x1e36, 0x1e36,
                   2646:   0x1e38, 0x1e38,
                   2647:   0x1e3a, 0x1e3a,
                   2648:   0x1e3c, 0x1e3c,
                   2649:   0x1e3e, 0x1e3e,
                   2650:   0x1e40, 0x1e40,
                   2651:   0x1e42, 0x1e42,
                   2652:   0x1e44, 0x1e44,
                   2653:   0x1e46, 0x1e46,
                   2654:   0x1e48, 0x1e48,
                   2655:   0x1e4a, 0x1e4a,
                   2656:   0x1e4c, 0x1e4c,
                   2657:   0x1e4e, 0x1e4e,
                   2658:   0x1e50, 0x1e50,
                   2659:   0x1e52, 0x1e52,
                   2660:   0x1e54, 0x1e54,
                   2661:   0x1e56, 0x1e56,
                   2662:   0x1e58, 0x1e58,
                   2663:   0x1e5a, 0x1e5a,
                   2664:   0x1e5c, 0x1e5c,
                   2665:   0x1e5e, 0x1e5e,
                   2666:   0x1e60, 0x1e60,
                   2667:   0x1e62, 0x1e62,
                   2668:   0x1e64, 0x1e64,
                   2669:   0x1e66, 0x1e66,
                   2670:   0x1e68, 0x1e68,
                   2671:   0x1e6a, 0x1e6a,
                   2672:   0x1e6c, 0x1e6c,
                   2673:   0x1e6e, 0x1e6e,
                   2674:   0x1e70, 0x1e70,
                   2675:   0x1e72, 0x1e72,
                   2676:   0x1e74, 0x1e74,
                   2677:   0x1e76, 0x1e76,
                   2678:   0x1e78, 0x1e78,
                   2679:   0x1e7a, 0x1e7a,
                   2680:   0x1e7c, 0x1e7c,
                   2681:   0x1e7e, 0x1e7e,
                   2682:   0x1e80, 0x1e80,
                   2683:   0x1e82, 0x1e82,
                   2684:   0x1e84, 0x1e84,
                   2685:   0x1e86, 0x1e86,
                   2686:   0x1e88, 0x1e88,
                   2687:   0x1e8a, 0x1e8a,
                   2688:   0x1e8c, 0x1e8c,
                   2689:   0x1e8e, 0x1e8e,
                   2690:   0x1e90, 0x1e90,
                   2691:   0x1e92, 0x1e92,
                   2692:   0x1e94, 0x1e94,
                   2693:   0x1ea0, 0x1ea0,
                   2694:   0x1ea2, 0x1ea2,
                   2695:   0x1ea4, 0x1ea4,
                   2696:   0x1ea6, 0x1ea6,
                   2697:   0x1ea8, 0x1ea8,
                   2698:   0x1eaa, 0x1eaa,
                   2699:   0x1eac, 0x1eac,
                   2700:   0x1eae, 0x1eae,
                   2701:   0x1eb0, 0x1eb0,
                   2702:   0x1eb2, 0x1eb2,
                   2703:   0x1eb4, 0x1eb4,
                   2704:   0x1eb6, 0x1eb6,
                   2705:   0x1eb8, 0x1eb8,
                   2706:   0x1eba, 0x1eba,
                   2707:   0x1ebc, 0x1ebc,
                   2708:   0x1ebe, 0x1ebe,
                   2709:   0x1ec0, 0x1ec0,
                   2710:   0x1ec2, 0x1ec2,
                   2711:   0x1ec4, 0x1ec4,
                   2712:   0x1ec6, 0x1ec6,
                   2713:   0x1ec8, 0x1ec8,
                   2714:   0x1eca, 0x1eca,
                   2715:   0x1ecc, 0x1ecc,
                   2716:   0x1ece, 0x1ece,
                   2717:   0x1ed0, 0x1ed0,
                   2718:   0x1ed2, 0x1ed2,
                   2719:   0x1ed4, 0x1ed4,
                   2720:   0x1ed6, 0x1ed6,
                   2721:   0x1ed8, 0x1ed8,
                   2722:   0x1eda, 0x1eda,
                   2723:   0x1edc, 0x1edc,
                   2724:   0x1ede, 0x1ede,
                   2725:   0x1ee0, 0x1ee0,
                   2726:   0x1ee2, 0x1ee2,
                   2727:   0x1ee4, 0x1ee4,
                   2728:   0x1ee6, 0x1ee6,
                   2729:   0x1ee8, 0x1ee8,
                   2730:   0x1eea, 0x1eea,
                   2731:   0x1eec, 0x1eec,
                   2732:   0x1eee, 0x1eee,
                   2733:   0x1ef0, 0x1ef0,
                   2734:   0x1ef2, 0x1ef2,
                   2735:   0x1ef4, 0x1ef4,
                   2736:   0x1ef6, 0x1ef6,
                   2737:   0x1ef8, 0x1ef8,
                   2738:   0x1f08, 0x1f0f,
                   2739:   0x1f18, 0x1f1d,
                   2740:   0x1f28, 0x1f2f,
                   2741:   0x1f38, 0x1f3f,
                   2742:   0x1f48, 0x1f4d,
                   2743:   0x1f59, 0x1f59,
                   2744:   0x1f5b, 0x1f5b,
                   2745:   0x1f5d, 0x1f5d,
                   2746:   0x1f5f, 0x1f5f,
                   2747:   0x1f68, 0x1f6f,
                   2748:   0x1fb8, 0x1fbb,
                   2749:   0x1fc8, 0x1fcb,
                   2750:   0x1fd8, 0x1fdb,
                   2751:   0x1fe8, 0x1fec,
                   2752:   0x1ff8, 0x1ffb,
                   2753:   0x2102, 0x2102,
                   2754:   0x2107, 0x2107,
                   2755:   0x210b, 0x210d,
                   2756:   0x2110, 0x2112,
                   2757:   0x2115, 0x2115,
                   2758:   0x2119, 0x211d,
                   2759:   0x2124, 0x2124,
                   2760:   0x2126, 0x2126,
                   2761:   0x2128, 0x2128,
                   2762:   0x212a, 0x212d,
                   2763:   0x2130, 0x2131,
                   2764:   0x2133, 0x2133,
                   2765:   0x213e, 0x213f,
                   2766:   0x2145, 0x2145,
                   2767:   0xff21, 0xff3a,
                   2768:   0x10400, 0x10427,
                   2769:   0x1d400, 0x1d419,
                   2770:   0x1d434, 0x1d44d,
                   2771:   0x1d468, 0x1d481,
                   2772:   0x1d49c, 0x1d49c,
                   2773:   0x1d49e, 0x1d49f,
                   2774:   0x1d4a2, 0x1d4a2,
                   2775:   0x1d4a5, 0x1d4a6,
                   2776:   0x1d4a9, 0x1d4ac,
                   2777:   0x1d4ae, 0x1d4b5,
                   2778:   0x1d4d0, 0x1d4e9,
                   2779:   0x1d504, 0x1d505,
                   2780:   0x1d507, 0x1d50a,
                   2781:   0x1d50d, 0x1d514,
                   2782:   0x1d516, 0x1d51c,
                   2783:   0x1d538, 0x1d539,
                   2784:   0x1d53b, 0x1d53e,
                   2785:   0x1d540, 0x1d544,
                   2786:   0x1d546, 0x1d546,
                   2787:   0x1d54a, 0x1d550,
                   2788:   0x1d56c, 0x1d585,
                   2789:   0x1d5a0, 0x1d5b9,
                   2790:   0x1d5d4, 0x1d5ed,
                   2791:   0x1d608, 0x1d621,
                   2792:   0x1d63c, 0x1d655,
                   2793:   0x1d670, 0x1d689,
                   2794:   0x1d6a8, 0x1d6c0,
                   2795:   0x1d6e2, 0x1d6fa,
                   2796:   0x1d71c, 0x1d734,
                   2797:   0x1d756, 0x1d76e,
                   2798:   0x1d790, 0x1d7a8
                   2799: #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
                   2800: }; /* end of CRUpper */
                   2801: 
                   2802: static const OnigCodePoint CRXDigit[] = {
                   2803: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                   2804:   3,
                   2805: #else
                   2806:   3,
                   2807: #endif
                   2808:   0x0030, 0x0039,
                   2809:   0x0041, 0x0046,
                   2810:   0x0061, 0x0066
                   2811: };
                   2812: 
                   2813: static const OnigCodePoint CRASCII[] = {
                   2814: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                   2815:   1,
                   2816: #else
                   2817:   1,
                   2818: #endif
                   2819:   0x0000, 0x007f
                   2820: };
                   2821: 
                   2822: static const OnigCodePoint CRWord[] = {
                   2823: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                   2824:   436,
                   2825: #else
                   2826:   12,
                   2827: #endif
                   2828:   0x0030, 0x0039,
                   2829:   0x0041, 0x005a,
                   2830:   0x005f, 0x005f,
                   2831:   0x0061, 0x007a,
                   2832:   0x00aa, 0x00aa,
                   2833:   0x00b2, 0x00b3,
                   2834:   0x00b5, 0x00b5,
                   2835:   0x00b9, 0x00ba,
                   2836:   0x00bc, 0x00be,
                   2837:   0x00c0, 0x00d6,
                   2838:   0x00d8, 0x00f6,
                   2839: #ifndef USE_UNICODE_FULL_RANGE_CTYPE
                   2840:   0x00f8, 0x7fffffff
                   2841: #else /* not USE_UNICODE_FULL_RANGE_CTYPE */
                   2842:   0x00f8, 0x0236,
                   2843:   0x0250, 0x02c1,
                   2844:   0x02c6, 0x02d1,
                   2845:   0x02e0, 0x02e4,
                   2846:   0x02ee, 0x02ee,
                   2847:   0x0300, 0x0357,
                   2848:   0x035d, 0x036f,
                   2849:   0x037a, 0x037a,
                   2850:   0x0386, 0x0386,
                   2851:   0x0388, 0x038a,
                   2852:   0x038c, 0x038c,
                   2853:   0x038e, 0x03a1,
                   2854:   0x03a3, 0x03ce,
                   2855:   0x03d0, 0x03f5,
                   2856:   0x03f7, 0x03fb,
                   2857:   0x0400, 0x0481,
                   2858:   0x0483, 0x0486,
                   2859:   0x0488, 0x04ce,
                   2860:   0x04d0, 0x04f5,
                   2861:   0x04f8, 0x04f9,
                   2862:   0x0500, 0x050f,
                   2863:   0x0531, 0x0556,
                   2864:   0x0559, 0x0559,
                   2865:   0x0561, 0x0587,
                   2866:   0x0591, 0x05a1,
                   2867:   0x05a3, 0x05b9,
                   2868:   0x05bb, 0x05bd,
                   2869:   0x05bf, 0x05bf,
                   2870:   0x05c1, 0x05c2,
                   2871:   0x05c4, 0x05c4,
                   2872:   0x05d0, 0x05ea,
                   2873:   0x05f0, 0x05f2,
                   2874:   0x0610, 0x0615,
                   2875:   0x0621, 0x063a,
                   2876:   0x0640, 0x0658,
                   2877:   0x0660, 0x0669,
                   2878:   0x066e, 0x06d3,
                   2879:   0x06d5, 0x06dc,
                   2880:   0x06de, 0x06e8,
                   2881:   0x06ea, 0x06fc,
                   2882:   0x06ff, 0x06ff,
                   2883:   0x0710, 0x074a,
                   2884:   0x074d, 0x074f,
                   2885:   0x0780, 0x07b1,
                   2886:   0x0901, 0x0939,
                   2887:   0x093c, 0x094d,
                   2888:   0x0950, 0x0954,
                   2889:   0x0958, 0x0963,
                   2890:   0x0966, 0x096f,
                   2891:   0x0981, 0x0983,
                   2892:   0x0985, 0x098c,
                   2893:   0x098f, 0x0990,
                   2894:   0x0993, 0x09a8,
                   2895:   0x09aa, 0x09b0,
                   2896:   0x09b2, 0x09b2,
                   2897:   0x09b6, 0x09b9,
                   2898:   0x09bc, 0x09c4,
                   2899:   0x09c7, 0x09c8,
                   2900:   0x09cb, 0x09cd,
                   2901:   0x09d7, 0x09d7,
                   2902:   0x09dc, 0x09dd,
                   2903:   0x09df, 0x09e3,
                   2904:   0x09e6, 0x09f1,
                   2905:   0x09f4, 0x09f9,
                   2906:   0x0a01, 0x0a03,
                   2907:   0x0a05, 0x0a0a,
                   2908:   0x0a0f, 0x0a10,
                   2909:   0x0a13, 0x0a28,
                   2910:   0x0a2a, 0x0a30,
                   2911:   0x0a32, 0x0a33,
                   2912:   0x0a35, 0x0a36,
                   2913:   0x0a38, 0x0a39,
                   2914:   0x0a3c, 0x0a3c,
                   2915:   0x0a3e, 0x0a42,
                   2916:   0x0a47, 0x0a48,
                   2917:   0x0a4b, 0x0a4d,
                   2918:   0x0a59, 0x0a5c,
                   2919:   0x0a5e, 0x0a5e,
                   2920:   0x0a66, 0x0a74,
                   2921:   0x0a81, 0x0a83,
                   2922:   0x0a85, 0x0a8d,
                   2923:   0x0a8f, 0x0a91,
                   2924:   0x0a93, 0x0aa8,
                   2925:   0x0aaa, 0x0ab0,
                   2926:   0x0ab2, 0x0ab3,
                   2927:   0x0ab5, 0x0ab9,
                   2928:   0x0abc, 0x0ac5,
                   2929:   0x0ac7, 0x0ac9,
                   2930:   0x0acb, 0x0acd,
                   2931:   0x0ad0, 0x0ad0,
                   2932:   0x0ae0, 0x0ae3,
                   2933:   0x0ae6, 0x0aef,
                   2934:   0x0b01, 0x0b03,
                   2935:   0x0b05, 0x0b0c,
                   2936:   0x0b0f, 0x0b10,
                   2937:   0x0b13, 0x0b28,
                   2938:   0x0b2a, 0x0b30,
                   2939:   0x0b32, 0x0b33,
                   2940:   0x0b35, 0x0b39,
                   2941:   0x0b3c, 0x0b43,
                   2942:   0x0b47, 0x0b48,
                   2943:   0x0b4b, 0x0b4d,
                   2944:   0x0b56, 0x0b57,
                   2945:   0x0b5c, 0x0b5d,
                   2946:   0x0b5f, 0x0b61,
                   2947:   0x0b66, 0x0b6f,
                   2948:   0x0b71, 0x0b71,
                   2949:   0x0b82, 0x0b83,
                   2950:   0x0b85, 0x0b8a,
                   2951:   0x0b8e, 0x0b90,
                   2952:   0x0b92, 0x0b95,
                   2953:   0x0b99, 0x0b9a,
                   2954:   0x0b9c, 0x0b9c,
                   2955:   0x0b9e, 0x0b9f,
                   2956:   0x0ba3, 0x0ba4,
                   2957:   0x0ba8, 0x0baa,
                   2958:   0x0bae, 0x0bb5,
                   2959:   0x0bb7, 0x0bb9,
                   2960:   0x0bbe, 0x0bc2,
                   2961:   0x0bc6, 0x0bc8,
                   2962:   0x0bca, 0x0bcd,
                   2963:   0x0bd7, 0x0bd7,
                   2964:   0x0be7, 0x0bf2,
                   2965:   0x0c01, 0x0c03,
                   2966:   0x0c05, 0x0c0c,
                   2967:   0x0c0e, 0x0c10,
                   2968:   0x0c12, 0x0c28,
                   2969:   0x0c2a, 0x0c33,
                   2970:   0x0c35, 0x0c39,
                   2971:   0x0c3e, 0x0c44,
                   2972:   0x0c46, 0x0c48,
                   2973:   0x0c4a, 0x0c4d,
                   2974:   0x0c55, 0x0c56,
                   2975:   0x0c60, 0x0c61,
                   2976:   0x0c66, 0x0c6f,
                   2977:   0x0c82, 0x0c83,
                   2978:   0x0c85, 0x0c8c,
                   2979:   0x0c8e, 0x0c90,
                   2980:   0x0c92, 0x0ca8,
                   2981:   0x0caa, 0x0cb3,
                   2982:   0x0cb5, 0x0cb9,
                   2983:   0x0cbc, 0x0cc4,
                   2984:   0x0cc6, 0x0cc8,
                   2985:   0x0cca, 0x0ccd,
                   2986:   0x0cd5, 0x0cd6,
                   2987:   0x0cde, 0x0cde,
                   2988:   0x0ce0, 0x0ce1,
                   2989:   0x0ce6, 0x0cef,
                   2990:   0x0d02, 0x0d03,
                   2991:   0x0d05, 0x0d0c,
                   2992:   0x0d0e, 0x0d10,
                   2993:   0x0d12, 0x0d28,
                   2994:   0x0d2a, 0x0d39,
                   2995:   0x0d3e, 0x0d43,
                   2996:   0x0d46, 0x0d48,
                   2997:   0x0d4a, 0x0d4d,
                   2998:   0x0d57, 0x0d57,
                   2999:   0x0d60, 0x0d61,
                   3000:   0x0d66, 0x0d6f,
                   3001:   0x0d82, 0x0d83,
                   3002:   0x0d85, 0x0d96,
                   3003:   0x0d9a, 0x0db1,
                   3004:   0x0db3, 0x0dbb,
                   3005:   0x0dbd, 0x0dbd,
                   3006:   0x0dc0, 0x0dc6,
                   3007:   0x0dca, 0x0dca,
                   3008:   0x0dcf, 0x0dd4,
                   3009:   0x0dd6, 0x0dd6,
                   3010:   0x0dd8, 0x0ddf,
                   3011:   0x0df2, 0x0df3,
                   3012:   0x0e01, 0x0e3a,
                   3013:   0x0e40, 0x0e4e,
                   3014:   0x0e50, 0x0e59,
                   3015:   0x0e81, 0x0e82,
                   3016:   0x0e84, 0x0e84,
                   3017:   0x0e87, 0x0e88,
                   3018:   0x0e8a, 0x0e8a,
                   3019:   0x0e8d, 0x0e8d,
                   3020:   0x0e94, 0x0e97,
                   3021:   0x0e99, 0x0e9f,
                   3022:   0x0ea1, 0x0ea3,
                   3023:   0x0ea5, 0x0ea5,
                   3024:   0x0ea7, 0x0ea7,
                   3025:   0x0eaa, 0x0eab,
                   3026:   0x0ead, 0x0eb9,
                   3027:   0x0ebb, 0x0ebd,
                   3028:   0x0ec0, 0x0ec4,
                   3029:   0x0ec6, 0x0ec6,
                   3030:   0x0ec8, 0x0ecd,
                   3031:   0x0ed0, 0x0ed9,
                   3032:   0x0edc, 0x0edd,
                   3033:   0x0f00, 0x0f00,
                   3034:   0x0f18, 0x0f19,
                   3035:   0x0f20, 0x0f33,
                   3036:   0x0f35, 0x0f35,
                   3037:   0x0f37, 0x0f37,
                   3038:   0x0f39, 0x0f39,
                   3039:   0x0f3e, 0x0f47,
                   3040:   0x0f49, 0x0f6a,
                   3041:   0x0f71, 0x0f84,
                   3042:   0x0f86, 0x0f8b,
                   3043:   0x0f90, 0x0f97,
                   3044:   0x0f99, 0x0fbc,
                   3045:   0x0fc6, 0x0fc6,
                   3046:   0x1000, 0x1021,
                   3047:   0x1023, 0x1027,
                   3048:   0x1029, 0x102a,
                   3049:   0x102c, 0x1032,
                   3050:   0x1036, 0x1039,
                   3051:   0x1040, 0x1049,
                   3052:   0x1050, 0x1059,
                   3053:   0x10a0, 0x10c5,
                   3054:   0x10d0, 0x10f8,
                   3055:   0x1100, 0x1159,
                   3056:   0x115f, 0x11a2,
                   3057:   0x11a8, 0x11f9,
                   3058:   0x1200, 0x1206,
                   3059:   0x1208, 0x1246,
                   3060:   0x1248, 0x1248,
                   3061:   0x124a, 0x124d,
                   3062:   0x1250, 0x1256,
                   3063:   0x1258, 0x1258,
                   3064:   0x125a, 0x125d,
                   3065:   0x1260, 0x1286,
                   3066:   0x1288, 0x1288,
                   3067:   0x128a, 0x128d,
                   3068:   0x1290, 0x12ae,
                   3069:   0x12b0, 0x12b0,
                   3070:   0x12b2, 0x12b5,
                   3071:   0x12b8, 0x12be,
                   3072:   0x12c0, 0x12c0,
                   3073:   0x12c2, 0x12c5,
                   3074:   0x12c8, 0x12ce,
                   3075:   0x12d0, 0x12d6,
                   3076:   0x12d8, 0x12ee,
                   3077:   0x12f0, 0x130e,
                   3078:   0x1310, 0x1310,
                   3079:   0x1312, 0x1315,
                   3080:   0x1318, 0x131e,
                   3081:   0x1320, 0x1346,
                   3082:   0x1348, 0x135a,
                   3083:   0x1369, 0x137c,
                   3084:   0x13a0, 0x13f4,
                   3085:   0x1401, 0x166c,
                   3086:   0x166f, 0x1676,
                   3087:   0x1681, 0x169a,
                   3088:   0x16a0, 0x16ea,
                   3089:   0x16ee, 0x16f0,
                   3090:   0x1700, 0x170c,
                   3091:   0x170e, 0x1714,
                   3092:   0x1720, 0x1734,
                   3093:   0x1740, 0x1753,
                   3094:   0x1760, 0x176c,
                   3095:   0x176e, 0x1770,
                   3096:   0x1772, 0x1773,
                   3097:   0x1780, 0x17b3,
                   3098:   0x17b6, 0x17d3,
                   3099:   0x17d7, 0x17d7,
                   3100:   0x17dc, 0x17dd,
                   3101:   0x17e0, 0x17e9,
                   3102:   0x17f0, 0x17f9,
                   3103:   0x180b, 0x180d,
                   3104:   0x1810, 0x1819,
                   3105:   0x1820, 0x1877,
                   3106:   0x1880, 0x18a9,
                   3107:   0x1900, 0x191c,
                   3108:   0x1920, 0x192b,
                   3109:   0x1930, 0x193b,
                   3110:   0x1946, 0x196d,
                   3111:   0x1970, 0x1974,
                   3112:   0x1d00, 0x1d6b,
                   3113:   0x1e00, 0x1e9b,
                   3114:   0x1ea0, 0x1ef9,
                   3115:   0x1f00, 0x1f15,
                   3116:   0x1f18, 0x1f1d,
                   3117:   0x1f20, 0x1f45,
                   3118:   0x1f48, 0x1f4d,
                   3119:   0x1f50, 0x1f57,
                   3120:   0x1f59, 0x1f59,
                   3121:   0x1f5b, 0x1f5b,
                   3122:   0x1f5d, 0x1f5d,
                   3123:   0x1f5f, 0x1f7d,
                   3124:   0x1f80, 0x1fb4,
                   3125:   0x1fb6, 0x1fbc,
                   3126:   0x1fbe, 0x1fbe,
                   3127:   0x1fc2, 0x1fc4,
                   3128:   0x1fc6, 0x1fcc,
                   3129:   0x1fd0, 0x1fd3,
                   3130:   0x1fd6, 0x1fdb,
                   3131:   0x1fe0, 0x1fec,
                   3132:   0x1ff2, 0x1ff4,
                   3133:   0x1ff6, 0x1ffc,
                   3134:   0x203f, 0x2040,
                   3135:   0x2054, 0x2054,
                   3136:   0x2070, 0x2071,
                   3137:   0x2074, 0x2079,
                   3138:   0x207f, 0x2089,
                   3139:   0x20d0, 0x20ea,
                   3140:   0x2102, 0x2102,
                   3141:   0x2107, 0x2107,
                   3142:   0x210a, 0x2113,
                   3143:   0x2115, 0x2115,
                   3144:   0x2119, 0x211d,
                   3145:   0x2124, 0x2124,
                   3146:   0x2126, 0x2126,
                   3147:   0x2128, 0x2128,
                   3148:   0x212a, 0x212d,
                   3149:   0x212f, 0x2131,
                   3150:   0x2133, 0x2139,
                   3151:   0x213d, 0x213f,
                   3152:   0x2145, 0x2149,
                   3153:   0x2153, 0x2183,
                   3154:   0x2460, 0x249b,
                   3155:   0x24ea, 0x24ff,
                   3156:   0x2776, 0x2793,
                   3157:   0x3005, 0x3007,
                   3158:   0x3021, 0x302f,
                   3159:   0x3031, 0x3035,
                   3160:   0x3038, 0x303c,
                   3161:   0x3041, 0x3096,
                   3162:   0x3099, 0x309a,
                   3163:   0x309d, 0x309f,
                   3164:   0x30a1, 0x30ff,
                   3165:   0x3105, 0x312c,
                   3166:   0x3131, 0x318e,
                   3167:   0x3192, 0x3195,
                   3168:   0x31a0, 0x31b7,
                   3169:   0x31f0, 0x31ff,
                   3170:   0x3220, 0x3229,
                   3171:   0x3251, 0x325f,
                   3172:   0x3280, 0x3289,
                   3173:   0x32b1, 0x32bf,
                   3174:   0x3400, 0x4db5,
                   3175:   0x4e00, 0x9fa5,
                   3176:   0xa000, 0xa48c,
                   3177:   0xac00, 0xd7a3,
                   3178:   0xf900, 0xfa2d,
                   3179:   0xfa30, 0xfa6a,
                   3180:   0xfb00, 0xfb06,
                   3181:   0xfb13, 0xfb17,
                   3182:   0xfb1d, 0xfb28,
                   3183:   0xfb2a, 0xfb36,
                   3184:   0xfb38, 0xfb3c,
                   3185:   0xfb3e, 0xfb3e,
                   3186:   0xfb40, 0xfb41,
                   3187:   0xfb43, 0xfb44,
                   3188:   0xfb46, 0xfbb1,
                   3189:   0xfbd3, 0xfd3d,
                   3190:   0xfd50, 0xfd8f,
                   3191:   0xfd92, 0xfdc7,
                   3192:   0xfdf0, 0xfdfb,
                   3193:   0xfe00, 0xfe0f,
                   3194:   0xfe20, 0xfe23,
                   3195:   0xfe33, 0xfe34,
                   3196:   0xfe4d, 0xfe4f,
                   3197:   0xfe70, 0xfe74,
                   3198:   0xfe76, 0xfefc,
                   3199:   0xff10, 0xff19,
                   3200:   0xff21, 0xff3a,
                   3201:   0xff3f, 0xff3f,
                   3202:   0xff41, 0xff5a,
                   3203:   0xff65, 0xffbe,
                   3204:   0xffc2, 0xffc7,
                   3205:   0xffca, 0xffcf,
                   3206:   0xffd2, 0xffd7,
                   3207:   0xffda, 0xffdc,
                   3208:   0x10000, 0x1000b,
                   3209:   0x1000d, 0x10026,
                   3210:   0x10028, 0x1003a,
                   3211:   0x1003c, 0x1003d,
                   3212:   0x1003f, 0x1004d,
                   3213:   0x10050, 0x1005d,
                   3214:   0x10080, 0x100fa,
                   3215:   0x10107, 0x10133,
                   3216:   0x10300, 0x1031e,
                   3217:   0x10320, 0x10323,
                   3218:   0x10330, 0x1034a,
                   3219:   0x10380, 0x1039d,
                   3220:   0x10400, 0x1049d,
                   3221:   0x104a0, 0x104a9,
                   3222:   0x10800, 0x10805,
                   3223:   0x10808, 0x10808,
                   3224:   0x1080a, 0x10835,
                   3225:   0x10837, 0x10838,
                   3226:   0x1083c, 0x1083c,
                   3227:   0x1083f, 0x1083f,
                   3228:   0x1d165, 0x1d169,
                   3229:   0x1d16d, 0x1d172,
                   3230:   0x1d17b, 0x1d182,
                   3231:   0x1d185, 0x1d18b,
                   3232:   0x1d1aa, 0x1d1ad,
                   3233:   0x1d400, 0x1d454,
                   3234:   0x1d456, 0x1d49c,
                   3235:   0x1d49e, 0x1d49f,
                   3236:   0x1d4a2, 0x1d4a2,
                   3237:   0x1d4a5, 0x1d4a6,
                   3238:   0x1d4a9, 0x1d4ac,
                   3239:   0x1d4ae, 0x1d4b9,
                   3240:   0x1d4bb, 0x1d4bb,
                   3241:   0x1d4bd, 0x1d4c3,
                   3242:   0x1d4c5, 0x1d505,
                   3243:   0x1d507, 0x1d50a,
                   3244:   0x1d50d, 0x1d514,
                   3245:   0x1d516, 0x1d51c,
                   3246:   0x1d51e, 0x1d539,
                   3247:   0x1d53b, 0x1d53e,
                   3248:   0x1d540, 0x1d544,
                   3249:   0x1d546, 0x1d546,
                   3250:   0x1d54a, 0x1d550,
                   3251:   0x1d552, 0x1d6a3,
                   3252:   0x1d6a8, 0x1d6c0,
                   3253:   0x1d6c2, 0x1d6da,
                   3254:   0x1d6dc, 0x1d6fa,
                   3255:   0x1d6fc, 0x1d714,
                   3256:   0x1d716, 0x1d734,
                   3257:   0x1d736, 0x1d74e,
                   3258:   0x1d750, 0x1d76e,
                   3259:   0x1d770, 0x1d788,
                   3260:   0x1d78a, 0x1d7a8,
                   3261:   0x1d7aa, 0x1d7c2,
                   3262:   0x1d7c4, 0x1d7c9,
                   3263:   0x1d7ce, 0x1d7ff,
                   3264:   0x20000, 0x2a6d6,
                   3265:   0x2f800, 0x2fa1d,
                   3266:   0xe0100, 0xe01ef
                   3267: #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
                   3268: }; /* end of CRWord */
                   3269: 
                   3270: 
                   3271: extern int
                   3272: onigenc_unicode_is_code_ctype(OnigCodePoint code, unsigned int ctype)
                   3273: {
                   3274:   if (code < 256) {
                   3275:     return ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code, ctype);
                   3276:   }
                   3277: 
                   3278: #ifdef USE_UNICODE_FULL_RANGE_CTYPE
                   3279: 
                   3280:   switch (ctype) {
                   3281:   case ONIGENC_CTYPE_ALPHA:
                   3282:     return onig_is_in_code_range((UChar* )CRAlpha, code);
                   3283:     break;
                   3284:   case ONIGENC_CTYPE_BLANK:
                   3285:     return onig_is_in_code_range((UChar* )CRBlank, code);
                   3286:     break;
                   3287:   case ONIGENC_CTYPE_CNTRL:
                   3288:     return onig_is_in_code_range((UChar* )CRCntrl, code);
                   3289:     break;
                   3290:   case ONIGENC_CTYPE_DIGIT:
                   3291:     return onig_is_in_code_range((UChar* )CRDigit, code);
                   3292:     break;
                   3293:   case ONIGENC_CTYPE_GRAPH:
                   3294:     return onig_is_in_code_range((UChar* )CRGraph, code);
                   3295:     break;
                   3296:   case ONIGENC_CTYPE_LOWER:
                   3297:     return onig_is_in_code_range((UChar* )CRLower, code);
                   3298:     break;
                   3299:   case ONIGENC_CTYPE_PRINT:
                   3300:     return onig_is_in_code_range((UChar* )CRPrint, code);
                   3301:     break;
                   3302:   case ONIGENC_CTYPE_PUNCT:
                   3303:     return onig_is_in_code_range((UChar* )CRPunct, code);
                   3304:     break;
                   3305:   case ONIGENC_CTYPE_SPACE:
                   3306:     return onig_is_in_code_range((UChar* )CRSpace, code);
                   3307:     break;
                   3308:   case ONIGENC_CTYPE_UPPER:
                   3309:     return onig_is_in_code_range((UChar* )CRUpper, code);
                   3310:     break;
                   3311:   case ONIGENC_CTYPE_XDIGIT:
                   3312:     return FALSE;
                   3313:     break;
                   3314:   case ONIGENC_CTYPE_WORD:
                   3315:     return onig_is_in_code_range((UChar* )CRWord, code);
                   3316:     break;
                   3317:   case ONIGENC_CTYPE_ASCII:
                   3318:     return FALSE;
                   3319:     break;
                   3320:   case ONIGENC_CTYPE_ALNUM:
                   3321:     return onig_is_in_code_range((UChar* )CRAlnum, code);
                   3322:     break;
                   3323:   case ONIGENC_CTYPE_NEWLINE:
                   3324:     return FALSE;
                   3325:     break;
                   3326: 
                   3327:   default:
                   3328:     return ONIGENCERR_TYPE_BUG;
                   3329:     break;
                   3330:   }
                   3331: 
                   3332: #else
                   3333: 
                   3334:   if ((ctype & ONIGENC_CTYPE_WORD) != 0) {
                   3335:     return TRUE;
                   3336:   }
                   3337:   return FALSE;
                   3338: #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
                   3339: }
                   3340: 
                   3341: extern int
                   3342: onigenc_unicode_get_ctype_code_range(int ctype,
                   3343:                  const OnigCodePoint* sbr[], const OnigCodePoint* mbr[])
                   3344: {
                   3345:   static const OnigCodePoint EmptyRange[] = { 0 };
                   3346: 
                   3347: #define CR_SET(list) do { \
                   3348:   *mbr = list; \
                   3349: } while (0)
                   3350: 
                   3351:   *sbr = EmptyRange;
                   3352: 
                   3353:   switch (ctype) {
                   3354:   case ONIGENC_CTYPE_ALPHA:
                   3355:     CR_SET(CRAlpha);
                   3356:     break;
                   3357:   case ONIGENC_CTYPE_BLANK:
                   3358:     CR_SET(CRBlank);
                   3359:     break;
                   3360:   case ONIGENC_CTYPE_CNTRL:
                   3361:     CR_SET(CRCntrl);
                   3362:     break;
                   3363:   case ONIGENC_CTYPE_DIGIT:
                   3364:     CR_SET(CRDigit);
                   3365:     break;
                   3366:   case ONIGENC_CTYPE_GRAPH:
                   3367:     CR_SET(CRGraph);
                   3368:     break;
                   3369:   case ONIGENC_CTYPE_LOWER:
                   3370:     CR_SET(CRLower);
                   3371:     break;
                   3372:   case ONIGENC_CTYPE_PRINT:
                   3373:     CR_SET(CRPrint);
                   3374:     break;
                   3375:   case ONIGENC_CTYPE_PUNCT:
                   3376:     CR_SET(CRPunct);
                   3377:     break;
                   3378:   case ONIGENC_CTYPE_SPACE:
                   3379:     CR_SET(CRSpace);
                   3380:     break;
                   3381:   case ONIGENC_CTYPE_UPPER:
                   3382:     CR_SET(CRUpper);
                   3383:     break;
                   3384:   case ONIGENC_CTYPE_XDIGIT:
                   3385:     CR_SET(CRXDigit);
                   3386:     break;
                   3387:   case ONIGENC_CTYPE_WORD:
                   3388:     CR_SET(CRWord);
                   3389:     break;
                   3390:   case ONIGENC_CTYPE_ASCII:
                   3391:     CR_SET(CRASCII);
                   3392:     break;
                   3393:   case ONIGENC_CTYPE_ALNUM:
                   3394:     CR_SET(CRAlnum);
                   3395:     break;
                   3396: 
                   3397:   default:
                   3398:     return ONIGENCERR_TYPE_BUG;
                   3399:     break;
                   3400:   }
                   3401: 
                   3402:   return 0;
                   3403: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>