my $nfw_oang = qr%
(?!\p{IsOang}(?!
(?:\p{InThaiFinCons}){1,2}
(?![\p{InThaiCompVowel}\p{InThaiPostVowel}\p{InThaiTone}])
(?:\p{InThaiMute})
))
%x;
####
my $nfw_oang = qr%
(?!
\p{IsOang}
(?! (?:\p{InThaiFinCons}){1,2}
(?[
\p{InThaiMute}
- \p{InThaiCompVowel}
- \p{InThaiPostVowel}
- \p{InThaiTone}
])
)
)
%x;
####
/
...
(?&NFW_OANG)
...
(?&INITIAL_CONSONANT)
...
(?(DEFINE)
# NOT FOLLOWED BY O-ANG WITHOUT A THAI MUTE/CONSONANT ENDING
(? (?! (?&OANG) ) )
# O-ANG WITHOUT A THAI MUTE/CONSONANT ENDING
(?
\p{IsOang}
(?! (?:\p{InThaiFinCons}){1,2}
(?[
\p{InThaiMute}
- \p{InThaiCompVowel}
- \p{InThaiPostVowel}
- \p{InThaiTone}
])
)
)
# INITIAL CONSONANT(S)
(?
(?: \p{InThaiDualC1} \p{InThaiDualC2}
| \p{InThaiCons}
)
)
/x