> irbsh[08:18](main):005:0> "ABAB".gsub(/(A)/){ $1.downcase }
> "aBaB"
> 
> 置換対象の文字列が来たときにブロックが呼ばれます。
> そして $1 が正規表現の最初のカッコにくるまれた部分なのでこうなりました。
> これぞRubyの顔「イテレータ」!!

 大変有り難うございます。
 見事変換できました!

-- 
Takeshi Yamamoto 
hora / mxc.mesh.ne.jp