Q> строки моего животного не взяты
Поскольку у вас есть myanimal внутри кавычек ('have (. *?) Myanimal'), это будет считаться частью строки, это фактические значенияt быть подставленным.
Необходимо сформировать регулярное выражение, и поскольку myanimal - это список:
for animal in myanimal:
regex = re.compile('have a .*%s'%animal)
for m in re.finditer(regex, mysentence):
print m.group()
output:
have a dog
have a dog a cute cat
have a dog a cute cat and a big cow
Может быть, это могло бы помочь ....