Where did you find this expression? I assume it was not written for Ruby.
Ruby is not supporting character class subtraction. So 1.9.2 is accepting [A-Z-[QVX]] but is not working as expected. Those characters are not excluded from the char class (See rubular, QVX is still matched)
1.8.7 is not accepting this expression at all.
You have to rewrite all those character ranges like this:
[A-Z-[QVX]]
becomes [A-PR-UWYZ]