gsubの第二引数(置換後)にマッチ結果を指定する方法
通常 /regexp/ =~ str
でマッチした結果は
$1や$&等で取得可能です。
ところが、stringのgsub(置換メソッド)でマッチ結果を使う場合は
少しやり方が変わります。
str.gsub(/regexp/, '\1')
これで第1マッチ結果を置換後の値として使用できます。
(通常は正規表現としてはこちらが"普通の"記述方法ですね。)
また、引数1つのgsubの場合には次のように通常のマッチ結果取得記述方法が使えます。
str.gsub(/regexp/) {$1}