Что-то, что может конвертировать
r"a+|(?:ab+c)"
в
{ (1, 'a') : [2, 3], (2, 'a') : [2], (3, 'b') : [4, 3], (4, 'c') : [5] }
или что-то подобное
и принимающее в 2 или 5