Regex para comprobar que existen al menos 3 de 4 grupos de caracteres diferentes

Estoy tratando de escribir un validador de contraseña.

¿Cómo puedo ver si mi cadena suministrada contiene al menos 3 grupos de caracteres diferentes?

Es bastante fácil verificar si existen o no --- pero al menos 3?

al menos ocho (8) caracteres

Al menos tres grupos de personajes diferentes

letra mayúscul

letra minúscul

numéric

caracteres especiales! @ # $% & / =? _.,:; - \

(Estoy usando JavaScript para expresiones regulares)

Respuestas a la pregunta(6)

Su respuesta a la pregunta