Ruby String.encode aún da "secuencia de bytes no válida en UTF-8"

En IRB, estoy intentando lo siguiente:

1.9.3p194 :001 > foo = "\xBF".encode("utf-8", :invalid => :replace, :undef => :replace)
 => "\xBF" 
1.9.3p194 :002 > foo.match /foo/
ArgumentError: invalid byte sequence in UTF-8
from (irb):2:in `match'

¿Alguna idea de qué va mal?