Your input looks like a CSV record, in which a literal quote is escaped by adding another quote. Are you saying you can also escape a quote with a backslash? I've never seen that; it's usually one or the other. And I've never seen a CSV variant that let you alternate between single-quotes (apostrophes) or double-quotes in the same record. It's possible you're making this more complicated than it needs to be.
Assuming only double-quotes are recognized as field delimiters, and that they can only be escaped by adding another quote, matching a field is as simple as can be:
(?:"[^"]*")+
The backslash-escape version is a little more complicated:
"[^"\\]*(?:\\.[^"\\]*)*"
If you single-quote delimiters are allowed as well, the easiest way is to add another alternative:
(?:"[^"]*")+|(?:'[^']*')+
"[^"\\]*(?:\\.[^"\\]*)*"|'[^'\\]*(?:\\.[^'\\]*)*'
And if you really need to support both kinds of quote and both kinds of escaping, see Tim's answer. But I'm extremely skeptical.