import re

regex = r"^(.*?)(, | - |: )(.*?)(?!\2)(, | - |: )(.*?)(?!\2|\4)(, | - |: )(.*)"

test_str = ("abc: def: ijk, lmno: pqr - stu, wx")

matches = re.search(regex, test_str, re.MULTILINE)

if matches:
    print(matches.group(1))
    print(matches.group(3))
    print(matches.group(5))
    print(matches.group(7))