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)])
aW1wb3J0IHJlCgpyeCA9IHJlLmNvbXBpbGUocidcYlxkK3hcZCsoPzpbLV9dZT9cZCspKicpCgp0ZXh0cyA9IFsnYWxwaGFudW1lcmljIDF4MDEtZTAyLTAzLTA0JywKJ2hlbGxvLWNoYXIgMngwMS0wMi0wM18wNCcsCidoZWxsbyAzeDAyIGNoYXIgMngwMS0wMi0wM18wNCddCgpmb3IgdGV4dCBpbiB0ZXh0czoKCXByaW50KFtyZS5zcGxpdChyJ1stX11lPycsIHgpIGZvciB4IGluIHJ4LmZpbmRhbGwodGV4dCldKQ==
[['1x01', '02', '03', '04']]
[['2x01', '02', '03', '04']]
[['3x02'], ['2x01', '02', '03', '04']]