Concernant les caractères spéciaux: les seuls caractères spéciaux dont il faut se préoccuper en dehors d'une classe de caractères sont: . ? * + \ [ { ( ) ^ $ | et celui que tu as choisis pour délimiter ta pattern (le slash dans ton cas /).
Pour les figurer, tu peux soit les échapper avec un antislash, soit les protéger dans une classe de caractère. Donc pas besoin de protéger ; dans une classe de caractère comme te l'as dis Watilin. De même, il est inutile d'écrire [\)], c'est soit [)], soit \).

Pas la peine de grouper tout et n'importe quoi: (?:[\'"]), ce groupe n'est pas utile, juste [\'"] c'est pareil.