code: func Glob(pattern string) (matches []string, err error) {
  	patternComponents := splitPathOnSeparator(filepath.ToSlash(pattern), '/')
  	if len(patternComponents) == 0 {
  		return nil, nil
  	}
  
  	// On Windows systems, this will return the drive name ('C:'), on others,
  	// it will return an empty string.
  	volumeName := filepath.VolumeName(pattern)
  
  	// If the first pattern component is equal to the volume name, then the
  	// pattern is an absolute path.
  	if patternComponents[0] == volumeName {
  		return doGlob(fmt.Sprintf("%s%s", volumeName, string(os.PathSeparator)), patternComponents[1:], matches)
  	}
  
  	// otherwise, it's a relative pattern
  	return doGlob(".", patternComponents, matches)
  }
docs: // Glob returns the names of all files matching pattern or nil
  // if there is no matching file. The syntax of pattern is the same
  // as in Match. The pattern may describe hierarchical names such as
  // /usr/*/bin/ed (assuming the Separator is '/').
  //
  // Glob ignores file system errors such as I/O errors reading directories.
  // The only possible returned error is ErrBadPattern, when pattern
  // is malformed.
  //
  // Your system path separator is automatically used. This means on
  // systems where the separator is '\\' (Windows), escaping will be
  // disabled.
  //
  // Note: this is meant as a drop-in replacement for filepath.Glob().
  //