私が持っているコードは次のとおりです。
matches = re.search('(<meta.*?>)', contents, re.DOTALL)
if matches:
for group in matches.groups():
metas.append(group)
title = re.search('(<title>.*?</title>)', contents, re.DOTALL)
if title.groups():
found_title = title.group(1) + '\n'
else:
found_title = ''
メタタグとタイトルタグ(小文字)を含むHTMLページで動作しているため、メタタグと空でないタイトルが複数一致することが予想されます。正規表現の前後の括弧を追加または削除しても、違いはないようです。