\xHH syntax is only valid for UTF-8 characters \x00 to \x7F. \x80 to \xFF are valid in US-ASCII encoding, but not UTF-8; to use higher characters in UTF-8, use \uHHHH. Thus, these all work:
/\u00A0/
/#{"\\xA0".encode('US-ASCII')}/
Regexp.new("\\xA0".encode('US-ASCII'))
# encoding: US-ASCII
/\xA0/
although they do different things, depending on what encoding you are matching. For example:
# encoding: UTF-8
Regexp.new("\\xA0".encode('US-ASCII')) =~ "\u00A0"
# => Encoding::CompatibilityError: incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string)