#Regex, PCRE flavor, 83 bytes
Regex, PCRE flavor, 83 bytes
^(?3)*\)*$(()((?(2)|\)*)(\((?1)*(\)|$)|0|"[^"]*.?|(1|(2|(3|4(?3))(?3))(?3))(?3))))?
#Regex, PCRE flavor, 85 bytes
Regex, PCRE flavor, 85 bytes
^((?(3)|\)*)(?>\((?2)*(()(?1))?(\)|$)|0|"[^"]*.?|(1|(2|(3|4(?1))(?1))(?1))(?1)))*\)*$
Used some ideas in this dan1111's answer.