正規表現におけるアンカーの一つ、\bは単語の境界にマッチします。
単語の両端を括れば、前後に余計な文字が入っているものを除外できます。
/foobar/.match("foobarii") #=> #<MatchData "foobar"> /\bfoobar\b/.match("foobarii") #=> nil
・・・では、この単語の境界ってナンでしょうか?
試してみたところ、ドットやクエスチョン、カッコのような記号は対象外のようです。
/\bfoobar\b/.match("foobar.") #=> #<MatchData "foobar"> /\bfoobar\b/.match("foobar?") #=> #<MatchData "foobar"> /\bfoobar\b/.match("foobar ") #=> #<MatchData "foobar"> /\bfoobar\b/.match("foobar(buzz)") #=> #<MatchData "foobar">