>> Basically, \xE4 is counted as the byte value 0xE4, not the unicode
>> character U+00E4. And in a range expression, each escaped value is taken
>> as one character within the range. Which results in not-immediately
>> obvious situations:
>> 
>>  >> 'aébvHögtåwH??FuG'.scan(/[\303\251]/u)
>> => []
>>  >> 'aébvHögtåwH??FuG'.scan(/[#{"\303\251"}]/u)
>> => ["é"]


OK, one thing I'm still confused about -- when I look up é in any table, 
it's DEC is 233 which converted to OCT is 351, yet you're using 251 (and 
indeed it seems like reducing the OCTs I come up with by 100 is what 
actually works).

Where is this 100 difference coming from?

-- gw

-- 
Posted via http://www.ruby-forum.com/.