<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">NAME
      Regexp::CharClasses::Thai - useful character properties for
                                  Thai regular expressions (regex)

SYNOPSIS
      use Regexp::CharClasses::Thai;

      $c = "...";  # some UTF8 string

      $c =~ /\p{InThaiCons}/;  # match only Thai consonants
      $c =~ /\p{InThaiTone}/;  # match only Thai tone marks

            - OR -

      $c =~ /\p{IsThaiCons}/;  # match only Thai consonants
      $c =~ /\p{IsThaiTone}/;  # match only Thai tone marks

     # see description for full set of terms

DESCRIPTION
      This module supplements the UTF-8 character-class definitions 
      available to regular expressions (regex) with special groups 
      relevant to Thai linguistics.  The following classes are defined:

            鉆�鉊﹤�𠰍號鉊丞�跃葭鉆凼�鉊𥔿���跃葵鉆�葷鉊跃�鉊芹腦鉊毯腹鉊�鉊喪��董鉊�鉊晤�𠰍�鉊抉葡鉊﹤�鉊丞葡鉊芹葉鉊晤�鉊�鉊␡萼 UTF-8
            鉆�鉊𢺋�凼�鉊𠰍�凼�鉊晤�� (regex) 鉊鉮萵鉆�葷鉆�鉊� 鉊𠰍�凼葷鉊Ｒ�鉊丞虜鉆�腹鉊𠒎葩鉆�鉊兒萱
            鉊鉮葭鉆��鉊�鉊菽��腺鉊抉�鉆凼葉鉊��鉊晤�𠼭�恷葡鉊拈葡鉆�鉊鉮腺 鉊﹤葭鉊�鉊耜腦鉊�鉊喪葦鉊跃�𠰍�鉊丞葡鉊芹�𨫼��葉鉆�鉊𥔿�跃葭鉆�:

    InThai / IsThai
          Matches ALL characters in the Thai unicode code-point range.
  
          鉊�萵鉊𠼭�鉊嫩��葉鉊晤�鉊�鉊␡萼鉊鉮萵鉆凼��葦鉊﹤�𠰍�鉊跃�𢺋��葷鉊���虜鉊𠰍�鉊�鉆凼�𠰍腺鉊嫩�跃葩鉆�鉊�鉆凼�𠰍�恷葡鉊拈葡鉆�鉊鉮腺

    InThaiCons / IsThaiCons
          Matches Thai consonant letters, leaving out vowels (but including
          those vowels which are sometimes consonants).
  
          鉊�萵鉊𠼭�鉊嫩���𠒎腺鉊晤�温�𢺋�跃萼鉆�鉊鉮腺 (鉊␡葷鉊﹤葵鉊␡萼鉊鉮葭鉆��𠼭葡鉊��鉊␡萵鉆凼���鉊𥔿���跃�𠒎腺鉊晤�温�𢺋�跃萼鉊𠰍�凼葷鉊�)

    InThaiVowel / IsThaiVowel
          Matches Thai vowels only, including compounded and free-standing 
          vowels.  Exceptions here include several of the �𦣇onsonants�� which 
          also serve as vowels: o-ang, yo-yak, double ro-rua, lu and ru, and 
          wo-waen (鉊�, 鉊�, 鉊␡腦, 鉊�, 鉊�, 鉊�), which are also included except for 
          the two-character 鉊␡腦.

          NOTE: Thai vowels cannot stand alone: they are always connected 
          with a consonant.  Many of these, without their consonant 
          companions, will appear with the unicode dotted-circle character 
          (U+25CC) when rendered, showing a character is missing.  
          Conversely, Thai consonants can exist without a vowel, and some 
          Thai words do not have written vowels (the vowel is implied).
  
          鉊�萵鉊𠼭�鉊嫩��葵鉊␡萼鉆�鉊鉮腺鉆�鉊鉮��葡鉊跃萵鉆凼�� 鉊␡葷鉊﹤�鉮萵鉆凼��葵鉊␡萼鉊𥔿腦鉊啤�鉊冢�� 鉆�鉊丞萼鉊芹腦鉊啤葉鉊毯葵鉊␡萼 鉊�鉆凼葉鉊Ｒ�鉆�鉊抉�凼��
          鉆�鉊跃�鉮葭鉆��跃葭鉆凼腦鉊抉腹鉊遤葆鉊� �厢�𠒎腺鉊晤�温�𢺋�跃萼�� 鉊徇艇鉊耜腺鉊𨫼萵鉊抉�肀葆鉆����鉮董鉊徇�跃�凼葡鉊鉮葭鉆��鉊𥔿���跃葵鉊␡萼鉊𠰍�凼葷鉊� 鉆�鉊𢺋���� 
          (鉊�, 鉊�, 鉊␡腦, 鉊�, 鉊�, 鉊�) 鉊肀葆鉆���腦鉊抉腹鉊冢腺鉊嫩���𠰍�凼葷鉊Ｒ腺鉊�鉆�鉊抉�凼�跃葉鉊晤�鉊�鉊␡萼鉊芹葉鉊��𨫼萵鉊� 鉊␡腦

    InThaiAlpha / IsThaiAlpha
          Matches only the Thai alphabetic characters (consonants &amp; vowels),
          excluding all digits, tone marks, and punctuation marks.
  
          鉊�萵鉊𠼭�鉊嫩���鉊凼�𠒎葡鉊啤�𨫼萵鉊抉葉鉊晤�鉊拈腦鉆�鉊鉮腺 (鉊𠒎腺鉊晤�温�𢺋�跃萼鉆�鉊丞萼鉊芹腦鉊�) 鉆�鉊﹤��腦鉊抉腹鉊𨫼萵鉊抉�鉊丞� 
          鉆�鉊�鉊␡虞鉆�葉鉊�葦鉊﹤葡鉊Ｒ葷鉊␡腦鉊㮙腺鉊詮�鉊𨫼�� 鉆�鉊丞萼鉆�鉊�鉊␡虞鉆�葉鉊�葦鉊﹤葡鉊Ｒ葷鉊␡腦鉊�鉊𨫼葉鉊跃�鉮萵鉆凼��葦鉊﹤��

    InThaiWord / IsThaiWord
          Matches all Thai characters used to form words, including:
          consonants, vowels, and tone marks; but excluding all digits
          and punctuation marks.
  
          鉊�萵鉊𠼭�鉊嫩���𨫼萵鉊抉葉鉊晤�鉊拈腦鉆�鉊鉮腺鉊鉮萵鉆凼��葦鉊﹤�𠰍�鉮葭鉆��鉊𢺋�凼葵鉊␡�凼葡鉊��鉊� 鉊␡葷鉊﹤�鉮萵鉆凼��
          鉊𠒎腺鉊晤�温�𢺋�跃萼 鉊芹腦鉊� 鉆�鉊丞萼鉆�鉊�鉊␡虞鉆�葉鉊�葦鉊﹤葡鉊Ｒ葷鉊␡腦鉊㮙腺鉊詮�鉊𨫼�� 鉆�鉊𨫼���鉊﹤��腦鉊抉腹鉊𨫼萵鉊抉�鉊丞�鉊鉮萵鉆凼��葦鉊﹤��
          鉆�鉊丞萼鉆�鉊�鉊␡虞鉆�葉鉊�葦鉊﹤葡鉊Ｒ葷鉊␡腦鉊�鉊𨫼葉鉊�

    InThaiTone / IsThaiTone
          Matches only the Thai tone marks, leaving out all letters,
          digits and punctuation marks.
  
          鉊�萵鉊𠼭�鉊嫩���鉊凼�𠒎葡鉊啤�鉊�鉊␡虞鉆�葉鉊�葦鉊﹤葡鉊Ｒ葷鉊␡腦鉊㮙腺鉊詮�鉊𨫼�䓃�鉊鉮腺鉆�鉊𠰍腺鉆�鉊﹤��腦鉊抉腹 鉊𨫼萵鉊抉葉鉊晤�鉊拈腦
          鉊𨫼萵鉊抉�鉊丞� 鉊徇腦鉊獅葉 鉆�鉊�鉊␡虞鉆�葉鉊�葦鉊﹤葡鉊Ｒ葷鉊␡腦鉊�鉊𨫼葉鉊� 鉊鉮萵鉆凼��葦鉊﹤��

    InThaiMute / IsThaiMute
          The single character U+0E4C (Thai Thanthakhat/Garan), as it seems 
          neither typical of a tone mark, nor a punctuation mark.  It comes 
          nearer to usage as a tone mark, but instead of affecting the tone 
          of a vowel, it silences one or more consonants.
  
          鉊冢萵鉊�鉊拈腦鉊𨫼萵鉊抉�鉊𠰍葭鉊Ｒ葷 鉊熈萵鉊㮙�𨥬�鉊耜��/鉊�鉊耜腦鉊晤�跃�𨫼��

    InThaiPunct / IsThaiPunct
          Matches Thai punctuation characters, not including tone marks,
          white space, digits or alphabetic characters, and not including
          non-Thai punctuation marks (such as English [.,'"!?] etc.).
  
          鉊�萵鉊𠼭�鉊嫩��葉鉊晤�鉊�鉊␡萼鉆�鉊�鉊␡虞鉆�葉鉊�葦鉊﹤葡鉊Ｒ葷鉊␡腦鉊�鉊𨫼葉鉊跃�恷葡鉊拈葡鉆�鉊鉮腺 鉆�鉊﹤��腦鉊抉腹鉆�鉊�鉊␡虞鉆�葉鉊�葦鉊﹤葡鉊Ｒ葷鉊␡腦鉊㮙腺鉊詮�鉊𨫼��
          鉊𢺋��葉鉊�葷鉆�葡鉊� 鉊𨫼萵鉊抉�鉊丞� 鉊徇腦鉊獅葉 鉊𨫼萵鉊抉葉鉊晤�鉊拈腦 鉆�鉊丞萼鉆�鉊﹤��腦鉊抉腹 鉆�鉊�鉊␡虞鉆�葉鉊�葦鉊﹤葡鉊Ｒ葷鉊␡腦鉊�鉊𨫼葉鉊�
          鉊鉮葭鉆��鉊﹤���鉊𢺋���恷葡鉊拈葡鉆�鉊鉮腺 (鉆�鉊𢺋���� 鉊冢萵鉊��鉊戈萱 [.,'"!?] 鉆�鉊𥔿���跃�𨫼�凼��)

    InThaiCompVowel / IsThaiCompVowel
          Matches only the Thai vowels which are compounded with a Thai 
          consonant, and matching only the vowel portion of the compounded 
          character:  ��䓃萵 ��䓃葩 ��䓃葭 ��䓃葆 ��䓃虞 ��䓃虜 ��䓃號 ��䓃�� ��䓃��
  
          鉊�萵鉊𠼭�鉊嫩���鉊凼�𠒎葡鉊啤葵鉊␡萼鉆�鉊鉮腺鉊鉮葭鉆��𥔿腦鉊啤�鉊冢�𠼭�鉊晤�𠼭�𠒎腺鉊晤�温�𢺋�跃萼鉆�鉊鉮腺鉆�鉊鉮��葡鉊跃萵鉆凼��
          鉆�鉊丞萼鉊�萵鉊𠼭�鉊嫩���鉊凼�𠒎葡鉊啤葵鉆�葷鉊跃葵鉊␡萼鉊�鉊冢���𨫼萵鉊抉葉鉊晤�鉊拈腦鉊跃萵鉆凼�跃�鉮葭鉆��𥔿腦鉊啤葵鉊﹤�鉊鉮��葡鉊跃萵鉆凼��
          鉊跃萵鉆��跃�鉊獅葉: ��䓃萵 ��䓃葩 ��䓃葭 ��䓃葆 ��䓃虞 ��䓃虜 ��䓃號 ��䓃�� ��䓃��

    InThaiPreVowel / IsThaiPreVowel
          Matches only the subset of vowels which appear before the 
          consonant with which they are associated (though in Thai they 
          are sounded after said consonant); this excludes all 
          consonant-vowels and does not include any of the compounded vowels.
  
          鉊�萵鉊𠼭�鉊嫩���鉊凼�𠒎葡鉊啤�𢺋虜鉊𠰍腺鉆�葉鉊Ｒ�鉊冢��葵鉊␡萼鉊鉮葭鉆��𥔿腦鉊耜�鉊� 鉊�鉆�葉鉊� 鉊𠒎腺鉊晤�温�𢺋�跃萼鉊鉮葭鉆��鉊�鉊菽��腺鉊抉�鉆凼葉鉊� 
          (鉆�鉊𨫼���鉊𥔿���跃�恷葡鉊拈葡鉆�鉊鉮腺鉊遤號鉊�鉊颴萵鉊� 鉊徇艇鉊晤�� 鉊𠒎腺鉊晤�温�𢺋�跃萼鉊𠰍萵鉊��鉊丞��葡鉊�); 
          鉊跃葭鉆��鉊﹤��腦鉊抉腹鉊鉮萵鉆凼��葦鉊﹤�� 鉊𠒎腺鉊晤�温�𢺋�跃萼-鉊芹腦鉊� 鉆�鉊丞萼鉆�鉊﹤��腦鉊抉腹鉊遤葆鉊�葵鉊␡萼鉊𥔿腦鉊啤葵鉊﹤�鉊𠰍�

    InThaiPostVowel / IsThaiPostVowel
          Matches only the vowels which appear after the consonant 
          with which they are associated; this excludes all consonant-vowels 
          and does not include any of the compounded vowels.
  
          鉊�萵鉊𠼭�鉊嫩���鉊凼�𠒎葡鉊啤葵鉊␡萼鉊跃萵鉆凼�跃�鉮葭鉆��𥔿腦鉊耜�鉊� 鉊徇艇鉊晤�� 鉊𠒎腺鉊晤�温�𢺋�跃萼 鉊鉮葭鉆��鉊�鉊菽��腺鉊抉�鉆凼葉鉊� 
          鉆�鉊﹤��腦鉊抉腹鉊𠒎腺鉊晤�温�𢺋�跃萼-鉊芹腦鉊啤�鉮萵鉆凼��葦鉊﹤�� 鉆�鉊丞萼 鉆�鉊﹤��腦鉊抉腹鉊遤葆鉊�葵鉊␡萼鉊𥔿腦鉊啤葵鉊﹤�鉊𠰍�

    InThaiHCons / IsThaiHCons
          Matches Thai high-class consonants: 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊�.
  
          鉊�萵鉊𠼭�鉊嫩���𠒎腺鉊晤�温�𢺋�跃萼鉆�鉊鉮腺鉊𢺋萵鉆凼�跃葵鉊嫩��: 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊�.

    InThaiMCons / IsThaiMCons
          Matches Thai middle-class consonants: 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊�.
  
          鉊�萵鉊𠼭�鉊嫩���𠒎腺鉊晤�温�𢺋�跃萼鉆�鉊鉮腺鉊𢺋�跃�𢺋萵鉆凼�跃�鉊丞葡鉊�: 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊�.

    InThaiLCons / IsThaiLCons
          Matches Thai low-class consonants: 鉊�萵鉊𠼭�鉊嫩���𠒎腺鉊晤�温�𢺋�跃萼鉆�鉊鉮腺鉊𢺋萵鉆凼�跃�𨫼��董:
  
          鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊�.

    InThaiFinCons / IsThaiFinCons
          Matches Thai consonants which can occur as the final consonant
          of a syllable.  This excludes 鉊�, 鉊�, 鉊�, 鉊�, 鉊�, 鉊�, which never 
          appear at the end of a Thai syllable, as well as 鉊�, 鉊�, 鉊�, which 
          only appear at the end of a syllable when used as a vowel.

          NOTE: Any Thai consonant can be an initial consonant, so there is 
          no separate designation for these: just use 'InThaiCons' or 
          'IsThaiCons'.
  
          鉊�萵鉊𠼭�鉊嫩���𠒎腺鉊晤�温�𢺋�跃萼鉆�鉊鉮腺鉊肀葆鉆���葉鉊耜���鉊𥔿���跃�𠒎腺鉊晤�温�𢺋�跃萼鉊𨫼萵鉊抉葵鉊詮�𠰍�鉮�凼葡鉊Ｒ�鉊冢���𠒎腺鉊耜���鉆䓃�鉊𠰍�� 
          鉊鉮萵鉆凼���跃葭鉆� 鉆�鉊﹤��腦鉊抉腹鉊遤葆鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊肀葆鉆����鉊﹤���鉊�鉊Ｒ�𥔿腦鉊耜�鉊𥐰�𨫼��葉鉊鉮�凼葡鉊Ｒ�𠒎腺鉊耜���鉆䓃�鉊鉮腺 
          鉆�鉊丞萼 鉆�鉊﹤��腦鉊抉腹鉊遤葆鉊� 鉊� 鉊� 鉊� 鉊肀葆鉆����𥔿腦鉊耜�鉊𥐰�鉮葭鉆��鉮�凼葡鉊Ｒ�𠒎腺鉊耜���鉆䓃�鉊﹤虞鉆�葉鉆�鉊𢺋�凼�鉊𥔿���跃葵鉊␡萼鉆�鉊鉮��葡鉊跃萵鉆凼��

          鉊徇腹鉊耜腺鉆�鉊徇�𨫼虜: 鉊𠒎腺鉊晤�温�𢺋�跃萼鉆�鉊鉮腺鉆�鉊𠰍� 鉊�鉆�葵鉊耜腹鉊耜腦鉊遤�鉊𥔿���跃�𠒎腺鉊晤�温�𢺋�跃萼鉆�鉊␡葩鉆�腹鉊𨫼�凼�跃�鉊𠰍�� 
          鉊𠰍萵鉊��跃萵鉆凼�跃��葆鉊��鉊﹤��腹鉊菽�鉊耜腦鉊�鉊喪葦鉊跃�𠰍�鉊Ｒ�鉊芹董鉊徇腦鉊晤�𠼭�𠒎腺鉊晤�温�𢺋�跃萼鉆�鉊徇艇鉆�葡鉊跃葭鉆�: 
          鉆�鉊𠒎葭鉊Ｒ���鉊𢺋�� 'InThaiCons' 鉊徇腦鉊獅葉 'IsThaiCons'

    InThaiDualCons / IsThaiDualCons
          Matches Thai consonants which are often paired as the primary 
          �𦣇onsonant�� of the syllable (the leading ones), around which a 
          single vowel or vowel combination will be centered.  Many 
          combinations of consonants, unassociated by a single vowel, may 
          occur in Thai: this does not address them.   For example: 
          the �鄄m�� in �鄄ma�� (dog) function together as if they were 
          a single consonant--the high-class �鄄�� giving its tone to the �騦��.
          This attempts to address these common consonant pairs.  
          IT MAY NOT BE EXHAUSTIVE.

          Pairs considered:
          鉊�鉊� 鉊�鉊� 鉊�鉊� 鉊�鉊� 鉊�鉊� 鉊�鉊� 鉊�鉊� 鉊�鉊� 鉊�鉊� 鉊𨫼腦 鉊𥔿腦 鉊𥔿艇 鉊𠼭腦 鉊𠼭艇 鉊𠰍腦 鉊厢艇 鉊𠒎腦 鉊𠒎艇 鉊鉮腦 鉊芹腦 鉊�腦 鉊肀腦
          [and the sonorant consonants] 鉊徇腹 鉊徇�� 鉊徇艇 鉊徇腺 鉊徇�� 鉊徇葷 鉊徇�� 鉊冢腺 
  
          鉊�萵鉊𠼭�鉊嫩���𠒎腺鉊晤�温�𢺋�跃萼鉆�鉊鉮腺鉊肀葆鉆���腹鉊晤�鉊�萵鉊𠼭�鉊嫩���鉊𥔿���� �厢�𠒎腺鉊晤�温�𢺋�跃萼�� 鉊徇艇鉊晤�鉊�鉊冢���𠒎腺鉊耜���鉆� (鉊𨫼萵鉊抉�跃董) 
          鉆�鉊𠰍腺鉊�萼鉆�鉊跃�凼�跃�鉊耜腦鉆�鉊𢺋�凼葵鉊␡萼鉆�鉊𠰍葭鉆�腺鉊抉葦鉊␡虞鉊冢葵鉊␡萼鉊␡葷鉊﹤�鉊晤�� 
          鉊𠒎腺鉊晤�温�𢺋�跃萼鉊徇艇鉊耜腺鉊𨫼萵鉊抉�鉮葭鉆��鉊﹤���鉊�鉊菽��腺鉊抉�鉆凼葉鉊��鉊晤�跃�𠰍�凼葷鉊Ｒ葵鉊␡萼鉊𨫼萵鉊抉�鉊𠰍葭鉊Ｒ葷鉊冢葡鉊��鉊�鉊毯�𠰍�鉊嗣�凼�跃�鉊跃�恷葡鉊拈葡鉆�鉊鉮腺 
          鉆�鉊𨫼���鉊﹤���鉊𠰍�凼�鉊丞��葡鉊抉�遤葆鉊� 鉊𨫼萵鉊抉�跃萵鉆凼�� 鉆�鉊𢺋����: �厢葦鉊﹦�� 鉆�鉊� �厢葦鉊﹤葡�� 鉊鉮董鉊�葡鉊跃腦鉆�葷鉊﹤�鉊晤�跃腦鉊耜葷鉊�鉊晤�𠼭葷鉆�葡
          鉆�鉊𥔿���跃�𠒎腺鉊晤�温�𢺋�跃萼鉊𨫼萵鉊抉�鉊𠰍葭鉊Ｒ葷 - �厢葦�� 鉊␡萼鉊𠰍萵鉊𠼭葵鉊嫩���鉮葭鉆��鉊徇�凼�鉊芹葭鉊Ｒ���鉊冢�� �厢腹��
          鉊跃葭鉆��鉊𥔿���跃�鉊耜腦鉊𠒎腺鉊耜腺鉊耜腹鉊𠒎號鉊𠰍�遤葆鉊��鉊嫩���𠒎腺鉊晤�温�𢺋�跃萼鉊鉮萵鉆�葷鉆�鉊𥔿�鉊徇艇鉆�葡鉊跃葭鉆�
          鉊﹤萵鉊跃葉鉊耜����萼鉆�鉊﹤��艇鉊啤�鉊冢葭鉊Ｒ�𠰍�遤葭鉆��遤�凼葷鉊�

    InThaiDualC1 / IsThaiDualC1
          Matches the initial consonant of a dual-consonant as described 
          above: 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊�.
  
          鉊�萵鉊𠼭�鉊嫩���𠒎腺鉊晤�温�𢺋�跃萼鉆�鉊␡葩鉆�腹鉊𨫼�凼�跃�鉊冢���𠒎腺鉊晤�温�𢺋�跃萼鉊�鉊嫩���𨫼葡鉊﹤�鉮葭鉆�葉鉊熈葩鉊𠼭葡鉊Ｒ�鉊抉�凼�鉆凼葡鉊��𠼭��: 
          鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊�.

    InThaiDualC2 / IsThaiDualC2
          Matches the second consonant of a dual-consonant as described 
          above: 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊�.
  
          鉊�萵鉊𠼭�鉊嫩���𠒎腺鉊晤�温�𢺋�跃萼鉊𨫼萵鉊抉�鉮葭鉆�葵鉊冢���鉊冢���𠒎腺鉊晤�温�𢺋�跃萼鉊�鉊嫩���𨫼葡鉊﹤�鉮葭鉆�葉鉊熈葩鉊𠼭葡鉊Ｒ�鉊抉�凼�鉆凼葡鉊��𨫼�凼��: 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊� 鉊�.

    InThaiConsVowel / IsThaiConsVowel
          Matches Thai characters which can function as either consonants 
          or vowels: 鉊� 鉊� 鉊� 鉊� 鉊� 鉊�.
  
          鉊�萵鉊𠼭�鉊嫩���𨫼萵鉊抉葉鉊晤�鉊拈腦鉆�鉊鉮腺鉊肀葆鉆����鉮董鉊徇�跃�凼葡鉊鉮葭鉆��鉊𥔿���跃�𠒎腺鉊晤�温�𢺋�跃萼鉊徇腦鉊獅葉鉊芹腦鉊啤�鉊𠰍��: 鉊� 鉊� 鉊� 鉊� 鉊� 鉊�.
  
          Note: Thais consider 0E33 (��䓃董) to be only a vowel, and it can 
          never function as only a consonant (it must always have a vowel 
          component), so it is NOT included here: but it is actually a 
          vowel-consonant combination, phonetically, finishing with the 
          �騦�� sound.  This class addresses only Thai characters which can 
          be either consonant or vowel, but not both at the same time.
          Additionally, 0E23 (鉊�) is a consonant which, when doubled (鉊␡腦), 
          functions as a vowel.  (In actual fact, it functions as a
          vowel-consonant combination as well, with the final consonant sound
          varying based on its usage context.)  Though it can never be a 
          vowel if it occurs singly, these properties cannot be defined to 
          span two consecutive characters, so it IS included here.

          鉊徇腹鉊耜腺鉆�鉊徇�𨫼虜: 鉊�鉊跃�鉊鉮腺鉊遤虞鉊冢葷鉆�葡 0E33 (��䓃董) 鉆�鉊𥔿���跃�鉊𠒎葭鉊Ｒ��葵鉊␡萼鉆�鉊鉮��葡鉊跃萵鉆凼�� 鉆�鉊丞萼鉆�鉊﹤��葵鉊耜腹鉊耜腦鉊�
          鉊鉮董鉊徇�跃�凼葡鉊鉮葭鉆��鉊𥔿���跃�鉊𠒎葭鉊Ｒ���𠒎腺鉊晤�温�𢺋�跃萼鉆�鉊𠰍�� (鉊�萼鉊𨫼�凼葉鉊�腹鉊菽葵鉆�葷鉊跃�𥔿腦鉊啤�鉊冢�𠼭�鉊冢��葵鉊␡萼鉆�鉊芹腹鉊�) 
          鉊�葆鉊��鉊﹤��腦鉊抉腹鉆�鉊抉�凼�鉮葭鉆��跃葭鉆� 鉆�鉊𨫼����腦鉊毯��� 鉆�鉊丞�凼葷鉆�鉊𥔿���跃葵鉊␡萼鉊厢葵鉊﹤�𠒎腺鉊晤�温�𢺋�跃萼 鉊𨫼葡鉊﹤葵鉊晤�鉮落鉊耜葵鉊𨫼腦鉆� 
          鉊丞���鉮�凼葡鉊Ｒ�𠰍�凼葷鉊Ｒ�鉊芹葭鉊Ｒ�� �厢腹�� 鉊�鉊丞虜鉆�腹鉊跃葭鉆凼葭鉆凼�鉊跃�凼�跃�鉊凼�𠒎葡鉊啤�𨫼萵鉊抉葉鉊晤�鉊拈腦鉆�鉊鉮腺
          鉊鉮葭鉆��鉊𥔿���跃�𠒎腺鉊晤�温�𢺋�跃萼鉊徇腦鉊獅葉鉊芹腦鉊啤�鉆��鉊𠰍�� 鉆�鉊𨫼���鉊﹤���鉊𢺋���鉮萵鉆凼��葵鉊冢���𨫼萵鉊抉�𠒎腦鉆凼葉鉊﹤�鉊晤�� 
          鉊跃葉鉊�鉊�葡鉊�鉊跃葭鉆� 0E23 (鉊�) 鉊Ｒ萵鉊��鉊𥔿���跃�𠒎腺鉊晤�温�𢺋�跃萼鉊肀葆鉆����鉊﹤虞鉆�葉鉆�鉊𨫼葩鉊� (鉊␡腦) 鉊芹葉鉊��𨫼萵鉊抉�鉊丞�凼葷 
          鉊�萼鉊鉮董鉊徇�跃�凼葡鉊鉮葭鉆��鉊𥔿���跃葵鉊␡萼 (鉆�鉊跃�鉊抉葡鉊﹤�鉊𥔿���跃��腦鉊毯�� 鉊﹤萵鉊跃�鉮董鉊徇�跃�凼葡鉊鉮葭鉆��鉊𥔿���跃�鉊芹葭鉊Ｒ��葵鉊␡萼
          鉊厢葵鉊﹤�𠒎腺鉊晤�温�𢺋�跃萼鉊𠰍�凼葷鉊� 鉆�鉊𠰍腺鉆�鉊芹葭鉊Ｒ���𠒎腺鉊晤�温�𢺋�跃萼鉊𨫼萵鉊抉葵鉊詮�𠰍�鉮�凼葡鉊Ｒ��萼鉆�鉊𨫼�鉊𨫼��葡鉊��鉊晤�跃�鉊𥔿�𨫼葡鉊﹤�𠼭腦鉊毯�𠼭��
          鉊�鉊耜腦鉆�鉊𢺋�凼��葡鉊�) 鉆�鉊﹤�凼葷鉆�葡鉊�萼鉆�鉊𥔿���跃葵鉊␡萼鉆�鉊𠰍葭鉆�腺鉊抉�鉊﹤���鉊𠰍�凼葦鉊耜�鉆�鉊�鉊毯�𠰍�鉊嗣�凼�跃�鉊𠒎葭鉊Ｒ���𨫼萵鉊抉�鉊𠰍葭鉊Ｒ葷 
          鉆�鉊𨫼���鉊詮�㮙葵鉊﹤�𠼭萵鉊𨫼葩鉆�鉊徇艇鉆�葡鉊跃葭鉆凼�鉊﹤��葵鉊耜腹鉊耜腦鉊遤�鉊喪葦鉊跃�𠰍�鉊徇�凼�鉊Ｒ葡鉊Ｒ葵鉊冢���𢺋��葷鉊��𨫼葩鉊𠰍�𨫼��葉鉊�鉊晤�跃�鉊𠰍�� 
          鉊𨫼萵鉊抉葉鉊晤�鉊拈腦 鉊�葆鉊�腦鉊抉腹鉆�鉊抉�凼�鉮葭鉆��跃葭鉆�

    InThaiDigit / IsThaiDigit
          Matches Thai numerical digits only: 鉆� 鉆� 鉆� 鉆� 鉆� 鉆� 鉆� 鉆� 鉆� 鉆�.
  
          鉊�萵鉊𠼭�鉊嫩���𨫼萵鉊抉�鉊丞�鉆�鉊鉮腺鉆�鉊鉮��葡鉊跃萵鉆凼��: 鉆� 鉆� 鉆� 鉆� 鉆� 鉆� 鉆� 鉆� 鉆� 鉆�.

    InThaiCurrency / IsThaiCurrency
          Matches the Thai baht currency character: 鉊�.
  
          鉊�萵鉊𠼭�鉊嫩��葉鉊晤�鉊�鉊␡萼鉊芹�鉊詮艇鉆�鉊�葩鉊跃�𠼭葡鉊鉮�鉊鉮腺: 鉊�.

EXPORTS
      Exports 'classes' by default.

PROPERTIES
    The following properties are exported from Regexp::CharClasses::Thai:

      :classes
        InThai InThaiAlpha InThaiWord InThaiCons InThaiHCons InThaiMCons 
        InThaiLCons InThaiVowel InThaiPreVowel InThaiPostVowel 
        InThaiCompVowel InThaiDigit InThaiTone InThaiMute InThaiPunct 
        InThaiCurrency InThaiFinCons InThaiDualCons InThaiDualC1 
        InThaiDualC2 InThaiConsVowel
        
        IsThai IsThaiAlpha IsThaiWord IsThaiCons IsThaiHCons IsThaiMCons 
        IsThaiLCons IsThaiVowel IsThaiPreVowel IsThaiPostVowel 
        IsThaiCompVowel IsThaiDigit IsThaiTone IsThaiMute IsThaiPunct 
        IsThaiCurrency IsThaiFinCons IsThaiDualCons IsThaiDualC1
        IsThaiDualC2 IsThaiConsVowel

      :characters
        InKokai InKhokhai InKhokhuat InKhokhwai InKhokhon 
        InKhorakhang InNgongu InChochan InChoching InChochang InSoso 
        InShochoe InYoying InDochada InTopatak InThothan InThonangmontho 
        InThophuthao InNonen InDodek InTotao InThothung InThothahan 
        InThothong InNonu InBobaimai InPopla InPhophung InFofa InPhophan 
        InFofan InPhosamphao InMoma InYoyak InRorua InRu InLoling InLu 
        InWowaen InSosala InSorusi InSosua InHohip InLochula InOang 
        InHonokhuk InPaiyannoi InSaraa InMaihanakat InSaraaa InSaraam 
        InSarai InSaraii InSaraue InSarauee InSarau InSarauu InPhinthu 
        InBaht InSarae InSaraae InSarao InSaraaimaimuan InSaraaimaimalai 
        InLakkhangyao InMaiyamok InMaitaikhu InMaiek InMaitho InMaitri 
        InMaichattawa InThanthakhat InGaran InNikhahit InYamakkan 
        InFongman InThZero InThOne InThTwo InThThree InThFour InThFive 
        InThSix InThSeven InThEight InThNine InAngkhankhu InKhomut
    
        IsKokai IsKhokhai IsKhokhuat IsKhokhwai IsKhokhon 
        IsKhorakhang IsNgongu IsChochan IsChoching IsChochang IsSoso 
        IsShochoe IsYoying IsDochada IsTopatak IsThothan IsThonangmontho 
        IsThophuthao IsNonen IsDodek IsTotao IsThothung IsThothahan 
        IsThothong IsNonu IsBobaimai IsPopla IsPhophung IsFofa IsPhophan 
        IsFofan IsPhosamphao IsMoma IsYoyak IsRorua IsRu IsLoling IsLu 
        IsWowaen IsSosala IsSorusi IsSosua IsHohip IsLochula IsOang 
        IsHonokhuk IsPaiyannoi IsSaraa IsMaihanakat IsSaraaa IsSaraam 
        IsSarai IsSaraii IsSaraue IsSarauee IsSarau IsSarauu IsPhinthu 
        IsBaht IsSarae IsSaraae IsSarao IsSaraaimaimuan IsSaraaimaimalai 
        IsLakkhangyao IsMaiyamok IsMaitaikhu IsMaiek IsMaitho IsMaitri 
        IsMaichattawa IsThanthakhat IsGaran IsNikhahit IsYamakkan 
        IsFongman IsThZero IsThOne IsThTwo IsThThree IsThFour IsThFive 
        IsThSix IsThSeven IsThEight IsThNine IsAngkhankhu IsKhomut

EXAMPLES
      use Regexp::CharClasses::Thai qw( :all );

      '鉊�' =~ /\p{InThai}/;           # Match
      '鉊�' =~ /\p{InThaiAlpha}/;      # Match
      '鉊�' =~ /\p{InThaiCons}/;       # Match
      '鉊�' =~ /\p{InThaiHCons}/;      # No match
      '鉊�' =~ /\p{InThaiMCons}/;      # Match
      '鉊�' =~ /\p{InThaiLCons}/;      # No match
      '鉊�' =~ /\p{InThaiDigit}/;      # No match
      '鉊�' =~ /\p{InThaiTone}/;       # No match
      '鉊�' =~ /\p{InThaiVowel}/;      # No match
      '鉊�' =~ /\p{InThaiCompVowel}/;  # No match
      '鉊�' =~ /\p{InThaiPreVowel}/;   # No match
      '鉊�' =~ /\p{InThaiPostVowel}/;  # No match
      '鉊�' =~ /\p{InThaiPunct}/;      # No match
      '鉊�' =~ /\p{IsKokai}/;          # Match 

      '鉆�' =~ /\p{InThai}/;           # Match
      '鉆�' =~ /\p{InThaiAlpha}/;      # Match
      '鉆�' =~ /\p{InThaiCons}/;       # No match
      '鉆�' =~ /\p{InThaiHCons}/;      # No match
      '鉆�' =~ /\p{InThaiMCons}/;      # No match
      '鉆�' =~ /\p{InThaiLCons}/;      # No match
      '鉆�' =~ /\p{InThaiDigit}/;      # No match
      '鉆�' =~ /\p{InThaiTone}/;       # No match
      '鉆�' =~ /\p{InThaiVowel}/;      # Match
      '鉆�' =~ /\p{InThaiCompVowel}/;  # No match
      '鉆�' =~ /\p{InThaiPreVowel}/;   # Match
      '鉆�' =~ /\p{InThaiPostVowel}/;  # No match
      '鉆�' =~ /\p{InThaiPunct}/;      # No match
      '鉆�' =~ /\p{IsSaraaimaimalai}/; # Match

MORE COMPLEX USAGE EXAMPLE
        my $phrase = '鉊�鉆�葡鉊抉�跃葭鉆凼�鉊𠰍�凼�鉊𠒎腦鉆�葵鉊啤�𠒎萵鉊𠰍葉鉊冢�鉆�鉊𥔿葉鉊Ｒ��葡鉊�腦鉊抉�𠰍�鉊␡��葷';
        print "A phrase with multiple syllables: $phrase\n";

        my $prevowel_syllables = $phrase  =~ s/
        (
          (?:\p{InThaiPreVowel})
          (?:
            (?:\p{InThaiDualC1}\p{InThaiDualC2})
            |
            (?:\p{InThaiCons}){1}
          )
          (?:[\p{InThaiTone}\p{InThaiCompVowel}\p{InThaiPostVowel}]){0,3}
          (?:
            (?:[\p{InThaiFinCons}\p{IsYoyak}\p{IsWowaen}]){0,5}
            (?!\p{InThaiPostVowel})
          )*
          (?:\p{InThaiMute})?
        )
        /($1)/gx;

        print "Syllables with pre-vowels marked: $phrase\n";
        print "Number of these marked syllables: $prevowel_syllables\n";

UNICODE
      All of the character codepoints in this module are based on the 
      official unicode designations for Thai as found in this chart:

      鉊�虜鉊𠰍�鉊�鉆凼�𠰍葉鉊晤�鉊�鉊␡萼鉊鉮萵鉆凼��葦鉊﹤�𠰍�鉊跃�鉊﹤�𠰍號鉊丞�跃葭鉆凼葉鉊毯���𨫼葡鉊﹤�鉊耜腦鉊�鉊喪葦鉊跃�𠰍腺鉊嫩�跃葩鉆�鉊�鉆凼�𠰍葉鉊Ｒ��葡鉊�
      鉆�鉊𥔿���跃�鉮葡鉊��鉊耜腦鉊芹董鉊徇腦鉊晤�𠼭�恷葡鉊拈葡鉆�鉊鉮腺鉊𠰍萵鉊��鉮葭鉆��𠒎�𠼭�鉊跃�鉊厢�跃�恷號鉊﹤葩鉊跃葭鉆�:  
  
      http://www.unicode.org/charts/PDF/U0E00.pdf
  
      The spellings of these latinized/transliterated character names
      as used in the property definitions for each character come 
      directly from this unicode chart, sans spaces, and with only their 
      first letter in uppercase.  The �𦒈aran�� (a common name) is added 
      as an alias for its official name, Thanthakhat (of uncommon usage).
  
      鉊�鉊耜腦鉊芹萼鉊�鉊𠰍�鉊冢���𢺋虞鉆�葉鉊冢萵鉊�鉊�鉊␡萼鉆�鉊𠼭�𠼭艇鉊耜�𨫼葩鉊�/鉊鉮萵鉊𠼭落鉊晤�𠒎�鉮�䓃�鉮葭鉆��鉊𢺋�凼�鉊跃�鉊喪��董鉊�鉊晤�𠰍�鉊抉葡鉊﹤�鉊冢��
      鉊�鉊詮�㮙葵鉊﹤�𠼭萵鉊𨫼葩鉊芹董鉊徇腦鉊晤�𠼭葉鉊晤�鉊�鉊␡萼鉆�鉊𨫼��艇鉊啤�𨫼萵鉊抉�跃萵鉆凼�跃腹鉊耜��葡鉊�鉆�鉊厢�跃�恷號鉊﹤葩鉊Ｒ號鉊跃葩鉆�鉊�鉆凼�𠰍�跃葭鉆� 
      鉊�鉊耜腦鉆�鉊抉�凼�跃葷鉊␡腦鉊�鉆�鉊𠼭�𠼭�鉊﹤��腹鉊� 鉆�鉊丞萼鉊﹤葭鉆�鉊𠒎葭鉊Ｒ��葉鉊晤�鉊拈腦鉊𨫼萵鉊抉�鉊␡�鉆�鉊𥔿���跃�𨫼萵鉊抉�𠒎葩鉊﹤�𠒎�䓃�鉊徇�温���鉊鉮��葡鉊跃萵鉆凼�� 
      鉊﹤葭鉊�鉊耜腦鉆�鉊𠒎葩鉆�腹 �𦒈aran�� (鉊�鉊耜腦鉊晤�跃�𨫼�� - 鉊𢺋虞鉆�葉鉊芹葡鉊﹤萵鉊�) 鉆�鉊𥔿���跃�跃葡鉊﹤�鉊瞹��葵鉊喪葦鉊␡萵鉊𠼭�𢺋虞鉆�葉
      鉊冢腺鉆�葡鉊��鉊𥔿���跃�鉮葡鉊��鉊耜腦鉊抉��葡 鉊熈萵鉊㮙�𨥬�鉊耜�� (鉊肀葆鉆����鉊𥔿���跃�鉊喪�鉮葭鉆��鉊𢺋�凼�鉊﹤���熈腦鉊␡腹鉊𠰍葡)

USAGE NOTES
      Each of the defined properties may be accessed by either form:
  
      \p{InProperty} -OR-
      \p{IsProperty}
  
      For example, \p{InThaiVowel} and \p{IsThaiVowel} have identical
      implementation--there is no difference between them.  This 
      flexibility is built-in on account of ambiguities in the formats
      used by various codebases, and the fact that Perl supports both.

TO VIEW ALL CHARACTERS OF A CLASS...
      You may list the codepoints of a character class by simply
      calling that class as an ordinary function.  For example:
  
          my @chars = &amp;InThaiCompVowel;
          print @chars;
  
      This will print:
  
          0E31
          0E34
          0E35
          0E36
          0E37
          0E38
          0E39
          0E3A
          0E47
          0E4D

      To print them as the actual UTF8 characters these codepoints
      represent, try this:
  
          my @chars = split(/\n/, InThaiPreVowel);
          foreach my $char (@chars) {
              print chr(hex($char));
          }

INSTALLATION
      To install this module type the following:

        perl Makefile.PL
        make
        make test
        make install

BUGS
      COMBINATIONS
        Combinations cannot be handled by this module.
        The doubled 鉊� consonant (鉊␡腦) in some syllables becomes 
        vowel + consonant; whereas it will only be counted as 
        a consonant here.
    
      CONSONANT CLUSTERS
        This feature (InThaiDualCons, InThaiDualC1, InThaiDualC2, etc.)
        is considered experimental and likely incomplete.  Please send
        the author additions for this list if you find it incomplete.

      AMBIGUITIES
        Where a character can function as either consonant or vowel, 
        it may get included in both categories, i.e. it may match 
        either one. This includes the Thai 0E24 (鉊�) and 0E26 (鉊�) 
        characters which are considered �𦨴onorant�� consonants by some, 
        and strictly as vowels by others.

PREREQUISITES
      Perl 5.8.3 or newer
      Exporter 5.57 or newer
      utf8

AUTHOR
      Erik Mundall &lt;emundall@biblasia.com&gt;.

COPYRIGHT and LICENSE
        Regexp::CharClasses::Thai is designed to enable detailed 
        regular expressions, with the ability to identify important 
        characteristics of Thai alphabetic characters, digits and symbols.

        Copyright (C) 2023  Erik Mundall

        This program is free software: you can redistribute it and/or 
        modify it under the terms of the GNU General Public License as 
        published by the Free Software Foundation, either version 3 of 
        the License, or (at your option) any later version.

        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.

        You should have received a copy of the GNU General Public License
        along with this program.  If not, see: 
        https://www.gnu.org/licenses/.

CHALLENGE
    �乪hatever your hand finds to do, do it with your might; for there is
    no work, nor device, nor knowledge, nor wisdom, in the grave, where you
    go.�� --Ecclesiastes 9:10

    �厢腹鉊獅葉鉊�鉊冢���鉊��凼葡鉊�萵鉊𠼭�鉮董鉊�鉊耜腦鉊�葡鉊跃葉鉊啤�鉊� 鉊����鉊␡萼鉊鉮董鉊�鉊耜腦鉊跃萵鉆凼�跃�𠰍�凼葷鉊Ｒ�鉊𨫼��腹鉊�鉊喪艇鉊晤���鉊冢���鉊��凼葡
    鉆�鉊𠒎腦鉊耜萼鉊抉��葡鉆�鉊跃�鉊𠰍�跃�鉊跃�𨫼葡鉊Ｒ�鉮葭鉆��鉊��凼葡鉊�萼鉆�鉊𥔿�跃萵鉆凼�跃�鉊﹤��腹鉊菽�鉊耜腦鉊�葡鉊� 鉊徇腦鉊獅葉鉆�鉊跃葷鉊�鉊抉葡鉊﹤�鉊毯�� 鉊徇腦鉊獅葉鉊�鉊抉葡鉊﹤腦鉊嫩��
    鉊徇腦鉊獅葉鉊芹�𨫼葩鉊𥔿萵鉊温�温葡�� --鉊𥔿萵鉊温�温葡鉊�葡鉊␡腺鉆� 鉆�:鉆𨥬��
</pre></body></html>