By using a wildcard character string taken ORACLE
select
regexp_substr('aa--a(1-23),b---b(32---1)','[^(,)]+',1,1) as col1,
regexp_substr('aa--a(1-23),b---b(32---1)','[^(,)]+',1,2) as col2,
regexp_substr('aa--a(1-23),b---b(32---1)','[^(,)]+',1,3) as col3,
regexp_substr('aa--a(1-23),b---b(32---1)','[^(,)]+',1,4) as col4
from dual;