VBA múltiples coincidencias dentro de una cadena usando el método de ejecución de expresiones regulares

Estoy tratando de igualar los niveles de experiencia para varias posiciones basadas en 1. Grado 2. Años de experiencia. El patrón es bastante simple (ejemplo: "BS / 5" sería una licenciatura en ciencias con 5 años de experiencia. También tengo entradas que siguen este esquema pero tienen múltiples grados y niveles de experiencia en la misma cadena (ejemplo: "BS / 5-MS / 2 ") que se consideran equivalentes. Tengo una función básica que coincidirá y encontrará el patrón de subcadena, pero nunca devuelve más de una coincidencia aunque haya establecido la propiedad .Global en verdadero para la expresión regular Objeto. ¿Alguna idea? Código abajo:

On Error Resume Next
ActiveWorkbook.VBProject.References.AddFromGuid "{3F4DACA7-160D-11D2-A8E9-00104B365C9F}", 5, 5

Dim theRegex As Object
Dim theString As String 

Set theRegex = CreateObject("VBScript.RegExp")

With regex
    .MultiLine = False
    .Global = True
    .IgnoreCase = False
End With

theRegex.Pattern = "([A-z][A-z][A-z]?/[0-9][0-9]?)"

theString = "MS/9-PhD/4"

Set MyMatches = theRegex.Execute(theString)

Debug.Print "SubMatches.Count: " & MyMatches.Item(0).SubMatches.Count

If MyMatches.Count <> 0 Then
        With MyMatches
            For myMatchCt = 0 To .Count - 1
                    Debug.Print "myMatchCt: " & myMatchCt
                    For subMtCt = 0 To .Item(subMtCt).SubMatches.Count - 1
                        Debug.Print "subMtCt: " & subMtCt
                        Debug.Print ("," & .Item(myMatchCt).SubMatches.Item(subMtCt))
                    Next
            Next
        End With
    Else
    Debug.Print "No Matches"
End If

Respuestas a la pregunta(1)

Su respuesta a la pregunta