code: func (a *any) match(path []string, tokens []*Token) bool {
  	// if we have no more tokens, then we have matched this path
  	// if there are also no more path elements, otherwise there's no match
  	if len(tokens) == 0 {
  		return len(path) == 0
  	}
  
  	// what token are we trying to match?
  	_token := tokens[0]
  	switch _token.Type {
  	case ANY:
  		if len(path) == 0 {
  			return a.match(path, tokens[1:])
  		} else {
  			return a.match(path, tokens[1:]) || a.match(path[1:], tokens)
  		}
  
  	default:
  		// if we have a non-ANY token, then we must have a non-empty path
  		if len(path) != 0 {
  			// if the current path element matches this token,
  			// we match if the remainder of the path matches the
  			// remaining tokens
  			if fnmatch.Match(_token.Token(), path[0], fnmatch.FNM_PATHNAME) {
  				return a.match(path[1:], tokens[1:])
  			}
  		}
  	}
  
  	// if we are here, then we have no match
  	return false
  }
docs: // match performs the recursive matching for 'any' patterns. An 'any'
  // token '**' may match any path component, or no path component.