code: def parse_extension(subtags):
      
      subtag = subtags[0]
      if len(subtags) == 1:
          raise LanguageTagError(
              "The subtag %r must be followed by something" % subtag
          )
  
      if subtag == 'x':
          # Private use. Everything after this is arbitrary codes that we
          # can't look up.
          return [('private', '-'.join(subtags))]
  
      else:
          # Look for the next singleton, if there is one.
          boundary = 1
          while boundary < len(subtags) and len(subtags[boundary]) != 1:
              boundary += 1
  
          # We've parsed a complete extension subtag. Return to the main
          # parse_subtags function, but expect to find nothing but more
          # extensions at this point.
          return ([('extension', '-'.join(subtags[:boundary]))]
                  + parse_subtags(subtags[boundary:], EXTENSION))
docs: An extension tag consists of a 'singleton' -- a one-character subtag --
      followed by other subtags. Extension tags are in the BCP 47 syntax, but
      their meaning is outside the scope of the standard.
  
      For example, there's the u- extension, which is used for setting Unicode
      properties in some context I'm not aware of.
  
      If the singleton is 'x', it's a private use extension, and consumes the
      rest of the tag. Otherwise, it stops at the next singleton.