I found Regexp::Debugger quite illustrative when trying to find why a regular expression does not match.
As you don't show any data for your regular expression and I don't know how Thai is written, I can't conveniently replicate your problem or find why your regexp behaves with your data in a way that you don't want.
Maybe you can post relevant data (it is likely to be 6 characters, maybe post them using charnames instead of literals), or find the solution yourself stepping through the matching by using Regexp::Debugger.
In reply to Re^5: Repeated code blocks in long and hairy regex
by Corion
in thread Repeated code blocks in long and hairy regex
by Polyglot
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |