Existe uma expressão regular mais concisa para realizar esta tarefa?

Primeiro, desculpe pelo título manco, mas não consegui pensar em um melhor. Preciso testar uma senha para garantir o seguinte:

As senhas devem conter pelo menos três dos seguintes itens:

letras maiúsculasletras minúsculasnúmeroscaracteres especiais

Aqui está o que eu criei (funciona, mas estou me perguntando se existe uma maneira melhor de fazer isso):

    Dim lowerCase As New Regex("[a-z]")
    Dim upperCase As New Regex("[A-Z]")
    Dim numbers As New Regex("\d")
    Dim special As New Regex("[\\\.\+\*\?\^\$\[\]\(\)\|\{\}\/\'\#]")

    Dim count As Int16 = 0

    If Not lowerCase.IsMatch(txtUpdatepass.Text) Then
        count += 1
    End If
    If Not upperCase.IsMatch(txtUpdatepass.Text) Then
        count += 1
    End If
    If Not numbers.IsMatch(txtUpdatepass.Text) Then
        count += 1
    End If
    If Not special.IsMatch(txtUpdatepass.Text) Then
        count += 1
    End If

Se pelo menos três dos critérios não foram atendidos, eu cuido disso. Não sou muito versado em expressões regulares e tenho lido vários tutoriais na web. Existe uma maneira de combinar todos os 4 regexes em um? Mas acho que fazer isso não me permitiria verificar se pelo menos três dos critérios foram atendidos.

Em uma nota lateral, existe um site que possui uma lista exaustiva de todos os caracteres que precisariam ser escapados na expressão regular (aqueles que têm um significado especial - por exemplo, $, ^ etc.)?

Como sempre, TIA. Não posso expressar o suficiente o quão incrível eu acho que este site é.

questionAnswers(6)

yourAnswerToTheQuestion