code: func (c *Colorize) Color(v string) string {
  	matches := parseRe.FindAllStringIndex(v, -1)
  	if len(matches) == 0 {
  		return v
  	}
  
  	result := new(bytes.Buffer)
  	colored := false
  	m := []int{0, 0}
  	for _, nm := range matches {
  		// Write the text in between this match and the last
  		result.WriteString(v[m[1]:nm[0]])
  		m = nm
  
  		var replace string
  		if code, ok := c.Colors[v[m[0]+1:m[1]-1]]; ok {
  			colored = true
  
  			if !c.Disable {
  				replace = fmt.Sprintf("\033[%sm", code)
  			}
  		} else {
  			replace = v[m[0]:m[1]]
  		}
  
  		result.WriteString(replace)
  	}
  	result.WriteString(v[m[1]:])
  
  	if colored && c.Reset && !c.Disable {
  		// Write the clear byte at the end
  		result.WriteString("\033[0m")
  	}
  
  	return result.String()
  }
docs: // Color colorizes a string according to the settings setup in the struct.
  //
  // For more details on the syntax, see the top-level Color function.