>>>>> "D" == Dave Thomas <Dave / thomases.com> writes: D> I don't know if it's necessary, but you _could_ have [g]sub! and D> cho[m]p! always return the string, and set $& to whatever was D> changed. If $& is nil, then no change was made. About $&, I've in ruby-man-1.4 : $& The string matched by the last successful pattern match in this ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ scope. (Mnemonic: like & in some editors.) This variable is read-only. but if I try : pigeon% ruby -e '"abcd".sub!("a", "e"); p $&' "a" pigeon% pigeon% ruby -e '"abcd".gsub!("a", "e"); p $&' nil pigeon% pigeon% ruby -e '/./ =~ "123"; /a/ =~ "123"; p $&' nil pigeon% This is not really the last _successful_ pattern match, no ? Guy Decoux