import re
pattern = r"(?<!\S)\d+\.\s((?:\d+\.\s)*[^\s.,:!?]+)"
strings = [
"1. text",
"2. wordX wordY.",
"3. 4. wordZ."
]
for s in strings:
for m in re.finditer(pattern, s):
print(m.group(1).split(". "))
aW1wb3J0IHJlCgpwYXR0ZXJuID0gciIoPzwhXFMpXGQrXC5ccygoPzpcZCtcLlxzKSpbXlxzLiw6IT9dKykiCnN0cmluZ3MgPSBbCiAgICAiMS4gdGV4dCIsCiAgICAiMi4gd29yZFggd29yZFkuIiwKICAgICIzLiA0LiB3b3JkWi4iCl0KCmZvciBzIGluIHN0cmluZ3M6CiAgICBmb3IgbSBpbiByZS5maW5kaXRlcihwYXR0ZXJuLCBzKToKICAgICAgICBwcmludChtLmdyb3VwKDEpLnNwbGl0KCIuICIpKQ==