summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/API160
-rw-r--r--doc/API.ja152
-rw-r--r--doc/RE9
-rw-r--r--doc/RE.ja24
-rw-r--r--doc/SYNTAX.md9
-rw-r--r--doc/UNICODE_PROPERTIES2
6 files changed, 336 insertions, 20 deletions
diff --git a/doc/API b/doc/API
index 2309e5e..43d5338 100644
--- a/doc/API
+++ b/doc/API
@@ -1,4 +1,4 @@
-Oniguruma API Version 6.9.2 2019/03/25
+Oniguruma API Version 6.9.4 2019/09/30
#include <oniguruma.h>
@@ -168,6 +168,9 @@ Oniguruma API Version 6.9.2 2019/03/25
# int onig_new_deluxe(regex_t** reg, const UChar* pattern, const UChar* pattern_end,
OnigCompileInfo* ci, OnigErrorInfo* einfo)
+ This function is deprecated, and it does not allow the case where
+ the encoding of pattern and target is different.
+
Create a regex object.
This function is deluxe version of onig_new().
@@ -299,9 +302,11 @@ Oniguruma API Version 6.9.2 2019/03/25
const UChar* range, OnigRegion* region, OnigOptionType option)
Search string and return search result and matching region.
+ Do not pass invalid byte string in the regex character encoding.
normal return: match position offset (i.e. p - str >= 0)
not found: ONIG_MISMATCH (< 0)
+ error: error code (< 0)
arguments
1 reg: regex object
@@ -323,18 +328,23 @@ Oniguruma API Version 6.9.2 2019/03/25
const UChar* start, const UChar* range, OnigRegion* region,
OnigOptionType option, OnigMatchParam* mp)
- arguments
- 1-7: same as onig_search()
- 8 mp: match parameter values (match_stack_limit, retry_limit_in_match)
+ Search string and return search result and matching region.
+ Do not pass invalid byte string in the regex character encoding.
+
+ arguments
+ 1-7: same as onig_search()
+ 8 mp: match parameter values (match_stack_limit, retry_limit_in_match)
# int onig_match(regex_t* reg, const UChar* str, const UChar* end, const UChar* at,
OnigRegion* region, OnigOptionType option)
Match string and return result and matching region.
+ Do not pass invalid byte string in the regex character encoding.
normal return: match length (>= 0)
- not match: ONIG_MISMATCH ( < 0)
+ not match: ONIG_MISMATCH (< 0)
+ error: error code (< 0)
arguments
1 reg: regex object
@@ -353,6 +363,9 @@ Oniguruma API Version 6.9.2 2019/03/25
const UChar* at, OnigRegion* region,
OnigOptionType option, OnigMatchParam* mp)
+ Match string and return result and matching region.
+ Do not pass invalid byte string in the regex character encoding.
+
arguments
1-6: same as onig_match()
7 mp: match parameter values (match_stack_limit, retry_limit_in_match)
@@ -364,6 +377,7 @@ Oniguruma API Version 6.9.2 2019/03/25
void* callback_arg)
Scan string and callback with matching region.
+ Do not pass invalid byte string in the regex character encoding.
normal return: number of matching times
error: error code
@@ -379,6 +393,136 @@ Oniguruma API Version 6.9.2 2019/03/25
7 callback_arg: optional argument passed to callback
+# int onig_regset_new(OnigRegSet** rset, int n, regex_t* regs[])
+
+ Create a regset object.
+ All regex objects must have the same character encoding.
+ All regex objects are prohibited from having the ONIG_OPTION_FIND_LONGEST option.
+
+ arguments
+ 1 rset: return address of regset object
+ 2 n: number of regex in regs
+ 3 regs: array of regex
+
+ normal return: ONIG_NORMAL
+
+
+# int onig_regset_add(OnigRegSet* set, regex_t* reg)
+
+ Add a regex into regset.
+ The regex object must have the same character encoding with the regset.
+ The regex object is prohibited from having the ONIG_OPTION_FIND_LONGEST option.
+
+ arguments
+ 1 set: regset object
+ 2 reg: regex object
+
+ normal return: ONIG_NORMAL
+
+
+# int onig_regset_replace(OnigRegSet* set, int at, regex_t* reg)
+
+ Replace a regex in regset with another one.
+ If the reg argument value is NULL, then remove at-th regex. (and indexes of other regexes are changed)
+
+ arguments
+ 1 set: regset object
+ 2 at: index of regex (zero origin)
+ 3 reg: regex object
+
+ normal return: ONIG_NORMAL
+
+
+# void onig_regset_free(OnigRegSet* set)
+
+ Free memory used by regset object and regex objects in the regset.
+ If the same regex object is registered twice, the situation becomes destructive.
+
+ arguments
+ 1 set: regset object
+
+
+# int onig_regset_number_of_regex(OnigRegSet* set)
+
+ Returns number of regex objects in the regset.
+
+ arguments
+ 1 set: regset object
+
+
+# regex_t* onig_regset_get_regex(OnigRegSet* set, int at)
+
+ Returns the regex object corresponding to the at-th regex.
+
+ arguments
+ 1 set: regset object
+ 2 at: index of regex array (zero origin)
+
+
+# OnigRegion* onig_regset_get_region(OnigRegSet* set, int at)
+
+ Returns the region object corresponding to the at-th regex.
+
+ arguments
+ 1 set: regset object
+ 2 at: index of regex array (zero origin)
+
+
+# int onig_regset_search(OnigRegSet* set, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegSetLead lead, OnigOptionType option, int* rmatch_pos)
+
+ Perform a search with regset.
+
+ return value:
+ normal return: index of match regex (zero origin)
+ not found: ONIG_MISMATCH (< 0)
+ error: error code (< 0)
+
+ arguments
+ 1 set: regset object
+ 2 str: target string
+ 3 end: terminate address of target string
+ 4 start: search start address of target string
+ 5 range: search terminate address of target string
+ 6 lead: outer loop element
+ ONIG_REGSET_POSITION_LEAD (returns most left position)
+ ONIG_REGSET_REGEX_LEAD (returns most left position)
+ ONIG_REGSET_PRIORITY_TO_REGEX_ORDER (returns first match regex)
+ 7 option: search time option
+ ONIG_OPTION_NOTBOL string head(str) isn't considered as begin of line
+ ONIG_OPTION_NOTEOL string end (end) isn't considered as end of line
+ 8 rmatch_pos: return address of match position (match_address - str)
+
+ * ONIG_REGSET_POSITION_LEAD and ONIG_REGSET_REGEX_LEAD return the same result.
+ These differences only appear in search time.
+ In most cases, ONIG_REGSET_POSITION_LEAD seems to be faster.
+
+
+# int onig_regset_search_with_param(OnigRegSet* set, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegSetLead lead, OnigOptionType option, OnigMatchParam* mps[], int* rmatch_pos)
+
+ Perform a search with regset and match-params.
+
+ return value:
+ normal return: index of match regex (zero origin)
+ not found: ONIG_MISMATCH (< 0)
+ error: error code (< 0)
+
+ arguments
+ 1 set: regset object
+ 2 str: target string
+ 3 end: terminate address of target string
+ 4 start: search start address of target string
+ 5 range: search terminate address of target string
+ 6 lead: outer loop element
+ ONIG_REGSET_POSITION_LEAD (returns most left position)
+ ONIG_REGSET_REGEX_LEAD (returns most left position)
+ ONIG_REGSET_PRIORITY_TO_REGEX_ORDER (returns first match regex)
+ 7 option: search time option
+ ONIG_OPTION_NOTBOL string head(str) isn't considered as begin of line
+ ONIG_OPTION_NOTEOL string end (end) isn't considered as end of line
+ 8 mps: array of match-params
+ 9 rmatch_pos: return address of match position (match_address - str)
+
+
# OnigRegion* onig_region_new(void)
Create a region.
@@ -611,14 +755,20 @@ Oniguruma API Version 6.9.2 2019/03/25
# int onigenc_strlen(OnigEncoding enc, const UChar* s, const UChar* end)
+
+ Return number of characters in the string.
+
+
# int onigenc_strlen_null(OnigEncoding enc, const UChar* s)
Return number of characters in the string.
+ Do not pass invalid byte string in the character encoding.
# int onigenc_str_bytelen_null(OnigEncoding enc, const UChar* s)
Return number of bytes in the string.
+ Do not pass invalid byte string in the character encoding.
# int onig_set_default_syntax(OnigSyntaxType* syntax)
diff --git a/doc/API.ja b/doc/API.ja
index 164d0b8..10ee1cd 100644
--- a/doc/API.ja
+++ b/doc/API.ja
@@ -1,4 +1,4 @@
-鬼車インターフェース Version 6.9.2 2019/03/29
+鬼車インターフェース Version 6.9.4 2019/09/30
#include <oniguruma.h>
@@ -167,6 +167,9 @@
# int onig_new_deluxe(regex_t** reg, const UChar* pattern, const UChar* pattern_end,
OnigCompileInfo* ci, OnigErrorInfo* einfo)
+ この関数は廃止予定。
+ パターンと対象文字列の文字エンコーディングが異なる場合を許さなくなった。
+
正規表現オブジェクト(regex)を作成する。
この関数は、onig_new()のデラックス版。
@@ -298,6 +301,7 @@
const UChar* range, OnigRegion* region, OnigOptionType option)
正規表現で文字列を検索し、検索結果とマッチ領域を返す。
+ 正規表現オブジェクトの文字エンコーディングで、検索文字列として不正な文字列を渡してはいけない。
正常終了戻り値: マッチ位置 (p - str >= 0)
検索失敗: ONIG_MISMATCH (< 0)
@@ -322,6 +326,9 @@
const UChar* start, const UChar* range, OnigRegion* region,
OnigOptionType option, OnigMatchParam* mp)
+ 正規表現で文字列を検索し、検索結果とマッチ領域を返す。
+ 正規表現オブジェクトの文字エンコーディングで、検索文字列として不正な文字列を渡してはいけない。
+
引数
1-7: onig_search()と同じ
8 mp: マッチパラメタ値 (match_stack_limit, retry_limit_in_match)
@@ -331,6 +338,7 @@
const UChar* at, OnigRegion* region, OnigOptionType option)
文字列の指定位置でマッチングを行い、結果とマッチ領域を返す。
+ 正規表現オブジェクトの文字エンコーディングで、検索文字列として不正な文字列を渡してはいけない。
正常終了戻り値: マッチしたバイト長 (>= 0)
not match: ONIG_MISMATCH ( < 0)
@@ -352,6 +360,9 @@
const UChar* at, OnigRegion* region,
OnigOptionType option, OnigMatchParam* mp)
+ 文字列の指定位置でマッチングを行い、結果とマッチ領域を返す。
+ 正規表現オブジェクトの文字エンコーディングで、検索文字列として不正な文字列を渡してはいけない。
+
引数
1-6: onig_match()と同じ
7 mp: マッチパラメタ値 (match_stack_limit, retry_limit_in_match)
@@ -363,6 +374,7 @@
void* callback_arg)
正規表現で文字列をスキャンして、マッチングする毎にコールバック関数を呼び出す。
+ 正規表現オブジェクトの文字エンコーディングで、検索文字列として不正な文字列を渡してはいけない。
正常終了: マッチ回数 (0回も含める)
エラー: エラーコード (< 0)
@@ -378,6 +390,138 @@
7 callback_arg: コールバック関数に渡される付加引数値
+# int onig_regset_new(OnigRegSet** rset, int n, regex_t* regs[])
+
+ regsetオブジェクトを生成する。
+ 全ての正規表現オブジェクトは、同じ文字エンコーディングでなければならない。
+ 全ての正規表現オブジェクトは、ONIG_OPTION_FIND_LONGESTオプションでコンパイルされていてはならない。
+
+ 引数
+ 1 rset: regsetオブジェクトを返すためのアドレス
+ 2 n: 正規表現の個数
+ 3 regs: 正規表現オブジェクトの配列
+
+ 正常終了戻り値: ONIG_NORMAL
+
+
+# int onig_regset_add(OnigRegSet* set, regex_t* reg)
+
+ regsetオブジェクトに正規表現を追加する。
+ 正規表現オブジェクトは、regsetと同じ文字エンコーディングでなければならない。
+ 正規表現オブジェクトは、ONIG_OPTION_FIND_LONGESTオプションでコンパイルされていてはならない。
+
+ 引数
+ 1 set: regsetオブジェクト
+ 2 reg: 正規表現オブジェクト
+
+ 正常終了戻り値: ONIG_NORMAL
+
+
+# int onig_regset_replace(OnigRegSet* set, int at, regex_t* reg)
+
+ regsetの中の一個の正規表現オブジェクトを別のものに変更する。
+ 若しreg引数の値がNULLであれば、at番目の正規表現オブジェクトを外す。(そして、以降の正規表現オブジェクトのインデックスは変化する)
+
+ 引数
+ 1 set: regsetオブジェクト
+ 2 at: 変更する場所のインデックス
+ 2 reg: 正規表現オブジェクト
+
+ 正常終了戻り値: ONIG_NORMAL
+
+
+# void onig_regset_free(OnigRegSet* set)
+
+ regsetオブジェクトとその中の正規表現オブジェクトの使用メモリを開放する。
+ 若し、同一の正規表現オブジェクトを重複して登録していれば、破壊的な状況になる。
+
+ 引数
+ 1 set: regsetオブジェクト
+
+
+# int onig_regset_number_of_regex(OnigRegSet* set)
+
+ regsetの中の正規表現オブジェクトの個数を返す。
+
+ 引数
+ 1 set: regsetオブジェクト
+
+
+# regex_t* onig_regset_get_regex(OnigRegSet* set, int at)
+
+ regsetのat番目の正規表現を返す。
+
+ 引数
+ 1 set: regsetオブジェクト
+ 2 at: 正規表現オブジェクトのインデックス (ゼロ開始)
+
+
+# OnigRegion* onig_regset_get_region(OnigRegSet* set, int at)
+
+ regsetのat番目の正規表現に対応する領域を返す。
+
+ 引数
+ 1 set: regsetオブジェクト
+ 2 at: 正規表現オブジェクトのインデックス (ゼロ開始)
+
+
+# int onig_regset_search(OnigRegSet* set, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegSetLead lead, OnigOptionType option, int* rmatch_pos)
+
+ regsetによる検索を実行する。
+
+ 戻り値:
+ 検索成功: マッチした正規表現オブジェクトのインデックス (ゼロ開始)
+ 検索失敗: ONIG_MISMATCH (< 0)
+ エラー: エラーコード (< 0)
+
+ 引数
+ 1 set: regsetオブジェクト
+ 2 str: 検索対象文字列
+ 3 end: 検索対象文字列の終端アドレス
+ 4 start: 検索対象文字列の検索先頭位置アドレス
+ 5 range: 検索対象文字列の検索終了位置アドレス
+ (start <= 探索される文字列 < range)
+ 6 lead: 外側のループ要素
+ ONIG_REGSET_POSITION_LEAD (最左位置でマッチした結果を返す)
+ ONIG_REGSET_REGEX_LEAD (最左位置でマッチした結果を返す)
+ ONIG_REGSET_PRIORITY_TO_REGEX_ORDER (最初にマッチした正規表現の結果を返す)
+ 7 option: 検索時オプション
+ ONIG_OPTION_NOTBOL 文字列の先頭(str)を行頭と看做さない
+ ONIG_OPTION_NOTEOL 文字列の終端(end)を行末と看做さない
+ 8 rmatch_pos: マッチした位置を返すためのアドレス (match_address - str)
+
+ * ONIG_REGSET_POSITION_LEADとONIG_REGSET_REGEX_LEADは同じ結果を返す。
+ これらの違いは検索時間にしか現れない。
+ ほとんどの場合、ONIG_REGSET_POSITION_LEADのほうが速いと思われる。
+
+
+# int onig_regset_search_with_param(OnigRegSet* set, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegSetLead lead, OnigOptionType option, OnigMatchParam* mps[], int* rmatch_pos)
+
+ regsetとOnigMatchParamオブジェクトによる検索を実行する。
+
+ 戻り値:
+ 検索成功: マッチした正規表現オブジェクトのインデックス (ゼロ開始)
+ 検索失敗: ONIG_MISMATCH (< 0)
+ エラー: エラーコード (< 0)
+
+ 引数
+ 1 set: regsetオブジェクト
+ 2 str: 検索対象文字列
+ 3 end: 検索対象文字列の終端アドレス
+ 4 start: 検索対象文字列の検索先頭位置アドレス
+ 5 range: 検索対象文字列の検索終了位置アドレス
+ (start <= 探索される文字列 < range)
+ 6 lead: 外側のループ要素
+ ONIG_REGSET_POSITION_LEAD (最左位置でマッチした結果を返す)
+ ONIG_REGSET_REGEX_LEAD (最左位置でマッチした結果を返す)
+ ONIG_REGSET_PRIORITY_TO_REGEX_ORDER (最初にマッチした正規表現の結果を返す)
+ 7 option: 検索時オプション
+ ONIG_OPTION_NOTBOL 文字列の先頭(str)を行頭と看做さない
+ ONIG_OPTION_NOTEOL 文字列の終端(end)を行末と看做さない
+ 8 mps: OnigMatchParamオブジェクトの配列
+ 9 rmatch_pos: マッチした位置を返すためのアドレス (match_address - str)
+
+
# OnigRegion* onig_region_new(void)
マッチ領域情報(region)を作成する。
@@ -616,14 +760,20 @@
# int onigenc_strlen(OnigEncoding enc, const UChar* s, const UChar* end)
+
+ 文字列の文字数を返す。
+
+
# int onigenc_strlen_null(OnigEncoding enc, const UChar* s)
文字列の文字数を返す。
+ 文字エンコーディングに対して、不正な文字列を渡してはいけない。
# int onigenc_str_bytelen_null(OnigEncoding enc, const UChar* s)
文字列のバイト数を返す。
+ 文字エンコーディングに対して、不正な文字列を渡してはいけない。
# int onig_set_default_syntax(OnigSyntaxType* syntax)
diff --git a/doc/RE b/doc/RE
index 72957dd..599d2a6 100644
--- a/doc/RE
+++ b/doc/RE
@@ -1,4 +1,4 @@
-Oniguruma Regular Expressions Version 6.9.2 2019/03/29
+Oniguruma Regular Expressions Version 6.9.4 2019/10/31
syntax: ONIG_SYNTAX_ONIGURUMA (default)
@@ -289,6 +289,11 @@ syntax: ONIG_SYNTAX_ONIGURUMA (default)
In negative look-behind, capturing group isn't allowed,
but non-capturing group (?:) is allowed.
+ * In look-behind and negative look-behind, support for
+ ignore-case option is limited. Only supports conversion
+ between single characters. (Does not support conversion
+ of multiple characters in Unicode)
+
(?>subexp) atomic group
no backtracks in subexp.
@@ -338,7 +343,7 @@ syntax: ONIG_SYNTAX_ONIGURUMA (default)
This works like .* (more precisely \O*), but it is
limited by the range that does not include the string
match with <absent>.
- This is a written abbreviation of (?~|absent|\O*).
+ This is a written abbreviation of (?~|(?:absent)|\O*).
\O* is used as a repeater.
(?~|absent|exp) Absent expression (* original)
diff --git a/doc/RE.ja b/doc/RE.ja
index c09e237..2156d93 100644
--- a/doc/RE.ja
+++ b/doc/RE.ja
@@ -1,4 +1,4 @@
-鬼車 正規表現 Version 6.9.2 2019/03/29
+鬼車 正規表現 Version 6.9.4 2019/10/31
使用文法: ONIG_SYNTAX_ONIGURUMA (既定値)
@@ -21,10 +21,10 @@
\f 改頁 (0x0C)
\a 鐘 (0x07)
\e 退避修飾 (0x1B)
- \nnn 八進数表現 符号化バイト値(の一部)
+ \nnn 八進数表現 符号化バイト値
\o{17777777777} 拡張八進数表現 コードポイント値
\uHHHH 拡張十六進数表現 コードポイント値
- \xHH 十六進数表現 符号化バイト値(の一部)
+ \xHH 十六進数表現 符号化バイト値
\x{7HHHHHHH} 拡張十六進数表現 コードポイント値
\cx 制御文字表現 コードポイント値
\C-x 制御文字表現 コードポイント値
@@ -284,6 +284,10 @@
否定戻り読みでは、捕獲式集合は許されないが、
非捕獲式集合は許される。
+ * 戻り読み、否定戻り読みの中では、ignore-caseオプションの
+ 対応が制限される。一文字と一文字の間の変換しか対応しない。
+ (Unicodeでの複数文字の変換に対応しない)
+
(?>式) 原子的式集合
式全体を通過したとき、式の中での後退再試行を行なわない
@@ -334,20 +338,20 @@
<不在機能群>
- (?~不在式) 不在繰り返し (*原案 田中哲)
- これは .*(より正確には\O*)のように動作するが、<不在式>に
+ (?~不在) 不在繰り返し (*原案 田中哲)
+ これは .*(より正確には\O*)のように動作するが、<不在>に
適合する文字列を含まない範囲に制限される。
- これは(?~|不在式|\O*)の省略表記である。
+ これは(?~|(?:不在)|\O*)の省略表記である。
- (?~|不在式|式) 不在式 (* 原作)
- これは<式>のように動作するが、<不在式>に適合する文字列を
+ (?~|不在|式) 不在式 (* 原作)
+ これは<式>のように動作するが、<不在>に適合する文字列を
含まない範囲に制限される。
例 (?~|345|\d*) "12345678" ==> "12", "1", ""
- (?~|不在式) 不在停止 (* 原作)
+ (?~|不在) 不在停止 (* 原作)
この演算子を通過した後は、対象文字列の適合範囲が
- <不在式>に適合する文字列を含まない範囲に制限される。
+ <不在>に適合する文字列を含まない範囲に制限される。
(?~|) 範囲消去
不在停止の効果を消して、それ以前の状態にする。
diff --git a/doc/SYNTAX.md b/doc/SYNTAX.md
index 449f262..69ecf3a 100644
--- a/doc/SYNTAX.md
+++ b/doc/SYNTAX.md
@@ -1,7 +1,7 @@
# Oniguruma syntax (operator) configuration
-_Documented for Oniguruma 6.9.2 (2019/03/28)_
+_Documented for Oniguruma 6.9.3 (2019/08/08)_
----------
@@ -960,6 +960,12 @@ _Set in: Ruby, Oniguruma_
If this flag is set, Oniguruma will warn about nested repeat operators those have no meaning, like `(?:a*)+`.
If this flag is clear, Oniguruma will allow the nested repeat operators without warning about them.
+### 26. ONIG_SYN_ALLOW_INVALID_CODE_END_OF_RANGE_IN_CC (allow [a-\x{7fffffff}])
+
+_Set in: Oniguruma_
+
+If this flag is set, then invalid code points at the end of range in character class are allowed.
+
### 31. ONIG_SYN_CONTEXT_INDEP_ANCHORS
_Set in: PosixExtended, GnuRegex, Java, Perl, Perl_NG, Ruby, Oniguruma_
@@ -1066,4 +1072,5 @@ These tables show which of the built-in syntaxes use which flags and options, fo
| 23 | `ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC` | - | Yes | - | - | Yes | Yes | Yes | Yes | Yes | Yes |
| 24 | `ONIG_SYN_WARN_CC_OP_NOT_ESCAPED` | - | - | - | - | - | - | - | - | Yes | Yes |
| 25 | `ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT` | - | - | - | - | - | - | - | - | Yes | Yes |
+| 26 | `ONIG_SYN_ALLOW_INVALID_CODE_END_OF_RANGE_IN_CC` | - | - | - | - | - | - | - | - | - | Yes |
| 31 | `ONIG_SYN_CONTEXT_INDEP_ANCHORS` | - | Yes | - | - | Yes | Yes | Yes | Yes | Yes | Yes |
diff --git a/doc/UNICODE_PROPERTIES b/doc/UNICODE_PROPERTIES
index 1148b4d..24c2031 100644
--- a/doc/UNICODE_PROPERTIES
+++ b/doc/UNICODE_PROPERTIES
@@ -1,4 +1,4 @@
-Unicode Properties (from Unicode Version: 12.0.0)
+Unicode Properties (Unicode Version: 12.1.0, Emoji: 12.1)
15: ASCII_Hex_Digit
16: Adlam