Это не помешает пользователям вводить «обычные» выражения с подстановочными знаками, а затем включать опцию watched words regular expressions enabled, что и произошло в данном случае.
Думаю, здесь просто необходимо добавить обработчик исключений вокруг вызова регулярного выражения.
def word_matches?(word, case_sensitive: false)
options = case_sensitive ? nil : Regexp::IGNORECASE
Regexp.new(WordWatcher.word_to_regexp(word), options).match?(@raw)
end