From e7457003cd1ebf61df81bda5208f9f25f999d6d0 Mon Sep 17 00:00:00 2001 From: Zoltan Herczeg Date: Fri, 31 Dec 2021 17:47:37 +0100 Subject: [PATCH] Auto generate unicode property tests. (#67) Co-authored-by: Zoltan Herczeg --- RunTest | 23 +- maint/GenerateTest26.py | 188 +++ testdata/testinput26 | 2728 ++++++++++++++++++++++++++++++ testdata/testoutput26 | 3483 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 6420 insertions(+), 2 deletions(-) create mode 100755 maint/GenerateTest26.py create mode 100644 testdata/testinput26 create mode 100644 testdata/testoutput26 diff --git a/RunTest b/RunTest index 605eb09..9b67870 100755 --- a/RunTest +++ b/RunTest @@ -80,7 +80,8 @@ title22="Test 22: \C tests with UTF (not supported for DFA matching)" title23="Test 23: \C disabled test" title24="Test 24: Non-UTF pattern conversion tests" title25="Test 25: UTF pattern conversion tests" -maxtest=25 +title26="Test 26: Auto-generated unicode property tests" +maxtest=26 if [ $# -eq 1 -a "$1" = "list" ]; then echo $title0 @@ -109,6 +110,7 @@ if [ $# -eq 1 -a "$1" = "list" ]; then echo $title23 echo $title24 echo $title25 + echo $title26 exit 0 fi @@ -238,6 +240,7 @@ do22=no do23=no do24=no do25=no +do26=no while [ $# -gt 0 ] ; do case $1 in @@ -267,6 +270,7 @@ while [ $# -gt 0 ] ; do 23) do23=yes;; 24) do24=yes;; 25) do25=yes;; + 26) do26=yes;; -8) arg8=yes;; -16) arg16=yes;; -32) arg32=yes;; @@ -417,7 +421,7 @@ if [ $do0 = no -a $do1 = no -a $do2 = no -a $do3 = no -a \ $do12 = no -a $do13 = no -a $do14 = no -a $do15 = no -a \ $do16 = no -a $do17 = no -a $do18 = no -a $do19 = no -a \ $do20 = no -a $do21 = no -a $do22 = no -a $do23 = no -a \ - $do24 = no -a $do25 = no \ + $do24 = no -a $do25 = no -a $do26 = no \ ]; then do0=yes do1=yes @@ -445,6 +449,7 @@ if [ $do0 = no -a $do1 = no -a $do2 = no -a $do3 = no -a \ do23=yes do24=yes do25=yes + do26=yes fi # Handle any explicit skips at this stage, so that an argument list may consist @@ -863,6 +868,20 @@ for bmode in "$test8" "$test16" "$test32"; do fi fi + # Auto-generated unicode property tests + + if [ $do26 = yes ] ; then + echo $title26 + if [ $utf -eq 0 ] ; then + echo " Skipped because UTF-$bits support is not available" + else + for opt in "" $jitopt; do + $sim $valgrind ${opt:+$vjs} ./pcre2test -q $setstack $bmode $opt $testdata/testinput26 testtry + checkresult $? 26 "$opt" + done + fi + fi + # End of loop for 8/16/32-bit tests done diff --git a/maint/GenerateTest26.py b/maint/GenerateTest26.py new file mode 100755 index 0000000..2afdf25 --- /dev/null +++ b/maint/GenerateTest26.py @@ -0,0 +1,188 @@ +#! /usr/bin/python + +# PCRE2 UNICODE PROPERTY SUPPORT +# ------------------------------ +# +# This file auto-generates unicode property tests and their expected output. +# It is recommended to re-run this generator after the unicode files are +# updated. The names of the generated files are `testinput26` and `testoutput26` + +import re +import sys + +from GenerateCommon import \ + script_names, \ + script_abbrevs + +def write_both(text): + input_file.write(text) + output_file.write(text) + +def to_string_char(ch_idx): + if ch_idx < 128: + if ch_idx < 16: + return "\\x{0%x}" % ch_idx + if ch_idx >= 32: + return chr(ch_idx) + return "\\x{%x}" % ch_idx + +output_directory = "" + +if len(sys.argv) > 2: + print('** Too many arguments: just give a directory name') + sys.exit(1) +if len(sys.argv) == 2: + output_directory = sys.argv[1] + if not output_directory.endswith("/"): + output_directory += "/" + +try: + input_file = open(output_directory + "testinput26", "w") + output_file = open(output_directory + "testoutput26", "w") +except IOError: + print ("** Couldn't open output files") + sys.exit(1) + +write_both("# These tests are generated by maint/GenerateTest26.py, do not edit.\n\n") + +# --------------------------------------------------------------------------- +# UNICODE SCRIPT EXTENSION TESTS +# --------------------------------------------------------------------------- + +write_both("# Unicode Script Extension tests.\n\n") + +def gen_script_tests(): + script_data = [None] * len(script_names) + char_data = [None] * 0x110000 + + property_re = re.compile("^([0-9A-F]{4,6})(?:\\.\\.([0-9A-F]{4,6}))? +; ([A-Za-z_ ]+) #") + prev_name = "" + script_idx = -1 + + with open("Unicode.tables/Scripts.txt") as f: + for line in f: + match_obj = property_re.match(line) + + if match_obj == None: + continue + + name = match_obj.group(3) + if name != prev_name: + script_idx = script_names.index(name) + prev_name = name + + low = int(match_obj.group(1), 16) + high = low + char_data[low] = name + + if match_obj.group(2) != None: + high = int(match_obj.group(2), 16) + for idx in range(low + 1, high + 1): + char_data[idx] = name + + if script_data[script_idx] == None: + script_data[script_idx] = [low, None, None, None, None] + script_data[script_idx][1] = high + + extended_script_indicies = {} + + with open("Unicode.tables/ScriptExtensions.txt") as f: + for line in f: + match_obj = property_re.match(line) + + if match_obj == None: + continue + + low = int(match_obj.group(1), 16) + high = low + if match_obj.group(2) != None: + high = int(match_obj.group(2), 16) + + for abbrev in match_obj.group(3).split(" "): + if abbrev not in extended_script_indicies: + idx = script_abbrevs.index(abbrev) + extended_script_indicies[abbrev] = idx + rec = script_data[idx] + rec[2] = low + rec[3] = high + else: + idx = extended_script_indicies[abbrev] + rec = script_data[idx] + if rec[2] > low: + rec[2] = low + if rec[3] < high: + rec[3] = high + + if rec[4] == None: + name = script_names[idx] + for idx in range(low, high + 1): + if char_data[idx] != name: + rec[4] = idx + break + + long_property_name = False + + for idx, rec in enumerate(script_data): + script_name = script_names[idx] + + if script_name == "Unknown": + continue + + script_abbrev = script_abbrevs[idx] + + write_both("# Base script check\n") + write_both("/^\\p{sc=%s}/utf\n" % script_name) + write_both(" %s\n" % to_string_char(rec[0])) + output_file.write(" 0: %s\n" % to_string_char(rec[0])) + write_both("\n") + + write_both("/^\\p{Script=%s}/utf\n" % script_abbrev) + write_both(" %s\n" % to_string_char(rec[1])) + output_file.write(" 0: %s\n" % to_string_char(rec[1])) + write_both("\n") + + if rec[2] != None: + property_name = "scx" + if long_property_name: + property_name = "Script_Extensions" + + write_both("# Script extension check\n") + write_both("/^\\p{%s}/utf\n" % script_name) + write_both(" %s\n" % to_string_char(rec[2])) + output_file.write(" 0: %s\n" % to_string_char(rec[2])) + write_both("\n") + + write_both("/^\\p{%s=%s}/utf\n" % (property_name, script_abbrev)) + write_both(" %s\n" % to_string_char(rec[3])) + output_file.write(" 0: %s\n" % to_string_char(rec[3])) + write_both("\n") + + long_property_name = not long_property_name + + if rec[4] != None: + write_both("# Script extension only character\n") + write_both("/^\\p{%s}/utf\n" % script_name) + write_both(" %s\n" % to_string_char(rec[4])) + output_file.write(" 0: %s\n" % to_string_char(rec[4])) + write_both("\n") + + write_both("/^\\p{sc=%s}/utf\n" % script_name) + write_both(" %s\n" % to_string_char(rec[4])) + output_file.write("No match\n") + write_both("\n") + else: + print("External character has not found for %s" % script_name) + + high = rec[1] + if rec[3] != None and rec[3] > rec[1]: + high = rec[3] + write_both("# Character not in script\n") + write_both("/^\\p{%s}/utf\n" % script_name) + write_both(" %s\n" % to_string_char(high + 1)) + output_file.write("No match\n") + write_both("\n") + + +gen_script_tests() + +write_both("# End of testinput26\n") diff --git a/testdata/testinput26 b/testdata/testinput26 new file mode 100644 index 0000000..88af389 --- /dev/null +++ b/testdata/testinput26 @@ -0,0 +1,2728 @@ +# These tests are generated by maint/GenerateTest26.py, do not edit. + +# Unicode Script Extension tests. + +# Base script check +/^\p{sc=Arabic}/utf + \x{600} + +/^\p{Script=Arab}/utf + \x{1eef1} + +# Script extension check +/^\p{Arabic}/utf + \x{60c} + +/^\p{scx=Arab}/utf + \x{102fb} + +# Script extension only character +/^\p{Arabic}/utf + \x{102e0} + +/^\p{sc=Arabic}/utf + \x{102e0} + +# Character not in script +/^\p{Arabic}/utf + \x{1eef2} + +# Base script check +/^\p{sc=Bengali}/utf + \x{980} + +/^\p{Script=Beng}/utf + \x{9fe} + +# Script extension check +/^\p{Bengali}/utf + \x{951} + +/^\p{Script_Extensions=Beng}/utf + \x{a8f1} + +# Script extension only character +/^\p{Bengali}/utf + \x{1cf7} + +/^\p{sc=Bengali}/utf + \x{1cf7} + +# Character not in script +/^\p{Bengali}/utf + \x{a8f2} + +# Base script check +/^\p{sc=Bopomofo}/utf + \x{2ea} + +/^\p{Script=Bopo}/utf + \x{31bf} + +# Script extension check +/^\p{Bopomofo}/utf + \x{3001} + +/^\p{scx=Bopo}/utf + \x{ff65} + +# Script extension only character +/^\p{Bopomofo}/utf + \x{302a} + +/^\p{sc=Bopomofo}/utf + \x{302a} + +# Character not in script +/^\p{Bopomofo}/utf + \x{ff66} + +# Base script check +/^\p{sc=Buginese}/utf + \x{1a00} + +/^\p{Script=Bugi}/utf + \x{1a1f} + +# Script extension check +/^\p{Buginese}/utf + \x{a9cf} + +/^\p{Script_Extensions=Bugi}/utf + \x{a9cf} + +# Script extension only character +/^\p{Buginese}/utf + \x{a9cf} + +/^\p{sc=Buginese}/utf + \x{a9cf} + +# Character not in script +/^\p{Buginese}/utf + \x{a9d0} + +# Base script check +/^\p{sc=Buhid}/utf + \x{1740} + +/^\p{Script=Buhd}/utf + \x{1753} + +# Script extension check +/^\p{Buhid}/utf + \x{1735} + +/^\p{scx=Buhd}/utf + \x{1736} + +# Script extension only character +/^\p{Buhid}/utf + \x{1735} + +/^\p{sc=Buhid}/utf + \x{1735} + +# Character not in script +/^\p{Buhid}/utf + \x{1754} + +# Base script check +/^\p{sc=Coptic}/utf + \x{3e2} + +/^\p{Script=Copt}/utf + \x{2cff} + +# Script extension check +/^\p{Coptic}/utf + \x{102e0} + +/^\p{Script_Extensions=Copt}/utf + \x{102fb} + +# Script extension only character +/^\p{Coptic}/utf + \x{102e0} + +/^\p{sc=Coptic}/utf + \x{102e0} + +# Character not in script +/^\p{Coptic}/utf + \x{102fc} + +# Base script check +/^\p{sc=Cypriot}/utf + \x{10800} + +/^\p{Script=Cprt}/utf + \x{1083f} + +# Script extension check +/^\p{Cypriot}/utf + \x{10100} + +/^\p{scx=Cprt}/utf + \x{1013f} + +# Script extension only character +/^\p{Cypriot}/utf + \x{10102} + +/^\p{sc=Cypriot}/utf + \x{10102} + +# Character not in script +/^\p{Cypriot}/utf + \x{10840} + +# Base script check +/^\p{sc=Cyrillic}/utf + \x{400} + +/^\p{Script=Cyrl}/utf + \x{fe2f} + +# Script extension check +/^\p{Cyrillic}/utf + \x{483} + +/^\p{Script_Extensions=Cyrl}/utf + \x{a66f} + +# Script extension only character +/^\p{Cyrillic}/utf + \x{2e43} + +/^\p{sc=Cyrillic}/utf + \x{2e43} + +# Character not in script +/^\p{Cyrillic}/utf + \x{fe30} + +# Base script check +/^\p{sc=Devanagari}/utf + \x{900} + +/^\p{Script=Deva}/utf + \x{a8ff} + +# Script extension check +/^\p{Devanagari}/utf + \x{951} + +/^\p{scx=Deva}/utf + \x{a8f3} + +# Script extension only character +/^\p{Devanagari}/utf + \x{1cd1} + +/^\p{sc=Devanagari}/utf + \x{1cd1} + +# Character not in script +/^\p{Devanagari}/utf + \x{a900} + +# Base script check +/^\p{sc=Georgian}/utf + \x{10a0} + +/^\p{Script=Geor}/utf + \x{2d2d} + +# Script extension check +/^\p{Georgian}/utf + \x{10fb} + +/^\p{Script_Extensions=Geor}/utf + \x{10fb} + +# Script extension only character +/^\p{Georgian}/utf + \x{10fb} + +/^\p{sc=Georgian}/utf + \x{10fb} + +# Character not in script +/^\p{Georgian}/utf + \x{2d2e} + +# Base script check +/^\p{sc=Glagolitic}/utf + \x{2c00} + +/^\p{Script=Glag}/utf + \x{1e02a} + +# Script extension check +/^\p{Glagolitic}/utf + \x{484} + +/^\p{scx=Glag}/utf + \x{a66f} + +# Script extension only character +/^\p{Glagolitic}/utf + \x{484} + +/^\p{sc=Glagolitic}/utf + \x{484} + +# Character not in script +/^\p{Glagolitic}/utf + \x{1e02b} + +# Base script check +/^\p{sc=Greek}/utf + \x{370} + +/^\p{Script=Grek}/utf + \x{1d245} + +# Script extension check +/^\p{Greek}/utf + \x{342} + +/^\p{Script_Extensions=Grek}/utf + \x{1dc1} + +# Script extension only character +/^\p{Greek}/utf + \x{342} + +/^\p{sc=Greek}/utf + \x{342} + +# Character not in script +/^\p{Greek}/utf + \x{1d246} + +# Base script check +/^\p{sc=Gujarati}/utf + \x{a81} + +/^\p{Script=Gujr}/utf + \x{aff} + +# Script extension check +/^\p{Gujarati}/utf + \x{951} + +/^\p{scx=Gujr}/utf + \x{a839} + +# Script extension only character +/^\p{Gujarati}/utf + \x{a836} + +/^\p{sc=Gujarati}/utf + \x{a836} + +# Character not in script +/^\p{Gujarati}/utf + \x{a83a} + +# Base script check +/^\p{sc=Gurmukhi}/utf + \x{a01} + +/^\p{Script=Guru}/utf + \x{a76} + +# Script extension check +/^\p{Gurmukhi}/utf + \x{951} + +/^\p{Script_Extensions=Guru}/utf + \x{a839} + +# Script extension only character +/^\p{Gurmukhi}/utf + \x{a836} + +/^\p{sc=Gurmukhi}/utf + \x{a836} + +# Character not in script +/^\p{Gurmukhi}/utf + \x{a83a} + +# Base script check +/^\p{sc=Han}/utf + \x{2e80} + +/^\p{Script=Hani}/utf + \x{3134a} + +# Script extension check +/^\p{Han}/utf + \x{3001} + +/^\p{scx=Hani}/utf + \x{1f251} + +# Script extension only character +/^\p{Han}/utf + \x{3006} + +/^\p{sc=Han}/utf + \x{3006} + +# Character not in script +/^\p{Han}/utf + \x{3134b} + +# Base script check +/^\p{sc=Hangul}/utf + \x{1100} + +/^\p{Script=Hang}/utf + \x{ffdc} + +# Script extension check +/^\p{Hangul}/utf + \x{3001} + +/^\p{Script_Extensions=Hang}/utf + \x{ff65} + +# Script extension only character +/^\p{Hangul}/utf + \x{3003} + +/^\p{sc=Hangul}/utf + \x{3003} + +# Character not in script +/^\p{Hangul}/utf + \x{ffdd} + +# Base script check +/^\p{sc=Hanunoo}/utf + \x{1720} + +/^\p{Script=Hano}/utf + \x{1734} + +# Script extension check +/^\p{Hanunoo}/utf + \x{1735} + +/^\p{scx=Hano}/utf + \x{1736} + +# Script extension only character +/^\p{Hanunoo}/utf + \x{1735} + +/^\p{sc=Hanunoo}/utf + \x{1735} + +# Character not in script +/^\p{Hanunoo}/utf + \x{1737} + +# Base script check +/^\p{sc=Hiragana}/utf + \x{3041} + +/^\p{Script=Hira}/utf + \x{1f200} + +# Script extension check +/^\p{Hiragana}/utf + \x{3001} + +/^\p{Script_Extensions=Hira}/utf + \x{ff9f} + +# Script extension only character +/^\p{Hiragana}/utf + \x{3031} + +/^\p{sc=Hiragana}/utf + \x{3031} + +# Character not in script +/^\p{Hiragana}/utf + \x{1f201} + +# Base script check +/^\p{sc=Kannada}/utf + \x{c80} + +/^\p{Script=Knda}/utf + \x{cf2} + +# Script extension check +/^\p{Kannada}/utf + \x{951} + +/^\p{scx=Knda}/utf + \x{a835} + +# Script extension only character +/^\p{Kannada}/utf + \x{1cf4} + +/^\p{sc=Kannada}/utf + \x{1cf4} + +# Character not in script +/^\p{Kannada}/utf + \x{a836} + +# Base script check +/^\p{sc=Katakana}/utf + \x{30a1} + +/^\p{Script=Kana}/utf + \x{1b167} + +# Script extension check +/^\p{Katakana}/utf + \x{3001} + +/^\p{Script_Extensions=Kana}/utf + \x{ff9f} + +# Script extension only character +/^\p{Katakana}/utf + \x{3031} + +/^\p{sc=Katakana}/utf + \x{3031} + +# Character not in script +/^\p{Katakana}/utf + \x{1b168} + +# Base script check +/^\p{sc=Latin}/utf + A + +/^\p{Script=Latn}/utf + \x{1df1e} + +# Script extension check +/^\p{Latin}/utf + \x{363} + +/^\p{scx=Latn}/utf + \x{a92e} + +# Script extension only character +/^\p{Latin}/utf + \x{363} + +/^\p{sc=Latin}/utf + \x{363} + +# Character not in script +/^\p{Latin}/utf + \x{1df1f} + +# Base script check +/^\p{sc=Limbu}/utf + \x{1900} + +/^\p{Script=Limb}/utf + \x{194f} + +# Script extension check +/^\p{Limbu}/utf + \x{965} + +/^\p{Script_Extensions=Limb}/utf + \x{965} + +# Script extension only character +/^\p{Limbu}/utf + \x{965} + +/^\p{sc=Limbu}/utf + \x{965} + +# Character not in script +/^\p{Limbu}/utf + \x{1950} + +# Base script check +/^\p{sc=Linear_B}/utf + \x{10000} + +/^\p{Script=Linb}/utf + \x{100fa} + +# Script extension check +/^\p{Linear_B}/utf + \x{10100} + +/^\p{scx=Linb}/utf + \x{1013f} + +# Script extension only character +/^\p{Linear_B}/utf + \x{10102} + +/^\p{sc=Linear_B}/utf + \x{10102} + +# Character not in script +/^\p{Linear_B}/utf + \x{10140} + +# Base script check +/^\p{sc=Malayalam}/utf + \x{d00} + +/^\p{Script=Mlym}/utf + \x{d7f} + +# Script extension check +/^\p{Malayalam}/utf + \x{951} + +/^\p{Script_Extensions=Mlym}/utf + \x{a832} + +# Script extension only character +/^\p{Malayalam}/utf + \x{1cda} + +/^\p{sc=Malayalam}/utf + \x{1cda} + +# Character not in script +/^\p{Malayalam}/utf + \x{a833} + +# Base script check +/^\p{sc=Mongolian}/utf + \x{1800} + +/^\p{Script=Mong}/utf + \x{1166c} + +# Script extension check +/^\p{Mongolian}/utf + \x{1802} + +/^\p{scx=Mong}/utf + \x{202f} + +# Script extension only character +/^\p{Mongolian}/utf + \x{202f} + +/^\p{sc=Mongolian}/utf + \x{202f} + +# Character not in script +/^\p{Mongolian}/utf + \x{1166d} + +# Base script check +/^\p{sc=Myanmar}/utf + \x{1000} + +/^\p{Script=Mymr}/utf + \x{aa7f} + +# Script extension check +/^\p{Myanmar}/utf + \x{1040} + +/^\p{Script_Extensions=Mymr}/utf + \x{a92e} + +# Script extension only character +/^\p{Myanmar}/utf + \x{a92e} + +/^\p{sc=Myanmar}/utf + \x{a92e} + +# Character not in script +/^\p{Myanmar}/utf + \x{aa80} + +# Base script check +/^\p{sc=Oriya}/utf + \x{b01} + +/^\p{Script=Orya}/utf + \x{b77} + +# Script extension check +/^\p{Oriya}/utf + \x{951} + +/^\p{scx=Orya}/utf + \x{1cf2} + +# Script extension only character +/^\p{Oriya}/utf + \x{1cda} + +/^\p{sc=Oriya}/utf + \x{1cda} + +# Character not in script +/^\p{Oriya}/utf + \x{1cf3} + +# Base script check +/^\p{sc=Sinhala}/utf + \x{d81} + +/^\p{Script=Sinh}/utf + \x{111f4} + +# Script extension check +/^\p{Sinhala}/utf + \x{964} + +/^\p{Script_Extensions=Sinh}/utf + \x{965} + +# Script extension only character +/^\p{Sinhala}/utf + \x{964} + +/^\p{sc=Sinhala}/utf + \x{964} + +# Character not in script +/^\p{Sinhala}/utf + \x{111f5} + +# Base script check +/^\p{sc=Syloti_Nagri}/utf + \x{a800} + +/^\p{Script=Sylo}/utf + \x{a82c} + +# Script extension check +/^\p{Syloti_Nagri}/utf + \x{964} + +/^\p{scx=Sylo}/utf + \x{9ef} + +# Script extension only character +/^\p{Syloti_Nagri}/utf + \x{9e6} + +/^\p{sc=Syloti_Nagri}/utf + \x{9e6} + +# Character not in script +/^\p{Syloti_Nagri}/utf + \x{a82d} + +# Base script check +/^\p{sc=Syriac}/utf + \x{700} + +/^\p{Script=Syrc}/utf + \x{86a} + +# Script extension check +/^\p{Syriac}/utf + \x{60c} + +/^\p{Script_Extensions=Syrc}/utf + \x{1dfa} + +# Script extension only character +/^\p{Syriac}/utf + \x{1dfa} + +/^\p{sc=Syriac}/utf + \x{1dfa} + +# Character not in script +/^\p{Syriac}/utf + \x{1dfb} + +# Base script check +/^\p{sc=Tagalog}/utf + \x{1700} + +/^\p{Script=Tglg}/utf + \x{171f} + +# Script extension check +/^\p{Tagalog}/utf + \x{1735} + +/^\p{scx=Tglg}/utf + \x{1736} + +# Script extension only character +/^\p{Tagalog}/utf + \x{1735} + +/^\p{sc=Tagalog}/utf + \x{1735} + +# Character not in script +/^\p{Tagalog}/utf + \x{1737} + +# Base script check +/^\p{sc=Tagbanwa}/utf + \x{1760} + +/^\p{Script=Tagb}/utf + \x{1773} + +# Script extension check +/^\p{Tagbanwa}/utf + \x{1735} + +/^\p{Script_Extensions=Tagb}/utf + \x{1736} + +# Script extension only character +/^\p{Tagbanwa}/utf + \x{1735} + +/^\p{sc=Tagbanwa}/utf + \x{1735} + +# Character not in script +/^\p{Tagbanwa}/utf + \x{1774} + +# Base script check +/^\p{sc=Tai_Le}/utf + \x{1950} + +/^\p{Script=Tale}/utf + \x{1974} + +# Script extension check +/^\p{Tai_Le}/utf + \x{1040} + +/^\p{scx=Tale}/utf + \x{1049} + +# Script extension only character +/^\p{Tai_Le}/utf + \x{1040} + +/^\p{sc=Tai_Le}/utf + \x{1040} + +# Character not in script +/^\p{Tai_Le}/utf + \x{1975} + +# Base script check +/^\p{sc=Tamil}/utf + \x{b82} + +/^\p{Script=Taml}/utf + \x{11fff} + +# Script extension check +/^\p{Tamil}/utf + \x{951} + +/^\p{Script_Extensions=Taml}/utf + \x{11fd3} + +# Script extension only character +/^\p{Tamil}/utf + \x{a8f3} + +/^\p{sc=Tamil}/utf + \x{a8f3} + +# Character not in script +/^\p{Tamil}/utf + \x{12000} + +# Base script check +/^\p{sc=Telugu}/utf + \x{c00} + +/^\p{Script=Telu}/utf + \x{c7f} + +# Script extension check +/^\p{Telugu}/utf + \x{951} + +/^\p{scx=Telu}/utf + \x{1cf2} + +# Script extension only character +/^\p{Telugu}/utf + \x{1cda} + +/^\p{sc=Telugu}/utf + \x{1cda} + +# Character not in script +/^\p{Telugu}/utf + \x{1cf3} + +# Base script check +/^\p{sc=Thaana}/utf + \x{780} + +/^\p{Script=Thaa}/utf + \x{7b1} + +# Script extension check +/^\p{Thaana}/utf + \x{60c} + +/^\p{Script_Extensions=Thaa}/utf + \x{fdfd} + +# Script extension only character +/^\p{Thaana}/utf + \x{fdf2} + +/^\p{sc=Thaana}/utf + \x{fdf2} + +# Character not in script +/^\p{Thaana}/utf + \x{fdfe} + +# Base script check +/^\p{sc=Yi}/utf + \x{a000} + +/^\p{Script=Yiii}/utf + \x{a4c6} + +# Script extension check +/^\p{Yi}/utf + \x{3001} + +/^\p{scx=Yiii}/utf + \x{ff65} + +# Script extension only character +/^\p{Yi}/utf + \x{3001} + +/^\p{sc=Yi}/utf + \x{3001} + +# Character not in script +/^\p{Yi}/utf + \x{ff66} + +# Base script check +/^\p{sc=Nko}/utf + \x{7c0} + +/^\p{Script=Nkoo}/utf + \x{7ff} + +# Script extension check +/^\p{Nko}/utf + \x{60c} + +/^\p{Script_Extensions=Nkoo}/utf + \x{fd3f} + +# Script extension only character +/^\p{Nko}/utf + \x{fd3e} + +/^\p{sc=Nko}/utf + \x{fd3e} + +# Character not in script +/^\p{Nko}/utf + \x{fd40} + +# Base script check +/^\p{sc=Phags_Pa}/utf + \x{a840} + +/^\p{Script=Phag}/utf + \x{a877} + +# Script extension check +/^\p{Phags_Pa}/utf + \x{1802} + +/^\p{scx=Phag}/utf + \x{1805} + +# Script extension only character +/^\p{Phags_Pa}/utf + \x{1802} + +/^\p{sc=Phags_Pa}/utf + \x{1802} + +# Character not in script +/^\p{Phags_Pa}/utf + \x{a878} + +# Base script check +/^\p{sc=Kayah_Li}/utf + \x{a900} + +/^\p{Script=Kali}/utf + \x{a92f} + +# Script extension check +/^\p{Kayah_Li}/utf + \x{a92e} + +/^\p{Script_Extensions=Kali}/utf + \x{a92e} + +# Script extension only character +/^\p{Kayah_Li}/utf + \x{a92e} + +/^\p{sc=Kayah_Li}/utf + \x{a92e} + +# Character not in script +/^\p{Kayah_Li}/utf + \x{a930} + +# Base script check +/^\p{sc=Javanese}/utf + \x{a980} + +/^\p{Script=Java}/utf + \x{a9df} + +# Script extension check +/^\p{Javanese}/utf + \x{a9cf} + +/^\p{scx=Java}/utf + \x{a9cf} + +# Script extension only character +/^\p{Javanese}/utf + \x{a9cf} + +/^\p{sc=Javanese}/utf + \x{a9cf} + +# Character not in script +/^\p{Javanese}/utf + \x{a9e0} + +# Base script check +/^\p{sc=Kaithi}/utf + \x{11080} + +/^\p{Script=Kthi}/utf + \x{110cd} + +# Script extension check +/^\p{Kaithi}/utf + \x{966} + +/^\p{Script_Extensions=Kthi}/utf + \x{a839} + +# Script extension only character +/^\p{Kaithi}/utf + \x{966} + +/^\p{sc=Kaithi}/utf + \x{966} + +# Character not in script +/^\p{Kaithi}/utf + \x{110ce} + +# Base script check +/^\p{sc=Mandaic}/utf + \x{840} + +/^\p{Script=Mand}/utf + \x{85e} + +# Script extension check +/^\p{Mandaic}/utf + \x{640} + +/^\p{scx=Mand}/utf + \x{640} + +# Script extension only character +/^\p{Mandaic}/utf + \x{640} + +/^\p{sc=Mandaic}/utf + \x{640} + +# Character not in script +/^\p{Mandaic}/utf + \x{85f} + +# Base script check +/^\p{sc=Chakma}/utf + \x{11100} + +/^\p{Script=Cakm}/utf + \x{11147} + +# Script extension check +/^\p{Chakma}/utf + \x{9e6} + +/^\p{Script_Extensions=Cakm}/utf + \x{1049} + +# Script extension only character +/^\p{Chakma}/utf + \x{9e6} + +/^\p{sc=Chakma}/utf + \x{9e6} + +# Character not in script +/^\p{Chakma}/utf + \x{11148} + +# Base script check +/^\p{sc=Sharada}/utf + \x{11180} + +/^\p{Script=Shrd}/utf + \x{111df} + +# Script extension check +/^\p{Sharada}/utf + \x{951} + +/^\p{scx=Shrd}/utf + \x{1ce0} + +# Script extension only character +/^\p{Sharada}/utf + \x{1cd7} + +/^\p{sc=Sharada}/utf + \x{1cd7} + +# Character not in script +/^\p{Sharada}/utf + \x{111e0} + +# Base script check +/^\p{sc=Takri}/utf + \x{11680} + +/^\p{Script=Takr}/utf + \x{116c9} + +# Script extension check +/^\p{Takri}/utf + \x{964} + +/^\p{Script_Extensions=Takr}/utf + \x{a839} + +# Script extension only character +/^\p{Takri}/utf + \x{a836} + +/^\p{sc=Takri}/utf + \x{a836} + +# Character not in script +/^\p{Takri}/utf + \x{116ca} + +# Base script check +/^\p{sc=Duployan}/utf + \x{1bc00} + +/^\p{Script=Dupl}/utf + \x{1bc9f} + +# Script extension check +/^\p{Duployan}/utf + \x{1bca0} + +/^\p{scx=Dupl}/utf + \x{1bca3} + +# Script extension only character +/^\p{Duployan}/utf + \x{1bca0} + +/^\p{sc=Duployan}/utf + \x{1bca0} + +# Character not in script +/^\p{Duployan}/utf + \x{1bca4} + +# Base script check +/^\p{sc=Grantha}/utf + \x{11300} + +/^\p{Script=Gran}/utf + \x{11374} + +# Script extension check +/^\p{Grantha}/utf + \x{951} + +/^\p{Script_Extensions=Gran}/utf + \x{11fd3} + +# Script extension only character +/^\p{Grantha}/utf + \x{1cd3} + +/^\p{sc=Grantha}/utf + \x{1cd3} + +# Character not in script +/^\p{Grantha}/utf + \x{11fd4} + +# Base script check +/^\p{sc=Khojki}/utf + \x{11200} + +/^\p{Script=Khoj}/utf + \x{1123e} + +# Script extension check +/^\p{Khojki}/utf + \x{ae6} + +/^\p{scx=Khoj}/utf + \x{a839} + +# Script extension only character +/^\p{Khojki}/utf + \x{ae6} + +/^\p{sc=Khojki}/utf + \x{ae6} + +# Character not in script +/^\p{Khojki}/utf + \x{1123f} + +# Base script check +/^\p{sc=Khudawadi}/utf + \x{112b0} + +/^\p{Script=Sind}/utf + \x{112f9} + +# Script extension check +/^\p{Khudawadi}/utf + \x{964} + +/^\p{Script_Extensions=Sind}/utf + \x{a839} + +# Script extension only character +/^\p{Khudawadi}/utf + \x{a836} + +/^\p{sc=Khudawadi}/utf + \x{a836} + +# Character not in script +/^\p{Khudawadi}/utf + \x{112fa} + +# Base script check +/^\p{sc=Linear_A}/utf + \x{10600} + +/^\p{Script=Lina}/utf + \x{10767} + +# Script extension check +/^\p{Linear_A}/utf + \x{10107} + +/^\p{scx=Lina}/utf + \x{10133} + +# Script extension only character +/^\p{Linear_A}/utf + \x{10107} + +/^\p{sc=Linear_A}/utf + \x{10107} + +# Character not in script +/^\p{Linear_A}/utf + \x{10768} + +# Base script check +/^\p{sc=Mahajani}/utf + \x{11150} + +/^\p{Script=Mahj}/utf + \x{11176} + +# Script extension check +/^\p{Mahajani}/utf + \x{964} + +/^\p{Script_Extensions=Mahj}/utf + \x{a839} + +# Script extension only character +/^\p{Mahajani}/utf + \x{966} + +/^\p{sc=Mahajani}/utf + \x{966} + +# Character not in script +/^\p{Mahajani}/utf + \x{11177} + +# Base script check +/^\p{sc=Manichaean}/utf + \x{10ac0} + +/^\p{Script=Mani}/utf + \x{10af6} + +# Script extension check +/^\p{Manichaean}/utf + \x{640} + +/^\p{scx=Mani}/utf + \x{10af2} + +# Script extension only character +/^\p{Manichaean}/utf + \x{640} + +/^\p{sc=Manichaean}/utf + \x{640} + +# Character not in script +/^\p{Manichaean}/utf + \x{10af7} + +# Base script check +/^\p{sc=Modi}/utf + \x{11600} + +/^\p{Script=Modi}/utf + \x{11659} + +# Script extension check +/^\p{Modi}/utf + \x{a830} + +/^\p{Script_Extensions=Modi}/utf + \x{a839} + +# Script extension only character +/^\p{Modi}/utf + \x{a836} + +/^\p{sc=Modi}/utf + \x{a836} + +# Character not in script +/^\p{Modi}/utf + \x{1165a} + +# Base script check +/^\p{sc=Old_Permic}/utf + \x{10350} + +/^\p{Script=Perm}/utf + \x{1037a} + +# Script extension check +/^\p{Old_Permic}/utf + \x{483} + +/^\p{scx=Perm}/utf + \x{483} + +# Script extension only character +/^\p{Old_Permic}/utf + \x{483} + +/^\p{sc=Old_Permic}/utf + \x{483} + +# Character not in script +/^\p{Old_Permic}/utf + \x{1037b} + +# Base script check +/^\p{sc=Psalter_Pahlavi}/utf + \x{10b80} + +/^\p{Script=Phlp}/utf + \x{10baf} + +# Script extension check +/^\p{Psalter_Pahlavi}/utf + \x{640} + +/^\p{Script_Extensions=Phlp}/utf + \x{640} + +# Script extension only character +/^\p{Psalter_Pahlavi}/utf + \x{640} + +/^\p{sc=Psalter_Pahlavi}/utf + \x{640} + +# Character not in script +/^\p{Psalter_Pahlavi}/utf + \x{10bb0} + +# Base script check +/^\p{sc=Tirhuta}/utf + \x{11480} + +/^\p{Script=Tirh}/utf + \x{114d9} + +# Script extension check +/^\p{Tirhuta}/utf + \x{951} + +/^\p{scx=Tirh}/utf + \x{a839} + +# Script extension only character +/^\p{Tirhuta}/utf + \x{1cf2} + +/^\p{sc=Tirhuta}/utf + \x{1cf2} + +# Character not in script +/^\p{Tirhuta}/utf + \x{114da} + +# Base script check +/^\p{sc=Multani}/utf + \x{11280} + +/^\p{Script=Mult}/utf + \x{112a9} + +# Script extension check +/^\p{Multani}/utf + \x{a66} + +/^\p{Script_Extensions=Mult}/utf + \x{a6f} + +# Script extension only character +/^\p{Multani}/utf + \x{a66} + +/^\p{sc=Multani}/utf + \x{a66} + +# Character not in script +/^\p{Multani}/utf + \x{112aa} + +# Base script check +/^\p{sc=Adlam}/utf + \x{1e900} + +/^\p{Script=Adlm}/utf + \x{1e95f} + +# Script extension check +/^\p{Adlam}/utf + \x{61f} + +/^\p{scx=Adlm}/utf + \x{640} + +# Script extension only character +/^\p{Adlam}/utf + \x{61f} + +/^\p{sc=Adlam}/utf + \x{61f} + +# Character not in script +/^\p{Adlam}/utf + \x{1e960} + +# Base script check +/^\p{sc=Masaram_Gondi}/utf + \x{11d00} + +/^\p{Script=Gonm}/utf + \x{11d59} + +# Script extension check +/^\p{Masaram_Gondi}/utf + \x{964} + +/^\p{Script_Extensions=Gonm}/utf + \x{965} + +# Script extension only character +/^\p{Masaram_Gondi}/utf + \x{964} + +/^\p{sc=Masaram_Gondi}/utf + \x{964} + +# Character not in script +/^\p{Masaram_Gondi}/utf + \x{11d5a} + +# Base script check +/^\p{sc=Dogra}/utf + \x{11800} + +/^\p{Script=Dogr}/utf + \x{1183b} + +# Script extension check +/^\p{Dogra}/utf + \x{964} + +/^\p{scx=Dogr}/utf + \x{a839} + +# Script extension only character +/^\p{Dogra}/utf + \x{966} + +/^\p{sc=Dogra}/utf + \x{966} + +# Character not in script +/^\p{Dogra}/utf + \x{1183c} + +# Base script check +/^\p{sc=Gunjala_Gondi}/utf + \x{11d60} + +/^\p{Script=Gong}/utf + \x{11da9} + +# Script extension check +/^\p{Gunjala_Gondi}/utf + \x{964} + +/^\p{Script_Extensions=Gong}/utf + \x{965} + +# Script extension only character +/^\p{Gunjala_Gondi}/utf + \x{964} + +/^\p{sc=Gunjala_Gondi}/utf + \x{964} + +# Character not in script +/^\p{Gunjala_Gondi}/utf + \x{11daa} + +# Base script check +/^\p{sc=Hanifi_Rohingya}/utf + \x{10d00} + +/^\p{Script=Rohg}/utf + \x{10d39} + +# Script extension check +/^\p{Hanifi_Rohingya}/utf + \x{60c} + +/^\p{scx=Rohg}/utf + \x{6d4} + +# Script extension only character +/^\p{Hanifi_Rohingya}/utf + \x{6d4} + +/^\p{sc=Hanifi_Rohingya}/utf + \x{6d4} + +# Character not in script +/^\p{Hanifi_Rohingya}/utf + \x{10d3a} + +# Base script check +/^\p{sc=Sogdian}/utf + \x{10f30} + +/^\p{Script=Sogd}/utf + \x{10f59} + +# Script extension check +/^\p{Sogdian}/utf + \x{640} + +/^\p{Script_Extensions=Sogd}/utf + \x{640} + +# Script extension only character +/^\p{Sogdian}/utf + \x{640} + +/^\p{sc=Sogdian}/utf + \x{640} + +# Character not in script +/^\p{Sogdian}/utf + \x{10f5a} + +# Base script check +/^\p{sc=Nandinagari}/utf + \x{119a0} + +/^\p{Script=Nand}/utf + \x{119e4} + +# Script extension check +/^\p{Nandinagari}/utf + \x{964} + +/^\p{scx=Nand}/utf + \x{a835} + +# Script extension only character +/^\p{Nandinagari}/utf + \x{1cfa} + +/^\p{sc=Nandinagari}/utf + \x{1cfa} + +# Character not in script +/^\p{Nandinagari}/utf + \x{119e5} + +# Base script check +/^\p{sc=Yezidi}/utf + \x{10e80} + +/^\p{Script=Yezi}/utf + \x{10eb1} + +# Script extension check +/^\p{Yezidi}/utf + \x{60c} + +/^\p{Script_Extensions=Yezi}/utf + \x{669} + +# Script extension only character +/^\p{Yezidi}/utf + \x{660} + +/^\p{sc=Yezidi}/utf + \x{660} + +# Character not in script +/^\p{Yezidi}/utf + \x{10eb2} + +# Base script check +/^\p{sc=Cypro_Minoan}/utf + \x{12f90} + +/^\p{Script=Cpmn}/utf + \x{12ff2} + +# Script extension check +/^\p{Cypro_Minoan}/utf + \x{10100} + +/^\p{scx=Cpmn}/utf + \x{10101} + +# Script extension only character +/^\p{Cypro_Minoan}/utf + \x{10100} + +/^\p{sc=Cypro_Minoan}/utf + \x{10100} + +# Character not in script +/^\p{Cypro_Minoan}/utf + \x{12ff3} + +# Base script check +/^\p{sc=Old_Uyghur}/utf + \x{10f70} + +/^\p{Script=Ougr}/utf + \x{10f89} + +# Script extension check +/^\p{Old_Uyghur}/utf + \x{640} + +/^\p{Script_Extensions=Ougr}/utf + \x{10af2} + +# Script extension only character +/^\p{Old_Uyghur}/utf + \x{10af2} + +/^\p{sc=Old_Uyghur}/utf + \x{10af2} + +# Character not in script +/^\p{Old_Uyghur}/utf + \x{10f8a} + +# Base script check +/^\p{sc=Armenian}/utf + \x{531} + +/^\p{Script=Armn}/utf + \x{fb17} + +# Character not in script +/^\p{Armenian}/utf + \x{fb18} + +# Base script check +/^\p{sc=Braille}/utf + \x{2800} + +/^\p{Script=Brai}/utf + \x{28ff} + +# Character not in script +/^\p{Braille}/utf + \x{2900} + +# Base script check +/^\p{sc=Canadian_Aboriginal}/utf + \x{1400} + +/^\p{Script=Cans}/utf + \x{11abf} + +# Character not in script +/^\p{Canadian_Aboriginal}/utf + \x{11ac0} + +# Base script check +/^\p{sc=Cherokee}/utf + \x{13a0} + +/^\p{Script=Cher}/utf + \x{abbf} + +# Character not in script +/^\p{Cherokee}/utf + \x{abc0} + +# Base script check +/^\p{sc=Common}/utf + \x{00} + +/^\p{Script=Zyyy}/utf + \x{e007f} + +# Character not in script +/^\p{Common}/utf + \x{e0080} + +# Base script check +/^\p{sc=Deseret}/utf + \x{10400} + +/^\p{Script=Dsrt}/utf + \x{1044f} + +# Character not in script +/^\p{Deseret}/utf + \x{10450} + +# Base script check +/^\p{sc=Ethiopic}/utf + \x{1200} + +/^\p{Script=Ethi}/utf + \x{1e7fe} + +# Character not in script +/^\p{Ethiopic}/utf + \x{1e7ff} + +# Base script check +/^\p{sc=Gothic}/utf + \x{10330} + +/^\p{Script=Goth}/utf + \x{1034a} + +# Character not in script +/^\p{Gothic}/utf + \x{1034b} + +# Base script check +/^\p{sc=Hebrew}/utf + \x{591} + +/^\p{Script=Hebr}/utf + \x{fb4f} + +# Character not in script +/^\p{Hebrew}/utf + \x{fb50} + +# Base script check +/^\p{sc=Inherited}/utf + \x{300} + +/^\p{Script=Zinh}/utf + \x{e01ef} + +# Character not in script +/^\p{Inherited}/utf + \x{e01f0} + +# Base script check +/^\p{sc=Kharoshthi}/utf + \x{10a00} + +/^\p{Script=Khar}/utf + \x{10a58} + +# Character not in script +/^\p{Kharoshthi}/utf + \x{10a59} + +# Base script check +/^\p{sc=Khmer}/utf + \x{1780} + +/^\p{Script=Khmr}/utf + \x{19ff} + +# Character not in script +/^\p{Khmer}/utf + \x{1a00} + +# Base script check +/^\p{sc=Lao}/utf + \x{e81} + +/^\p{Script=Laoo}/utf + \x{edf} + +# Character not in script +/^\p{Lao}/utf + \x{ee0} + +# Base script check +/^\p{sc=New_Tai_Lue}/utf + \x{1980} + +/^\p{Script=Talu}/utf + \x{19df} + +# Character not in script +/^\p{New_Tai_Lue}/utf + \x{19e0} + +# Base script check +/^\p{sc=Ogham}/utf + \x{1680} + +/^\p{Script=Ogam}/utf + \x{169c} + +# Character not in script +/^\p{Ogham}/utf + \x{169d} + +# Base script check +/^\p{sc=Old_Italic}/utf + \x{10300} + +/^\p{Script=Ital}/utf + \x{1032f} + +# Character not in script +/^\p{Old_Italic}/utf + \x{10330} + +# Base script check +/^\p{sc=Old_Persian}/utf + \x{103a0} + +/^\p{Script=Xpeo}/utf + \x{103d5} + +# Character not in script +/^\p{Old_Persian}/utf + \x{103d6} + +# Base script check +/^\p{sc=Osmanya}/utf + \x{10480} + +/^\p{Script=Osma}/utf + \x{104a9} + +# Character not in script +/^\p{Osmanya}/utf + \x{104aa} + +# Base script check +/^\p{sc=Runic}/utf + \x{16a0} + +/^\p{Script=Runr}/utf + \x{16f8} + +# Character not in script +/^\p{Runic}/utf + \x{16f9} + +# Base script check +/^\p{sc=Shavian}/utf + \x{10450} + +/^\p{Script=Shaw}/utf + \x{1047f} + +# Character not in script +/^\p{Shavian}/utf + \x{10480} + +# Base script check +/^\p{sc=Thai}/utf + \x{e01} + +/^\p{Script=Thai}/utf + \x{e5b} + +# Character not in script +/^\p{Thai}/utf + \x{e5c} + +# Base script check +/^\p{sc=Tibetan}/utf + \x{f00} + +/^\p{Script=Tibt}/utf + \x{fda} + +# Character not in script +/^\p{Tibetan}/utf + \x{fdb} + +# Base script check +/^\p{sc=Tifinagh}/utf + \x{2d30} + +/^\p{Script=Tfng}/utf + \x{2d7f} + +# Character not in script +/^\p{Tifinagh}/utf + \x{2d80} + +# Base script check +/^\p{sc=Ugaritic}/utf + \x{10380} + +/^\p{Script=Ugar}/utf + \x{1039f} + +# Character not in script +/^\p{Ugaritic}/utf + \x{103a0} + +# Base script check +/^\p{sc=Balinese}/utf + \x{1b00} + +/^\p{Script=Bali}/utf + \x{1b7e} + +# Character not in script +/^\p{Balinese}/utf + \x{1b7f} + +# Base script check +/^\p{sc=Cuneiform}/utf + \x{12000} + +/^\p{Script=Xsux}/utf + \x{12543} + +# Character not in script +/^\p{Cuneiform}/utf + \x{12544} + +# Base script check +/^\p{sc=Phoenician}/utf + \x{10900} + +/^\p{Script=Phnx}/utf + \x{1091f} + +# Character not in script +/^\p{Phoenician}/utf + \x{10920} + +# Base script check +/^\p{sc=Carian}/utf + \x{102a0} + +/^\p{Script=Cari}/utf + \x{102d0} + +# Character not in script +/^\p{Carian}/utf + \x{102d1} + +# Base script check +/^\p{sc=Cham}/utf + \x{aa00} + +/^\p{Script=Cham}/utf + \x{aa5f} + +# Character not in script +/^\p{Cham}/utf + \x{aa60} + +# Base script check +/^\p{sc=Lepcha}/utf + \x{1c00} + +/^\p{Script=Lepc}/utf + \x{1c4f} + +# Character not in script +/^\p{Lepcha}/utf + \x{1c50} + +# Base script check +/^\p{sc=Lycian}/utf + \x{10280} + +/^\p{Script=Lyci}/utf + \x{1029c} + +# Character not in script +/^\p{Lycian}/utf + \x{1029d} + +# Base script check +/^\p{sc=Lydian}/utf + \x{10920} + +/^\p{Script=Lydi}/utf + \x{1093f} + +# Character not in script +/^\p{Lydian}/utf + \x{10940} + +# Base script check +/^\p{sc=Ol_Chiki}/utf + \x{1c50} + +/^\p{Script=Olck}/utf + \x{1c7f} + +# Character not in script +/^\p{Ol_Chiki}/utf + \x{1c80} + +# Base script check +/^\p{sc=Rejang}/utf + \x{a930} + +/^\p{Script=Rjng}/utf + \x{a95f} + +# Character not in script +/^\p{Rejang}/utf + \x{a960} + +# Base script check +/^\p{sc=Saurashtra}/utf + \x{a880} + +/^\p{Script=Saur}/utf + \x{a8d9} + +# Character not in script +/^\p{Saurashtra}/utf + \x{a8da} + +# Base script check +/^\p{sc=Sundanese}/utf + \x{1b80} + +/^\p{Script=Sund}/utf + \x{1cc7} + +# Character not in script +/^\p{Sundanese}/utf + \x{1cc8} + +# Base script check +/^\p{sc=Vai}/utf + \x{a500} + +/^\p{Script=Vaii}/utf + \x{a62b} + +# Character not in script +/^\p{Vai}/utf + \x{a62c} + +# Base script check +/^\p{sc=Avestan}/utf + \x{10b00} + +/^\p{Script=Avst}/utf + \x{10b3f} + +# Character not in script +/^\p{Avestan}/utf + \x{10b40} + +# Base script check +/^\p{sc=Bamum}/utf + \x{a6a0} + +/^\p{Script=Bamu}/utf + \x{16a38} + +# Character not in script +/^\p{Bamum}/utf + \x{16a39} + +# Base script check +/^\p{sc=Egyptian_Hieroglyphs}/utf + \x{13000} + +/^\p{Script=Egyp}/utf + \x{13438} + +# Character not in script +/^\p{Egyptian_Hieroglyphs}/utf + \x{13439} + +# Base script check +/^\p{sc=Imperial_Aramaic}/utf + \x{10840} + +/^\p{Script=Armi}/utf + \x{1085f} + +# Character not in script +/^\p{Imperial_Aramaic}/utf + \x{10860} + +# Base script check +/^\p{sc=Inscriptional_Pahlavi}/utf + \x{10b60} + +/^\p{Script=Phli}/utf + \x{10b7f} + +# Character not in script +/^\p{Inscriptional_Pahlavi}/utf + \x{10b80} + +# Base script check +/^\p{sc=Inscriptional_Parthian}/utf + \x{10b40} + +/^\p{Script=Prti}/utf + \x{10b5f} + +# Character not in script +/^\p{Inscriptional_Parthian}/utf + \x{10b60} + +# Base script check +/^\p{sc=Lisu}/utf + \x{a4d0} + +/^\p{Script=Lisu}/utf + \x{11fb0} + +# Character not in script +/^\p{Lisu}/utf + \x{11fb1} + +# Base script check +/^\p{sc=Meetei_Mayek}/utf + \x{aae0} + +/^\p{Script=Mtei}/utf + \x{abf9} + +# Character not in script +/^\p{Meetei_Mayek}/utf + \x{abfa} + +# Base script check +/^\p{sc=Old_South_Arabian}/utf + \x{10a60} + +/^\p{Script=Sarb}/utf + \x{10a7f} + +# Character not in script +/^\p{Old_South_Arabian}/utf + \x{10a80} + +# Base script check +/^\p{sc=Old_Turkic}/utf + \x{10c00} + +/^\p{Script=Orkh}/utf + \x{10c48} + +# Character not in script +/^\p{Old_Turkic}/utf + \x{10c49} + +# Base script check +/^\p{sc=Samaritan}/utf + \x{800} + +/^\p{Script=Samr}/utf + \x{83e} + +# Character not in script +/^\p{Samaritan}/utf + \x{83f} + +# Base script check +/^\p{sc=Tai_Tham}/utf + \x{1a20} + +/^\p{Script=Lana}/utf + \x{1aad} + +# Character not in script +/^\p{Tai_Tham}/utf + \x{1aae} + +# Base script check +/^\p{sc=Tai_Viet}/utf + \x{aa80} + +/^\p{Script=Tavt}/utf + \x{aadf} + +# Character not in script +/^\p{Tai_Viet}/utf + \x{aae0} + +# Base script check +/^\p{sc=Batak}/utf + \x{1bc0} + +/^\p{Script=Batk}/utf + \x{1bff} + +# Character not in script +/^\p{Batak}/utf + \x{1c00} + +# Base script check +/^\p{sc=Brahmi}/utf + \x{11000} + +/^\p{Script=Brah}/utf + \x{1107f} + +# Character not in script +/^\p{Brahmi}/utf + \x{11080} + +# Base script check +/^\p{sc=Meroitic_Cursive}/utf + \x{109a0} + +/^\p{Script=Merc}/utf + \x{109ff} + +# Character not in script +/^\p{Meroitic_Cursive}/utf + \x{10a00} + +# Base script check +/^\p{sc=Meroitic_Hieroglyphs}/utf + \x{10980} + +/^\p{Script=Mero}/utf + \x{1099f} + +# Character not in script +/^\p{Meroitic_Hieroglyphs}/utf + \x{109a0} + +# Base script check +/^\p{sc=Miao}/utf + \x{16f00} + +/^\p{Script=Plrd}/utf + \x{16f9f} + +# Character not in script +/^\p{Miao}/utf + \x{16fa0} + +# Base script check +/^\p{sc=Sora_Sompeng}/utf + \x{110d0} + +/^\p{Script=Sora}/utf + \x{110f9} + +# Character not in script +/^\p{Sora_Sompeng}/utf + \x{110fa} + +# Base script check +/^\p{sc=Bassa_Vah}/utf + \x{16ad0} + +/^\p{Script=Bass}/utf + \x{16af5} + +# Character not in script +/^\p{Bassa_Vah}/utf + \x{16af6} + +# Base script check +/^\p{sc=Caucasian_Albanian}/utf + \x{10530} + +/^\p{Script=Aghb}/utf + \x{1056f} + +# Character not in script +/^\p{Caucasian_Albanian}/utf + \x{10570} + +# Base script check +/^\p{sc=Elbasan}/utf + \x{10500} + +/^\p{Script=Elba}/utf + \x{10527} + +# Character not in script +/^\p{Elbasan}/utf + \x{10528} + +# Base script check +/^\p{sc=Mende_Kikakui}/utf + \x{1e800} + +/^\p{Script=Mend}/utf + \x{1e8d6} + +# Character not in script +/^\p{Mende_Kikakui}/utf + \x{1e8d7} + +# Base script check +/^\p{sc=Mro}/utf + \x{16a40} + +/^\p{Script=Mroo}/utf + \x{16a6f} + +# Character not in script +/^\p{Mro}/utf + \x{16a70} + +# Base script check +/^\p{sc=Nabataean}/utf + \x{10880} + +/^\p{Script=Nbat}/utf + \x{108af} + +# Character not in script +/^\p{Nabataean}/utf + \x{108b0} + +# Base script check +/^\p{sc=Old_North_Arabian}/utf + \x{10a80} + +/^\p{Script=Narb}/utf + \x{10a9f} + +# Character not in script +/^\p{Old_North_Arabian}/utf + \x{10aa0} + +# Base script check +/^\p{sc=Pahawh_Hmong}/utf + \x{16b00} + +/^\p{Script=Hmng}/utf + \x{16b8f} + +# Character not in script +/^\p{Pahawh_Hmong}/utf + \x{16b90} + +# Base script check +/^\p{sc=Palmyrene}/utf + \x{10860} + +/^\p{Script=Palm}/utf + \x{1087f} + +# Character not in script +/^\p{Palmyrene}/utf + \x{10880} + +# Base script check +/^\p{sc=Pau_Cin_Hau}/utf + \x{11ac0} + +/^\p{Script=Pauc}/utf + \x{11af8} + +# Character not in script +/^\p{Pau_Cin_Hau}/utf + \x{11af9} + +# Base script check +/^\p{sc=Siddham}/utf + \x{11580} + +/^\p{Script=Sidd}/utf + \x{115dd} + +# Character not in script +/^\p{Siddham}/utf + \x{115de} + +# Base script check +/^\p{sc=Warang_Citi}/utf + \x{118a0} + +/^\p{Script=Wara}/utf + \x{118ff} + +# Character not in script +/^\p{Warang_Citi}/utf + \x{11900} + +# Base script check +/^\p{sc=Ahom}/utf + \x{11700} + +/^\p{Script=Ahom}/utf + \x{11746} + +# Character not in script +/^\p{Ahom}/utf + \x{11747} + +# Base script check +/^\p{sc=Anatolian_Hieroglyphs}/utf + \x{14400} + +/^\p{Script=Hluw}/utf + \x{14646} + +# Character not in script +/^\p{Anatolian_Hieroglyphs}/utf + \x{14647} + +# Base script check +/^\p{sc=Hatran}/utf + \x{108e0} + +/^\p{Script=Hatr}/utf + \x{108ff} + +# Character not in script +/^\p{Hatran}/utf + \x{10900} + +# Base script check +/^\p{sc=Old_Hungarian}/utf + \x{10c80} + +/^\p{Script=Hung}/utf + \x{10cff} + +# Character not in script +/^\p{Old_Hungarian}/utf + \x{10d00} + +# Base script check +/^\p{sc=SignWriting}/utf + \x{1d800} + +/^\p{Script=Sgnw}/utf + \x{1daaf} + +# Character not in script +/^\p{SignWriting}/utf + \x{1dab0} + +# Base script check +/^\p{sc=Bhaiksuki}/utf + \x{11c00} + +/^\p{Script=Bhks}/utf + \x{11c6c} + +# Character not in script +/^\p{Bhaiksuki}/utf + \x{11c6d} + +# Base script check +/^\p{sc=Marchen}/utf + \x{11c70} + +/^\p{Script=Marc}/utf + \x{11cb6} + +# Character not in script +/^\p{Marchen}/utf + \x{11cb7} + +# Base script check +/^\p{sc=Newa}/utf + \x{11400} + +/^\p{Script=Newa}/utf + \x{11461} + +# Character not in script +/^\p{Newa}/utf + \x{11462} + +# Base script check +/^\p{sc=Osage}/utf + \x{104b0} + +/^\p{Script=Osge}/utf + \x{104fb} + +# Character not in script +/^\p{Osage}/utf + \x{104fc} + +# Base script check +/^\p{sc=Tangut}/utf + \x{16fe0} + +/^\p{Script=Tang}/utf + \x{18d08} + +# Character not in script +/^\p{Tangut}/utf + \x{18d09} + +# Base script check +/^\p{sc=Nushu}/utf + \x{16fe1} + +/^\p{Script=Nshu}/utf + \x{1b2fb} + +# Character not in script +/^\p{Nushu}/utf + \x{1b2fc} + +# Base script check +/^\p{sc=Soyombo}/utf + \x{11a50} + +/^\p{Script=Soyo}/utf + \x{11aa2} + +# Character not in script +/^\p{Soyombo}/utf + \x{11aa3} + +# Base script check +/^\p{sc=Zanabazar_Square}/utf + \x{11a00} + +/^\p{Script=Zanb}/utf + \x{11a47} + +# Character not in script +/^\p{Zanabazar_Square}/utf + \x{11a48} + +# Base script check +/^\p{sc=Makasar}/utf + \x{11ee0} + +/^\p{Script=Maka}/utf + \x{11ef8} + +# Character not in script +/^\p{Makasar}/utf + \x{11ef9} + +# Base script check +/^\p{sc=Medefaidrin}/utf + \x{16e40} + +/^\p{Script=Medf}/utf + \x{16e9a} + +# Character not in script +/^\p{Medefaidrin}/utf + \x{16e9b} + +# Base script check +/^\p{sc=Old_Sogdian}/utf + \x{10f00} + +/^\p{Script=Sogo}/utf + \x{10f27} + +# Character not in script +/^\p{Old_Sogdian}/utf + \x{10f28} + +# Base script check +/^\p{sc=Elymaic}/utf + \x{10fe0} + +/^\p{Script=Elym}/utf + \x{10ff6} + +# Character not in script +/^\p{Elymaic}/utf + \x{10ff7} + +# Base script check +/^\p{sc=Nyiakeng_Puachue_Hmong}/utf + \x{1e100} + +/^\p{Script=Hmnp}/utf + \x{1e14f} + +# Character not in script +/^\p{Nyiakeng_Puachue_Hmong}/utf + \x{1e150} + +# Base script check +/^\p{sc=Wancho}/utf + \x{1e2c0} + +/^\p{Script=Wcho}/utf + \x{1e2ff} + +# Character not in script +/^\p{Wancho}/utf + \x{1e300} + +# Base script check +/^\p{sc=Chorasmian}/utf + \x{10fb0} + +/^\p{Script=Chrs}/utf + \x{10fcb} + +# Character not in script +/^\p{Chorasmian}/utf + \x{10fcc} + +# Base script check +/^\p{sc=Dives_Akuru}/utf + \x{11900} + +/^\p{Script=Diak}/utf + \x{11959} + +# Character not in script +/^\p{Dives_Akuru}/utf + \x{1195a} + +# Base script check +/^\p{sc=Khitan_Small_Script}/utf + \x{16fe4} + +/^\p{Script=Kits}/utf + \x{18cd5} + +# Character not in script +/^\p{Khitan_Small_Script}/utf + \x{18cd6} + +# Base script check +/^\p{sc=Tangsa}/utf + \x{16a70} + +/^\p{Script=Tngs}/utf + \x{16ac9} + +# Character not in script +/^\p{Tangsa}/utf + \x{16aca} + +# Base script check +/^\p{sc=Toto}/utf + \x{1e290} + +/^\p{Script=Toto}/utf + \x{1e2ae} + +# Character not in script +/^\p{Toto}/utf + \x{1e2af} + +# Base script check +/^\p{sc=Vithkuqi}/utf + \x{10570} + +/^\p{Script=Vith}/utf + \x{105bc} + +# Character not in script +/^\p{Vithkuqi}/utf + \x{105bd} + +# End of testinput26 diff --git a/testdata/testoutput26 b/testdata/testoutput26 new file mode 100644 index 0000000..99135ca --- /dev/null +++ b/testdata/testoutput26 @@ -0,0 +1,3483 @@ +# These tests are generated by maint/GenerateTest26.py, do not edit. + +# Unicode Script Extension tests. + +# Base script check +/^\p{sc=Arabic}/utf + \x{600} + 0: \x{600} + +/^\p{Script=Arab}/utf + \x{1eef1} + 0: \x{1eef1} + +# Script extension check +/^\p{Arabic}/utf + \x{60c} + 0: \x{60c} + +/^\p{scx=Arab}/utf + \x{102fb} + 0: \x{102fb} + +# Script extension only character +/^\p{Arabic}/utf + \x{102e0} + 0: \x{102e0} + +/^\p{sc=Arabic}/utf + \x{102e0} +No match + +# Character not in script +/^\p{Arabic}/utf + \x{1eef2} +No match + +# Base script check +/^\p{sc=Bengali}/utf + \x{980} + 0: \x{980} + +/^\p{Script=Beng}/utf + \x{9fe} + 0: \x{9fe} + +# Script extension check +/^\p{Bengali}/utf + \x{951} + 0: \x{951} + +/^\p{Script_Extensions=Beng}/utf + \x{a8f1} + 0: \x{a8f1} + +# Script extension only character +/^\p{Bengali}/utf + \x{1cf7} + 0: \x{1cf7} + +/^\p{sc=Bengali}/utf + \x{1cf7} +No match + +# Character not in script +/^\p{Bengali}/utf + \x{a8f2} +No match + +# Base script check +/^\p{sc=Bopomofo}/utf + \x{2ea} + 0: \x{2ea} + +/^\p{Script=Bopo}/utf + \x{31bf} + 0: \x{31bf} + +# Script extension check +/^\p{Bopomofo}/utf + \x{3001} + 0: \x{3001} + +/^\p{scx=Bopo}/utf + \x{ff65} + 0: \x{ff65} + +# Script extension only character +/^\p{Bopomofo}/utf + \x{302a} + 0: \x{302a} + +/^\p{sc=Bopomofo}/utf + \x{302a} +No match + +# Character not in script +/^\p{Bopomofo}/utf + \x{ff66} +No match + +# Base script check +/^\p{sc=Buginese}/utf + \x{1a00} + 0: \x{1a00} + +/^\p{Script=Bugi}/utf + \x{1a1f} + 0: \x{1a1f} + +# Script extension check +/^\p{Buginese}/utf + \x{a9cf} + 0: \x{a9cf} + +/^\p{Script_Extensions=Bugi}/utf + \x{a9cf} + 0: \x{a9cf} + +# Script extension only character +/^\p{Buginese}/utf + \x{a9cf} + 0: \x{a9cf} + +/^\p{sc=Buginese}/utf + \x{a9cf} +No match + +# Character not in script +/^\p{Buginese}/utf + \x{a9d0} +No match + +# Base script check +/^\p{sc=Buhid}/utf + \x{1740} + 0: \x{1740} + +/^\p{Script=Buhd}/utf + \x{1753} + 0: \x{1753} + +# Script extension check +/^\p{Buhid}/utf + \x{1735} + 0: \x{1735} + +/^\p{scx=Buhd}/utf + \x{1736} + 0: \x{1736} + +# Script extension only character +/^\p{Buhid}/utf + \x{1735} + 0: \x{1735} + +/^\p{sc=Buhid}/utf + \x{1735} +No match + +# Character not in script +/^\p{Buhid}/utf + \x{1754} +No match + +# Base script check +/^\p{sc=Coptic}/utf + \x{3e2} + 0: \x{3e2} + +/^\p{Script=Copt}/utf + \x{2cff} + 0: \x{2cff} + +# Script extension check +/^\p{Coptic}/utf + \x{102e0} + 0: \x{102e0} + +/^\p{Script_Extensions=Copt}/utf + \x{102fb} + 0: \x{102fb} + +# Script extension only character +/^\p{Coptic}/utf + \x{102e0} + 0: \x{102e0} + +/^\p{sc=Coptic}/utf + \x{102e0} +No match + +# Character not in script +/^\p{Coptic}/utf + \x{102fc} +No match + +# Base script check +/^\p{sc=Cypriot}/utf + \x{10800} + 0: \x{10800} + +/^\p{Script=Cprt}/utf + \x{1083f} + 0: \x{1083f} + +# Script extension check +/^\p{Cypriot}/utf + \x{10100} + 0: \x{10100} + +/^\p{scx=Cprt}/utf + \x{1013f} + 0: \x{1013f} + +# Script extension only character +/^\p{Cypriot}/utf + \x{10102} + 0: \x{10102} + +/^\p{sc=Cypriot}/utf + \x{10102} +No match + +# Character not in script +/^\p{Cypriot}/utf + \x{10840} +No match + +# Base script check +/^\p{sc=Cyrillic}/utf + \x{400} + 0: \x{400} + +/^\p{Script=Cyrl}/utf + \x{fe2f} + 0: \x{fe2f} + +# Script extension check +/^\p{Cyrillic}/utf + \x{483} + 0: \x{483} + +/^\p{Script_Extensions=Cyrl}/utf + \x{a66f} + 0: \x{a66f} + +# Script extension only character +/^\p{Cyrillic}/utf + \x{2e43} + 0: \x{2e43} + +/^\p{sc=Cyrillic}/utf + \x{2e43} +No match + +# Character not in script +/^\p{Cyrillic}/utf + \x{fe30} +No match + +# Base script check +/^\p{sc=Devanagari}/utf + \x{900} + 0: \x{900} + +/^\p{Script=Deva}/utf + \x{a8ff} + 0: \x{a8ff} + +# Script extension check +/^\p{Devanagari}/utf + \x{951} + 0: \x{951} + +/^\p{scx=Deva}/utf + \x{a8f3} + 0: \x{a8f3} + +# Script extension only character +/^\p{Devanagari}/utf + \x{1cd1} + 0: \x{1cd1} + +/^\p{sc=Devanagari}/utf + \x{1cd1} +No match + +# Character not in script +/^\p{Devanagari}/utf + \x{a900} +No match + +# Base script check +/^\p{sc=Georgian}/utf + \x{10a0} + 0: \x{10a0} + +/^\p{Script=Geor}/utf + \x{2d2d} + 0: \x{2d2d} + +# Script extension check +/^\p{Georgian}/utf + \x{10fb} + 0: \x{10fb} + +/^\p{Script_Extensions=Geor}/utf + \x{10fb} + 0: \x{10fb} + +# Script extension only character +/^\p{Georgian}/utf + \x{10fb} + 0: \x{10fb} + +/^\p{sc=Georgian}/utf + \x{10fb} +No match + +# Character not in script +/^\p{Georgian}/utf + \x{2d2e} +No match + +# Base script check +/^\p{sc=Glagolitic}/utf + \x{2c00} + 0: \x{2c00} + +/^\p{Script=Glag}/utf + \x{1e02a} + 0: \x{1e02a} + +# Script extension check +/^\p{Glagolitic}/utf + \x{484} + 0: \x{484} + +/^\p{scx=Glag}/utf + \x{a66f} + 0: \x{a66f} + +# Script extension only character +/^\p{Glagolitic}/utf + \x{484} + 0: \x{484} + +/^\p{sc=Glagolitic}/utf + \x{484} +No match + +# Character not in script +/^\p{Glagolitic}/utf + \x{1e02b} +No match + +# Base script check +/^\p{sc=Greek}/utf + \x{370} + 0: \x{370} + +/^\p{Script=Grek}/utf + \x{1d245} + 0: \x{1d245} + +# Script extension check +/^\p{Greek}/utf + \x{342} + 0: \x{342} + +/^\p{Script_Extensions=Grek}/utf + \x{1dc1} + 0: \x{1dc1} + +# Script extension only character +/^\p{Greek}/utf + \x{342} + 0: \x{342} + +/^\p{sc=Greek}/utf + \x{342} +No match + +# Character not in script +/^\p{Greek}/utf + \x{1d246} +No match + +# Base script check +/^\p{sc=Gujarati}/utf + \x{a81} + 0: \x{a81} + +/^\p{Script=Gujr}/utf + \x{aff} + 0: \x{aff} + +# Script extension check +/^\p{Gujarati}/utf + \x{951} + 0: \x{951} + +/^\p{scx=Gujr}/utf + \x{a839} + 0: \x{a839} + +# Script extension only character +/^\p{Gujarati}/utf + \x{a836} + 0: \x{a836} + +/^\p{sc=Gujarati}/utf + \x{a836} +No match + +# Character not in script +/^\p{Gujarati}/utf + \x{a83a} +No match + +# Base script check +/^\p{sc=Gurmukhi}/utf + \x{a01} + 0: \x{a01} + +/^\p{Script=Guru}/utf + \x{a76} + 0: \x{a76} + +# Script extension check +/^\p{Gurmukhi}/utf + \x{951} + 0: \x{951} + +/^\p{Script_Extensions=Guru}/utf + \x{a839} + 0: \x{a839} + +# Script extension only character +/^\p{Gurmukhi}/utf + \x{a836} + 0: \x{a836} + +/^\p{sc=Gurmukhi}/utf + \x{a836} +No match + +# Character not in script +/^\p{Gurmukhi}/utf + \x{a83a} +No match + +# Base script check +/^\p{sc=Han}/utf + \x{2e80} + 0: \x{2e80} + +/^\p{Script=Hani}/utf + \x{3134a} + 0: \x{3134a} + +# Script extension check +/^\p{Han}/utf + \x{3001} + 0: \x{3001} + +/^\p{scx=Hani}/utf + \x{1f251} + 0: \x{1f251} + +# Script extension only character +/^\p{Han}/utf + \x{3006} + 0: \x{3006} + +/^\p{sc=Han}/utf + \x{3006} +No match + +# Character not in script +/^\p{Han}/utf + \x{3134b} +No match + +# Base script check +/^\p{sc=Hangul}/utf + \x{1100} + 0: \x{1100} + +/^\p{Script=Hang}/utf + \x{ffdc} + 0: \x{ffdc} + +# Script extension check +/^\p{Hangul}/utf + \x{3001} + 0: \x{3001} + +/^\p{Script_Extensions=Hang}/utf + \x{ff65} + 0: \x{ff65} + +# Script extension only character +/^\p{Hangul}/utf + \x{3003} + 0: \x{3003} + +/^\p{sc=Hangul}/utf + \x{3003} +No match + +# Character not in script +/^\p{Hangul}/utf + \x{ffdd} +No match + +# Base script check +/^\p{sc=Hanunoo}/utf + \x{1720} + 0: \x{1720} + +/^\p{Script=Hano}/utf + \x{1734} + 0: \x{1734} + +# Script extension check +/^\p{Hanunoo}/utf + \x{1735} + 0: \x{1735} + +/^\p{scx=Hano}/utf + \x{1736} + 0: \x{1736} + +# Script extension only character +/^\p{Hanunoo}/utf + \x{1735} + 0: \x{1735} + +/^\p{sc=Hanunoo}/utf + \x{1735} +No match + +# Character not in script +/^\p{Hanunoo}/utf + \x{1737} +No match + +# Base script check +/^\p{sc=Hiragana}/utf + \x{3041} + 0: \x{3041} + +/^\p{Script=Hira}/utf + \x{1f200} + 0: \x{1f200} + +# Script extension check +/^\p{Hiragana}/utf + \x{3001} + 0: \x{3001} + +/^\p{Script_Extensions=Hira}/utf + \x{ff9f} + 0: \x{ff9f} + +# Script extension only character +/^\p{Hiragana}/utf + \x{3031} + 0: \x{3031} + +/^\p{sc=Hiragana}/utf + \x{3031} +No match + +# Character not in script +/^\p{Hiragana}/utf + \x{1f201} +No match + +# Base script check +/^\p{sc=Kannada}/utf + \x{c80} + 0: \x{c80} + +/^\p{Script=Knda}/utf + \x{cf2} + 0: \x{cf2} + +# Script extension check +/^\p{Kannada}/utf + \x{951} + 0: \x{951} + +/^\p{scx=Knda}/utf + \x{a835} + 0: \x{a835} + +# Script extension only character +/^\p{Kannada}/utf + \x{1cf4} + 0: \x{1cf4} + +/^\p{sc=Kannada}/utf + \x{1cf4} +No match + +# Character not in script +/^\p{Kannada}/utf + \x{a836} +No match + +# Base script check +/^\p{sc=Katakana}/utf + \x{30a1} + 0: \x{30a1} + +/^\p{Script=Kana}/utf + \x{1b167} + 0: \x{1b167} + +# Script extension check +/^\p{Katakana}/utf + \x{3001} + 0: \x{3001} + +/^\p{Script_Extensions=Kana}/utf + \x{ff9f} + 0: \x{ff9f} + +# Script extension only character +/^\p{Katakana}/utf + \x{3031} + 0: \x{3031} + +/^\p{sc=Katakana}/utf + \x{3031} +No match + +# Character not in script +/^\p{Katakana}/utf + \x{1b168} +No match + +# Base script check +/^\p{sc=Latin}/utf + A + 0: A + +/^\p{Script=Latn}/utf + \x{1df1e} + 0: \x{1df1e} + +# Script extension check +/^\p{Latin}/utf + \x{363} + 0: \x{363} + +/^\p{scx=Latn}/utf + \x{a92e} + 0: \x{a92e} + +# Script extension only character +/^\p{Latin}/utf + \x{363} + 0: \x{363} + +/^\p{sc=Latin}/utf + \x{363} +No match + +# Character not in script +/^\p{Latin}/utf + \x{1df1f} +No match + +# Base script check +/^\p{sc=Limbu}/utf + \x{1900} + 0: \x{1900} + +/^\p{Script=Limb}/utf + \x{194f} + 0: \x{194f} + +# Script extension check +/^\p{Limbu}/utf + \x{965} + 0: \x{965} + +/^\p{Script_Extensions=Limb}/utf + \x{965} + 0: \x{965} + +# Script extension only character +/^\p{Limbu}/utf + \x{965} + 0: \x{965} + +/^\p{sc=Limbu}/utf + \x{965} +No match + +# Character not in script +/^\p{Limbu}/utf + \x{1950} +No match + +# Base script check +/^\p{sc=Linear_B}/utf + \x{10000} + 0: \x{10000} + +/^\p{Script=Linb}/utf + \x{100fa} + 0: \x{100fa} + +# Script extension check +/^\p{Linear_B}/utf + \x{10100} + 0: \x{10100} + +/^\p{scx=Linb}/utf + \x{1013f} + 0: \x{1013f} + +# Script extension only character +/^\p{Linear_B}/utf + \x{10102} + 0: \x{10102} + +/^\p{sc=Linear_B}/utf + \x{10102} +No match + +# Character not in script +/^\p{Linear_B}/utf + \x{10140} +No match + +# Base script check +/^\p{sc=Malayalam}/utf + \x{d00} + 0: \x{d00} + +/^\p{Script=Mlym}/utf + \x{d7f} + 0: \x{d7f} + +# Script extension check +/^\p{Malayalam}/utf + \x{951} + 0: \x{951} + +/^\p{Script_Extensions=Mlym}/utf + \x{a832} + 0: \x{a832} + +# Script extension only character +/^\p{Malayalam}/utf + \x{1cda} + 0: \x{1cda} + +/^\p{sc=Malayalam}/utf + \x{1cda} +No match + +# Character not in script +/^\p{Malayalam}/utf + \x{a833} +No match + +# Base script check +/^\p{sc=Mongolian}/utf + \x{1800} + 0: \x{1800} + +/^\p{Script=Mong}/utf + \x{1166c} + 0: \x{1166c} + +# Script extension check +/^\p{Mongolian}/utf + \x{1802} + 0: \x{1802} + +/^\p{scx=Mong}/utf + \x{202f} + 0: \x{202f} + +# Script extension only character +/^\p{Mongolian}/utf + \x{202f} + 0: \x{202f} + +/^\p{sc=Mongolian}/utf + \x{202f} +No match + +# Character not in script +/^\p{Mongolian}/utf + \x{1166d} +No match + +# Base script check +/^\p{sc=Myanmar}/utf + \x{1000} + 0: \x{1000} + +/^\p{Script=Mymr}/utf + \x{aa7f} + 0: \x{aa7f} + +# Script extension check +/^\p{Myanmar}/utf + \x{1040} + 0: \x{1040} + +/^\p{Script_Extensions=Mymr}/utf + \x{a92e} + 0: \x{a92e} + +# Script extension only character +/^\p{Myanmar}/utf + \x{a92e} + 0: \x{a92e} + +/^\p{sc=Myanmar}/utf + \x{a92e} +No match + +# Character not in script +/^\p{Myanmar}/utf + \x{aa80} +No match + +# Base script check +/^\p{sc=Oriya}/utf + \x{b01} + 0: \x{b01} + +/^\p{Script=Orya}/utf + \x{b77} + 0: \x{b77} + +# Script extension check +/^\p{Oriya}/utf + \x{951} + 0: \x{951} + +/^\p{scx=Orya}/utf + \x{1cf2} + 0: \x{1cf2} + +# Script extension only character +/^\p{Oriya}/utf + \x{1cda} + 0: \x{1cda} + +/^\p{sc=Oriya}/utf + \x{1cda} +No match + +# Character not in script +/^\p{Oriya}/utf + \x{1cf3} +No match + +# Base script check +/^\p{sc=Sinhala}/utf + \x{d81} + 0: \x{d81} + +/^\p{Script=Sinh}/utf + \x{111f4} + 0: \x{111f4} + +# Script extension check +/^\p{Sinhala}/utf + \x{964} + 0: \x{964} + +/^\p{Script_Extensions=Sinh}/utf + \x{965} + 0: \x{965} + +# Script extension only character +/^\p{Sinhala}/utf + \x{964} + 0: \x{964} + +/^\p{sc=Sinhala}/utf + \x{964} +No match + +# Character not in script +/^\p{Sinhala}/utf + \x{111f5} +No match + +# Base script check +/^\p{sc=Syloti_Nagri}/utf + \x{a800} + 0: \x{a800} + +/^\p{Script=Sylo}/utf + \x{a82c} + 0: \x{a82c} + +# Script extension check +/^\p{Syloti_Nagri}/utf + \x{964} + 0: \x{964} + +/^\p{scx=Sylo}/utf + \x{9ef} + 0: \x{9ef} + +# Script extension only character +/^\p{Syloti_Nagri}/utf + \x{9e6} + 0: \x{9e6} + +/^\p{sc=Syloti_Nagri}/utf + \x{9e6} +No match + +# Character not in script +/^\p{Syloti_Nagri}/utf + \x{a82d} +No match + +# Base script check +/^\p{sc=Syriac}/utf + \x{700} + 0: \x{700} + +/^\p{Script=Syrc}/utf + \x{86a} + 0: \x{86a} + +# Script extension check +/^\p{Syriac}/utf + \x{60c} + 0: \x{60c} + +/^\p{Script_Extensions=Syrc}/utf + \x{1dfa} + 0: \x{1dfa} + +# Script extension only character +/^\p{Syriac}/utf + \x{1dfa} + 0: \x{1dfa} + +/^\p{sc=Syriac}/utf + \x{1dfa} +No match + +# Character not in script +/^\p{Syriac}/utf + \x{1dfb} +No match + +# Base script check +/^\p{sc=Tagalog}/utf + \x{1700} + 0: \x{1700} + +/^\p{Script=Tglg}/utf + \x{171f} + 0: \x{171f} + +# Script extension check +/^\p{Tagalog}/utf + \x{1735} + 0: \x{1735} + +/^\p{scx=Tglg}/utf + \x{1736} + 0: \x{1736} + +# Script extension only character +/^\p{Tagalog}/utf + \x{1735} + 0: \x{1735} + +/^\p{sc=Tagalog}/utf + \x{1735} +No match + +# Character not in script +/^\p{Tagalog}/utf + \x{1737} +No match + +# Base script check +/^\p{sc=Tagbanwa}/utf + \x{1760} + 0: \x{1760} + +/^\p{Script=Tagb}/utf + \x{1773} + 0: \x{1773} + +# Script extension check +/^\p{Tagbanwa}/utf + \x{1735} + 0: \x{1735} + +/^\p{Script_Extensions=Tagb}/utf + \x{1736} + 0: \x{1736} + +# Script extension only character +/^\p{Tagbanwa}/utf + \x{1735} + 0: \x{1735} + +/^\p{sc=Tagbanwa}/utf + \x{1735} +No match + +# Character not in script +/^\p{Tagbanwa}/utf + \x{1774} +No match + +# Base script check +/^\p{sc=Tai_Le}/utf + \x{1950} + 0: \x{1950} + +/^\p{Script=Tale}/utf + \x{1974} + 0: \x{1974} + +# Script extension check +/^\p{Tai_Le}/utf + \x{1040} + 0: \x{1040} + +/^\p{scx=Tale}/utf + \x{1049} + 0: \x{1049} + +# Script extension only character +/^\p{Tai_Le}/utf + \x{1040} + 0: \x{1040} + +/^\p{sc=Tai_Le}/utf + \x{1040} +No match + +# Character not in script +/^\p{Tai_Le}/utf + \x{1975} +No match + +# Base script check +/^\p{sc=Tamil}/utf + \x{b82} + 0: \x{b82} + +/^\p{Script=Taml}/utf + \x{11fff} + 0: \x{11fff} + +# Script extension check +/^\p{Tamil}/utf + \x{951} + 0: \x{951} + +/^\p{Script_Extensions=Taml}/utf + \x{11fd3} + 0: \x{11fd3} + +# Script extension only character +/^\p{Tamil}/utf + \x{a8f3} + 0: \x{a8f3} + +/^\p{sc=Tamil}/utf + \x{a8f3} +No match + +# Character not in script +/^\p{Tamil}/utf + \x{12000} +No match + +# Base script check +/^\p{sc=Telugu}/utf + \x{c00} + 0: \x{c00} + +/^\p{Script=Telu}/utf + \x{c7f} + 0: \x{c7f} + +# Script extension check +/^\p{Telugu}/utf + \x{951} + 0: \x{951} + +/^\p{scx=Telu}/utf + \x{1cf2} + 0: \x{1cf2} + +# Script extension only character +/^\p{Telugu}/utf + \x{1cda} + 0: \x{1cda} + +/^\p{sc=Telugu}/utf + \x{1cda} +No match + +# Character not in script +/^\p{Telugu}/utf + \x{1cf3} +No match + +# Base script check +/^\p{sc=Thaana}/utf + \x{780} + 0: \x{780} + +/^\p{Script=Thaa}/utf + \x{7b1} + 0: \x{7b1} + +# Script extension check +/^\p{Thaana}/utf + \x{60c} + 0: \x{60c} + +/^\p{Script_Extensions=Thaa}/utf + \x{fdfd} + 0: \x{fdfd} + +# Script extension only character +/^\p{Thaana}/utf + \x{fdf2} + 0: \x{fdf2} + +/^\p{sc=Thaana}/utf + \x{fdf2} +No match + +# Character not in script +/^\p{Thaana}/utf + \x{fdfe} +No match + +# Base script check +/^\p{sc=Yi}/utf + \x{a000} + 0: \x{a000} + +/^\p{Script=Yiii}/utf + \x{a4c6} + 0: \x{a4c6} + +# Script extension check +/^\p{Yi}/utf + \x{3001} + 0: \x{3001} + +/^\p{scx=Yiii}/utf + \x{ff65} + 0: \x{ff65} + +# Script extension only character +/^\p{Yi}/utf + \x{3001} + 0: \x{3001} + +/^\p{sc=Yi}/utf + \x{3001} +No match + +# Character not in script +/^\p{Yi}/utf + \x{ff66} +No match + +# Base script check +/^\p{sc=Nko}/utf + \x{7c0} + 0: \x{7c0} + +/^\p{Script=Nkoo}/utf + \x{7ff} + 0: \x{7ff} + +# Script extension check +/^\p{Nko}/utf + \x{60c} + 0: \x{60c} + +/^\p{Script_Extensions=Nkoo}/utf + \x{fd3f} + 0: \x{fd3f} + +# Script extension only character +/^\p{Nko}/utf + \x{fd3e} + 0: \x{fd3e} + +/^\p{sc=Nko}/utf + \x{fd3e} +No match + +# Character not in script +/^\p{Nko}/utf + \x{fd40} +No match + +# Base script check +/^\p{sc=Phags_Pa}/utf + \x{a840} + 0: \x{a840} + +/^\p{Script=Phag}/utf + \x{a877} + 0: \x{a877} + +# Script extension check +/^\p{Phags_Pa}/utf + \x{1802} + 0: \x{1802} + +/^\p{scx=Phag}/utf + \x{1805} + 0: \x{1805} + +# Script extension only character +/^\p{Phags_Pa}/utf + \x{1802} + 0: \x{1802} + +/^\p{sc=Phags_Pa}/utf + \x{1802} +No match + +# Character not in script +/^\p{Phags_Pa}/utf + \x{a878} +No match + +# Base script check +/^\p{sc=Kayah_Li}/utf + \x{a900} + 0: \x{a900} + +/^\p{Script=Kali}/utf + \x{a92f} + 0: \x{a92f} + +# Script extension check +/^\p{Kayah_Li}/utf + \x{a92e} + 0: \x{a92e} + +/^\p{Script_Extensions=Kali}/utf + \x{a92e} + 0: \x{a92e} + +# Script extension only character +/^\p{Kayah_Li}/utf + \x{a92e} + 0: \x{a92e} + +/^\p{sc=Kayah_Li}/utf + \x{a92e} +No match + +# Character not in script +/^\p{Kayah_Li}/utf + \x{a930} +No match + +# Base script check +/^\p{sc=Javanese}/utf + \x{a980} + 0: \x{a980} + +/^\p{Script=Java}/utf + \x{a9df} + 0: \x{a9df} + +# Script extension check +/^\p{Javanese}/utf + \x{a9cf} + 0: \x{a9cf} + +/^\p{scx=Java}/utf + \x{a9cf} + 0: \x{a9cf} + +# Script extension only character +/^\p{Javanese}/utf + \x{a9cf} + 0: \x{a9cf} + +/^\p{sc=Javanese}/utf + \x{a9cf} +No match + +# Character not in script +/^\p{Javanese}/utf + \x{a9e0} +No match + +# Base script check +/^\p{sc=Kaithi}/utf + \x{11080} + 0: \x{11080} + +/^\p{Script=Kthi}/utf + \x{110cd} + 0: \x{110cd} + +# Script extension check +/^\p{Kaithi}/utf + \x{966} + 0: \x{966} + +/^\p{Script_Extensions=Kthi}/utf + \x{a839} + 0: \x{a839} + +# Script extension only character +/^\p{Kaithi}/utf + \x{966} + 0: \x{966} + +/^\p{sc=Kaithi}/utf + \x{966} +No match + +# Character not in script +/^\p{Kaithi}/utf + \x{110ce} +No match + +# Base script check +/^\p{sc=Mandaic}/utf + \x{840} + 0: \x{840} + +/^\p{Script=Mand}/utf + \x{85e} + 0: \x{85e} + +# Script extension check +/^\p{Mandaic}/utf + \x{640} + 0: \x{640} + +/^\p{scx=Mand}/utf + \x{640} + 0: \x{640} + +# Script extension only character +/^\p{Mandaic}/utf + \x{640} + 0: \x{640} + +/^\p{sc=Mandaic}/utf + \x{640} +No match + +# Character not in script +/^\p{Mandaic}/utf + \x{85f} +No match + +# Base script check +/^\p{sc=Chakma}/utf + \x{11100} + 0: \x{11100} + +/^\p{Script=Cakm}/utf + \x{11147} + 0: \x{11147} + +# Script extension check +/^\p{Chakma}/utf + \x{9e6} + 0: \x{9e6} + +/^\p{Script_Extensions=Cakm}/utf + \x{1049} + 0: \x{1049} + +# Script extension only character +/^\p{Chakma}/utf + \x{9e6} + 0: \x{9e6} + +/^\p{sc=Chakma}/utf + \x{9e6} +No match + +# Character not in script +/^\p{Chakma}/utf + \x{11148} +No match + +# Base script check +/^\p{sc=Sharada}/utf + \x{11180} + 0: \x{11180} + +/^\p{Script=Shrd}/utf + \x{111df} + 0: \x{111df} + +# Script extension check +/^\p{Sharada}/utf + \x{951} + 0: \x{951} + +/^\p{scx=Shrd}/utf + \x{1ce0} + 0: \x{1ce0} + +# Script extension only character +/^\p{Sharada}/utf + \x{1cd7} + 0: \x{1cd7} + +/^\p{sc=Sharada}/utf + \x{1cd7} +No match + +# Character not in script +/^\p{Sharada}/utf + \x{111e0} +No match + +# Base script check +/^\p{sc=Takri}/utf + \x{11680} + 0: \x{11680} + +/^\p{Script=Takr}/utf + \x{116c9} + 0: \x{116c9} + +# Script extension check +/^\p{Takri}/utf + \x{964} + 0: \x{964} + +/^\p{Script_Extensions=Takr}/utf + \x{a839} + 0: \x{a839} + +# Script extension only character +/^\p{Takri}/utf + \x{a836} + 0: \x{a836} + +/^\p{sc=Takri}/utf + \x{a836} +No match + +# Character not in script +/^\p{Takri}/utf + \x{116ca} +No match + +# Base script check +/^\p{sc=Duployan}/utf + \x{1bc00} + 0: \x{1bc00} + +/^\p{Script=Dupl}/utf + \x{1bc9f} + 0: \x{1bc9f} + +# Script extension check +/^\p{Duployan}/utf + \x{1bca0} + 0: \x{1bca0} + +/^\p{scx=Dupl}/utf + \x{1bca3} + 0: \x{1bca3} + +# Script extension only character +/^\p{Duployan}/utf + \x{1bca0} + 0: \x{1bca0} + +/^\p{sc=Duployan}/utf + \x{1bca0} +No match + +# Character not in script +/^\p{Duployan}/utf + \x{1bca4} +No match + +# Base script check +/^\p{sc=Grantha}/utf + \x{11300} + 0: \x{11300} + +/^\p{Script=Gran}/utf + \x{11374} + 0: \x{11374} + +# Script extension check +/^\p{Grantha}/utf + \x{951} + 0: \x{951} + +/^\p{Script_Extensions=Gran}/utf + \x{11fd3} + 0: \x{11fd3} + +# Script extension only character +/^\p{Grantha}/utf + \x{1cd3} + 0: \x{1cd3} + +/^\p{sc=Grantha}/utf + \x{1cd3} +No match + +# Character not in script +/^\p{Grantha}/utf + \x{11fd4} +No match + +# Base script check +/^\p{sc=Khojki}/utf + \x{11200} + 0: \x{11200} + +/^\p{Script=Khoj}/utf + \x{1123e} + 0: \x{1123e} + +# Script extension check +/^\p{Khojki}/utf + \x{ae6} + 0: \x{ae6} + +/^\p{scx=Khoj}/utf + \x{a839} + 0: \x{a839} + +# Script extension only character +/^\p{Khojki}/utf + \x{ae6} + 0: \x{ae6} + +/^\p{sc=Khojki}/utf + \x{ae6} +No match + +# Character not in script +/^\p{Khojki}/utf + \x{1123f} +No match + +# Base script check +/^\p{sc=Khudawadi}/utf + \x{112b0} + 0: \x{112b0} + +/^\p{Script=Sind}/utf + \x{112f9} + 0: \x{112f9} + +# Script extension check +/^\p{Khudawadi}/utf + \x{964} + 0: \x{964} + +/^\p{Script_Extensions=Sind}/utf + \x{a839} + 0: \x{a839} + +# Script extension only character +/^\p{Khudawadi}/utf + \x{a836} + 0: \x{a836} + +/^\p{sc=Khudawadi}/utf + \x{a836} +No match + +# Character not in script +/^\p{Khudawadi}/utf + \x{112fa} +No match + +# Base script check +/^\p{sc=Linear_A}/utf + \x{10600} + 0: \x{10600} + +/^\p{Script=Lina}/utf + \x{10767} + 0: \x{10767} + +# Script extension check +/^\p{Linear_A}/utf + \x{10107} + 0: \x{10107} + +/^\p{scx=Lina}/utf + \x{10133} + 0: \x{10133} + +# Script extension only character +/^\p{Linear_A}/utf + \x{10107} + 0: \x{10107} + +/^\p{sc=Linear_A}/utf + \x{10107} +No match + +# Character not in script +/^\p{Linear_A}/utf + \x{10768} +No match + +# Base script check +/^\p{sc=Mahajani}/utf + \x{11150} + 0: \x{11150} + +/^\p{Script=Mahj}/utf + \x{11176} + 0: \x{11176} + +# Script extension check +/^\p{Mahajani}/utf + \x{964} + 0: \x{964} + +/^\p{Script_Extensions=Mahj}/utf + \x{a839} + 0: \x{a839} + +# Script extension only character +/^\p{Mahajani}/utf + \x{966} + 0: \x{966} + +/^\p{sc=Mahajani}/utf + \x{966} +No match + +# Character not in script +/^\p{Mahajani}/utf + \x{11177} +No match + +# Base script check +/^\p{sc=Manichaean}/utf + \x{10ac0} + 0: \x{10ac0} + +/^\p{Script=Mani}/utf + \x{10af6} + 0: \x{10af6} + +# Script extension check +/^\p{Manichaean}/utf + \x{640} + 0: \x{640} + +/^\p{scx=Mani}/utf + \x{10af2} + 0: \x{10af2} + +# Script extension only character +/^\p{Manichaean}/utf + \x{640} + 0: \x{640} + +/^\p{sc=Manichaean}/utf + \x{640} +No match + +# Character not in script +/^\p{Manichaean}/utf + \x{10af7} +No match + +# Base script check +/^\p{sc=Modi}/utf + \x{11600} + 0: \x{11600} + +/^\p{Script=Modi}/utf + \x{11659} + 0: \x{11659} + +# Script extension check +/^\p{Modi}/utf + \x{a830} + 0: \x{a830} + +/^\p{Script_Extensions=Modi}/utf + \x{a839} + 0: \x{a839} + +# Script extension only character +/^\p{Modi}/utf + \x{a836} + 0: \x{a836} + +/^\p{sc=Modi}/utf + \x{a836} +No match + +# Character not in script +/^\p{Modi}/utf + \x{1165a} +No match + +# Base script check +/^\p{sc=Old_Permic}/utf + \x{10350} + 0: \x{10350} + +/^\p{Script=Perm}/utf + \x{1037a} + 0: \x{1037a} + +# Script extension check +/^\p{Old_Permic}/utf + \x{483} + 0: \x{483} + +/^\p{scx=Perm}/utf + \x{483} + 0: \x{483} + +# Script extension only character +/^\p{Old_Permic}/utf + \x{483} + 0: \x{483} + +/^\p{sc=Old_Permic}/utf + \x{483} +No match + +# Character not in script +/^\p{Old_Permic}/utf + \x{1037b} +No match + +# Base script check +/^\p{sc=Psalter_Pahlavi}/utf + \x{10b80} + 0: \x{10b80} + +/^\p{Script=Phlp}/utf + \x{10baf} + 0: \x{10baf} + +# Script extension check +/^\p{Psalter_Pahlavi}/utf + \x{640} + 0: \x{640} + +/^\p{Script_Extensions=Phlp}/utf + \x{640} + 0: \x{640} + +# Script extension only character +/^\p{Psalter_Pahlavi}/utf + \x{640} + 0: \x{640} + +/^\p{sc=Psalter_Pahlavi}/utf + \x{640} +No match + +# Character not in script +/^\p{Psalter_Pahlavi}/utf + \x{10bb0} +No match + +# Base script check +/^\p{sc=Tirhuta}/utf + \x{11480} + 0: \x{11480} + +/^\p{Script=Tirh}/utf + \x{114d9} + 0: \x{114d9} + +# Script extension check +/^\p{Tirhuta}/utf + \x{951} + 0: \x{951} + +/^\p{scx=Tirh}/utf + \x{a839} + 0: \x{a839} + +# Script extension only character +/^\p{Tirhuta}/utf + \x{1cf2} + 0: \x{1cf2} + +/^\p{sc=Tirhuta}/utf + \x{1cf2} +No match + +# Character not in script +/^\p{Tirhuta}/utf + \x{114da} +No match + +# Base script check +/^\p{sc=Multani}/utf + \x{11280} + 0: \x{11280} + +/^\p{Script=Mult}/utf + \x{112a9} + 0: \x{112a9} + +# Script extension check +/^\p{Multani}/utf + \x{a66} + 0: \x{a66} + +/^\p{Script_Extensions=Mult}/utf + \x{a6f} + 0: \x{a6f} + +# Script extension only character +/^\p{Multani}/utf + \x{a66} + 0: \x{a66} + +/^\p{sc=Multani}/utf + \x{a66} +No match + +# Character not in script +/^\p{Multani}/utf + \x{112aa} +No match + +# Base script check +/^\p{sc=Adlam}/utf + \x{1e900} + 0: \x{1e900} + +/^\p{Script=Adlm}/utf + \x{1e95f} + 0: \x{1e95f} + +# Script extension check +/^\p{Adlam}/utf + \x{61f} + 0: \x{61f} + +/^\p{scx=Adlm}/utf + \x{640} + 0: \x{640} + +# Script extension only character +/^\p{Adlam}/utf + \x{61f} + 0: \x{61f} + +/^\p{sc=Adlam}/utf + \x{61f} +No match + +# Character not in script +/^\p{Adlam}/utf + \x{1e960} +No match + +# Base script check +/^\p{sc=Masaram_Gondi}/utf + \x{11d00} + 0: \x{11d00} + +/^\p{Script=Gonm}/utf + \x{11d59} + 0: \x{11d59} + +# Script extension check +/^\p{Masaram_Gondi}/utf + \x{964} + 0: \x{964} + +/^\p{Script_Extensions=Gonm}/utf + \x{965} + 0: \x{965} + +# Script extension only character +/^\p{Masaram_Gondi}/utf + \x{964} + 0: \x{964} + +/^\p{sc=Masaram_Gondi}/utf + \x{964} +No match + +# Character not in script +/^\p{Masaram_Gondi}/utf + \x{11d5a} +No match + +# Base script check +/^\p{sc=Dogra}/utf + \x{11800} + 0: \x{11800} + +/^\p{Script=Dogr}/utf + \x{1183b} + 0: \x{1183b} + +# Script extension check +/^\p{Dogra}/utf + \x{964} + 0: \x{964} + +/^\p{scx=Dogr}/utf + \x{a839} + 0: \x{a839} + +# Script extension only character +/^\p{Dogra}/utf + \x{966} + 0: \x{966} + +/^\p{sc=Dogra}/utf + \x{966} +No match + +# Character not in script +/^\p{Dogra}/utf + \x{1183c} +No match + +# Base script check +/^\p{sc=Gunjala_Gondi}/utf + \x{11d60} + 0: \x{11d60} + +/^\p{Script=Gong}/utf + \x{11da9} + 0: \x{11da9} + +# Script extension check +/^\p{Gunjala_Gondi}/utf + \x{964} + 0: \x{964} + +/^\p{Script_Extensions=Gong}/utf + \x{965} + 0: \x{965} + +# Script extension only character +/^\p{Gunjala_Gondi}/utf + \x{964} + 0: \x{964} + +/^\p{sc=Gunjala_Gondi}/utf + \x{964} +No match + +# Character not in script +/^\p{Gunjala_Gondi}/utf + \x{11daa} +No match + +# Base script check +/^\p{sc=Hanifi_Rohingya}/utf + \x{10d00} + 0: \x{10d00} + +/^\p{Script=Rohg}/utf + \x{10d39} + 0: \x{10d39} + +# Script extension check +/^\p{Hanifi_Rohingya}/utf + \x{60c} + 0: \x{60c} + +/^\p{scx=Rohg}/utf + \x{6d4} + 0: \x{6d4} + +# Script extension only character +/^\p{Hanifi_Rohingya}/utf + \x{6d4} + 0: \x{6d4} + +/^\p{sc=Hanifi_Rohingya}/utf + \x{6d4} +No match + +# Character not in script +/^\p{Hanifi_Rohingya}/utf + \x{10d3a} +No match + +# Base script check +/^\p{sc=Sogdian}/utf + \x{10f30} + 0: \x{10f30} + +/^\p{Script=Sogd}/utf + \x{10f59} + 0: \x{10f59} + +# Script extension check +/^\p{Sogdian}/utf + \x{640} + 0: \x{640} + +/^\p{Script_Extensions=Sogd}/utf + \x{640} + 0: \x{640} + +# Script extension only character +/^\p{Sogdian}/utf + \x{640} + 0: \x{640} + +/^\p{sc=Sogdian}/utf + \x{640} +No match + +# Character not in script +/^\p{Sogdian}/utf + \x{10f5a} +No match + +# Base script check +/^\p{sc=Nandinagari}/utf + \x{119a0} + 0: \x{119a0} + +/^\p{Script=Nand}/utf + \x{119e4} + 0: \x{119e4} + +# Script extension check +/^\p{Nandinagari}/utf + \x{964} + 0: \x{964} + +/^\p{scx=Nand}/utf + \x{a835} + 0: \x{a835} + +# Script extension only character +/^\p{Nandinagari}/utf + \x{1cfa} + 0: \x{1cfa} + +/^\p{sc=Nandinagari}/utf + \x{1cfa} +No match + +# Character not in script +/^\p{Nandinagari}/utf + \x{119e5} +No match + +# Base script check +/^\p{sc=Yezidi}/utf + \x{10e80} + 0: \x{10e80} + +/^\p{Script=Yezi}/utf + \x{10eb1} + 0: \x{10eb1} + +# Script extension check +/^\p{Yezidi}/utf + \x{60c} + 0: \x{60c} + +/^\p{Script_Extensions=Yezi}/utf + \x{669} + 0: \x{669} + +# Script extension only character +/^\p{Yezidi}/utf + \x{660} + 0: \x{660} + +/^\p{sc=Yezidi}/utf + \x{660} +No match + +# Character not in script +/^\p{Yezidi}/utf + \x{10eb2} +No match + +# Base script check +/^\p{sc=Cypro_Minoan}/utf + \x{12f90} + 0: \x{12f90} + +/^\p{Script=Cpmn}/utf + \x{12ff2} + 0: \x{12ff2} + +# Script extension check +/^\p{Cypro_Minoan}/utf + \x{10100} + 0: \x{10100} + +/^\p{scx=Cpmn}/utf + \x{10101} + 0: \x{10101} + +# Script extension only character +/^\p{Cypro_Minoan}/utf + \x{10100} + 0: \x{10100} + +/^\p{sc=Cypro_Minoan}/utf + \x{10100} +No match + +# Character not in script +/^\p{Cypro_Minoan}/utf + \x{12ff3} +No match + +# Base script check +/^\p{sc=Old_Uyghur}/utf + \x{10f70} + 0: \x{10f70} + +/^\p{Script=Ougr}/utf + \x{10f89} + 0: \x{10f89} + +# Script extension check +/^\p{Old_Uyghur}/utf + \x{640} + 0: \x{640} + +/^\p{Script_Extensions=Ougr}/utf + \x{10af2} + 0: \x{10af2} + +# Script extension only character +/^\p{Old_Uyghur}/utf + \x{10af2} + 0: \x{10af2} + +/^\p{sc=Old_Uyghur}/utf + \x{10af2} +No match + +# Character not in script +/^\p{Old_Uyghur}/utf + \x{10f8a} +No match + +# Base script check +/^\p{sc=Armenian}/utf + \x{531} + 0: \x{531} + +/^\p{Script=Armn}/utf + \x{fb17} + 0: \x{fb17} + +# Character not in script +/^\p{Armenian}/utf + \x{fb18} +No match + +# Base script check +/^\p{sc=Braille}/utf + \x{2800} + 0: \x{2800} + +/^\p{Script=Brai}/utf + \x{28ff} + 0: \x{28ff} + +# Character not in script +/^\p{Braille}/utf + \x{2900} +No match + +# Base script check +/^\p{sc=Canadian_Aboriginal}/utf + \x{1400} + 0: \x{1400} + +/^\p{Script=Cans}/utf + \x{11abf} + 0: \x{11abf} + +# Character not in script +/^\p{Canadian_Aboriginal}/utf + \x{11ac0} +No match + +# Base script check +/^\p{sc=Cherokee}/utf + \x{13a0} + 0: \x{13a0} + +/^\p{Script=Cher}/utf + \x{abbf} + 0: \x{abbf} + +# Character not in script +/^\p{Cherokee}/utf + \x{abc0} +No match + +# Base script check +/^\p{sc=Common}/utf + \x{00} + 0: \x{00} + +/^\p{Script=Zyyy}/utf + \x{e007f} + 0: \x{e007f} + +# Character not in script +/^\p{Common}/utf + \x{e0080} +No match + +# Base script check +/^\p{sc=Deseret}/utf + \x{10400} + 0: \x{10400} + +/^\p{Script=Dsrt}/utf + \x{1044f} + 0: \x{1044f} + +# Character not in script +/^\p{Deseret}/utf + \x{10450} +No match + +# Base script check +/^\p{sc=Ethiopic}/utf + \x{1200} + 0: \x{1200} + +/^\p{Script=Ethi}/utf + \x{1e7fe} + 0: \x{1e7fe} + +# Character not in script +/^\p{Ethiopic}/utf + \x{1e7ff} +No match + +# Base script check +/^\p{sc=Gothic}/utf + \x{10330} + 0: \x{10330} + +/^\p{Script=Goth}/utf + \x{1034a} + 0: \x{1034a} + +# Character not in script +/^\p{Gothic}/utf + \x{1034b} +No match + +# Base script check +/^\p{sc=Hebrew}/utf + \x{591} + 0: \x{591} + +/^\p{Script=Hebr}/utf + \x{fb4f} + 0: \x{fb4f} + +# Character not in script +/^\p{Hebrew}/utf + \x{fb50} +No match + +# Base script check +/^\p{sc=Inherited}/utf + \x{300} + 0: \x{300} + +/^\p{Script=Zinh}/utf + \x{e01ef} + 0: \x{e01ef} + +# Character not in script +/^\p{Inherited}/utf + \x{e01f0} +No match + +# Base script check +/^\p{sc=Kharoshthi}/utf + \x{10a00} + 0: \x{10a00} + +/^\p{Script=Khar}/utf + \x{10a58} + 0: \x{10a58} + +# Character not in script +/^\p{Kharoshthi}/utf + \x{10a59} +No match + +# Base script check +/^\p{sc=Khmer}/utf + \x{1780} + 0: \x{1780} + +/^\p{Script=Khmr}/utf + \x{19ff} + 0: \x{19ff} + +# Character not in script +/^\p{Khmer}/utf + \x{1a00} +No match + +# Base script check +/^\p{sc=Lao}/utf + \x{e81} + 0: \x{e81} + +/^\p{Script=Laoo}/utf + \x{edf} + 0: \x{edf} + +# Character not in script +/^\p{Lao}/utf + \x{ee0} +No match + +# Base script check +/^\p{sc=New_Tai_Lue}/utf + \x{1980} + 0: \x{1980} + +/^\p{Script=Talu}/utf + \x{19df} + 0: \x{19df} + +# Character not in script +/^\p{New_Tai_Lue}/utf + \x{19e0} +No match + +# Base script check +/^\p{sc=Ogham}/utf + \x{1680} + 0: \x{1680} + +/^\p{Script=Ogam}/utf + \x{169c} + 0: \x{169c} + +# Character not in script +/^\p{Ogham}/utf + \x{169d} +No match + +# Base script check +/^\p{sc=Old_Italic}/utf + \x{10300} + 0: \x{10300} + +/^\p{Script=Ital}/utf + \x{1032f} + 0: \x{1032f} + +# Character not in script +/^\p{Old_Italic}/utf + \x{10330} +No match + +# Base script check +/^\p{sc=Old_Persian}/utf + \x{103a0} + 0: \x{103a0} + +/^\p{Script=Xpeo}/utf + \x{103d5} + 0: \x{103d5} + +# Character not in script +/^\p{Old_Persian}/utf + \x{103d6} +No match + +# Base script check +/^\p{sc=Osmanya}/utf + \x{10480} + 0: \x{10480} + +/^\p{Script=Osma}/utf + \x{104a9} + 0: \x{104a9} + +# Character not in script +/^\p{Osmanya}/utf + \x{104aa} +No match + +# Base script check +/^\p{sc=Runic}/utf + \x{16a0} + 0: \x{16a0} + +/^\p{Script=Runr}/utf + \x{16f8} + 0: \x{16f8} + +# Character not in script +/^\p{Runic}/utf + \x{16f9} +No match + +# Base script check +/^\p{sc=Shavian}/utf + \x{10450} + 0: \x{10450} + +/^\p{Script=Shaw}/utf + \x{1047f} + 0: \x{1047f} + +# Character not in script +/^\p{Shavian}/utf + \x{10480} +No match + +# Base script check +/^\p{sc=Thai}/utf + \x{e01} + 0: \x{e01} + +/^\p{Script=Thai}/utf + \x{e5b} + 0: \x{e5b} + +# Character not in script +/^\p{Thai}/utf + \x{e5c} +No match + +# Base script check +/^\p{sc=Tibetan}/utf + \x{f00} + 0: \x{f00} + +/^\p{Script=Tibt}/utf + \x{fda} + 0: \x{fda} + +# Character not in script +/^\p{Tibetan}/utf + \x{fdb} +No match + +# Base script check +/^\p{sc=Tifinagh}/utf + \x{2d30} + 0: \x{2d30} + +/^\p{Script=Tfng}/utf + \x{2d7f} + 0: \x{2d7f} + +# Character not in script +/^\p{Tifinagh}/utf + \x{2d80} +No match + +# Base script check +/^\p{sc=Ugaritic}/utf + \x{10380} + 0: \x{10380} + +/^\p{Script=Ugar}/utf + \x{1039f} + 0: \x{1039f} + +# Character not in script +/^\p{Ugaritic}/utf + \x{103a0} +No match + +# Base script check +/^\p{sc=Balinese}/utf + \x{1b00} + 0: \x{1b00} + +/^\p{Script=Bali}/utf + \x{1b7e} + 0: \x{1b7e} + +# Character not in script +/^\p{Balinese}/utf + \x{1b7f} +No match + +# Base script check +/^\p{sc=Cuneiform}/utf + \x{12000} + 0: \x{12000} + +/^\p{Script=Xsux}/utf + \x{12543} + 0: \x{12543} + +# Character not in script +/^\p{Cuneiform}/utf + \x{12544} +No match + +# Base script check +/^\p{sc=Phoenician}/utf + \x{10900} + 0: \x{10900} + +/^\p{Script=Phnx}/utf + \x{1091f} + 0: \x{1091f} + +# Character not in script +/^\p{Phoenician}/utf + \x{10920} +No match + +# Base script check +/^\p{sc=Carian}/utf + \x{102a0} + 0: \x{102a0} + +/^\p{Script=Cari}/utf + \x{102d0} + 0: \x{102d0} + +# Character not in script +/^\p{Carian}/utf + \x{102d1} +No match + +# Base script check +/^\p{sc=Cham}/utf + \x{aa00} + 0: \x{aa00} + +/^\p{Script=Cham}/utf + \x{aa5f} + 0: \x{aa5f} + +# Character not in script +/^\p{Cham}/utf + \x{aa60} +No match + +# Base script check +/^\p{sc=Lepcha}/utf + \x{1c00} + 0: \x{1c00} + +/^\p{Script=Lepc}/utf + \x{1c4f} + 0: \x{1c4f} + +# Character not in script +/^\p{Lepcha}/utf + \x{1c50} +No match + +# Base script check +/^\p{sc=Lycian}/utf + \x{10280} + 0: \x{10280} + +/^\p{Script=Lyci}/utf + \x{1029c} + 0: \x{1029c} + +# Character not in script +/^\p{Lycian}/utf + \x{1029d} +No match + +# Base script check +/^\p{sc=Lydian}/utf + \x{10920} + 0: \x{10920} + +/^\p{Script=Lydi}/utf + \x{1093f} + 0: \x{1093f} + +# Character not in script +/^\p{Lydian}/utf + \x{10940} +No match + +# Base script check +/^\p{sc=Ol_Chiki}/utf + \x{1c50} + 0: \x{1c50} + +/^\p{Script=Olck}/utf + \x{1c7f} + 0: \x{1c7f} + +# Character not in script +/^\p{Ol_Chiki}/utf + \x{1c80} +No match + +# Base script check +/^\p{sc=Rejang}/utf + \x{a930} + 0: \x{a930} + +/^\p{Script=Rjng}/utf + \x{a95f} + 0: \x{a95f} + +# Character not in script +/^\p{Rejang}/utf + \x{a960} +No match + +# Base script check +/^\p{sc=Saurashtra}/utf + \x{a880} + 0: \x{a880} + +/^\p{Script=Saur}/utf + \x{a8d9} + 0: \x{a8d9} + +# Character not in script +/^\p{Saurashtra}/utf + \x{a8da} +No match + +# Base script check +/^\p{sc=Sundanese}/utf + \x{1b80} + 0: \x{1b80} + +/^\p{Script=Sund}/utf + \x{1cc7} + 0: \x{1cc7} + +# Character not in script +/^\p{Sundanese}/utf + \x{1cc8} +No match + +# Base script check +/^\p{sc=Vai}/utf + \x{a500} + 0: \x{a500} + +/^\p{Script=Vaii}/utf + \x{a62b} + 0: \x{a62b} + +# Character not in script +/^\p{Vai}/utf + \x{a62c} +No match + +# Base script check +/^\p{sc=Avestan}/utf + \x{10b00} + 0: \x{10b00} + +/^\p{Script=Avst}/utf + \x{10b3f} + 0: \x{10b3f} + +# Character not in script +/^\p{Avestan}/utf + \x{10b40} +No match + +# Base script check +/^\p{sc=Bamum}/utf + \x{a6a0} + 0: \x{a6a0} + +/^\p{Script=Bamu}/utf + \x{16a38} + 0: \x{16a38} + +# Character not in script +/^\p{Bamum}/utf + \x{16a39} +No match + +# Base script check +/^\p{sc=Egyptian_Hieroglyphs}/utf + \x{13000} + 0: \x{13000} + +/^\p{Script=Egyp}/utf + \x{13438} + 0: \x{13438} + +# Character not in script +/^\p{Egyptian_Hieroglyphs}/utf + \x{13439} +No match + +# Base script check +/^\p{sc=Imperial_Aramaic}/utf + \x{10840} + 0: \x{10840} + +/^\p{Script=Armi}/utf + \x{1085f} + 0: \x{1085f} + +# Character not in script +/^\p{Imperial_Aramaic}/utf + \x{10860} +No match + +# Base script check +/^\p{sc=Inscriptional_Pahlavi}/utf + \x{10b60} + 0: \x{10b60} + +/^\p{Script=Phli}/utf + \x{10b7f} + 0: \x{10b7f} + +# Character not in script +/^\p{Inscriptional_Pahlavi}/utf + \x{10b80} +No match + +# Base script check +/^\p{sc=Inscriptional_Parthian}/utf + \x{10b40} + 0: \x{10b40} + +/^\p{Script=Prti}/utf + \x{10b5f} + 0: \x{10b5f} + +# Character not in script +/^\p{Inscriptional_Parthian}/utf + \x{10b60} +No match + +# Base script check +/^\p{sc=Lisu}/utf + \x{a4d0} + 0: \x{a4d0} + +/^\p{Script=Lisu}/utf + \x{11fb0} + 0: \x{11fb0} + +# Character not in script +/^\p{Lisu}/utf + \x{11fb1} +No match + +# Base script check +/^\p{sc=Meetei_Mayek}/utf + \x{aae0} + 0: \x{aae0} + +/^\p{Script=Mtei}/utf + \x{abf9} + 0: \x{abf9} + +# Character not in script +/^\p{Meetei_Mayek}/utf + \x{abfa} +No match + +# Base script check +/^\p{sc=Old_South_Arabian}/utf + \x{10a60} + 0: \x{10a60} + +/^\p{Script=Sarb}/utf + \x{10a7f} + 0: \x{10a7f} + +# Character not in script +/^\p{Old_South_Arabian}/utf + \x{10a80} +No match + +# Base script check +/^\p{sc=Old_Turkic}/utf + \x{10c00} + 0: \x{10c00} + +/^\p{Script=Orkh}/utf + \x{10c48} + 0: \x{10c48} + +# Character not in script +/^\p{Old_Turkic}/utf + \x{10c49} +No match + +# Base script check +/^\p{sc=Samaritan}/utf + \x{800} + 0: \x{800} + +/^\p{Script=Samr}/utf + \x{83e} + 0: \x{83e} + +# Character not in script +/^\p{Samaritan}/utf + \x{83f} +No match + +# Base script check +/^\p{sc=Tai_Tham}/utf + \x{1a20} + 0: \x{1a20} + +/^\p{Script=Lana}/utf + \x{1aad} + 0: \x{1aad} + +# Character not in script +/^\p{Tai_Tham}/utf + \x{1aae} +No match + +# Base script check +/^\p{sc=Tai_Viet}/utf + \x{aa80} + 0: \x{aa80} + +/^\p{Script=Tavt}/utf + \x{aadf} + 0: \x{aadf} + +# Character not in script +/^\p{Tai_Viet}/utf + \x{aae0} +No match + +# Base script check +/^\p{sc=Batak}/utf + \x{1bc0} + 0: \x{1bc0} + +/^\p{Script=Batk}/utf + \x{1bff} + 0: \x{1bff} + +# Character not in script +/^\p{Batak}/utf + \x{1c00} +No match + +# Base script check +/^\p{sc=Brahmi}/utf + \x{11000} + 0: \x{11000} + +/^\p{Script=Brah}/utf + \x{1107f} + 0: \x{1107f} + +# Character not in script +/^\p{Brahmi}/utf + \x{11080} +No match + +# Base script check +/^\p{sc=Meroitic_Cursive}/utf + \x{109a0} + 0: \x{109a0} + +/^\p{Script=Merc}/utf + \x{109ff} + 0: \x{109ff} + +# Character not in script +/^\p{Meroitic_Cursive}/utf + \x{10a00} +No match + +# Base script check +/^\p{sc=Meroitic_Hieroglyphs}/utf + \x{10980} + 0: \x{10980} + +/^\p{Script=Mero}/utf + \x{1099f} + 0: \x{1099f} + +# Character not in script +/^\p{Meroitic_Hieroglyphs}/utf + \x{109a0} +No match + +# Base script check +/^\p{sc=Miao}/utf + \x{16f00} + 0: \x{16f00} + +/^\p{Script=Plrd}/utf + \x{16f9f} + 0: \x{16f9f} + +# Character not in script +/^\p{Miao}/utf + \x{16fa0} +No match + +# Base script check +/^\p{sc=Sora_Sompeng}/utf + \x{110d0} + 0: \x{110d0} + +/^\p{Script=Sora}/utf + \x{110f9} + 0: \x{110f9} + +# Character not in script +/^\p{Sora_Sompeng}/utf + \x{110fa} +No match + +# Base script check +/^\p{sc=Bassa_Vah}/utf + \x{16ad0} + 0: \x{16ad0} + +/^\p{Script=Bass}/utf + \x{16af5} + 0: \x{16af5} + +# Character not in script +/^\p{Bassa_Vah}/utf + \x{16af6} +No match + +# Base script check +/^\p{sc=Caucasian_Albanian}/utf + \x{10530} + 0: \x{10530} + +/^\p{Script=Aghb}/utf + \x{1056f} + 0: \x{1056f} + +# Character not in script +/^\p{Caucasian_Albanian}/utf + \x{10570} +No match + +# Base script check +/^\p{sc=Elbasan}/utf + \x{10500} + 0: \x{10500} + +/^\p{Script=Elba}/utf + \x{10527} + 0: \x{10527} + +# Character not in script +/^\p{Elbasan}/utf + \x{10528} +No match + +# Base script check +/^\p{sc=Mende_Kikakui}/utf + \x{1e800} + 0: \x{1e800} + +/^\p{Script=Mend}/utf + \x{1e8d6} + 0: \x{1e8d6} + +# Character not in script +/^\p{Mende_Kikakui}/utf + \x{1e8d7} +No match + +# Base script check +/^\p{sc=Mro}/utf + \x{16a40} + 0: \x{16a40} + +/^\p{Script=Mroo}/utf + \x{16a6f} + 0: \x{16a6f} + +# Character not in script +/^\p{Mro}/utf + \x{16a70} +No match + +# Base script check +/^\p{sc=Nabataean}/utf + \x{10880} + 0: \x{10880} + +/^\p{Script=Nbat}/utf + \x{108af} + 0: \x{108af} + +# Character not in script +/^\p{Nabataean}/utf + \x{108b0} +No match + +# Base script check +/^\p{sc=Old_North_Arabian}/utf + \x{10a80} + 0: \x{10a80} + +/^\p{Script=Narb}/utf + \x{10a9f} + 0: \x{10a9f} + +# Character not in script +/^\p{Old_North_Arabian}/utf + \x{10aa0} +No match + +# Base script check +/^\p{sc=Pahawh_Hmong}/utf + \x{16b00} + 0: \x{16b00} + +/^\p{Script=Hmng}/utf + \x{16b8f} + 0: \x{16b8f} + +# Character not in script +/^\p{Pahawh_Hmong}/utf + \x{16b90} +No match + +# Base script check +/^\p{sc=Palmyrene}/utf + \x{10860} + 0: \x{10860} + +/^\p{Script=Palm}/utf + \x{1087f} + 0: \x{1087f} + +# Character not in script +/^\p{Palmyrene}/utf + \x{10880} +No match + +# Base script check +/^\p{sc=Pau_Cin_Hau}/utf + \x{11ac0} + 0: \x{11ac0} + +/^\p{Script=Pauc}/utf + \x{11af8} + 0: \x{11af8} + +# Character not in script +/^\p{Pau_Cin_Hau}/utf + \x{11af9} +No match + +# Base script check +/^\p{sc=Siddham}/utf + \x{11580} + 0: \x{11580} + +/^\p{Script=Sidd}/utf + \x{115dd} + 0: \x{115dd} + +# Character not in script +/^\p{Siddham}/utf + \x{115de} +No match + +# Base script check +/^\p{sc=Warang_Citi}/utf + \x{118a0} + 0: \x{118a0} + +/^\p{Script=Wara}/utf + \x{118ff} + 0: \x{118ff} + +# Character not in script +/^\p{Warang_Citi}/utf + \x{11900} +No match + +# Base script check +/^\p{sc=Ahom}/utf + \x{11700} + 0: \x{11700} + +/^\p{Script=Ahom}/utf + \x{11746} + 0: \x{11746} + +# Character not in script +/^\p{Ahom}/utf + \x{11747} +No match + +# Base script check +/^\p{sc=Anatolian_Hieroglyphs}/utf + \x{14400} + 0: \x{14400} + +/^\p{Script=Hluw}/utf + \x{14646} + 0: \x{14646} + +# Character not in script +/^\p{Anatolian_Hieroglyphs}/utf + \x{14647} +No match + +# Base script check +/^\p{sc=Hatran}/utf + \x{108e0} + 0: \x{108e0} + +/^\p{Script=Hatr}/utf + \x{108ff} + 0: \x{108ff} + +# Character not in script +/^\p{Hatran}/utf + \x{10900} +No match + +# Base script check +/^\p{sc=Old_Hungarian}/utf + \x{10c80} + 0: \x{10c80} + +/^\p{Script=Hung}/utf + \x{10cff} + 0: \x{10cff} + +# Character not in script +/^\p{Old_Hungarian}/utf + \x{10d00} +No match + +# Base script check +/^\p{sc=SignWriting}/utf + \x{1d800} + 0: \x{1d800} + +/^\p{Script=Sgnw}/utf + \x{1daaf} + 0: \x{1daaf} + +# Character not in script +/^\p{SignWriting}/utf + \x{1dab0} +No match + +# Base script check +/^\p{sc=Bhaiksuki}/utf + \x{11c00} + 0: \x{11c00} + +/^\p{Script=Bhks}/utf + \x{11c6c} + 0: \x{11c6c} + +# Character not in script +/^\p{Bhaiksuki}/utf + \x{11c6d} +No match + +# Base script check +/^\p{sc=Marchen}/utf + \x{11c70} + 0: \x{11c70} + +/^\p{Script=Marc}/utf + \x{11cb6} + 0: \x{11cb6} + +# Character not in script +/^\p{Marchen}/utf + \x{11cb7} +No match + +# Base script check +/^\p{sc=Newa}/utf + \x{11400} + 0: \x{11400} + +/^\p{Script=Newa}/utf + \x{11461} + 0: \x{11461} + +# Character not in script +/^\p{Newa}/utf + \x{11462} +No match + +# Base script check +/^\p{sc=Osage}/utf + \x{104b0} + 0: \x{104b0} + +/^\p{Script=Osge}/utf + \x{104fb} + 0: \x{104fb} + +# Character not in script +/^\p{Osage}/utf + \x{104fc} +No match + +# Base script check +/^\p{sc=Tangut}/utf + \x{16fe0} + 0: \x{16fe0} + +/^\p{Script=Tang}/utf + \x{18d08} + 0: \x{18d08} + +# Character not in script +/^\p{Tangut}/utf + \x{18d09} +No match + +# Base script check +/^\p{sc=Nushu}/utf + \x{16fe1} + 0: \x{16fe1} + +/^\p{Script=Nshu}/utf + \x{1b2fb} + 0: \x{1b2fb} + +# Character not in script +/^\p{Nushu}/utf + \x{1b2fc} +No match + +# Base script check +/^\p{sc=Soyombo}/utf + \x{11a50} + 0: \x{11a50} + +/^\p{Script=Soyo}/utf + \x{11aa2} + 0: \x{11aa2} + +# Character not in script +/^\p{Soyombo}/utf + \x{11aa3} +No match + +# Base script check +/^\p{sc=Zanabazar_Square}/utf + \x{11a00} + 0: \x{11a00} + +/^\p{Script=Zanb}/utf + \x{11a47} + 0: \x{11a47} + +# Character not in script +/^\p{Zanabazar_Square}/utf + \x{11a48} +No match + +# Base script check +/^\p{sc=Makasar}/utf + \x{11ee0} + 0: \x{11ee0} + +/^\p{Script=Maka}/utf + \x{11ef8} + 0: \x{11ef8} + +# Character not in script +/^\p{Makasar}/utf + \x{11ef9} +No match + +# Base script check +/^\p{sc=Medefaidrin}/utf + \x{16e40} + 0: \x{16e40} + +/^\p{Script=Medf}/utf + \x{16e9a} + 0: \x{16e9a} + +# Character not in script +/^\p{Medefaidrin}/utf + \x{16e9b} +No match + +# Base script check +/^\p{sc=Old_Sogdian}/utf + \x{10f00} + 0: \x{10f00} + +/^\p{Script=Sogo}/utf + \x{10f27} + 0: \x{10f27} + +# Character not in script +/^\p{Old_Sogdian}/utf + \x{10f28} +No match + +# Base script check +/^\p{sc=Elymaic}/utf + \x{10fe0} + 0: \x{10fe0} + +/^\p{Script=Elym}/utf + \x{10ff6} + 0: \x{10ff6} + +# Character not in script +/^\p{Elymaic}/utf + \x{10ff7} +No match + +# Base script check +/^\p{sc=Nyiakeng_Puachue_Hmong}/utf + \x{1e100} + 0: \x{1e100} + +/^\p{Script=Hmnp}/utf + \x{1e14f} + 0: \x{1e14f} + +# Character not in script +/^\p{Nyiakeng_Puachue_Hmong}/utf + \x{1e150} +No match + +# Base script check +/^\p{sc=Wancho}/utf + \x{1e2c0} + 0: \x{1e2c0} + +/^\p{Script=Wcho}/utf + \x{1e2ff} + 0: \x{1e2ff} + +# Character not in script +/^\p{Wancho}/utf + \x{1e300} +No match + +# Base script check +/^\p{sc=Chorasmian}/utf + \x{10fb0} + 0: \x{10fb0} + +/^\p{Script=Chrs}/utf + \x{10fcb} + 0: \x{10fcb} + +# Character not in script +/^\p{Chorasmian}/utf + \x{10fcc} +No match + +# Base script check +/^\p{sc=Dives_Akuru}/utf + \x{11900} + 0: \x{11900} + +/^\p{Script=Diak}/utf + \x{11959} + 0: \x{11959} + +# Character not in script +/^\p{Dives_Akuru}/utf + \x{1195a} +No match + +# Base script check +/^\p{sc=Khitan_Small_Script}/utf + \x{16fe4} + 0: \x{16fe4} + +/^\p{Script=Kits}/utf + \x{18cd5} + 0: \x{18cd5} + +# Character not in script +/^\p{Khitan_Small_Script}/utf + \x{18cd6} +No match + +# Base script check +/^\p{sc=Tangsa}/utf + \x{16a70} + 0: \x{16a70} + +/^\p{Script=Tngs}/utf + \x{16ac9} + 0: \x{16ac9} + +# Character not in script +/^\p{Tangsa}/utf + \x{16aca} +No match + +# Base script check +/^\p{sc=Toto}/utf + \x{1e290} + 0: \x{1e290} + +/^\p{Script=Toto}/utf + \x{1e2ae} + 0: \x{1e2ae} + +# Character not in script +/^\p{Toto}/utf + \x{1e2af} +No match + +# Base script check +/^\p{sc=Vithkuqi}/utf + \x{10570} + 0: \x{10570} + +/^\p{Script=Vith}/utf + \x{105bc} + 0: \x{105bc} + +# Character not in script +/^\p{Vithkuqi}/utf + \x{105bd} +No match + +# End of testinput26