Eso no evitará que las personas ingresen expresiones comodín “normales” y luego activen watched words regular expressions enabled, que es lo que sucedió aquí.
Creo que solo necesita un manejador de excepciones alrededor de la llamada a regexp
def word_matches?(word, case_sensitive: false)
options = case_sensitive ? nil : Regexp::IGNORECASE
Regexp.new(WordWatcher.word_to_regexp(word), options).match?(@raw)
end