response = response.replace('\n', '')
r1 = re.compile('<tr.*?tr>', re.DOTALL)
r2 = re.compile('.*cow.*', re.DOTALL)
for m in r1.finditer(response):
    n = r2.match(m.group())
if n:
    pass
Комплексное нежадное сопоставление с регулярными выражениями