Vérifier et valider une adresse IP avec les expressions régulières

L'expression régulière suivante vérifie la validité d'une adresse IPv4.

private static final Pattern PATTERN = Pattern.compile(
"^(([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|2[0-4]\\d|25[0-5])$");

public static boolean validate(final String ip) {
return PATTERN.matcher(ip).matches();
}

Description:

^ #Début
( # Début du groupe #1
[01]?\\d\\d? # Peut être un ou deux chiffres. Si le nombre est supérieur à 100, il doit commencer par un 0 ou 1
# ex. ([0-9], [0-9][0-9],[0-1][0-9][0-9])
| # ...ou
2[0-4]\\d # commence avec 2, suivi par 0-4 et termine avec n'importe quel chiffre
| # ...ou
25[0-5] # commence avec 2, suivi par 5 et termine avec 0-5
) # fin du groupe #2
\. # suivi par un point "."
.... # répêter 3 fois (3x)
$ #fin