import re
pattern = r"^\.{3,}$\n(\S+)\n\.{3,}(?:\n(?!\.{3,}\n\S+\n\.{3,}).*)*"
s = ("....\n"
"sdsdsd\n"
"..........\n\n"
"asdfhjgjksdfk dfkaskk sdkfk skddkf skdf sdk ssaaa akskdf sdksdfsdf ksdf sd kkkkallwow.\n"
"sdsdllla lsldlsd lsldlalllLlsdd asdd. sdlsllall asdsdlallOEFOOASllsdl lsdlla.\n"
"slldlllasdlsd.ss;sdsdasdas.\n\n"
"......\n"
"ddss\n"
"................\n\n"
"asdfhjgjksdfk ddjafjijjjj.dfsdfsdfsdfsi dfodoof ooosdfow oaosofoodf aosolflldlfl , dskdkkfkdsa asddf;akkdfkdkk . sdlsllall asdsdlallOEFOOASllsdl lsdlla.\n"
"slldlllasdlsd.ss;sdsdasdas.\n\n"
".....\n"
"xxxx\n"
".......\n"
"asdfghjkl")
matches = re.finditer(pattern, s, re.MULTILINE)
for matchNum, match in enumerate(matches, start=1):
print("====================================================")
print("Filename : 'group1_{}'".format(match.group(1)))
print(match.group())
print("====================================================")
aW1wb3J0IHJlCgpwYXR0ZXJuID0gciJeXC57Myx9JFxuKFxTKylcblwuezMsfSg/OlxuKD8hXC57Myx9XG5cUytcblwuezMsfSkuKikqIgoKcyA9ICgiLi4uLlxuIgogICAgICAgICAgICAic2RzZHNkXG4iCiAgICAgICAgICAgICIuLi4uLi4uLi4uXG5cbiIKICAgICAgICAgICAgImFzZGZoamdqa3NkZmsgZGZrYXNrayBzZGtmayBza2Rka2Ygc2tkZiBzZGsgc3NhYWEgYWtza2RmIHNka3NkZnNkZiBrc2RmIHNkIGtra2thbGx3b3cuXG4iCiAgICAgICAgICAgICJzZHNkbGxsYSBsc2xkbHNkIGxzbGRsYWxsbExsc2RkIGFzZGQuIHNkbHNsbGFsbCBhc2RzZGxhbGxPRUZPT0FTbGxzZGwgbHNkbGxhLlxuIgogICAgICAgICAgICAic2xsZGxsbGFzZGxzZC5zcztzZHNkYXNkYXMuXG5cbiIKICAgICAgICAgICAgIi4uLi4uLlxuIgogICAgICAgICAgICAiZGRzc1xuIgogICAgICAgICAgICAiLi4uLi4uLi4uLi4uLi4uLlxuXG4iCiAgICAgICAgICAgICJhc2RmaGpnamtzZGZrIGRkamFmamlqampqLmRmc2Rmc2Rmc2Rmc2kgZGZvZG9vZiBvb29zZGZvdyBvYW9zb2Zvb2RmIGFvc29sZmxsZGxmbCAsIGRza2Rra2ZrZHNhIGFzZGRmO2Fra2Rma2RrayAuIHNkbHNsbGFsbCBhc2RzZGxhbGxPRUZPT0FTbGxzZGwgbHNkbGxhLlxuIgogICAgICAgICAgICAic2xsZGxsbGFzZGxzZC5zcztzZHNkYXNkYXMuXG5cbiIKICAgICAgICAgICAgIi4uLi4uXG4iCiAgICAgICAgICAgICJ4eHh4XG4iCiAgICAgICAgICAgICIuLi4uLi4uXG4iCiAgICAgICAgICAgICJhc2RmZ2hqa2wiKQoKbWF0Y2hlcyA9IHJlLmZpbmRpdGVyKHBhdHRlcm4sIHMsIHJlLk1VTFRJTElORSkKCmZvciBtYXRjaE51bSwgbWF0Y2ggaW4gZW51bWVyYXRlKG1hdGNoZXMsIHN0YXJ0PTEpOgogICAgcHJpbnQoIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKQogICAgcHJpbnQoIkZpbGVuYW1lICAgIDogJ2dyb3VwMV97fSciLmZvcm1hdChtYXRjaC5ncm91cCgxKSkpCiAgICBwcmludChtYXRjaC5ncm91cCgpKQogICAgcHJpbnQoIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKQ==