Rabin-Karp is good for searching in multiple substrings, but I think your phrases should be the same length.
If they have the same length, you can search for sub-phrases of length (minimum length in all phrases), and then expand when you find something.
And another thought that I have is that you can expand it to use a small set of words with a length of q subtasks, depending on your search phrases. And you can modify Rabin-Karp to have q rolling hashes instead of one, with q sets of hashes. This will help if you can break your phrases into q subsets that are of similar length.
source share