reverse.go
func (r *Regexp) Values(s string) url.Values {
	match := r.compiled.FindStringSubmatch(s)
	if match != nil {
		values := url.Values{}
		for k, v := range r.groups {
			values.Add(v, match[r.indices[k]])
		}
		return values
	}
	return nil
}
func (r *Regexp) Values(s string) url.Values {
	match := r.compiled.FindStringSubmatch(s)
	if match != nil {
		values := url.Values{}
		for k, v := range r.groups {
			values.Add(v, match[r.indices[k]])
		}
		return values
	}
	return nil
}
// Values matches the regexp and returns the results for positional and
// named groups. Positional values are stored using an empty string as key.
// If the string doesn't match it returns nil.