一応出来た。でもバグがあるかもしれないから(;_;)
僕にもっと考える時間と頭をください。

条件を満たすカンマにマッチする正規表現を考えるから難しいのかなー、と思って
違う考え方をしてみた。

str = 'first,second"a,b,c"second,third'
str.scan /(?:[^",]+"[^"]+"[^",]+)+|[^,]+/
=> ["first", "second\"a,b,c\"second", "third"]

あとは、これを頭のいい人が改良するだけでつ(;_;)