import re
strs = ['this_and', 'this.and', '(and)', '[and]', 'and^', ';And', 'land', 'andy']
phrase = "and"
rx = re.compile(r'(?<![^\W_]){}(?![^\W_])'.format(re.escape(phrase)), re.I)
for s in strs:
print("{}: {}".format(s, bool(rx.search(s))))
aW1wb3J0IHJlCnN0cnMgPSBbJ3RoaXNfYW5kJywgJ3RoaXMuYW5kJywgJyhhbmQpJywgJ1thbmRdJywgJ2FuZF4nLCAnO0FuZCcsICdsYW5kJywgJ2FuZHknXQpwaHJhc2UgPSAiYW5kIgpyeCA9IHJlLmNvbXBpbGUocicoPzwhW15cV19dKXt9KD8hW15cV19dKScuZm9ybWF0KHJlLmVzY2FwZShwaHJhc2UpKSwgcmUuSSkKZm9yIHMgaW4gc3RyczoKCXByaW50KCJ7fToge30iLmZvcm1hdChzLCBib29sKHJ4LnNlYXJjaChzKSkpKQ==