in reply to split on commas

I wouldn't use split. It's much easier to define what you want to keep:
$string = "<*2>FOO<2,1>,<*3>(SigB<8:0:2>,BAR),<*2>Siga<2:0>,Sigb<8,7,6 +,5,0>"; @parts = $string =~ /((?:[^<(,]+|<[^>]*>|\([^)]+\))+)/g; say for @parts; __END__ <*2>FOO<2,1> <*3>(SigB<8:0:2>,BAR) <*2>Siga<2:0> Sigb<8,7,6,5,0>
This assumes no nesting of parenthesis/pointed brackets.