大文字と小文字を区別しない場合に備えて、指定された単語全体に一致する次の式があります。引用符は単語の一部であるため、単語の前後に引用符があるかどうかを確認します。たとえば、「foo」という単語は「foo's」というテキストと一致してはなりません。
word = "foo"
pattern = re.compile(r'(?<![a-z\'])%s(?![a-z\'])' % word,flags=re.IGNORECASE)
例外は三重引用符です。単語が三重引用符の内側(隣)にある場合は、一致する必要があります。
pattern.search("'''foo bar baz'''")
今回は「foo」が見つかるはずですが、単語の前に引用符が付いているため、見つかりません。