our %unaccent = qw(
⍺ a ⍵ w ∊ E ⍷ E ⍴ r ⍳ i ⍸ i ○ O ⍥ O ⌿ / ⍟ (*) ⊕ (+)
- Ʊ U ǝ e Ǝ E ʌ v ɥ h ʘ O ɰ mw ɯ mw Ɯ MW ə @ae Ə @AE
+ Ʊ U ǝ e Ǝ E ʌ vA Ʌ VA ɥ h ʘ O ɰ mw ɯ mw Ɯ MW ə @ae Ə @AE
ɸ PF ʎ yl ɔ co Ɔ CO ɛ 3E ƣ q Ƣ Q ∀ A ∃ E ∪ u ∩ n ≠ !=
≈ =~ ∅ /0 ∘ o ⋅ . ∫ s ≝ =d ″ " ≤ < ≥ > √ rV ∛ 3V ∜ 4V
Α A Β B Γ G Δ D Ε E Ζ Z Η H Θ CQ Ι I Κ K Λ L Μ M
my $class = (
!defined $v || $c eq $v ? 'no' # identical
: $v =~ /\A\p{Mn}+\z/ ? 'g9' # combining accent
- : NFKD($v) =~ /\Q$c/ ? 'g2' # decomposed equivalent
+ : NFKD($v) =~ /\A\Q$c\E\p{Mn}*\z/ ? 'g2' # decomposed equivalent
: unidecode($v) =~ /\Q$c\E+/i ? 'g4' # transliterated
: $v =~ /\A[\p{Sk}\p{Lm}]+\z/ ? 'g8' # modifier symbol
: $v =~ /\A[\pM\pP]+\z/ ? 'g7' # mark