Just to let you know, [] is for “character classes”. In Perl regular expressions, and possibly Ruby ones, \b is a “word boundary” outside of a character class and “backspace” inside of a character class. In C, ‘\b’ is always backspace (<control-H> to be precise). Backspace is not a useful character most of the time and word boundaries are, hence the redefinition.
To use a RE to catch “_forbidden_” or “forbidden” I’d probably use:
\b_?forbidden_?\b
(I also know how to &#xXX; encode all my letters to avoid Unicode tricks or the regular expression.)