And using substring function? Do you have the same results?
I understand your arguments about normalization but, as you know, BNF is the best SQL Developer friend ;)
I used to avoid text fields and search/filter them (when it is possible), mainly because this consumption issues.... if the query has been on execution for more than 5 minutes, the virtual table that postgresql is preparing in memory should be huge.
Bye for now and good luck :)
About your question, if you are searching a text inside another text you could obtain bizarre results and consume a lot of resources, but my approximation to your problem