Ruby gsub doesn't escape single-quotes
I don't understand what is going on here. How should I feed gsub to get the string "Yaho\'o"? >> "Yaho'o".gsub("Y", "\\Y") => "\\Yaho'o" >> "Yaho'o".gsub("'", "\\'") => "Yahooo" \' means $' which is everything after the match. Escape the \ again and it works "Yaho'o".gsub("'", "\\\\'") "Yaho'o".gsub("'", "\\\\'") Because you're escaping the escape character as well as escaping the single quote. This will also do it, and it's a bit more readable: def escape_single_quotes(str) str.gsub(/'/) { |x| "\\#{x}" } end If you want to escape both a single-quote and a backslash, so that you can embed that