¿Existe una expresión regular más concisa para lograr esta tarea?

En primer lugar, perdón por el título poco convincente, pero no pude pensar en uno mejor. Necesito probar una contraseña para asegurar lo siguiente:

Las contraseñas deben contener al menos 3 de los siguientes:

letras mayúsculasletras minusculasnúmeroscaracteres especiales

Esto es lo que se me ocurrió (funciona, pero me pregunto si hay una mejor manera de hacerlo):

    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

Si al menos 3 de los criterios no se han cumplido, lo manejo. No conozco bien las expresiones regulares y he estado leyendo numerosos tutoriales en la web. ¿Hay alguna manera de combinar las 4 expresiones regulares en una? Pero supongo que hacer eso no me permitiría verificar si se cumplen al menos 3 de los criterios.

En una nota al margen, ¿hay un sitio que tenga una lista exhaustiva de todos los caracteres que deberían escaparse en la expresión regular (aquellos que tienen un significado especial, por ejemplo, $, ^, etc.)?

Como siempre, TIA. No puedo expresar lo suficiente lo increíble que creo que es este sitio.