code: func ParseNormalizedNamed(s string) (Named, error) {
  	if ok := anchoredIdentifierRegexp.MatchString(s); ok {
  		return nil, fmt.Errorf("invalid repository name (%s), cannot specify 64-byte hexadecimal strings", s)
  	}
  	domain, remainder := splitDockerDomain(s)
  	var remoteName string
  	if tagSep := strings.IndexRune(remainder, ':'); tagSep > -1 {
  		remoteName = remainder[:tagSep]
  	} else {
  		remoteName = remainder
  	}
  	if strings.ToLower(remoteName) != remoteName {
  		return nil, errors.New("invalid reference format: repository name must be lowercase")
  	}
  
  	ref, err := Parse(domain + "/" + remainder)
  	if err != nil {
  		return nil, err
  	}
  	named, isNamed := ref.(Named)
  	if !isNamed {
  		return nil, fmt.Errorf("reference %s has no name", ref.String())
  	}
  	return named, nil
  }
docs: // ParseNormalizedNamed parses a string into a named reference
  // transforming a familiar name from Docker UI to a fully
  // qualified reference. If the value may be an identifier
  // use ParseAnyReference.