Would be cool if you didn't have to actually alter the string when you highlight it. Perhaps wrap the strings in an object that behaves like a string, but also has an attribute original string that has the unhighlighted string. It could even have a function, `highlight` that would take a highlighter character as an argument. Or perhaps even produce some kind of colored text. Just a thought.