code: func (r *Regexp) RevertValid(values url.Values) (string, error) {
  	reverse, err := r.Revert(values)
  	if err != nil {
  		return "", err
  	}
  	if !r.compiled.MatchString(reverse) {
  		return "", fmt.Errorf("Resulting string doesn't match the regexp: %q",
  			reverse)
  	}
  	return reverse, nil
  }
docs: // RevertValid is the same as Revert but it also validates the resulting
  // string matching it against the compiled regexp.
  //
  // The values are modified in place, and only the unused ones are left.