Aqui está algo usando expressões regulares. Ele funciona em todos os seus exemplos e também verifica se o primeiro e o último segmentos têm no máximo dois ou três dígitos, respectivamente:
Option Explicit
Function ExtractNumPattern(S As String) As String
Dim RE As Object, MC As Object
Const sPat As String = "(?:^|\D)(\d{2}\.\d{2}\.\d{3}\.\d{3})(?:\D|$)"
Set RE = CreateObject("vbscript.regexp")
With RE
.Global = False
.Pattern = sPat
.MultiLine = True
If .Test(S) = True Then
Set MC = .Execute(S)
ExtractNumPattern = MC(0).submatches(0)
Else
ExtractNumPattern = "NA"
End If
End With
End Function
O padrão regex deve ser razoavelmente claro, exceto, talvez, para o começo e o fim.
A primeira parte (?:^|\D)
garante que o valor seja precedido por um não dígito ou pelo início da linha.
A última parte (?:\D|$)
garante que o valor seja seguido por um não dígito ou pelo fim da linha.