>>684
>ただし、String#sub! に対する String#sub ような
>破壊的でないバージョンを用意している場合に限る。

そんなのビミョースギ
def foo() o = dup ; o.foo! ; o end するときはむしろ foo! が先だし。
「foo!はfooより破壊的」ってことがいいたかったのね。