Ruby 1.8 no es compatible con cadenas UTF-8. Usted tiene que escribir los bytes de forma individual en la expresión regular, en lugar del código completo:
>> "acentuação".scan(/\xC3\xA7/)
=> ["ç"]
para que coincida con el rango que ha especificado la expresión se convertirá en un poco complicado:
/([\x4E-\x9E][\x00-\xFF])|(\x9F[\x00-\xA5])/ # (untested)
That will be improved in Ruby 1.9, sin embargo.
Editar: Como se indicó en los comentarios, los caracteres Unicode \ u4E00- \ u9FA5 solo se asignan a la expresión anterior en la codificación UTF16-BE. La codificación UTF8 es probablemente diferente. Por lo tanto, debe analizar la asignación cuidadosamente y ver si puede encontrar una expresión de coincidencia de bytes para Ruby 1.8.
La expresión regular que marcó como "no comprobada" ciertamente no es equivalente a [\ u4e00- \ u9FA5] cuando procesa texto UTF-8 con un motor de expresiones regulares de 8 bits como el de Ruby 1.8. Su expresión regular solo funcionará al procesar texto UTF-16BE con un motor de expresiones regulares de 8 bits. –