Adam Bozanich wrote: > Thanks, now I understand the problem. > > for the record, this still works after the patch: > > "abc".gsub(/(.)/,'\1,') # => "a,b,c," > > It is difficult (impossible?), however, to produce a \1 in the output > > irb(main):003:0> "abc".gsub(/(.)/,"\\\\1,") > => "\\\\1,\\\\1,\\\\1," > > and similarly a '\' before a register replacement. > > irb(main):016:0> "a".gsub(/(.)/,"\\\\\\1,") > => "\\\\a," > > I guess I just like having the "regex identity" property :) > > str = "\\" * 2 > str == str.gsub(str,str) # => true > > str = "a" > str == str.gsub(str,str) # => true > > Sorry for the false bug. > > -Adam It may not be a bug, although it's definitly unexpected, but shouldn't the documentation at least mention the double-escaping? Regards, Roel Harbers