Hi, I'm new to ruby, and I was just playing around with some regular
expressions, specifically examining EUC-JP characters.  Can someone take
a look at the following code and comment? 

When run, it shows that a range of characters starting at 0xa1 (and a
few other characters) are not recognized by "." in a regex match.  There
are also a few strange things going on with substitution (the \\1 not
referring to the match and so being printed as \1).  It looks like
they're related since it occurs in strings with chars not recognized by
".". 

The i.chr() + "\\1" in the replacement string is needed to make it
behave oddly (although it doesn't specifically have to be i.chr()).
"\\1" by itself works, and I think a few other combinations
(.-recognized chars before or after the \\1) also works - I didn't keep
track of all I checked. 

(0..0xff).each { |i|

  r = Regexp.new(format("\\x%02x([\\xa1-\\xf3])", i))
  a = (i.chr() + "\xa2").sub(r, i.chr() + "\\1")
  printf "0x%02x=%2d  %s\n", i, (x = i.chr() =~ /./p).nil? ? -1 : x, a
      
}

thanks,
Wes.

##  Wes Nakamura  -  wknaka / pobox.com