code: def parse_package_extended(identifier):
      
      match = EXTENDED_PACKAGE_RE.match(identifier)
      if match is None:
          raise ValueError
  
      full_name, pkg_hash, version, tag = match.groups()
      team, user, name, subpath = parse_package(full_name, allow_subpath=True)
  
      # namedtuple return value
      return PackageInfo(full_name, team, user, name, subpath, pkg_hash, version, tag)
docs: Parses the extended package syntax and returns a tuple of (package, hash, version, tag).