А вот ваша рега как раз ошибается, находит там, где находить не должна (ошибочно замаскированную кавычку принимает за закрывающую):
var testText = "a'b\\\\\\'c"
var re = /(?:(['"])\1|(['"])(?:\\\\|[\s\S])*?(?:\\\\(?=\2)|[^\\])\2)/g;
alert( testText.match(re).join("\n") );