From: Hector Date: 2006-03-03T08:09:35+09:00 Subject: gsub wrapper Help! How do I get $1, $2, and $3 to get interpolated in the following snippet? string = 'This is a test of the emergency' regexp = Regexp.new('(\W)+(\w\w)(\W)+') replacement = '$1->$2<-$3' user_wants_upcase=FALSE # Note: All variables above are set by the user of the program, so I don't know # what they will contain before runtime. string.gsub!(regexp) { return_value = string # Here, how do I get $1, $2, and $3 to interpolate? if (user_wants_uppercase) return_value.upcase! || return_value end return_value } I want return_value to be -> 'This ->is<- a test ->of<- the emergency' Note: I know that I can get it to work with the non-block version of gsub! but I need to use the block version. Thanks Hector -- Posted via http://www.ruby-forum.com/.