Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unicode language classes matching #72

Open
benibela opened this issue May 8, 2021 · 1 comment
Open

Unicode language classes matching #72

benibela opened this issue May 8, 2021 · 1 comment

Comments

@benibela
Copy link

benibela commented May 8, 2021

These should match:

 ; assertMatch('^(?:\p{IsLatin-1Supplement}+)$', '�������������������������������� ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ') //U+0080, U+0081, U+0082, U+0083, U+0084, U+0085, U+0086, U+0087, U+0088, U+0089, U+008A, U+008B, U+008C, U+008D, U+008E, U+008F, U+0090, U+0091, U+0092, U+0093, U+0094, U+0095, U+0096, U+0097, U+0098, U+0099, U+009A, U+009B, U+009C, U+009D, U+009E, U+009F, U+0020, U+00A1, U+00A2, U+00A3, U+00A4, U+00A5, U+00A6, U+00A7, U+00A8, U+00A9, U+00AA, U+00AB, U+00AC, U+00AD, U+00AE, U+00AF, U+00B0, U+00B1, U+00B2, U+00B3, U+00B4, U+00B5, U+00B6, U+00B7, U+00B8, U+00B9, U+00BA, U+00BB, U+00BC, U+00BD, U+00BE, U+00BF, U+00C0, U+00C1, U+00C2, U+00C3, U+00C4, U+00C5, U+00C6, U+00C7, U+00C8, U+00C9, U+00CA, U+00CB, U+00CC, U+00CD, U+00CE, U+00CF, U+00D0, U+00D1, U+00D2, U+00D3, U+00D4, U+00D5, U+00D6, U+00D7, U+00D8, U+00D9, U+00DA, U+00DB, U+00DC, U+00DD, U+00DE, U+00DF, U+00E0, U+00E1, U+00E2, U+00E3, U+00E4, U+00E5, U+00E6, U+00E7, U+00E8, U+00E9, U+00EA, U+00EB, U+00EC, U+00ED, U+00EE, U+00EF, U+00F0, U+00F1, U+00F2, U+00F3, U+00F4, U+00F5, U+00F6, U+00F7, U+00F8, U+00F9, U+00FA, U+00FB, U+00FC, U+00FD, U+00FE, U+00FF
 ; assertMatch('^(?:\p{IsArmenian}+)$', '԰֏') //U+0530, U+058F
 ; assertMatch('^(?:\p{IsArmenian}+)$', '԰ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖ՗՘ՙ՚՛՜՝՞՟ՠաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևֈ։֊֋֌֍֎֏') //U+0530, U+0531, U+0532, U+0533, U+0534, U+0535, U+0536, U+0537, U+0538, U+0539, U+053A, U+053B, U+053C, U+053D, U+053E, U+053F, U+0540, U+0541, U+0542, U+0543, U+0544, U+0545, U+0546, U+0547, U+0548, U+0549, U+054A, U+054B, U+054C, U+054D, U+054E, U+054F, U+0550, U+0551, U+0552, U+0553, U+0554, U+0555, U+0556, U+0557, U+0558, U+0559, U+055A, U+055B, U+055C, U+055D, U+055E, U+055F, U+0560, U+0561, U+0562, U+0563, U+0564, U+0565, U+0566, U+0567, U+0568, U+0569, U+056A, U+056B, U+056C, U+056D, U+056E, U+056F, U+0570, U+0571, U+0572, U+0573, U+0574, U+0575, U+0576, U+0577, U+0578, U+0579, U+057A, U+057B, U+057C, U+057D, U+057E, U+057F, U+0580, U+0581, U+0582, U+0583, U+0584, U+0585, U+0586, U+0587, U+0588, U+0589, U+058A, U+058B, U+058C, U+058D, U+058E, U+058F
 ; assertMatch('^(?:\p{IsHebrew}+)$', '֐׿') //U+0590, U+05FF
 ; assertMatch('^(?:\p{IsHebrew}+)$', '֐ְֱֲֳִֵֶַָֹֺֻּֽ֑֖֛֢֣֤֥֦֧֪֚֭֮֒֓֔֕֗֘֙֜֝֞֟֠֡֨֩֫֬֯־ֿ׀ׁׂ׃ׅׄ׆ׇ׈׉׊׋׌׍׎׏אבגדהוזחטיךכלםמןנסעףפץצקרשת׫׬׭׮ׯװױײ׳״׵׶׷׸׹׺׻׼׽׾׿') //U+0590, U+0591, U+0592, U+0593, U+0594, U+0595, U+0596, U+0597, U+0598, U+0599, U+059A, U+059B, U+059C, U+059D, U+059E, U+059F, U+05A0, U+05A1, U+05A2, U+05A3, U+05A4, U+05A5, U+05A6, U+05A7, U+05A8, U+05A9, U+05AA, U+05AB, U+05AC, U+05AD, U+05AE, U+05AF, U+05B0, U+05B1, U+05B2, U+05B3, U+05B4, U+05B5, U+05B6, U+05B7, U+05B8, U+05B9, U+05BA, U+05BB, U+05BC, U+05BD, U+05BE, U+05BF, U+05C0, U+05C1, U+05C2, U+05C3, U+05C4, U+05C5, U+05C6, U+05C7, U+05C8, U+05C9, U+05CA, U+05CB, U+05CC, U+05CD, U+05CE, U+05CF, U+05D0, U+05D1, U+05D2, U+05D3, U+05D4, U+05D5, U+05D6, U+05D7, U+05D8, U+05D9, U+05DA, U+05DB, U+05DC, U+05DD, U+05DE, U+05DF, U+05E0, U+05E1, U+05E2, U+05E3, U+05E4, U+05E5, U+05E6, U+05E7, U+05E8, U+05E9, U+05EA, U+05EB, U+05EC, U+05ED, U+05EE, U+05EF, U+05F0, U+05F1, U+05F2, U+05F3, U+05F4, U+05F5, U+05F6, U+05F7, U+05F8, U+05F9, U+05FA, U+05FB, U+05FC, U+05FD, U+05FE, U+05FF
 ; assertMatch('^(?:\p{IsArabic}+)$', '؀؁؂؃؄؅؆؇؈؉؊؋،؍؎؏ؘؙؚؐؑؒؓؔؕؖؗ؛؜؝؞؟ؠءآأؤإئابةتثجحخدذرزسشصضطظعغػؼؽؾؿـفقكلمنهوىيًٌٍَُِّْٕٖٜٟٓٔٗ٘ٙٚٛٝٞ٠١٢٣٤٥٦٧٨٩٪٫٬٭ٮٯٰٱٲٳٴٵٶٷٸٹٺٻټٽپٿڀځڂڃڄڅچڇڈډڊڋڌڍڎڏڐڑڒړڔڕږڗژڙښڛڜڝڞڟڠڡڢڣڤڥڦڧڨکڪګڬڭڮگڰڱڲڳڴڵڶڷڸڹںڻڼڽھڿۀہۂۃۄۅۆۇۈۉۊۋیۍێۏېۑےۓ۔ەۖۗۘۙۚۛۜ۝۞ۣ۟۠ۡۢۤۥۦۧۨ۩۪ۭ۫۬ۮۯ۰۱۲۳۴۵۶۷۸۹ۺۻۼ۽۾ۿ') //U+0600, U+0601, U+0602, U+0603, U+0604, U+0605, U+0606, U+0607, U+0608, U+0609, U+060A, U+060B, U+060C, U+060D, U+060E, U+060F, U+0610, U+0611, U+0612, U+0613, U+0614, U+0615, U+0616, U+0617, U+0618, U+0619, U+061A, U+061B, U+061C, U+061D, U+061E, U+061F, U+0620, U+0621, U+0622, U+0623, U+0624, U+0625, U+0626, U+0627, U+0628, U+0629, U+062A, U+062B, U+062C, U+062D, U+062E, U+062F, U+0630, U+0631, U+0632, U+0633, U+0634, U+0635, U+0636, U+0637, U+0638, U+0639, U+063A, U+063B, U+063C, U+063D, U+063E, U+063F, U+0640, U+0641, U+0642, U+0643, U+0644, U+0645, U+0646, U+0647, U+0648, U+0649, U+064A, U+064B, U+064C, U+064D, U+064E, U+064F, U+0650, U+0651, U+0652, U+0653, U+0654, U+0655, U+0656, U+0657, U+0658, U+0659, U+065A, U+065B, U+065C, U+065D, U+065E, U+065F, U+0660, U+0661, U+0662, U+0663, U+0664, U+0665, U+0666, U+0667, U+0668, U+0669, U+066A, U+066B, U+066C, U+066D, U+066E, U+066F, U+0670, U+0671, U+0672, U+0673, U+0674, U+0675, U+0676, U+0677, U+0678, U+0679, U+067A, U+067B, U+067C, U+067D, U+067E, U+067F, U+0680, U+0681, U+0682, U+0683, U+0684, U+0685, U+0686, U+0687, U+0688, U+0689, U+068A, U+068B, U+068C, U+068D, U+068E, U+068F, U+0690, U+0691, U+0692, U+0693, U+0694, U+0695, U+0696, U+0697, U+0698, U+0699, U+069A, U+069B, U+069C, U+069D, U+069E, U+069F, U+06A0, U+06A1, U+06A2, U+06A3, U+06A4, U+06A5, U+06A6, U+06A7, U+06A8, U+06A9, U+06AA, U+06AB, U+06AC, U+06AD, U+06AE, U+06AF, U+06B0, U+06B1, U+06B2, U+06B3, U+06B4, U+06B5, U+06B6, U+06B7, U+06B8, U+06B9, U+06BA, U+06BB, U+06BC, U+06BD, U+06BE, U+06BF, U+06C0, U+06C1, U+06C2, U+06C3, U+06C4, U+06C5, U+06C6, U+06C7, U+06C8, U+06C9, U+06CA, U+06CB, U+06CC, U+06CD, U+06CE, U+06CF, U+06D0, U+06D1, U+06D2, U+06D3, U+06D4, U+06D5, U+06D6, U+06D7, U+06D8, U+06D9, U+06DA, U+06DB, U+06DC, U+06DD, U+06DE, U+06DF, U+06E0, U+06E1, U+06E2, U+06E3, U+06E4, U+06E5, U+06E6, U+06E7, U+06E8, U+06E9, U+06EA, U+06EB, U+06EC, U+06ED, U+06EE, U+06EF, U+06F0, U+06F1, U+06F2, U+06F3, U+06F4, U+06F5, U+06F6, U+06F7, U+06F8, U+06F9, U+06FA, U+06FB, U+06FC, U+06FD, U+06FE, U+06FF
 ; assertMatch('^(?:\p{IsSyriac}+)$', '܀܁܂܃܄܅܆܇܈܉܊܋܌܍܎܏ܐܑܒܓܔܕܖܗܘܙܚܛܜܝܞܟܠܡܢܣܤܥܦܧܨܩܪܫܬܭܮܯܱܴܷܸܹܻܼܾ݂݄݆݈ܰܲܳܵܶܺܽܿ݀݁݃݅݇݉݊݋݌ݍݎݏ') //U+0700, U+0701, U+0702, U+0703, U+0704, U+0705, U+0706, U+0707, U+0708, U+0709, U+070A, U+070B, U+070C, U+070D, U+070E, U+070F, U+0710, U+0711, U+0712, U+0713, U+0714, U+0715, U+0716, U+0717, U+0718, U+0719, U+071A, U+071B, U+071C, U+071D, U+071E, U+071F, U+0720, U+0721, U+0722, U+0723, U+0724, U+0725, U+0726, U+0727, U+0728, U+0729, U+072A, U+072B, U+072C, U+072D, U+072E, U+072F, U+0730, U+0731, U+0732, U+0733, U+0734, U+0735, U+0736, U+0737, U+0738, U+0739, U+073A, U+073B, U+073C, U+073D, U+073E, U+073F, U+0740, U+0741, U+0742, U+0743, U+0744, U+0745, U+0746, U+0747, U+0748, U+0749, U+074A, U+074B, U+074C, U+074D, U+074E, U+074F
 ; assertMatch('^(?:\p{IsThaana}+)$', 'ހ޿') //U+0780, U+07BF
 ; assertMatch('^(?:\p{IsThaana}+)$', 'ހށނރބޅކއވމފދތލގޏސޑޒޓޔޕޖޗޘޙޚޛޜޝޞޟޠޡޢޣޤޥަާިީުޫެޭޮޯްޱ޲޳޴޵޶޷޸޹޺޻޼޽޾޿') //U+0780, U+0781, U+0782, U+0783, U+0784, U+0785, U+0786, U+0787, U+0788, U+0789, U+078A, U+078B, U+078C, U+078D, U+078E, U+078F, U+0790, U+0791, U+0792, U+0793, U+0794, U+0795, U+0796, U+0797, U+0798, U+0799, U+079A, U+079B, U+079C, U+079D, U+079E, U+079F, U+07A0, U+07A1, U+07A2, U+07A3, U+07A4, U+07A5, U+07A6, U+07A7, U+07A8, U+07A9, U+07AA, U+07AB, U+07AC, U+07AD, U+07AE, U+07AF, U+07B0, U+07B1, U+07B2, U+07B3, U+07B4, U+07B5, U+07B6, U+07B7, U+07B8, U+07B9, U+07BA, U+07BB, U+07BC, U+07BD, U+07BE, U+07BF
 ; assertMatch('^(?:\p{IsDevanagari}+)$', 'ऀँंःऄअआइईउऊऋऌऍऎएऐऑऒओऔकखगघङचछजझञटठडढणतथदधनऩपफबभमयरऱलळऴवशषसहऺऻ़ऽािीुूृॄॅॆेैॉॊोौ्ॎॏॐ॒॑॓॔ॕॖॗक़ख़ग़ज़ड़ढ़फ़य़ॠॡॢॣ।॥०१२३४५६७८९॰ॱॲॳॴॵॶॷॸॹॺॻॼॽॾॿ') //U+0900, U+0901, U+0902, U+0903, U+0904, U+0905, U+0906, U+0907, U+0908, U+0909, U+090A, U+090B, U+090C, U+090D, U+090E, U+090F, U+0910, U+0911, U+0912, U+0913, U+0914, U+0915, U+0916, U+0917, U+0918, U+0919, U+091A, U+091B, U+091C, U+091D, U+091E, U+091F, U+0920, U+0921, U+0922, U+0923, U+0924, U+0925, U+0926, U+0927, U+0928, U+0929, U+092A, U+092B, U+092C, U+092D, U+092E, U+092F, U+0930, U+0931, U+0932, U+0933, U+0934, U+0935, U+0936, U+0937, U+0938, U+0939, U+093A, U+093B, U+093C, U+093D, U+093E, U+093F, U+0940, U+0941, U+0942, U+0943, U+0944, U+0945, U+0946, U+0947, U+0948, U+0949, U+094A, U+094B, U+094C, U+094D, U+094E, U+094F, U+0950, U+0951, U+0952, U+0953, U+0954, U+0955, U+0956, U+0957, U+0958, U+0959, U+095A, U+095B, U+095C, U+095D, U+095E, U+095F, U+0960, U+0961, U+0962, U+0963, U+0964, U+0965, U+0966, U+0967, U+0968, U+0969, U+096A, U+096B, U+096C, U+096D, U+096E, U+096F, U+0970, U+0971, U+0972, U+0973, U+0974, U+0975, U+0976, U+0977, U+0978, U+0979, U+097A, U+097B, U+097C, U+097D, U+097E, U+097F
 ; assertMatch('^(?:\p{IsBengali}+)$', 'ঀ৿') //U+0980, U+09FF
 ; assertMatch('^(?:\p{IsBengali}+)$', 'ঀঁংঃ঄অআইঈউঊঋঌ঍঎এঐ঑঒ওঔকখগঘঙচছজঝঞটঠডঢণতথদধন঩পফবভমযর঱ল঳঴঵শষসহ঺঻়ঽািীুূৃৄ৅৆েৈ৉৊োৌ্ৎ৏৐৑৒৓৔৕৖ৗ৘৙৚৛ড়ঢ়৞য়ৠৡৢৣ৤৥০১২৩৪৫৬৭৮৯ৰৱ৲৳৴৵৶৷৸৹৺৻ৼ৽৾৿') //U+0980, U+0981, U+0982, U+0983, U+0984, U+0985, U+0986, U+0987, U+0988, U+0989, U+098A, U+098B, U+098C, U+098D, U+098E, U+098F, U+0990, U+0991, U+0992, U+0993, U+0994, U+0995, U+0996, U+0997, U+0998, U+0999, U+099A, U+099B, U+099C, U+099D, U+099E, U+099F, U+09A0, U+09A1, U+09A2, U+09A3, U+09A4, U+09A5, U+09A6, U+09A7, U+09A8, U+09A9, U+09AA, U+09AB, U+09AC, U+09AD, U+09AE, U+09AF, U+09B0, U+09B1, U+09B2, U+09B3, U+09B4, U+09B5, U+09B6, U+09B7, U+09B8, U+09B9, U+09BA, U+09BB, U+09BC, U+09BD, U+09BE, U+09BF, U+09C0, U+09C1, U+09C2, U+09C3, U+09C4, U+09C5, U+09C6, U+09C7, U+09C8, U+09C9, U+09CA, U+09CB, U+09CC, U+09CD, U+09CE, U+09CF, U+09D0, U+09D1, U+09D2, U+09D3, U+09D4, U+09D5, U+09D6, U+09D7, U+09D8, U+09D9, U+09DA, U+09DB, U+09DC, U+09DD, U+09DE, U+09DF, U+09E0, U+09E1, U+09E2, U+09E3, U+09E4, U+09E5, U+09E6, U+09E7, U+09E8, U+09E9, U+09EA, U+09EB, U+09EC, U+09ED, U+09EE, U+09EF, U+09F0, U+09F1, U+09F2, U+09F3, U+09F4, U+09F5, U+09F6, U+09F7, U+09F8, U+09F9, U+09FA, U+09FB, U+09FC, U+09FD, U+09FE, U+09FF
 ; assertMatch('^(?:\p{IsGurmukhi}+)$', '਀੿') //U+0A00, U+0A7F
 ; assertMatch('^(?:\p{IsGurmukhi}+)$', '਀ਁਂਃ਄ਅਆਇਈਉਊ਋਌਍਎ਏਐ਑਒ਓਔਕਖਗਘਙਚਛਜਝਞਟਠਡਢਣਤਥਦਧਨ਩ਪਫਬਭਮਯਰ਱ਲਲ਼਴ਵਸ਼਷ਸਹ਺਻਼਽ਾਿੀੁੂ੃੄੅੆ੇੈ੉੊ੋੌ੍੎੏੐ੑ੒੓੔੕੖੗੘ਖ਼ਗ਼ਜ਼ੜ੝ਫ਼੟੠੡੢੣੤੥੦੧੨੩੪੫੬੭੮੯ੰੱੲੳੴੵ੶੷੸੹੺੻੼੽੾੿') //U+0A00, U+0A01, U+0A02, U+0A03, U+0A04, U+0A05, U+0A06, U+0A07, U+0A08, U+0A09, U+0A0A, U+0A0B, U+0A0C, U+0A0D, U+0A0E, U+0A0F, U+0A10, U+0A11, U+0A12, U+0A13, U+0A14, U+0A15, U+0A16, U+0A17, U+0A18, U+0A19, U+0A1A, U+0A1B, U+0A1C, U+0A1D, U+0A1E, U+0A1F, U+0A20, U+0A21, U+0A22, U+0A23, U+0A24, U+0A25, U+0A26, U+0A27, U+0A28, U+0A29, U+0A2A, U+0A2B, U+0A2C, U+0A2D, U+0A2E, U+0A2F, U+0A30, U+0A31, U+0A32, U+0A33, U+0A34, U+0A35, U+0A36, U+0A37, U+0A38, U+0A39, U+0A3A, U+0A3B, U+0A3C, U+0A3D, U+0A3E, U+0A3F, U+0A40, U+0A41, U+0A42, U+0A43, U+0A44, U+0A45, U+0A46, U+0A47, U+0A48, U+0A49, U+0A4A, U+0A4B, U+0A4C, U+0A4D, U+0A4E, U+0A4F, U+0A50, U+0A51, U+0A52, U+0A53, U+0A54, U+0A55, U+0A56, U+0A57, U+0A58, U+0A59, U+0A5A, U+0A5B, U+0A5C, U+0A5D, U+0A5E, U+0A5F, U+0A60, U+0A61, U+0A62, U+0A63, U+0A64, U+0A65, U+0A66, U+0A67, U+0A68, U+0A69, U+0A6A, U+0A6B, U+0A6C, U+0A6D, U+0A6E, U+0A6F, U+0A70, U+0A71, U+0A72, U+0A73, U+0A74, U+0A75, U+0A76, U+0A77, U+0A78, U+0A79, U+0A7A, U+0A7B, U+0A7C, U+0A7D, U+0A7E, U+0A7F
 ; assertMatch('^(?:\p{IsGujarati}+)$', '઀૿') //U+0A80, U+0AFF
 ; assertMatch('^(?:\p{IsGujarati}+)$', '઀ઁંઃ઄અઆઇઈઉઊઋઌઍ઎એઐઑ઒ઓઔકખગઘઙચછજઝઞટઠડઢણતથદધન઩પફબભમયર઱લળ઴વશષસહ઺઻઼ઽાિીુૂૃૄૅ૆ેૈૉ૊ોૌ્૎૏ૐ૑૒૓૔૕૖૗૘૙૚૛૜૝૞૟ૠૡૢૣ૤૥૦૧૨૩૪૫૬૭૮૯૰૱૲૳૴૵૶૷૸ૹૺૻૼ૽૾૿') //U+0A80, U+0A81, U+0A82, U+0A83, U+0A84, U+0A85, U+0A86, U+0A87, U+0A88, U+0A89, U+0A8A, U+0A8B, U+0A8C, U+0A8D, U+0A8E, U+0A8F, U+0A90, U+0A91, U+0A92, U+0A93, U+0A94, U+0A95, U+0A96, U+0A97, U+0A98, U+0A99, U+0A9A, U+0A9B, U+0A9C, U+0A9D, U+0A9E, U+0A9F, U+0AA0, U+0AA1, U+0AA2, U+0AA3, U+0AA4, U+0AA5, U+0AA6, U+0AA7, U+0AA8, U+0AA9, U+0AAA, U+0AAB, U+0AAC, U+0AAD, U+0AAE, U+0AAF, U+0AB0, U+0AB1, U+0AB2, U+0AB3, U+0AB4, U+0AB5, U+0AB6, U+0AB7, U+0AB8, U+0AB9, U+0ABA, U+0ABB, U+0ABC, U+0ABD, U+0ABE, U+0ABF, U+0AC0, U+0AC1, U+0AC2, U+0AC3, U+0AC4, U+0AC5, U+0AC6, U+0AC7, U+0AC8, U+0AC9, U+0ACA, U+0ACB, U+0ACC, U+0ACD, U+0ACE, U+0ACF, U+0AD0, U+0AD1, U+0AD2, U+0AD3, U+0AD4, U+0AD5, U+0AD6, U+0AD7, U+0AD8, U+0AD9, U+0ADA, U+0ADB, U+0ADC, U+0ADD, U+0ADE, U+0ADF, U+0AE0, U+0AE1, U+0AE2, U+0AE3, U+0AE4, U+0AE5, U+0AE6, U+0AE7, U+0AE8, U+0AE9, U+0AEA, U+0AEB, U+0AEC, U+0AED, U+0AEE, U+0AEF, U+0AF0, U+0AF1, U+0AF2, U+0AF3, U+0AF4, U+0AF5, U+0AF6, U+0AF7, U+0AF8, U+0AF9, U+0AFA, U+0AFB, U+0AFC, U+0AFD, U+0AFE, U+0AFF
 ; assertMatch('^(?:\p{IsOriya}+)$', '଀୿') //U+0B00, U+0B7F
 ; assertMatch('^(?:\p{IsOriya}+)$', '଀ଁଂଃ଄ଅଆଇଈଉଊଋଌ଍଎ଏଐ଑଒ଓଔକଖଗଘଙଚଛଜଝଞଟଠଡଢଣତଥଦଧନ଩ପଫବଭମଯର଱ଲଳ଴ଵଶଷସହ଺଻଼ଽାିୀୁୂୃୄ୅୆େୈ୉୊ୋୌ୍୎୏୐୑୒୓୔୕ୖୗ୘୙୚୛ଡ଼ଢ଼୞ୟୠୡୢୣ୤୥୦୧୨୩୪୫୬୭୮୯୰ୱ୲୳୴୵୶୷୸୹୺୻୼୽୾୿') //U+0B00, U+0B01, U+0B02, U+0B03, U+0B04, U+0B05, U+0B06, U+0B07, U+0B08, U+0B09, U+0B0A, U+0B0B, U+0B0C, U+0B0D, U+0B0E, U+0B0F, U+0B10, U+0B11, U+0B12, U+0B13, U+0B14, U+0B15, U+0B16, U+0B17, U+0B18, U+0B19, U+0B1A, U+0B1B, U+0B1C, U+0B1D, U+0B1E, U+0B1F, U+0B20, U+0B21, U+0B22, U+0B23, U+0B24, U+0B25, U+0B26, U+0B27, U+0B28, U+0B29, U+0B2A, U+0B2B, U+0B2C, U+0B2D, U+0B2E, U+0B2F, U+0B30, U+0B31, U+0B32, U+0B33, U+0B34, U+0B35, U+0B36, U+0B37, U+0B38, U+0B39, U+0B3A, U+0B3B, U+0B3C, U+0B3D, U+0B3E, U+0B3F, U+0B40, U+0B41, U+0B42, U+0B43, U+0B44, U+0B45, U+0B46, U+0B47, U+0B48, U+0B49, U+0B4A, U+0B4B, U+0B4C, U+0B4D, U+0B4E, U+0B4F, U+0B50, U+0B51, U+0B52, U+0B53, U+0B54, U+0B55, U+0B56, U+0B57, U+0B58, U+0B59, U+0B5A, U+0B5B, U+0B5C, U+0B5D, U+0B5E, U+0B5F, U+0B60, U+0B61, U+0B62, U+0B63, U+0B64, U+0B65, U+0B66, U+0B67, U+0B68, U+0B69, U+0B6A, U+0B6B, U+0B6C, U+0B6D, U+0B6E, U+0B6F, U+0B70, U+0B71, U+0B72, U+0B73, U+0B74, U+0B75, U+0B76, U+0B77, U+0B78, U+0B79, U+0B7A, U+0B7B, U+0B7C, U+0B7D, U+0B7E, U+0B7F
 ; assertMatch('^(?:\p{IsTamil}+)$', '஀௿') //U+0B80, U+0BFF
 ; assertMatch('^(?:\p{IsTamil}+)$', '஀஁ஂஃ஄அஆஇஈஉஊ஋஌஍எஏஐ஑ஒஓஔக஖஗஘ஙச஛ஜ஝ஞட஠஡஢ணத஥஦஧நனப஫஬஭மயரறலளழவஶஷஸஹ஺஻஼஽ாிீுூ௃௄௅ெேை௉ொோௌ்௎௏ௐ௑௒௓௔௕௖ௗ௘௙௚௛௜௝௞௟௠௡௢௣௤௥௦௧௨௩௪௫௬௭௮௯௰௱௲௳௴௵௶௷௸௹௺௻௼௽௾௿') //U+0B80, U+0B81, U+0B82, U+0B83, U+0B84, U+0B85, U+0B86, U+0B87, U+0B88, U+0B89, U+0B8A, U+0B8B, U+0B8C, U+0B8D, U+0B8E, U+0B8F, U+0B90, U+0B91, U+0B92, U+0B93, U+0B94, U+0B95, U+0B96, U+0B97, U+0B98, U+0B99, U+0B9A, U+0B9B, U+0B9C, U+0B9D, U+0B9E, U+0B9F, U+0BA0, U+0BA1, U+0BA2, U+0BA3, U+0BA4, U+0BA5, U+0BA6, U+0BA7, U+0BA8, U+0BA9, U+0BAA, U+0BAB, U+0BAC, U+0BAD, U+0BAE, U+0BAF, U+0BB0, U+0BB1, U+0BB2, U+0BB3, U+0BB4, U+0BB5, U+0BB6, U+0BB7, U+0BB8, U+0BB9, U+0BBA, U+0BBB, U+0BBC, U+0BBD, U+0BBE, U+0BBF, U+0BC0, U+0BC1, U+0BC2, U+0BC3, U+0BC4, U+0BC5, U+0BC6, U+0BC7, U+0BC8, U+0BC9, U+0BCA, U+0BCB, U+0BCC, U+0BCD, U+0BCE, U+0BCF, U+0BD0, U+0BD1, U+0BD2, U+0BD3, U+0BD4, U+0BD5, U+0BD6, U+0BD7, U+0BD8, U+0BD9, U+0BDA, U+0BDB, U+0BDC, U+0BDD, U+0BDE, U+0BDF, U+0BE0, U+0BE1, U+0BE2, U+0BE3, U+0BE4, U+0BE5, U+0BE6, U+0BE7, U+0BE8, U+0BE9, U+0BEA, U+0BEB, U+0BEC, U+0BED, U+0BEE, U+0BEF, U+0BF0, U+0BF1, U+0BF2, U+0BF3, U+0BF4, U+0BF5, U+0BF6, U+0BF7, U+0BF8, U+0BF9, U+0BFA, U+0BFB, U+0BFC, U+0BFD, U+0BFE, U+0BFF
 ; assertMatch('^(?:\p{IsTelugu}+)$', 'ఀఁంఃఄఅఆఇఈఉఊఋఌ఍ఎఏఐ఑ఒఓఔకఖగఘఙచఛజఝఞటఠడఢణతథదధన఩పఫబభమయరఱలళఴవశషసహ఺఻఼ఽాిీుూృౄ౅ెేై౉ొోౌ్౎౏౐౑౒౓౔ౕౖ౗ౘౙౚ౛౜ౝ౞౟ౠౡౢౣ౤౥౦౧౨౩౪౫౬౭౮౯౰౱౲౳౴౵౶౷౸౹౺౻౼౽౾౿') //U+0C00, U+0C01, U+0C02, U+0C03, U+0C04, U+0C05, U+0C06, U+0C07, U+0C08, U+0C09, U+0C0A, U+0C0B, U+0C0C, U+0C0D, U+0C0E, U+0C0F, U+0C10, U+0C11, U+0C12, U+0C13, U+0C14, U+0C15, U+0C16, U+0C17, U+0C18, U+0C19, U+0C1A, U+0C1B, U+0C1C, U+0C1D, U+0C1E, U+0C1F, U+0C20, U+0C21, U+0C22, U+0C23, U+0C24, U+0C25, U+0C26, U+0C27, U+0C28, U+0C29, U+0C2A, U+0C2B, U+0C2C, U+0C2D, U+0C2E, U+0C2F, U+0C30, U+0C31, U+0C32, U+0C33, U+0C34, U+0C35, U+0C36, U+0C37, U+0C38, U+0C39, U+0C3A, U+0C3B, U+0C3C, U+0C3D, U+0C3E, U+0C3F, U+0C40, U+0C41, U+0C42, U+0C43, U+0C44, U+0C45, U+0C46, U+0C47, U+0C48, U+0C49, U+0C4A, U+0C4B, U+0C4C, U+0C4D, U+0C4E, U+0C4F, U+0C50, U+0C51, U+0C52, U+0C53, U+0C54, U+0C55, U+0C56, U+0C57, U+0C58, U+0C59, U+0C5A, U+0C5B, U+0C5C, U+0C5D, U+0C5E, U+0C5F, U+0C60, U+0C61, U+0C62, U+0C63, U+0C64, U+0C65, U+0C66, U+0C67, U+0C68, U+0C69, U+0C6A, U+0C6B, U+0C6C, U+0C6D, U+0C6E, U+0C6F, U+0C70, U+0C71, U+0C72, U+0C73, U+0C74, U+0C75, U+0C76, U+0C77, U+0C78, U+0C79, U+0C7A, U+0C7B, U+0C7C, U+0C7D, U+0C7E, U+0C7F
 ; assertMatch('^(?:\p{IsKannada}+)$', 'ಀ೿') //U+0C80, U+0CFF
 ; assertMatch('^(?:\p{IsKannada}+)$', 'ಀಁಂಃ಄ಅಆಇಈಉಊಋಌ಍ಎಏಐ಑ಒಓಔಕಖಗಘಙಚಛಜಝಞಟಠಡಢಣತಥದಧನ಩ಪಫಬಭಮಯರಱಲಳ಴ವಶಷಸಹ಺಻಼ಽಾಿೀುೂೃೄ೅ೆೇೈ೉ೊೋೌ್೎೏೐೑೒೓೔ೕೖ೗೘೙೚೛೜ೝೞ೟ೠೡೢೣ೤೥೦೧೨೩೪೫೬೭೮೯೰ೱೲೳ೴೵೶೷೸೹೺೻೼೽೾೿') //U+0C80, U+0C81, U+0C82, U+0C83, U+0C84, U+0C85, U+0C86, U+0C87, U+0C88, U+0C89, U+0C8A, U+0C8B, U+0C8C, U+0C8D, U+0C8E, U+0C8F, U+0C90, U+0C91, U+0C92, U+0C93, U+0C94, U+0C95, U+0C96, U+0C97, U+0C98, U+0C99, U+0C9A, U+0C9B, U+0C9C, U+0C9D, U+0C9E, U+0C9F, U+0CA0, U+0CA1, U+0CA2, U+0CA3, U+0CA4, U+0CA5, U+0CA6, U+0CA7, U+0CA8, U+0CA9, U+0CAA, U+0CAB, U+0CAC, U+0CAD, U+0CAE, U+0CAF, U+0CB0, U+0CB1, U+0CB2, U+0CB3, U+0CB4, U+0CB5, U+0CB6, U+0CB7, U+0CB8, U+0CB9, U+0CBA, U+0CBB, U+0CBC, U+0CBD, U+0CBE, U+0CBF, U+0CC0, U+0CC1, U+0CC2, U+0CC3, U+0CC4, U+0CC5, U+0CC6, U+0CC7, U+0CC8, U+0CC9, U+0CCA, U+0CCB, U+0CCC, U+0CCD, U+0CCE, U+0CCF, U+0CD0, U+0CD1, U+0CD2, U+0CD3, U+0CD4, U+0CD5, U+0CD6, U+0CD7, U+0CD8, U+0CD9, U+0CDA, U+0CDB, U+0CDC, U+0CDD, U+0CDE, U+0CDF, U+0CE0, U+0CE1, U+0CE2, U+0CE3, U+0CE4, U+0CE5, U+0CE6, U+0CE7, U+0CE8, U+0CE9, U+0CEA, U+0CEB, U+0CEC, U+0CED, U+0CEE, U+0CEF, U+0CF0, U+0CF1, U+0CF2, U+0CF3, U+0CF4, U+0CF5, U+0CF6, U+0CF7, U+0CF8, U+0CF9, U+0CFA, U+0CFB, U+0CFC, U+0CFD, U+0CFE, U+0CFF
 ; assertMatch('^(?:\p{IsMalayalam}+)$', 'ഀൿ') //U+0D00, U+0D7F
 ; assertMatch('^(?:\p{IsMalayalam}+)$', 'ഀഁംഃഄഅആഇഈഉഊഋഌ഍എഏഐ഑ഒഓഔകഖഗഘങചഛജഝഞടഠഡഢണതഥദധനഩപഫബഭമയരറലളഴവശഷസഹഺ഻഼ഽാിീുൂൃൄ൅െേൈ൉ൊോൌ്ൎ൏൐൑൒൓ൔൕൖൗ൘൙൚൛൜൝൞ൟൠൡൢൣ൤൥൦൧൨൩൪൫൬൭൮൯൰൱൲൳൴൵൶൷൸൹ൺൻർൽൾൿ') //U+0D00, U+0D01, U+0D02, U+0D03, U+0D04, U+0D05, U+0D06, U+0D07, U+0D08, U+0D09, U+0D0A, U+0D0B, U+0D0C, U+0D0D, U+0D0E, U+0D0F, U+0D10, U+0D11, U+0D12, U+0D13, U+0D14, U+0D15, U+0D16, U+0D17, U+0D18, U+0D19, U+0D1A, U+0D1B, U+0D1C, U+0D1D, U+0D1E, U+0D1F, U+0D20, U+0D21, U+0D22, U+0D23, U+0D24, U+0D25, U+0D26, U+0D27, U+0D28, U+0D29, U+0D2A, U+0D2B, U+0D2C, U+0D2D, U+0D2E, U+0D2F, U+0D30, U+0D31, U+0D32, U+0D33, U+0D34, U+0D35, U+0D36, U+0D37, U+0D38, U+0D39, U+0D3A, U+0D3B, U+0D3C, U+0D3D, U+0D3E, U+0D3F, U+0D40, U+0D41, U+0D42, U+0D43, U+0D44, U+0D45, U+0D46, U+0D47, U+0D48, U+0D49, U+0D4A, U+0D4B, U+0D4C, U+0D4D, U+0D4E, U+0D4F, U+0D50, U+0D51, U+0D52, U+0D53, U+0D54, U+0D55, U+0D56, U+0D57, U+0D58, U+0D59, U+0D5A, U+0D5B, U+0D5C, U+0D5D, U+0D5E, U+0D5F, U+0D60, U+0D61, U+0D62, U+0D63, U+0D64, U+0D65, U+0D66, U+0D67, U+0D68, U+0D69, U+0D6A, U+0D6B, U+0D6C, U+0D6D, U+0D6E, U+0D6F, U+0D70, U+0D71, U+0D72, U+0D73, U+0D74, U+0D75, U+0D76, U+0D77, U+0D78, U+0D79, U+0D7A, U+0D7B, U+0D7C, U+0D7D, U+0D7E, U+0D7F
 ; assertMatch('^(?:\p{IsSinhala}+)$', '඀෿') //U+0D80, U+0DFF
 ; assertMatch('^(?:\p{IsSinhala}+)$', '඀ඁංඃ඄අආඇඈඉඊඋඌඍඎඏඐඑඒඓඔඕඖ඗඘඙කඛගඝඞඟචඡජඣඤඥඦටඨඩඪණඬතථදධන඲ඳපඵබභමඹයර඼ල඾඿වශෂසහළෆ෇෈෉්෋෌෍෎ාැෑිීු෕ූ෗ෘෙේෛොෝෞෟ෠෡෢෣෤෥෦෧෨෩෪෫෬෭෮෯෰෱ෲෳ෴෵෶෷෸෹෺෻෼෽෾෿') //U+0D80, U+0D81, U+0D82, U+0D83, U+0D84, U+0D85, U+0D86, U+0D87, U+0D88, U+0D89, U+0D8A, U+0D8B, U+0D8C, U+0D8D, U+0D8E, U+0D8F, U+0D90, U+0D91, U+0D92, U+0D93, U+0D94, U+0D95, U+0D96, U+0D97, U+0D98, U+0D99, U+0D9A, U+0D9B, U+0D9C, U+0D9D, U+0D9E, U+0D9F, U+0DA0, U+0DA1, U+0DA2, U+0DA3, U+0DA4, U+0DA5, U+0DA6, U+0DA7, U+0DA8, U+0DA9, U+0DAA, U+0DAB, U+0DAC, U+0DAD, U+0DAE, U+0DAF, U+0DB0, U+0DB1, U+0DB2, U+0DB3, U+0DB4, U+0DB5, U+0DB6, U+0DB7, U+0DB8, U+0DB9, U+0DBA, U+0DBB, U+0DBC, U+0DBD, U+0DBE, U+0DBF, U+0DC0, U+0DC1, U+0DC2, U+0DC3, U+0DC4, U+0DC5, U+0DC6, U+0DC7, U+0DC8, U+0DC9, U+0DCA, U+0DCB, U+0DCC, U+0DCD, U+0DCE, U+0DCF, U+0DD0, U+0DD1, U+0DD2, U+0DD3, U+0DD4, U+0DD5, U+0DD6, U+0DD7, U+0DD8, U+0DD9, U+0DDA, U+0DDB, U+0DDC, U+0DDD, U+0DDE, U+0DDF, U+0DE0, U+0DE1, U+0DE2, U+0DE3, U+0DE4, U+0DE5, U+0DE6, U+0DE7, U+0DE8, U+0DE9, U+0DEA, U+0DEB, U+0DEC, U+0DED, U+0DEE, U+0DEF, U+0DF0, U+0DF1, U+0DF2, U+0DF3, U+0DF4, U+0DF5, U+0DF6, U+0DF7, U+0DF8, U+0DF9, U+0DFA, U+0DFB, U+0DFC, U+0DFD, U+0DFE, U+0DFF
 ; assertMatch('^(?:\p{IsThai}+)$', '฀๿') //U+0E00, U+0E7F
 ; assertMatch('^(?:\p{IsThai}+)$', '฀กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู฻฼฽฾฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛๜๝๞๟๠๡๢๣๤๥๦๧๨๩๪๫๬๭๮๯๰๱๲๳๴๵๶๷๸๹๺๻๼๽๾๿') //U+0E00, U+0E01, U+0E02, U+0E03, U+0E04, U+0E05, U+0E06, U+0E07, U+0E08, U+0E09, U+0E0A, U+0E0B, U+0E0C, U+0E0D, U+0E0E, U+0E0F, U+0E10, U+0E11, U+0E12, U+0E13, U+0E14, U+0E15, U+0E16, U+0E17, U+0E18, U+0E19, U+0E1A, U+0E1B, U+0E1C, U+0E1D, U+0E1E, U+0E1F, U+0E20, U+0E21, U+0E22, U+0E23, U+0E24, U+0E25, U+0E26, U+0E27, U+0E28, U+0E29, U+0E2A, U+0E2B, U+0E2C, U+0E2D, U+0E2E, U+0E2F, U+0E30, U+0E31, U+0E32, U+0E33, U+0E34, U+0E35, U+0E36, U+0E37, U+0E38, U+0E39, U+0E3A, U+0E3B, U+0E3C, U+0E3D, U+0E3E, U+0E3F, U+0E40, U+0E41, U+0E42, U+0E43, U+0E44, U+0E45, U+0E46, U+0E47, U+0E48, U+0E49, U+0E4A, U+0E4B, U+0E4C, U+0E4D, U+0E4E, U+0E4F, U+0E50, U+0E51, U+0E52, U+0E53, U+0E54, U+0E55, U+0E56, U+0E57, U+0E58, U+0E59, U+0E5A, U+0E5B, U+0E5C, U+0E5D, U+0E5E, U+0E5F, U+0E60, U+0E61, U+0E62, U+0E63, U+0E64, U+0E65, U+0E66, U+0E67, U+0E68, U+0E69, U+0E6A, U+0E6B, U+0E6C, U+0E6D, U+0E6E, U+0E6F, U+0E70, U+0E71, U+0E72, U+0E73, U+0E74, U+0E75, U+0E76, U+0E77, U+0E78, U+0E79, U+0E7A, U+0E7B, U+0E7C, U+0E7D, U+0E7E, U+0E7F
 ; assertMatch('^(?:\p{IsLao}+)$', '຀໿') //U+0E80, U+0EFF
 ; assertMatch('^(?:\p{IsLao}+)$', '຀ກຂ຃ຄ຅ຆງຈຉຊ຋ຌຍຎຏຐຑຒຓດຕຖທຘນບປຜຝພຟຠມຢຣ຤ລ຦ວຨຩສຫຬອຮຯະັາຳິີຶື຺ຸູົຼຽ຾຿ເແໂໃໄ໅ໆ໇່້໊໋໌ໍ໎໏໐໑໒໓໔໕໖໗໘໙໚໛ໜໝໞໟ໠໡໢໣໤໥໦໧໨໩໪໫໬໭໮໯໰໱໲໳໴໵໶໷໸໹໺໻໼໽໾໿') //U+0E80, U+0E81, U+0E82, U+0E83, U+0E84, U+0E85, U+0E86, U+0E87, U+0E88, U+0E89, U+0E8A, U+0E8B, U+0E8C, U+0E8D, U+0E8E, U+0E8F, U+0E90, U+0E91, U+0E92, U+0E93, U+0E94, U+0E95, U+0E96, U+0E97, U+0E98, U+0E99, U+0E9A, U+0E9B, U+0E9C, U+0E9D, U+0E9E, U+0E9F, U+0EA0, U+0EA1, U+0EA2, U+0EA3, U+0EA4, U+0EA5, U+0EA6, U+0EA7, U+0EA8, U+0EA9, U+0EAA, U+0EAB, U+0EAC, U+0EAD, U+0EAE, U+0EAF, U+0EB0, U+0EB1, U+0EB2, U+0EB3, U+0EB4, U+0EB5, U+0EB6, U+0EB7, U+0EB8, U+0EB9, U+0EBA, U+0EBB, U+0EBC, U+0EBD, U+0EBE, U+0EBF, U+0EC0, U+0EC1, U+0EC2, U+0EC3, U+0EC4, U+0EC5, U+0EC6, U+0EC7, U+0EC8, U+0EC9, U+0ECA, U+0ECB, U+0ECC, U+0ECD, U+0ECE, U+0ECF, U+0ED0, U+0ED1, U+0ED2, U+0ED3, U+0ED4, U+0ED5, U+0ED6, U+0ED7, U+0ED8, U+0ED9, U+0EDA, U+0EDB, U+0EDC, U+0EDD, U+0EDE, U+0EDF, U+0EE0, U+0EE1, U+0EE2, U+0EE3, U+0EE4, U+0EE5, U+0EE6, U+0EE7, U+0EE8, U+0EE9, U+0EEA, U+0EEB, U+0EEC, U+0EED, U+0EEE, U+0EEF, U+0EF0, U+0EF1, U+0EF2, U+0EF3, U+0EF4, U+0EF5, U+0EF6, U+0EF7, U+0EF8, U+0EF9, U+0EFA, U+0EFB, U+0EFC, U+0EFD, U+0EFE, U+0EFF
 ; assertMatch('^(?:\p{IsTibetan}+)$', 'ༀ࿿') //U+0F00, U+0FFF
 ; assertMatch('^(?:\p{IsTibetan}+)$', 'ༀ༁༂༃༄༅༆༇༈༉༊་༌།༎༏༐༑༒༓༔༕༖༗༘༙༚༛༜༝༞༟༠༡༢༣༤༥༦༧༨༩༪༫༬༭༮༯༰༱༲༳༴༵༶༷༸༹༺༻༼༽༾༿ཀཁགགྷངཅཆཇ཈ཉཊཋཌཌྷཎཏཐདདྷནཔཕབབྷམཙཚཛཛྷཝཞཟའཡརལཤཥསཧཨཀྵཪཫཬ཭཮཯཰ཱཱཱིིུུྲྀཷླྀཹེཻོཽཾཿ྄ཱྀྀྂྃ྅྆྇ྈྉྊྋྌྍྎྏྐྑྒྒྷྔྕྖྗ྘ྙྚྛྜྜྷྞྟྠྡྡྷྣྤྥྦྦྷྨྩྪྫྫྷྭྮྯྰྱྲླྴྵྶྷྸྐྵྺྻྼ྽྾྿࿀࿁࿂࿃࿄࿅࿆࿇࿈࿉࿊࿋࿌࿍࿎࿏࿐࿑࿒࿓࿔࿕࿖࿗࿘࿙࿚࿛࿜࿝࿞࿟࿠࿡࿢࿣࿤࿥࿦࿧࿨࿩࿪࿫࿬࿭࿮࿯࿰࿱࿲࿳࿴࿵࿶࿷࿸࿹࿺࿻࿼࿽࿾࿿') //U+0F00, U+0F01, U+0F02, U+0F03, U+0F04, U+0F05, U+0F06, U+0F07, U+0F08, U+0F09, U+0F0A, U+0F0B, U+0F0C, U+0F0D, U+0F0E, U+0F0F, U+0F10, U+0F11, U+0F12, U+0F13, U+0F14, U+0F15, U+0F16, U+0F17, U+0F18, U+0F19, U+0F1A, U+0F1B, U+0F1C, U+0F1D, U+0F1E, U+0F1F, U+0F20, U+0F21, U+0F22, U+0F23, U+0F24, U+0F25, U+0F26, U+0F27, U+0F28, U+0F29, U+0F2A, U+0F2B, U+0F2C, U+0F2D, U+0F2E, U+0F2F, U+0F30, U+0F31, U+0F32, U+0F33, U+0F34, U+0F35, U+0F36, U+0F37, U+0F38, U+0F39, U+0F3A, U+0F3B, U+0F3C, U+0F3D, U+0F3E, U+0F3F, U+0F40, U+0F41, U+0F42, U+0F43, U+0F44, U+0F45, U+0F46, U+0F47, U+0F48, U+0F49, U+0F4A, U+0F4B, U+0F4C, U+0F4D, U+0F4E, U+0F4F, U+0F50, U+0F51, U+0F52, U+0F53, U+0F54, U+0F55, U+0F56, U+0F57, U+0F58, U+0F59, U+0F5A, U+0F5B, U+0F5C, U+0F5D, U+0F5E, U+0F5F, U+0F60, U+0F61, U+0F62, U+0F63, U+0F64, U+0F65, U+0F66, U+0F67, U+0F68, U+0F69, U+0F6A, U+0F6B, U+0F6C, U+0F6D, U+0F6E, U+0F6F, U+0F70, U+0F71, U+0F72, U+0F73, U+0F74, U+0F75, U+0F76, U+0F77, U+0F78, U+0F79, U+0F7A, U+0F7B, U+0F7C, U+0F7D, U+0F7E, U+0F7F, U+0F80, U+0F81, U+0F82, U+0F83, U+0F84, U+0F85, U+0F86, U+0F87, U+0F88, U+0F89, U+0F8A, U+0F8B, U+0F8C, U+0F8D, U+0F8E, U+0F8F, U+0F90, U+0F91, U+0F92, U+0F93, U+0F94, U+0F95, U+0F96, U+0F97, U+0F98, U+0F99, U+0F9A, U+0F9B, U+0F9C, U+0F9D, U+0F9E, U+0F9F, U+0FA0, U+0FA1, U+0FA2, U+0FA3, U+0FA4, U+0FA5, U+0FA6, U+0FA7, U+0FA8, U+0FA9, U+0FAA, U+0FAB, U+0FAC, U+0FAD, U+0FAE, U+0FAF, U+0FB0, U+0FB1, U+0FB2, U+0FB3, U+0FB4, U+0FB5, U+0FB6, U+0FB7, U+0FB8, U+0FB9, U+0FBA, U+0FBB, U+0FBC, U+0FBD, U+0FBE, U+0FBF, U+0FC0, U+0FC1, U+0FC2, U+0FC3, U+0FC4, U+0FC5, U+0FC6, U+0FC7, U+0FC8, U+0FC9, U+0FCA, U+0FCB, U+0FCC, U+0FCD, U+0FCE, U+0FCF, U+0FD0, U+0FD1, U+0FD2, U+0FD3, U+0FD4, U+0FD5, U+0FD6, U+0FD7, U+0FD8, U+0FD9, U+0FDA, U+0FDB, U+0FDC, U+0FDD, U+0FDE, U+0FDF, U+0FE0, U+0FE1, U+0FE2, U+0FE3, U+0FE4, U+0FE5, U+0FE6, U+0FE7, U+0FE8, U+0FE9, U+0FEA, U+0FEB, U+0FEC, U+0FED, U+0FEE, U+0FEF, U+0FF0, U+0FF1, U+0FF2, U+0FF3, U+0FF4, U+0FF5, U+0FF6, U+0FF7, U+0FF8, U+0FF9, U+0FFA, U+0FFB, U+0FFC, U+0FFD, U+0FFE, U+0FFF
 ; assertMatch('^(?:\p{IsGeorgian}+)$', 'ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅ჆Ⴧ჈჉჊჋჌Ⴭ჎჏აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶჷჸჹჺ჻ჼჽჾჿ') //U+10A0, U+10A1, U+10A2, U+10A3, U+10A4, U+10A5, U+10A6, U+10A7, U+10A8, U+10A9, U+10AA, U+10AB, U+10AC, U+10AD, U+10AE, U+10AF, U+10B0, U+10B1, U+10B2, U+10B3, U+10B4, U+10B5, U+10B6, U+10B7, U+10B8, U+10B9, U+10BA, U+10BB, U+10BC, U+10BD, U+10BE, U+10BF, U+10C0, U+10C1, U+10C2, U+10C3, U+10C4, U+10C5, U+10C6, U+10C7, U+10C8, U+10C9, U+10CA, U+10CB, U+10CC, U+10CD, U+10CE, U+10CF, U+10D0, U+10D1, U+10D2, U+10D3, U+10D4, U+10D5, U+10D6, U+10D7, U+10D8, U+10D9, U+10DA, U+10DB, U+10DC, U+10DD, U+10DE, U+10DF, U+10E0, U+10E1, U+10E2, U+10E3, U+10E4, U+10E5, U+10E6, U+10E7, U+10E8, U+10E9, U+10EA, U+10EB, U+10EC, U+10ED, U+10EE, U+10EF, U+10F0, U+10F1, U+10F2, U+10F3, U+10F4, U+10F5, U+10F6, U+10F7, U+10F8, U+10F9, U+10FA, U+10FB, U+10FC, U+10FD, U+10FE, U+10FF
 ; assertMatch('^(?:\p{IsEthiopic}+)$', 'ሀ፿') //U+1200, U+137F
 ; assertMatch('^(?:\p{IsEthiopic}+)$', 'ሀሁሂሃሄህሆሇለሉሊላሌልሎሏሐሑሒሓሔሕሖሗመሙሚማሜምሞሟሠሡሢሣሤሥሦሧረሩሪራሬርሮሯሰሱሲሳሴስሶሷሸሹሺሻሼሽሾሿቀቁቂቃቄቅቆቇቈ቉ቊቋቌቍ቎቏ቐቑቒቓቔቕቖ቗ቘ቙ቚቛቜቝ቞቟በቡቢባቤብቦቧቨቩቪቫቬቭቮቯተቱቲታቴትቶቷቸቹቺቻቼችቾቿኀኁኂኃኄኅኆኇኈ኉ኊኋኌኍ኎኏ነኑኒናኔንኖኗኘኙኚኛኜኝኞኟአኡኢኣኤእኦኧከኩኪካኬክኮኯኰ኱ኲኳኴኵ኶኷ኸኹኺኻኼኽኾ኿ዀ዁ዂዃዄዅ዆዇ወዉዊዋዌውዎዏዐዑዒዓዔዕዖ዗ዘዙዚዛዜዝዞዟዠዡዢዣዤዥዦዧየዩዪያዬይዮዯደዱዲዳዴድዶዷዸዹዺዻዼዽዾዿጀጁጂጃጄጅጆጇገጉጊጋጌግጎጏጐ጑ጒጓጔጕ጖጗ጘጙጚጛጜጝጞጟጠጡጢጣጤጥጦጧጨጩጪጫጬጭጮጯጰጱጲጳጴጵጶጷጸጹጺጻጼጽጾጿፀፁፂፃፄፅፆፇፈፉፊፋፌፍፎፏፐፑፒፓፔፕፖፗፘፙፚ፛፜፝፞፟፠፡።፣፤፥፦፧፨፩፪፫፬፭፮፯፰፱፲፳፴፵፶፷፸፹፺፻፼፽፾፿') //U+1200, U+1201, U+1202, U+1203, U+1204, U+1205, U+1206, U+1207, U+1208, U+1209, U+120A, U+120B, U+120C, U+120D, U+120E, U+120F, U+1210, U+1211, U+1212, U+1213, U+1214, U+1215, U+1216, U+1217, U+1218, U+1219, U+121A, U+121B, U+121C, U+121D, U+121E, U+121F, U+1220, U+1221, U+1222, U+1223, U+1224, U+1225, U+1226, U+1227, U+1228, U+1229, U+122A, U+122B, U+122C, U+122D, U+122E, U+122F, U+1230, U+1231, U+1232, U+1233, U+1234, U+1235, U+1236, U+1237, U+1238, U+1239, U+123A, U+123B, U+123C, U+123D, U+123E, U+123F, U+1240, U+1241, U+1242, U+1243, U+1244, U+1245, U+1246, U+1247, U+1248, U+1249, U+124A, U+124B, U+124C, U+124D, U+124E, U+124F, U+1250, U+1251, U+1252, U+1253, U+1254, U+1255, U+1256, U+1257, U+1258, U+1259, U+125A, U+125B, U+125C, U+125D, U+125E, U+125F, U+1260, U+1261, U+1262, U+1263, U+1264, U+1265, U+1266, U+1267, U+1268, U+1269, U+126A, U+126B, U+126C, U+126D, U+126E, U+126F, U+1270, U+1271, U+1272, U+1273, U+1274, U+1275, U+1276, U+1277, U+1278, U+1279, U+127A, U+127B, U+127C, U+127D, U+127E, U+127F, U+1280, U+1281, U+1282, U+1283, U+1284, U+1285, U+1286, U+1287, U+1288, U+1289, U+128A, U+128B, U+128C, U+128D, U+128E, U+128F, U+1290, U+1291, U+1292, U+1293, U+1294, U+1295, U+1296, U+1297, U+1298, U+1299, U+129A, U+129B, U+129C, U+129D, U+129E, U+129F, U+12A0, U+12A1, U+12A2, U+12A3, U+12A4, U+12A5, U+12A6, U+12A7, U+12A8, U+12A9, U+12AA, U+12AB, U+12AC, U+12AD, U+12AE, U+12AF, U+12B0, U+12B1, U+12B2, U+12B3, U+12B4, U+12B5, U+12B6, U+12B7, U+12B8, U+12B9, U+12BA, U+12BB, U+12BC, U+12BD, U+12BE, U+12BF, U+12C0, U+12C1, U+12C2, U+12C3, U+12C4, U+12C5, U+12C6, U+12C7, U+12C8, U+12C9, U+12CA, U+12CB, U+12CC, U+12CD, U+12CE, U+12CF, U+12D0, U+12D1, U+12D2, U+12D3, U+12D4, U+12D5, U+12D6, U+12D7, U+12D8, U+12D9, U+12DA, U+12DB, U+12DC, U+12DD, U+12DE, U+12DF, U+12E0, U+12E1, U+12E2, U+12E3, U+12E4, U+12E5, U+12E6, U+12E7, U+12E8, U+12E9, U+12EA, U+12EB, U+12EC, U+12ED, U+12EE, U+12EF, U+12F0, U+12F1, U+12F2, U+12F3, U+12F4, U+12F5, U+12F6, U+12F7, U+12F8, U+12F9, U+12FA, U+12FB, U+12FC, U+12FD, U+12FE, U+12FF, U+1300, U+1301, U+1302, U+1303, U+1304, U+1305, U+1306, U+1307, U+1308, U+1309, U+130A, U+130B, U+130C, U+130D, U+130E, U+130F, U+1310, U+1311, U+1312, U+1313, U+1314, U+1315, U+1316, U+1317, U+1318, U+1319, U+131A, U+131B, U+131C, U+131D, U+131E, U+131F, U+1320, U+1321, U+1322, U+1323, U+1324, U+1325, U+1326, U+1327, U+1328, U+1329, U+132A, U+132B, U+132C, U+132D, U+132E, U+132F, U+1330, U+1331, U+1332, U+1333, U+1334, U+1335, U+1336, U+1337, U+1338, U+1339, U+133A, U+133B, U+133C, U+133D, U+133E, U+133F, U+1340, U+1341, U+1342, U+1343, U+1344, U+1345, U+1346, U+1347, U+1348, U+1349, U+134A, U+134B, U+134C, U+134D, U+134E, U+134F, U+1350, U+1351, U+1352, U+1353, U+1354, U+1355, U+1356, U+1357, U+1358, U+1359, U+135A, U+135B, U+135C, U+135D, U+135E, U+135F, U+1360, U+1361, U+1362, U+1363, U+1364, U+1365, U+1366, U+1367, U+1368, U+1369, U+136A, U+136B, U+136C, U+136D, U+136E, U+136F, U+1370, U+1371, U+1372, U+1373, U+1374, U+1375, U+1376, U+1377, U+1378, U+1379, U+137A, U+137B, U+137C, U+137D, U+137E, U+137F
 ; assertMatch('^(?:\p{IsCherokee}+)$', 'Ꭰ᏿') //U+13A0, U+13FF
 ; assertMatch('^(?:\p{IsCherokee}+)$', 'ᎠᎡᎢᎣᎤᎥᎦᎧᎨᎩᎪᎫᎬᎭᎮᎯᎰᎱᎲᎳᎴᎵᎶᎷᎸᎹᎺᎻᎼᎽᎾᎿᏀᏁᏂᏃᏄᏅᏆᏇᏈᏉᏊᏋᏌᏍᏎᏏᏐᏑᏒᏓᏔᏕᏖᏗᏘᏙᏚᏛᏜᏝᏞᏟᏠᏡᏢᏣᏤᏥᏦᏧᏨᏩᏪᏫᏬᏭᏮᏯᏰᏱᏲᏳᏴᏵ᏶᏷ᏸᏹᏺᏻᏼᏽ᏾᏿') //U+13A0, U+13A1, U+13A2, U+13A3, U+13A4, U+13A5, U+13A6, U+13A7, U+13A8, U+13A9, U+13AA, U+13AB, U+13AC, U+13AD, U+13AE, U+13AF, U+13B0, U+13B1, U+13B2, U+13B3, U+13B4, U+13B5, U+13B6, U+13B7, U+13B8, U+13B9, U+13BA, U+13BB, U+13BC, U+13BD, U+13BE, U+13BF, U+13C0, U+13C1, U+13C2, U+13C3, U+13C4, U+13C5, U+13C6, U+13C7, U+13C8, U+13C9, U+13CA, U+13CB, U+13CC, U+13CD, U+13CE, U+13CF, U+13D0, U+13D1, U+13D2, U+13D3, U+13D4, U+13D5, U+13D6, U+13D7, U+13D8, U+13D9, U+13DA, U+13DB, U+13DC, U+13DD, U+13DE, U+13DF, U+13E0, U+13E1, U+13E2, U+13E3, U+13E4, U+13E5, U+13E6, U+13E7, U+13E8, U+13E9, U+13EA, U+13EB, U+13EC, U+13ED, U+13EE, U+13EF, U+13F0, U+13F1, U+13F2, U+13F3, U+13F4, U+13F5, U+13F6, U+13F7, U+13F8, U+13F9, U+13FA, U+13FB, U+13FC, U+13FD, U+13FE, U+13FF
 ; assertMatch('^(?:\p{IsOgham}+)$', ' ᚟') //U+1680, U+169F
 ; assertMatch('^(?:\p{IsOgham}+)$', ' ᚁᚂᚃᚄᚅᚆᚇᚈᚉᚊᚋᚌᚍᚎᚏᚐᚑᚒᚓᚔᚕᚖᚗᚘᚙᚚ᚛᚜᚝᚞᚟') //U+1680, U+1681, U+1682, U+1683, U+1684, U+1685, U+1686, U+1687, U+1688, U+1689, U+168A, U+168B, U+168C, U+168D, U+168E, U+168F, U+1690, U+1691, U+1692, U+1693, U+1694, U+1695, U+1696, U+1697, U+1698, U+1699, U+169A, U+169B, U+169C, U+169D, U+169E, U+169F
 ; assertMatch('^(?:\p{IsRunic}+)$', 'ᚠ᛿') //U+16A0, U+16FF
 ; assertMatch('^(?:\p{IsRunic}+)$', 'ᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿᛀᛁᛂᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌᛍᛎᛏᛐᛑᛒᛓᛔᛕᛖᛗᛘᛙᛚᛛᛜᛝᛞᛟᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪ᛫᛬᛭ᛮᛯᛰᛱᛲᛳᛴᛵᛶᛷᛸ᛹᛺᛻᛼᛽᛾᛿') //U+16A0, U+16A1, U+16A2, U+16A3, U+16A4, U+16A5, U+16A6, U+16A7, U+16A8, U+16A9, U+16AA, U+16AB, U+16AC, U+16AD, U+16AE, U+16AF, U+16B0, U+16B1, U+16B2, U+16B3, U+16B4, U+16B5, U+16B6, U+16B7, U+16B8, U+16B9, U+16BA, U+16BB, U+16BC, U+16BD, U+16BE, U+16BF, U+16C0, U+16C1, U+16C2, U+16C3, U+16C4, U+16C5, U+16C6, U+16C7, U+16C8, U+16C9, U+16CA, U+16CB, U+16CC, U+16CD, U+16CE, U+16CF, U+16D0, U+16D1, U+16D2, U+16D3, U+16D4, U+16D5, U+16D6, U+16D7, U+16D8, U+16D9, U+16DA, U+16DB, U+16DC, U+16DD, U+16DE, U+16DF, U+16E0, U+16E1, U+16E2, U+16E3, U+16E4, U+16E5, U+16E6, U+16E7, U+16E8, U+16E9, U+16EA, U+16EB, U+16EC, U+16ED, U+16EE, U+16EF, U+16F0, U+16F1, U+16F2, U+16F3, U+16F4, U+16F5, U+16F6, U+16F7, U+16F8, U+16F9, U+16FA, U+16FB, U+16FC, U+16FD, U+16FE, U+16FF
 ; assertMatch('^(?:\p{IsKhmer}+)$', 'ក៿') //U+1780, U+17FF
 ; assertMatch('^(?:\p{IsKhmer}+)$', 'កខគឃងចឆជឈញដឋឌឍណតថទធនបផពភមយរលវឝឞសហឡអឣឤឥឦឧឨឩឪឫឬឭឮឯឰឱឲឳ឴឵ាិីឹឺុូួើឿៀេែៃោៅំះៈ៉៊់៌៍៎៏័៑្៓។៕៖ៗ៘៙៚៛ៜ៝៞៟០១២៣៤៥៦៧៨៩៪៫៬៭៮៯៰៱៲៳៴៵៶៷៸៹៺៻៼៽៾៿') //U+1780, U+1781, U+1782, U+1783, U+1784, U+1785, U+1786, U+1787, U+1788, U+1789, U+178A, U+178B, U+178C, U+178D, U+178E, U+178F, U+1790, U+1791, U+1792, U+1793, U+1794, U+1795, U+1796, U+1797, U+1798, U+1799, U+179A, U+179B, U+179C, U+179D, U+179E, U+179F, U+17A0, U+17A1, U+17A2, U+17A3, U+17A4, U+17A5, U+17A6, U+17A7, U+17A8, U+17A9, U+17AA, U+17AB, U+17AC, U+17AD, U+17AE, U+17AF, U+17B0, U+17B1, U+17B2, U+17B3, U+17B4, U+17B5, U+17B6, U+17B7, U+17B8, U+17B9, U+17BA, U+17BB, U+17BC, U+17BD, U+17BE, U+17BF, U+17C0, U+17C1, U+17C2, U+17C3, U+17C4, U+17C5, U+17C6, U+17C7, U+17C8, U+17C9, U+17CA, U+17CB, U+17CC, U+17CD, U+17CE, U+17CF, U+17D0, U+17D1, U+17D2, U+17D3, U+17D4, U+17D5, U+17D6, U+17D7, U+17D8, U+17D9, U+17DA, U+17DB, U+17DC, U+17DD, U+17DE, U+17DF, U+17E0, U+17E1, U+17E2, U+17E3, U+17E4, U+17E5, U+17E6, U+17E7, U+17E8, U+17E9, U+17EA, U+17EB, U+17EC, U+17ED, U+17EE, U+17EF, U+17F0, U+17F1, U+17F2, U+17F3, U+17F4, U+17F5, U+17F6, U+17F7, U+17F8, U+17F9, U+17FA, U+17FB, U+17FC, U+17FD, U+17FE, U+17FF
 ; assertMatch('^(?:\p{IsMongolian}+)$', '᠀᢯') //U+1800, U+18AF
 ; assertMatch('^(?:\p{IsMongolian}+)$', '᠀᠁᠂᠃᠄᠅᠆᠇᠈᠉᠊᠋᠌᠍᠎᠏᠐᠑᠒᠓᠔᠕᠖᠗᠘᠙᠚᠛᠜᠝᠞᠟ᠠᠡᠢᠣᠤᠥᠦᠧᠨᠩᠪᠫᠬᠭᠮᠯᠰᠱᠲᠳᠴᠵᠶᠷᠸᠹᠺᠻᠼᠽᠾᠿᡀᡁᡂᡃᡄᡅᡆᡇᡈᡉᡊᡋᡌᡍᡎᡏᡐᡑᡒᡓᡔᡕᡖᡗᡘᡙᡚᡛᡜᡝᡞᡟᡠᡡᡢᡣᡤᡥᡦᡧᡨᡩᡪᡫᡬᡭᡮᡯᡰᡱᡲᡳᡴᡵᡶᡷᡸ᡹᡺᡻᡼᡽᡾᡿ᢀᢁᢂᢃᢄᢅᢆᢇᢈᢉᢊᢋᢌᢍᢎᢏᢐᢑᢒᢓᢔᢕᢖᢗᢘᢙᢚᢛᢜᢝᢞᢟᢠᢡᢢᢣᢤᢥᢦᢧᢨᢩᢪ᢫᢬᢭᢮᢯') //U+1800, U+1801, U+1802, U+1803, U+1804, U+1805, U+1806, U+1807, U+1808, U+1809, U+180A, U+180B, U+180C, U+180D, U+180E, U+180F, U+1810, U+1811, U+1812, U+1813, U+1814, U+1815, U+1816, U+1817, U+1818, U+1819, U+181A, U+181B, U+181C, U+181D, U+181E, U+181F, U+1820, U+1821, U+1822, U+1823, U+1824, U+1825, U+1826, U+1827, U+1828, U+1829, U+182A, U+182B, U+182C, U+182D, U+182E, U+182F, U+1830, U+1831, U+1832, U+1833, U+1834, U+1835, U+1836, U+1837, U+1838, U+1839, U+183A, U+183B, U+183C, U+183D, U+183E, U+183F, U+1840, U+1841, U+1842, U+1843, U+1844, U+1845, U+1846, U+1847, U+1848, U+1849, U+184A, U+184B, U+184C, U+184D, U+184E, U+184F, U+1850, U+1851, U+1852, U+1853, U+1854, U+1855, U+1856, U+1857, U+1858, U+1859, U+185A, U+185B, U+185C, U+185D, U+185E, U+185F, U+1860, U+1861, U+1862, U+1863, U+1864, U+1865, U+1866, U+1867, U+1868, U+1869, U+186A, U+186B, U+186C, U+186D, U+186E, U+186F, U+1870, U+1871, U+1872, U+1873, U+1874, U+1875, U+1876, U+1877, U+1878, U+1879, U+187A, U+187B, U+187C, U+187D, U+187E, U+187F, U+1880, U+1881, U+1882, U+1883, U+1884, U+1885, U+1886, U+1887, U+1888, U+1889, U+188A, U+188B, U+188C, U+188D, U+188E, U+188F, U+1890, U+1891, U+1892, U+1893, U+1894, U+1895, U+1896, U+1897, U+1898, U+1899, U+189A, U+189B, U+189C, U+189D, U+189E, U+189F, U+18A0, U+18A1, U+18A2, U+18A3, U+18A4, U+18A5, U+18A6, U+18A7, U+18A8, U+18A9, U+18AA, U+18AB, U+18AC, U+18AD, U+18AE, U+18AF
 ; assertMatch('^(?:\p{IsHiragana}+)$', '぀ゟ') //U+3040, U+309F
 ; assertMatch('^(?:\p{IsHiragana}+)$', '぀ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんゔゕゖ゗゘゙゚゛゜ゝゞゟ') //U+3040, U+3041, U+3042, U+3043, U+3044, U+3045, U+3046, U+3047, U+3048, U+3049, U+304A, U+304B, U+304C, U+304D, U+304E, U+304F, U+3050, U+3051, U+3052, U+3053, U+3054, U+3055, U+3056, U+3057, U+3058, U+3059, U+305A, U+305B, U+305C, U+305D, U+305E, U+305F, U+3060, U+3061, U+3062, U+3063, U+3064, U+3065, U+3066, U+3067, U+3068, U+3069, U+306A, U+306B, U+306C, U+306D, U+306E, U+306F, U+3070, U+3071, U+3072, U+3073, U+3074, U+3075, U+3076, U+3077, U+3078, U+3079, U+307A, U+307B, U+307C, U+307D, U+307E, U+307F, U+3080, U+3081, U+3082, U+3083, U+3084, U+3085, U+3086, U+3087, U+3088, U+3089, U+308A, U+308B, U+308C, U+308D, U+308E, U+308F, U+3090, U+3091, U+3092, U+3093, U+3094, U+3095, U+3096, U+3097, U+3098, U+3099, U+309A, U+309B, U+309C, U+309D, U+309E, U+309F
 ; assertMatch('^(?:\p{IsKatakana}+)$', '゠ヿ') //U+30A0, U+30FF
 ; assertMatch('^(?:\p{IsKatakana}+)$', '゠ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶヷヸヹヺ・ーヽヾヿ') //U+30A0, U+30A1, U+30A2, U+30A3, U+30A4, U+30A5, U+30A6, U+30A7, U+30A8, U+30A9, U+30AA, U+30AB, U+30AC, U+30AD, U+30AE, U+30AF, U+30B0, U+30B1, U+30B2, U+30B3, U+30B4, U+30B5, U+30B6, U+30B7, U+30B8, U+30B9, U+30BA, U+30BB, U+30BC, U+30BD, U+30BE, U+30BF, U+30C0, U+30C1, U+30C2, U+30C3, U+30C4, U+30C5, U+30C6, U+30C7, U+30C8, U+30C9, U+30CA, U+30CB, U+30CC, U+30CD, U+30CE, U+30CF, U+30D0, U+30D1, U+30D2, U+30D3, U+30D4, U+30D5, U+30D6, U+30D7, U+30D8, U+30D9, U+30DA, U+30DB, U+30DC, U+30DD, U+30DE, U+30DF, U+30E0, U+30E1, U+30E2, U+30E3, U+30E4, U+30E5, U+30E6, U+30E7, U+30E8, U+30E9, U+30EA, U+30EB, U+30EC, U+30ED, U+30EE, U+30EF, U+30F0, U+30F1, U+30F2, U+30F3, U+30F4, U+30F5, U+30F6, U+30F7, U+30F8, U+30F9, U+30FA, U+30FB, U+30FC, U+30FD, U+30FE, U+30FF
 ; assertMatch('^(?:\p{IsBopomofo}+)$', '㄀ㄯ') //U+3100, U+312F
 ; assertMatch('^(?:\p{IsBopomofo}+)$', '㄀㄁㄂㄃㄄ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩㄪㄫㄬㄭㄮㄯ') //U+3100, U+3101, U+3102, U+3103, U+3104, U+3105, U+3106, U+3107, U+3108, U+3109, U+310A, U+310B, U+310C, U+310D, U+310E, U+310F, U+3110, U+3111, U+3112, U+3113, U+3114, U+3115, U+3116, U+3117, U+3118, U+3119, U+311A, U+311B, U+311C, U+311D, U+311E, U+311F, U+3120, U+3121, U+3122, U+3123, U+3124, U+3125, U+3126, U+3127, U+3128, U+3129, U+312A, U+312B, U+312C, U+312D, U+312E, U+312F

flretest2.txt

There was something about block vs. script classes. The test set assumes block classes, while flre has script classes (without unassigned codepoints). There could be a flag for that. But block classes are also easier, since they do not change with unicode versions.

@benibela
Copy link
Author

benibela commented May 8, 2021

I missed one:

assertMatch('^(?:\p{IsCyrillic}+)$', 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҁ҂҃҄҅҆҇҈҉ҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӏӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹӺӻӼӽӾӿ') //U+0400, U+0401, U+0402, U+0403, U+0404, U+0405, U+0406, U+0407, U+0408, U+0409, U+040A, U+040B, U+040C, U+040D, U+040E, U+040F, U+0410, U+0411, U+0412, U+0413, U+0414, U+0415, U+0416, U+0417, U+0418, U+0419, U+041A, U+041B, U+041C, U+041D, U+041E, U+041F, U+0420, U+0421, U+0422, U+0423, U+0424, U+0425, U+0426, U+0427, U+0428, U+0429, U+042A, U+042B, U+042C, U+042D, U+042E, U+042F, U+0430, U+0431, U+0432, U+0433, U+0434, U+0435, U+0436, U+0437, U+0438, U+0439, U+043A, U+043B, U+043C, U+043D, U+043E, U+043F, U+0440, U+0441, U+0442, U+0443, U+0444, U+0445, U+0446, U+0447, U+0448, U+0449, U+044A, U+044B, U+044C, U+044D, U+044E, U+044F, U+0450, U+0451, U+0452, U+0453, U+0454, U+0455, U+0456, U+0457, U+0458, U+0459, U+045A, U+045B, U+045C, U+045D, U+045E, U+045F, U+0460, U+0461, U+0462, U+0463, U+0464, U+0465, U+0466, U+0467, U+0468, U+0469, U+046A, U+046B, U+046C, U+046D, U+046E, U+046F, U+0470, U+0471, U+0472, U+0473, U+0474, U+0475, U+0476, U+0477, U+0478, U+0479, U+047A, U+047B, U+047C, U+047D, U+047E, U+047F, U+0480, U+0481, U+0482, U+0483, U+0484, U+0485, U+0486, U+0487, U+0488, U+0489, U+048A, U+048B, U+048C, U+048D, U+048E, U+048F, U+0490, U+0491, U+0492, U+0493, U+0494, U+0495, U+0496, U+0497, U+0498, U+0499, U+049A, U+049B, U+049C, U+049D, U+049E, U+049F, U+04A0, U+04A1, U+04A2, U+04A3, U+04A4, U+04A5, U+04A6, U+04A7, U+04A8, U+04A9, U+04AA, U+04AB, U+04AC, U+04AD, U+04AE, U+04AF, U+04B0, U+04B1, U+04B2, U+04B3, U+04B4, U+04B5, U+04B6, U+04B7, U+04B8, U+04B9, U+04BA, U+04BB, U+04BC, U+04BD, U+04BE, U+04BF, U+04C0, U+04C1, U+04C2, U+04C3, U+04C4, U+04C5, U+04C6, U+04C7, U+04C8, U+04C9, U+04CA, U+04CB, U+04CC, U+04CD, U+04CE, U+04CF, U+04D0, U+04D1, U+04D2, U+04D3, U+04D4, U+04D5, U+04D6, U+04D7, U+04D8, U+04D9, U+04DA, U+04DB, U+04DC, U+04DD, U+04DE, U+04DF, U+04E0, U+04E1, U+04E2, U+04E3, U+04E4, U+04E5, U+04E6, U+04E7, U+04E8, U+04E9, U+04EA, U+04EB, U+04EC, U+04ED, U+04EE, U+04EF, U+04F0, U+04F1, U+04F2, U+04F3, U+04F4, U+04F5, U+04F6, U+04F7, U+04F8, U+04F9, U+04FA, U+04FB, U+04FC, U+04FD, U+04FE, U+04FF

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant