エスケープのなぞ

MySQLもバックスラッシュを解釈しちゃうので、エスケープしようとしたんですが。
どーしてこうなるんだろう???


irb(main):034:0> "\\".gsub("\\","\\\\") => "\\"
irb(main):035:0> "\\".gsub("\\","\\\\\\") => "\\\\"
わたしてきには、1行目の結果として、2行目の結果を期待したのだけど。。。
引用符も同じだったです。

irb> "\'".gsub("\'","\\\'") => ""
irb> "\'".gsub("\'","\\\\\'") => "\\'"