Regexp.escape(str) returns the argument string (i.e. same object_id) 
when no change occurs. So
   x="123"
   Regexp.escape(x) << "456"
   puts x #=> 123456

Should that be considered a problem? And more generally, does it present 
a problem if foo(str) sometimes return the str object itself and 
sometimes a modified copy?

--
Daniel