docs: def _build_word(syl, vowels):
      """Builds a Pinyin word re pattern from a Pinyin syllable re pattern.
  
      A word is defined as a series of consecutive valid Pinyin syllables
      with optional hyphens and apostrophes interspersed. Hyphens must be
      followed immediately by another valid Pinyin syllable. Apostrophes must be
      followed by another valid Pinyin syllable that starts with an 'a', 'e', or
      'o'.
  
      """
      return "(?:{syl}(?:-(?={syl})|'(?=[{a}{e}{o}])(?={syl}))?)+".format(
          syl=syl, a=vowels['a'], e=vowels['e'], o=vowels['o'])