Correspondência regex se string contiver todas as palavras ou uma condição

estou fazendo um jogo de palavras simples com php e regex, como podemos pesquisar que, se uma string tem que exigir duas ou mais palavras?

Digamos

"cat"
"dog"
"play" x 2

E se

"cão de gato joga jogo"passar

"olá, um cachorro gato brincando"não passar, apenas 1 "play"

"gato"não passar, nenhum cão e 2x jogar

"Eu quero um gato e um cachorro brincar comigo e brincar com o avô"passar

Como podemos combiná-lo com regex?

questionAnswers(2)

yourAnswerToTheQuestion