parse (Locale::Tag::Common)

    # File lib/locale/tag/common.rb, line 38
            def parse(tag)
              if tag =~ /\APOSIX\Z/  # This is the special case of POSIX locale but match this regexp.
                nil
              elsif tag =~ TAG_RE
                lang, script, region, subtag = $1, $2, $3, $4
                variants = subtag.scan(/(^|[-_])#{VARIANT}(?=([-_]|$))/i).collect{|v| v[1]}

                ret = self.new(lang, script, region, variants)
                ret.tag = tag
                ret
              else
                nil
              end
            end