import re
s="""Item 1 ....
Item 2 ....
Item 1 ....
....
....
Item 2 ....
Item 1 ....
Item 2
Item 1a ....
....
....
....
....
Item 2b ...."""
prefixes = ['Item 1', 'Item 1a', 'Item 1b']
suffixes = ['Item 2', 'Item 2a', 'Item 2b']
rx = "(?=^((?:{}).*?^(?:{})))".format("|".join(prefixes), "|".join(suffixes))
all_matches = re.findall(rx, s, re.S | re.M)
print(max(all_matches, key=len))
aW1wb3J0IHJlCnM9IiIiSXRlbSAxIC4uLi4KSXRlbSAyIC4uLi4KSXRlbSAxIC4uLi4KLi4uLgouLi4uCkl0ZW0gMiAuLi4uCkl0ZW0gMSAuLi4uCkl0ZW0gMgpJdGVtIDFhIC4uLi4KLi4uLgouLi4uCi4uLi4KLi4uLgpJdGVtIDJiIC4uLi4iIiIKcHJlZml4ZXMgPSBbJ0l0ZW0gMScsICdJdGVtIDFhJywgJ0l0ZW0gMWInXQpzdWZmaXhlcyA9IFsnSXRlbSAyJywgJ0l0ZW0gMmEnLCAnSXRlbSAyYiddCnJ4ID0gIig/PV4oKD86e30pLio/Xig/Ont9KSkpIi5mb3JtYXQoInwiLmpvaW4ocHJlZml4ZXMpLCAifCIuam9pbihzdWZmaXhlcykpCmFsbF9tYXRjaGVzID0gcmUuZmluZGFsbChyeCwgcywgcmUuUyB8IHJlLk0pCnByaW50KG1heChhbGxfbWF0Y2hlcywga2V5PWxlbikp