Your format seems to be simple quoted csv. So you can use one of the csv-modules from cpan to parse the string into fileds.
I would suggest Text::CSV. Have a look at the example that comes with the documentation. It is not shorter than your regex-split sollution - but more stable.
Update: grammar fix
In reply to Re: Interpolating a string into list context.
by stark
in thread Interpolating a string into list context.
by hangon
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |