func singleLiteralToCharClass(rx *syntax.Regexp) { if rx.Op == syntax.OpLiteral && len(rx.Rune) == 1 { char := rx.Rune[0] if rx.Flags&syntax.FoldCase != 0 && unicode.ToLower(char) != unicode.ToUpper(char) { l, h := unicode.ToLower(char), unicode.ToUpper(char) rx.Rune = []rune{h, h, l, l} rx.Rune0 = [...]rune{h, h} } else { rx.Rune = []rune{char, char} rx.Rune0 = [...]rune{char, char} } rx.Op = syntax.OpCharClass } }