Просто чтобы вы знали, [] обозначает «классы символов». В регулярных выражениях Perl и, возможно, Ruby, \b — это «граница слова» вне класса символов и «backspace» внутри класса символов. В C символ ‘\b’ всегда обозначает backspace (точнее, ). Backspace в большинстве случаев не является полезным символом, а границы слова полезны, поэтому и происходит переопределение.
Чтобы использовать регулярное выражение для поиска «forbidden» или «forbidden», я бы, вероятно, использовал:
\b_?forbidden_?\b
(Я также знаю, как закодировать все свои буквы с помощью XX (X), чтобы избежать Unicode-трюков или проблем с регулярными выражениями.)