A lista negada é um grande aliado quando não se sabe exatamente que tipo de dados estão em uma determinada posição.
Mas lembre-se: a tabela ASCII tem 255 caracteres. Dizer algo como [^:]
significa negar um caractere e permitir outros 254, o que muitas vezes é um exagero.
Essa abrangência toda pode trazer resultados negativos, casando partes incorretas. Sempre que possível, tente descobrir quais as possibilidades válidas de dados em uma determinada posição e cadastre todas elas dentro de uma lista normal.
Nesse exemplo, se o tipo de dados que não pode ser os dois pontos forem letras, números e alguns símbolos, liste-os: [A-Za-z0-9,.()%!]
.
Assim, mais descritivo e preciso, se tiver algum caractere que não os listados, a ER vai falhar e você saberá que alguém fez caca onde não devia. Do contrário, o erro passaria despercebido.
Não tenha preguiça de descobrir todas as possibilidades de uma posição.