What about to split the string and strip words punctuation?
w in [ws.strip(',.?!') for ws in p.split()]
Or working the case:
w.lower() in [ws.strip(',.?!') for ws in p.lower().split()]
Maybe that way:
def wsearch(word, phrase):
# Attention about punctuation and about split characters
punctuation = ',.?!'
return word.lower() in [words.strip(punctuation) for words in phrase.lower().split()]
Sample:
print(wsearch('CAr', 'I own a caR.'))
I didn't check performance...