[
{"nom":"Email (RFC 5322 simplifié)","pattern":"^[a-zA-Z0-9._%+\\-]+@[a-zA-Z0-9.\\-]+\\.[a-zA-Z]{2,}$","exemple":"user@example.com","notes":"Ne valide pas tous les cas RFC 5322 mais couvre 99% des usages"},
{"nom":"URL HTTP/HTTPS","pattern":"^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z]{2,6}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$","exemple":"https://www.example.com/path?q=1","notes":"Valide les URL standard"},
{"nom":"SIRET (14 chiffres)","pattern":"^\\d{14}$","exemple":"73282932000074","notes":"Vérifier aussi la clé Luhn pour validation complète"},
{"nom":"SIREN (9 chiffres)","pattern":"^\\d{9}$","exemple":"732829320","notes":"Les 9 premiers chiffres du SIRET"},
{"nom":"Code APE/NAF","pattern":"^\\d{4}[A-Z]$","exemple":"6201Z","notes":"4 chiffres + 1 lettre majuscule"},
{"nom":"TVA intracommunautaire FR","pattern":"^FR[0-9A-Z]{2}\\d{9}$","exemple":"FR12345678901","notes":"FR + 2 caractères alphanumériques + 9 chiffres SIREN"},
{"nom":"IBAN générique","pattern":"^[A-Z]{2}\\d{2}[A-Z0-9]{1,30}$","exemple":"FR7612345987650123456789014","notes":"Vérifier aussi le checksum MOD-97 pour validation complète"},
{"nom":"IBAN France","pattern":"^FR\\d{2}\\d{10}[A-Z0-9]{11}\\d{2}$","exemple":"FR7614508510000029944370060","notes":"Format IBAN spécifique France (27 caractères)"},
{"nom":"Code BIC/SWIFT","pattern":"^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$","exemple":"BNPAFRPPXXX","notes":"4 lettres banque + 2 pays + 2 localisation + 3 branche optionnels"},
{"nom":"Téléphone FR fixe","pattern":"^0[1-5]\\d{8}$","exemple":"0123456789","notes":"Commence par 01 à 05"},
{"nom":"Téléphone FR mobile","pattern":"^0[6-7]\\d{8}$","exemple":"0612345678","notes":"Commence par 06 ou 07"},
{"nom":"Téléphone FR international","pattern":"^\\+33[1-9]\\d{8}$","exemple":"+33612345678","notes":"Format international +33"},
{"nom":"Téléphone international E.164","pattern":"^\\+[1-9]\\d{1,14}$","exemple":"+14155552671","notes":"Format E.164 – jusqu'à 15 chiffres"},
{"nom":"Code postal France","pattern":"^(0[1-9]|[1-8]\\d|9[0-5])\\d{3}$","exemple":"75001","notes":"01000 à 95999 (hors DOM-TOM)"},
{"nom":"Date ISO 8601","pattern":"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$","exemple":"2024-03-15","notes":"Format YYYY-MM-DD"},
{"nom":"Date FR (JJ/MM/AAAA)","pattern":"^(0[1-9]|[12]\\d|3[01])\\/(0[1-9]|1[0-2])\\/\\d{4}$","exemple":"15/03/2024","notes":"Format date français courant"},
{"nom":"Heure HH:MM","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","exemple":"14:30","notes":"Heure sur 24h"},
{"nom":"Heure HH:MM:SS","pattern":"^([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$","exemple":"14:30:00","notes":"Heure avec secondes"},
{"nom":"UUID v4","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","exemple":"550e8400-e29b-41d4-a716-446655440000","notes":"UUID version 4 (aléatoire)"},
{"nom":"Couleur hexadécimale","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$","exemple":"#FF5733","notes":"3 ou 6 caractères hexadécimaux"},
{"nom":"Adresse IPv4","pattern":"^((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$","exemple":"192.168.1.1","notes":"Valide une adresse IPv4"},
{"nom":"Adresse IPv6 (simplifiée)","pattern":"^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$","exemple":"2001:0db8:85a3:0000:0000:8a2e:0370:7334","notes":"Format complet uniquement"},
{"nom":"Numéro de version SemVer","pattern":"^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(-[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$","exemple":"1.2.3","notes":"Versionnage sémantique (semver.org)"},
{"nom":"Slug URL","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","exemple":"mon-article-de-blog","notes":"Minuscules, chiffres et tirets uniquement"},
{"nom":"Mot de passe fort","pattern":"^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,}$","exemple":"MonP@ss1word","notes":"Au moins 8 chars, 1 majuscule, 1 minuscule, 1 chiffre, 1 spécial"}
]