Regex para verificar se existem pelo menos 3 de 4 grupos de caracteres diferentes

Estou tentando escrever um validador de senh

Como posso ver se minha string fornecida contém pelo menos 3 grupos de caracteres diferente

É fácil verificar se eles existem ou não - mas pelo menos

pelo menos oito (8) caracteres

Pelo menos três grupos de caracteres diferentes

Letra Maiúscul

letra minúscul

numéric

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

(Estou usando javascript para regex)

questionAnswers(6)

yourAnswerToTheQuestion