From: 7stud -- Date: 2007-11-02T13:59:33+09:00 Subject: Re: backslash sequences\1\2 in regexs (backreferences) Mike Stok wrote: > > Table 22.2 in The Basic Types says \nnn goes to Octal nnn, > Ah. So, \1 and \2 are interpreted as octal character codes. I was using the following puts statement to debug: puts "abc".gsub(/a(b)(c)/, "a\2\1") + "<---" --output:-- a<--- I should have been using: p "abc".gsub(/a(b)(c)/, "a\2\1") --output:-- "a\002\001" Since the ascii codes 1 and 2 represent non-printable characters, I got no output for them using puts. My question stemmed from this passage about gsub() in pickaxe2 on p. 613: "If a string is used as the replacement, special variables from the match (such as $& and $1) cannot be substituted into it, as the substitution into the string occurs before the pattern match starts. However, the sequences \1, \2 and so on may be used to interpolate successive groups in the match." That makes it sound like \1 and \2 can be freely used in the replacement string. There is no mention of the fact that single quotes are required to keep them from being interpreted as chars written in octal. That description is very misleading -- Posted via http://www.ruby-forum.com/.