sub is_vowel {
return $_[0] =~ /
^
[\x{1F00}-\x{1FE3}\x{1FE6}-\x{1FFE}\x{0386}-\x{038F}\x{0390}\x{0391}\x{0395}\x{0397}\x{0399}\x{039F}\x{03A5}\x{03A9}\x{03AA}-\x{03B1}\x{03B5}\x{03B7}\x{03B9}\x{03BF}\x{03C5}\x{03C9}-\x{03CE}]
\z
/x;
}
####
\N{GREEK SMALL LETTER ALPHA WITH PSILI}-
\N{GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA}
\N{GREEK SMALL LETTER UPSILON WITH PERISPOMENI}-
\N{GREEK DASIA}
\N{GREEK CAPITAL LETTER ALPHA WITH TONOS}-
\N{GREEK CAPITAL LETTER OMEGA WITH TONOS}
\N{GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS}
\N{GREEK CAPITAL LETTER ALPHA}
\N{GREEK CAPITAL LETTER EPSILON}
\N{GREEK CAPITAL LETTER ETA}
\N{GREEK CAPITAL LETTER IOTA}
\N{GREEK CAPITAL LETTER OMICRON}
\N{GREEK CAPITAL LETTER UPSILON}
\N{GREEK CAPITAL LETTER OMEGA}
\N{GREEK CAPITAL LETTER IOTA WITH DIALYTIKA}-
\N{GREEK SMALL LETTER ALPHA}
\N{GREEK SMALL LETTER EPSILON}
\N{GREEK SMALL LETTER ETA}
\N{GREEK SMALL LETTER IOTA}
\N{GREEK SMALL LETTER OMICRON}
\N{GREEK SMALL LETTER UPSILON}
\N{GREEK SMALL LETTER OMEGA}-
\N{GREEK SMALL LETTER OMEGA WITH TONOS}
####
\N{GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI} \N{GREEK SMALL LETTER SIGMA}\N{GREEK SMALL LETTER TAU}\N{GREEK SMALL LETTER OMICRON} \N{GREEK SMALL LETTER DELTA}\N{GREEK SMALL LETTER IOTA}\N{GREEK SMALL LETTER ALPHA WITH TONOS}\N{GREEK SMALL LETTER OMICRON}\N{GREEK SMALL LETTER LAMDA}\N{GREEK SMALL LETTER OMICRON}
####
\N{GREEK CAPITAL LETTER ALPHA WITH VARIA}\N{COMBINING GREEK YPOGEGRAMMENI} \N{GREEK CAPITAL LETTER SIGMA}\N{GREEK SMALL LETTER TAU}\N{GREEK SMALL LETTER OMICRON} \N{GREEK CAPITAL LETTER DELTA}\N{GREEK SMALL LETTER IOTA}\N{GREEK SMALL LETTER ALPHA WITH TONOS}\N{GREEK SMALL LETTER OMICRON}\N{GREEK SMALL LETTER LAMDA}\N{GREEK SMALL LETTER OMICRON}
####
\N{GREEK CAPITAL LETTER ALPHA WITH VARIA}\N{GREEK CAPITAL LETTER IOTA} \N{GREEK CAPITAL LETTER SIGMA}\N{GREEK CAPITAL LETTER TAU}\N{GREEK CAPITAL LETTER OMICRON} \N{GREEK CAPITAL LETTER DELTA}\N{GREEK CAPITAL LETTER IOTA}\N{GREEK CAPITAL LETTER ALPHA WITH TONOS}\N{GREEK CAPITAL LETTER OMICRON}\N{GREEK CAPITAL LETTER LAMDA}\N{GREEK CAPITAL LETTER OMICRON}
####
use Unicode::Normalize qw(NFD);
sub is_greek_vocalic($) {
use charnames "greek";
die "wrong args" unless @_ == 1;
local $_ = NFD(lc(shift()));
s/\pM+//g; # combining marks from NFD form
s/\p{Diacritic}+//g; # eg, GREEK DASIA, which is \p{Sk}
return scalar m{
^
[\N{alpha}\N{epsilon}\N{eta}\N{iota}\N{omicron}\N{upsilon}\N{omega}]+
\z
}x;
}