From: Paul Rubel Date: 2003-07-22T03:36:56+09:00 Subject: gsub(/\s*$/, "") doubling string Hello, I recently downloaded ruby 1.8.0 p3, (2003-06-23) [i686-linux], and tried it on some code that chopped trailing spaces from a string using gsub(/\s*$/, ""). I'm seeing some odd behavior and was hoping someone could shed some light on what's happening. In 1.6.7 the code above did what I expected. However, in 1.8.0p3 it seems to double the string if the string doesn't end in a space. #does what I expected in 1.6 and 1.8 irb(main):004:0> " TEST ".gsub(/\s*$/, "") => " TEST" # very odd (at least to me) in 1.8.0p3 irb(main):005:0> " TEST .".gsub(/\s*$/, "") => " TEST . TEST ." Where does this repeat come from? If I change the * to a + it fixes my problem but I was hoping someone could help explain why it's happening. While looking into this I've noticed that there seems to be something special about 2 repeats. irb(main):002:0> " string ".gsub(/\s*$/, 'P') " stringPP" Regardless of how many trailing spaces I add two Ps are always appended. It seems that one matches all the spaces and then one matches the zero length string that's the end itself since a string without trailing spaces puts in one P. Is the $ getting used twice in this match? I'd appreciate any explanations or help. thank you, Paul