文字列取得の質問です

"a,b,c:ABC,d,e,DEF"ghi

のような文字列があった場合に、

ABC(コロンとカンマの間)
DEF(カンマとダブルクオテーションの間)

の文字を取得するにはどのようにすればよいでしょうか?

indexとsubstrを駆使してみましたが、
カンマやダブルクオテーションが複数あるため
indexの位置が正しく取得できずに断念しました。