code: func regexpMatch(re *regexp.Regexp, q string) map[string]string {
  	names := re.SubexpNames()
  	match := re.FindAllStringSubmatch(q, -1)
  
  	if len(match) == 0 {
  		return map[string]string{}
  	}
  
  	m := map[string]string{}
  	for i, n := range match[0] {
  		if names[i] != "" {
  			m[names[i]] = n
  		}
  	}
  
  	return m
  }
docs: // regexpMatch matches the given regexp and extracts the match groups into a
  // named map.