import re

pattern = r"^:([\w:|!.?%()-]+)\t(.*(?:\n(?!:[\w:|!.?%()-]+\t).*)*)"

s = ("#% text_encoding = utf8\n\n"
            ":xy_name1	Text\n\n"
            ":xy_name2	Text text text to a text. \n\n"
            "Text and text to text text, text and \n\n"
            "text provides text text text text.\n\n"
            ":xy_name3	Text")

print(re.findall(pattern, s, re.MULTILINE))