Annotation of embedaddon/php/ext/mbstring/oniguruma/enc/unicode.c, revision 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>