import re

rx = re.compile(r'\b\d+x\d+(?:[-_]e?\d+)*')

texts = ['alphanumeric 1x01-e02-03-04',
'hello-char 2x01-02-03_04',
'hello 3x02 char 2x01-02-03_04']

for text in texts:
	print([re.split(r'[-_]e?', x) for x in rx.findall(text)])