Sorry, I don't think I answered the question. Hopefully, I can be proven wrong on this, but ...
I don't think it is possible to split using a regular expression. The quoting nature will require some combination of look-ahead (and look-behinds). And I don't think variable length look-aheads and look-behinds are supported with the split operation.
You're right, Henry; split() is virtually useless when it comes to CSV data. A positive matching approach like the one you suggested will work, but it can't be counted on to fail when the input is malformed--it will just return garbage results. For CSV data, you're much better off using a dedicated CSV parser/tokenizer. There are several good, free ones floating around.
Did you pay attention to the conversation between Alan and I? To summarize, regular expressions are not good for CSV data. Even with one level deep, (and no error checking), it can get ridiculously complex.
I really suggest that you get a CSV parser... but... I will give you one last enhancement.