原です。
バグだと思うんですが、(また勘違いだったりして)
-----------^ test.rb
print "abc".sub(/b/){ "(#$&)" }, "\n"
print "ABC".sub(/B/){ "(#$&)" }, "\n"
-----------$ test.rb
というスクリプトを動かすと
-----------^
a()c
A(B)C
-----------$
と出力されます。最初の $& が展開されてないみたいです。
---===-=-=-=-=-=-=-=-=======--=-=-=-==-=-===-=-=-=-=-=-=--=-==-=--
Shin-ichro Hara(Nagaoka Univ.of Tech.)