Catalogue de détection
Ce catalogue est généré à partir des packs de reconnaissance réellement chargés par le moteur et des documents de format qui leur servent de preuve. Il ne peut pas diverger du comportement du service : un test de la suite échoue si ce fichier n'est plus à jour.
Règles communes#
- La détection s'exécute sur le texte normalisé (chiffres arabes-indiens convertis en ASCII, tatweel et caractères de contrôle bidi supprimés, NFKC).
- Les positions renvoyées sont toujours celles du texte original, en points de code Unicode — jamais en unités UTF-16, jamais en octets.
- Les séparateurs espace, point et tiret sont tolérés entre les groupes de chiffres ; ils sont retirés avant toute validation.
- Aucun modèle d'apprentissage automatique : expressions régulières, sommes de contrôle et mots de contexte uniquement (v1).
- Un identifiant dont la détection dépend du contexte reste sous le seuil de masquage de la politique par défaut lorsqu'aucun mot de contexte n'est présent : la détection est alors signalée, pas appliquée.
Niveaux de confiance#
| Niveau | Signification | Somme de contrôle revendiquée ? |
|---|---|---|
| VERIFIED | Spécification officielle ou exemple officiel, recoupé de façon indépendante (algorithme validé par calcul contre un exemple de registre) | Oui |
| OFFICIAL-PARTIAL | Structure confirmée par des sources officielles/légales, mais algorithme de validation non documenté publiquement | Non — format seul |
| COMMUNITY | Format déduit de sources secondaires concordantes et de documents observés ; aucune spécification publique officielle | Non — motif + mots de contexte seuls |
Registres linguistiques#
Chaque pack embarque des cas de test dans les cinq registres :
- arabe standard (MSA)
- darija en écriture arabe
- darija en écriture latine (arabizi)
- français
- français/arabe mélangés (code-switching)
La précision est rapportée par registre, jamais en agrégat.
EMAIL#
Common ASCII email syntax; no deliverability or exhaustive RFC claim.
- Document de format :
docs/formats/email.md - Niveau de confiance : VERIFIED (bounded syntax subset)
- Action par défaut : masquage (
redact) - Confiance : base 0.95, plafond 0.95
- Validation : aucune — détection par forme et contexte uniquement
Motifs (sur texte normalisé, chiffres ASCII) :
email:(?i)(?<![\w.!#$%&'*+/=?^`{|}~@-])[a-z0-9!#$%&'*+/=?^`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^`{|}~-]+)*@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)+(?![\w@-])
Jeu de tests embarqué :
- Registres couverts : arabe standard (MSA) (1), darija en écriture arabe (1), darija en écriture latine (arabizi) (1), français (2), français/arabe mélangés (code-switching) (1)
- Cas négatifs (aucune détection attendue) : 1
Limites — formulation du document de format (verbatim, anglais) :
Confidence: VERIFIED (bounded syntax subset) — RFC 5322 §3.4.1 defines addr-spec, local-part and domain. This pack deliberately detects unquoted ASCII dot-atom local parts and dotted DNS-style domains, not every legal mailbox. No DNS lookup, delivery check, identity claim or external request is performed.
MA_CIN#
CIN / CNIE number: 1-2 Latin letters then 4-8 digits, context-gated, per docs/formats/ma_cin.md.
- Document de format :
docs/formats/ma_cin.md - Niveau de confiance : COMMUNITY
- Action par défaut : masquage (
redact) - Confiance : base 0.25, plafond 0.99
- Validation : aucune — détection par forme et contexte uniquement
- Mots de contexte : fenêtre ±40 points de code, bonus +0.60
- français :
CIN,C.I.N,CNIE,carte nationale,carte d'identité,n° de carte,pièce d'identité - arabe :
البطاقة الوطنية,والبطاقة الوطنية,بالبطاقة الوطنية,للبطاقة الوطنية,فالبطاقة الوطنية,كالبطاقة الوطنية,وبالبطاقة الوطنية,وللبطاقة الوطنية,وكالبطاقة الوطنية,فبالبطاقة الوطنية,فللبطاقة الوطنية,بطاقة التعريف,وبطاقة التعريف,ببطاقة التعريف,لبطاقة التعريف,فبطاقة التعريف,كبطاقة التعريف,وببطاقة التعريف,ولبطاقة التعريف,وكبطاقة التعريف,فببطاقة التعريف,فلبطاقة التعريف,رقم البطاقة,ورقم البطاقة,برقم البطاقة,لرقم البطاقة,فرقم البطاقة,كرقم البطاقة,وبرقم البطاقة,ولرقم البطاقة,وكرقم البطاقة,فبرقم البطاقة,فلرقم البطاقة,ب.ت.و,وب.ت.و,بب.ت.و,لب.ت.و,فب.ت.و,كب.ت.و,وبب.ت.و,ولب.ت.و - arabizi :
cin,carte nationale,lbita9a,bita9a wataniya,la carte,nmra d la carte,nmra d cin,nmra dl carta,la kart
- français :
Motifs (sur texte normalisé, chiffres ASCII) :
letters_digits:(?<![A-Za-z0-9])[A-Za-z]{1,2}[ .\-]?\d{4,8}(?![A-Za-z0-9])
Jeu de tests embarqué :
- Registres couverts : arabe standard (MSA) (1), darija en écriture arabe (1), darija en écriture latine (arabizi) (1), français (5), français/arabe mélangés (code-switching) (1)
- Cas négatifs (aucune détection attendue) : 1
- Cas à confiance plafonnée (détection sans contexte) : 2
Limites — formulation du document de format (verbatim, anglais) :
Confidence: COMMUNITY — the DGSN publishes no public format specification. Format is inferred from consistent secondary sources and observable official documents. Pattern + context detection only. No checksum exists publicly; do not invent one. No authoritative prefix list — do not hard-filter on prefixes.
Formulation catalogue (à reprendre telle quelle) :
CIN : détection par motif et mots de contexte. Aucune spécification publique officielle du format n'existe ; aucune clé de contrôle n'est publiée. La détection est par nature probabiliste sur cet identifiant.
MA_CNSS#
CNSS employee registration number: exactly 9 digits, context-gated, per docs/formats/ma_cnss.md.
- Document de format :
docs/formats/ma_cnss.md - Niveau de confiance : COMMUNITY
- Action par défaut : masquage (
redact) - Confiance : base 0.20, plafond 0.99
- Validation : aucune — détection par forme et contexte uniquement
- Mots de contexte : fenêtre ±40 points de code, bonus +0.70
- français :
CNSS,n° CNSS,immatriculation,n° d'immatriculation,affiliation,n° d'affiliation,sécurité sociale,damancom,n CNSS - arabe :
الضمان الاجتماعي,والضمان الاجتماعي,بالضمان الاجتماعي,للضمان الاجتماعي,فالضمان الاجتماعي,كالضمان الاجتماعي,وبالضمان الاجتماعي,وللضمان الاجتماعي,وكالضمان الاجتماعي,فبالضمان الاجتماعي,فللضمان الاجتماعي,رقم الانخراط,ورقم الانخراط,برقم الانخراط,لرقم الانخراط,فرقم الانخراط,كرقم الانخراط,وبرقم الانخراط,ولرقم الانخراط,وكرقم الانخراط,فبرقم الانخراط,فلرقم الانخراط,رقم التسجيل,ورقم التسجيل,برقم التسجيل,لرقم التسجيل,فرقم التسجيل,كرقم التسجيل,وبرقم التسجيل,ولرقم التسجيل,وكرقم التسجيل,فبرقم التسجيل,فلرقم التسجيل,الصندوق الوطني للضمان الاجتماعي,والصندوق الوطني للضمان الاجتماعي,بالصندوق الوطني للضمان الاجتماعي,للصندوق الوطني للضمان الاجتماعي,فالصندوق الوطني للضمان الاجتماعي,كالصندوق الوطني للضمان الاجتماعي,وبالصندوق الوطني للضمان الاجتماعي,وللصندوق الوطني للضمان الاجتماعي,وكالصندوق الوطني للضمان الاجتماعي,فبالصندوق الوطني للضمان الاجتماعي,فللصندوق الوطني للضمان الاجتماعي - arabizi :
cnss,damane,damancom,ta3widat,nmra d CNSS,nmra d'inscription,raqm tasjil,ra9m tasjil,nmrtk d cnss
- français :
Motifs (sur texte normalisé, chiffres ASCII) :
nsn9:(?<!\d)\d{9}(?!\d)
Jeu de tests embarqué :
- Registres couverts : arabe standard (MSA) (1), darija en écriture arabe (1), darija en écriture latine (arabizi) (1), français (4), français/arabe mélangés (code-switching) (1)
- Cas négatifs (aucune détection attendue) : 1
- Cas à confiance plafonnée (détection sans contexte) : 1
Limites — formulation du document de format (verbatim, anglais) :
Confidence: COMMUNITY — employee numbers use nine digits, supported by the previously inspected physical card and a historical CNSS-authored e-BDS specification reproduced publicly (see the employer format document). A current issuer-hosted technical copy has not been retrieved. Detection uses pattern and context; no checksum is activated or claimed.
MA_CNSS_AFFILIATION#
CNSS employer affiliation, 7 digits; historical reproduced specification, context-only.
- Document de format :
docs/formats/ma_cnss_affiliation.md - Niveau de confiance : COMMUNITY
- Action par défaut : masquage (
redact) - Confiance : base 0.20, plafond 0.99
- Validation : aucune — détection par forme et contexte uniquement
- Mots de contexte : fenêtre ±40 points de code, bonus +0.70
- français :
affiliation,n° d'affiliation,numéro d'affiliation,CNSS,damancom - arabe :
رقم الانخراط,ورقم الانخراط,برقم الانخراط,لرقم الانخراط,فرقم الانخراط,كرقم الانخراط,وبرقم الانخراط,ولرقم الانخراط,وكرقم الانخراط,فبرقم الانخراط,فلرقم الانخراط - arabizi :
cnss,affiliation,nmra dyal cnss
- français :
Motifs (sur texte normalisé, chiffres ASCII) :
employer7:(?<![^\W_])\d{7}(?![^\W_])
Jeu de tests embarqué :
- Registres couverts : arabe standard (MSA) (1), darija en écriture arabe (1), darija en écriture latine (arabizi) (1), français (3), français/arabe mélangés (code-switching) (1)
- Cas négatifs (aucune détection attendue) : 1
- Cas à confiance plafonnée (détection sans contexte) : 1
Limites — formulation du document de format (verbatim, anglais) :
Confidence: COMMUNITY — seven-digit employer namespace documented in a public reproduction of the CNSS-authored e-BDS specification V1.3, pp. 16 and 22 (field
N_Num_Affilie, numeric width 7). The current issuer-hosted copy could not be retrieved on 2026-09-07; this is not independently authenticated or claimed current. Detection uses shape and context only.
MA_ICE#
Identifiant Commun de l'Entreprise: 15 digits (9+4+2), format-only, tag by default, per docs/formats/ma_ice.md.
- Document de format :
docs/formats/ma_ice.md - Niveau de confiance : OFFICIAL-PARTIAL
- Action par défaut : signalement seul (
tag) — jamais masqué par défaut - Confiance : base 0.45, plafond 0.99
- Validation : aucune — détection par forme et contexte uniquement
- Mots de contexte : fenêtre ±40 points de code, bonus +0.45
- français :
ICE,identifiant commun,I.C.E,n° ICE,RC,IF,patente - arabe :
التعريف الموحد للمقاولة,والتعريف الموحد للمقاولة,بالتعريف الموحد للمقاولة,للتعريف الموحد للمقاولة,فالتعريف الموحد للمقاولة,كالتعريف الموحد للمقاولة,وبالتعريف الموحد للمقاولة,وللتعريف الموحد للمقاولة,وكالتعريف الموحد للمقاولة,فبالتعريف الموحد للمقاولة,فللتعريف الموحد للمقاولة,رقم التعريف الموحد,ورقم التعريف الموحد,برقم التعريف الموحد,لرقم التعريف الموحد,فرقم التعريف الموحد,كرقم التعريف الموحد,وبرقم التعريف الموحد,ولرقم التعريف الموحد,وكرقم التعريف الموحد,فبرقم التعريف الموحد,فلرقم التعريف الموحد - arabizi :
ice
- français :
Motifs (sur texte normalisé, chiffres ASCII) :
ice15:(?<!\d)\d{9}[ .\-]?\d{4}[ .\-]?\d{2}(?!\d)
Jeu de tests embarqué :
- Registres couverts : arabe standard (MSA) (1), darija en écriture arabe (1), darija en écriture latine (arabizi) (1), français (4), français/arabe mélangés (code-switching) (1)
- Cas négatifs (aucune détection attendue) : 2
- Cas à confiance plafonnée (détection sans contexte) : 2
Limites — formulation du document de format (verbatim, anglais) :
Confidence: OFFICIAL-PARTIAL — existence, legal basis, and 15-digit 9+4+2 structure are documented by official/legal sources. The 2-digit control key exists, but the sources inspected do not specify its algorithm. BO 5952 pp. 1690–1691 was visually inspected on 2026-09-07: the complete decree (articles 1–12) contains no checksum formula; article 8 assigns technical characteristics to the managing committee. Until an issuer's technical specification yields the formula: format-only detection, no checksum claim. Never guess the algorithm.
MA_PHONE#
Moroccan phone number, ANRT closed 10-digit plan (trunk 0 or +212 / 00212), Z in 5-8, per docs/formats/ma_phone.md.
- Document de format :
docs/formats/ma_phone.md - Niveau de confiance : VERIFIED (structure) / CHURNING (operator prefix blocks)
- Action par défaut : masquage (
redact) - Confiance : base 0.80, plafond 0.99
- Validation : fonction
ma_phone_nsn - Mots de contexte : fenêtre ±40 points de code, bonus +0.15
- français :
tél,téléphone,portable,GSM,numéro,appelez,joignable,whatsapp - arabe :
الهاتف,والهاتف,بالهاتف,للهاتف,فالهاتف,كالهاتف,وبالهاتف,وللهاتف,وكالهاتف,فبالهاتف,فللهاتف,رقم,الرقم,ورقم,والرقم,برقم,بالرقم,لرقم,للرقم,فرقم,فالرقم,كرقم,كالرقم,وبرقم,وبالرقم,ولرقم,وللرقم,وكالرقم,فبرقم,فبالرقم,فلرقم,فللرقم,اتصل,واتصل,فاتصل,جوال,الجوال,وجوال,والجوال,بجوال,بالجوال,لجوال,للجوال,فجوال,فالجوال,كجوال,كالجوال,وبجوال,وبالجوال,ولجوال,وللجوال,وكالجوال,فبالجوال,فللجوال,واتساب,الواتساب,وواتساب,والواتساب,بواتساب,بالواتساب,لواتساب,للواتساب,فواتساب,فالواتساب,كواتساب,كالواتساب,وبواتساب,وبالواتساب,ولواتساب,وللواتساب,وكالواتساب,فبالواتساب,فللواتساب - arabizi :
tel,telifon,nmra,3ayet,whatsapp,rqm,raqm,nmrti
- français :
Motifs (sur texte normalisé, chiffres ASCII) :
national_or_international:(?<!\d)(?:(?:\+|00)212[ .\-]?(?:\(0\)[ .\-]?)?|0)[5-8](?:[ .\-]?\d){8}(?!\d)
Jeu de tests embarqué :
- Registres couverts : arabe standard (MSA) (1), darija en écriture arabe (1), darija en écriture latine (arabizi) (2), français (6), français/arabe mélangés (code-switching) (1)
- Cas négatifs (aucune détection attendue) : 2
- Cas à confiance plafonnée (détection sans contexte) : 1
Limites — formulation du document de format (verbatim, anglais) :
Confidence: VERIFIED (structure) / CHURNING (operator prefix blocks) — structure is defined by ANRT's Plan National de Numérotation (deployed March 2009, closed 10-digit plan). Operator prefix allocations change regularly (new blocks were still being opened through 2025), so the recognizer keys on STRUCTURE, never on an operator allowlist.
MA_RIB#
Relevé d'Identité Bancaire: 24 digits (bank 3, branch 3, account 16, key 2), mod-97 control key per docs/formats/ma_rib_iban.md.
- Document de format :
docs/formats/ma_rib_iban.md - Niveau de confiance : VERIFIED
- Action par défaut : masquage (
redact) - Confiance : base 0.85, plafond 0.99
- Validation : fonction
ma_rib_mod97, longueur exigée 24 - Mots de contexte : fenêtre ±40 points de code, bonus +0.10
- français :
RIB,relevé d'identité bancaire,IBAN,compte,virement,bénéficiaire - arabe :
ريب,الريب,وريب,والريب,بريب,بالريب,لريب,للريب,فريب,فالريب,كريب,كالريب,وبالريب,وللريب,وكالريب,فبالريب,فللريب,الحساب البنكي,والحساب البنكي,بالحساب البنكي,للحساب البنكي,فالحساب البنكي,كالحساب البنكي,وبالحساب البنكي,وللحساب البنكي,وكالحساب البنكي,فبالحساب البنكي,فللحساب البنكي,التعريف البنكي,والتعريف البنكي,بالتعريف البنكي,للتعريف البنكي,فالتعريف البنكي,كالتعريف البنكي,وبالتعريف البنكي,وللتعريف البنكي,وكالتعريف البنكي,فبالتعريف البنكي,فللتعريف البنكي,تحويل,التحويل,وتحويل,والتحويل,بتحويل,بالتحويل,لتحويل,للتحويل,فتحويل,فالتحويل,كتحويل,كالتحويل,وبتحويل,وبالتحويل,ولتحويل,وللتحويل,وكالتحويل,فبتحويل,فبالتحويل,فلتحويل,فللتحويل,حساب,الحساب,وحساب,والحساب,بحساب,بالحساب,لحساب,للحساب,فحساب,فالحساب,كحساب,كالحساب,وبحساب,وبالحساب,ولحساب,وللحساب,وكالحساب,فبحساب,فبالحساب,فلحساب,فللحساب - arabizi :
rib,compte,l7sab,lhssab,virement
- français :
- Liste de préfixes (best-effort) : 8 codes ; un préfixe inconnu abaisse la confiance de 0.20, sans jamais supprimer la détection
Motifs (sur texte normalisé, chiffres ASCII) :
blocks:(?<!\d)\d{3}[ .\-]?\d{3}[ .\-]?\d{16}[ .\-]?\d{2}(?!\d)
Jeu de tests embarqué :
- Registres couverts : arabe standard (MSA) (2), darija en écriture arabe (1), darija en écriture latine (arabizi) (1), français (5), français/arabe mélangés (code-switching) (1)
- Cas négatifs (aucune détection attendue) : 2
Limites — formulation du document de format (verbatim, anglais) :
Confidence: VERIFIED — structure and both check algorithms confirmed by multiple independent Moroccan sources AND computationally cross-validated against the official SWIFT IBAN Registry example (2026-08-27).
MA_IBAN#
Moroccan IBAN: MA + 2 check digits + 24-digit RIB (28 chars), ISO 13616 / ISO 7064 mod 97-10 per docs/formats/ma_rib_iban.md.
- Document de format :
docs/formats/ma_rib_iban.md - Niveau de confiance : VERIFIED
- Action par défaut : masquage (
redact) - Confiance : base 0.90, plafond 0.99
- Validation : fonction
iban_mod97_10, longueur exigée 28 - Mots de contexte : fenêtre ±40 points de code, bonus +0.05
- français :
RIB,relevé d'identité bancaire,IBAN,compte,virement,bénéficiaire - arabe :
ريب,الريب,وريب,والريب,بريب,بالريب,لريب,للريب,فريب,فالريب,كريب,كالريب,وبالريب,وللريب,وكالريب,فبالريب,فللريب,الحساب البنكي,والحساب البنكي,بالحساب البنكي,للحساب البنكي,فالحساب البنكي,كالحساب البنكي,وبالحساب البنكي,وللحساب البنكي,وكالحساب البنكي,فبالحساب البنكي,فللحساب البنكي,التعريف البنكي,والتعريف البنكي,بالتعريف البنكي,للتعريف البنكي,فالتعريف البنكي,كالتعريف البنكي,وبالتعريف البنكي,وللتعريف البنكي,وكالتعريف البنكي,فبالتعريف البنكي,فللتعريف البنكي,تحويل,التحويل,وتحويل,والتحويل,بتحويل,بالتحويل,لتحويل,للتحويل,فتحويل,فالتحويل,كتحويل,كالتحويل,وبتحويل,وبالتحويل,ولتحويل,وللتحويل,وكالتحويل,فبتحويل,فبالتحويل,فلتحويل,فللتحويل,حساب,الحساب,وحساب,والحساب,بحساب,بالحساب,لحساب,للحساب,فحساب,فالحساب,كحساب,كالحساب,وبحساب,وبالحساب,ولحساب,وللحساب,وكالحساب,فبحساب,فبالحساب,فلحساب,فللحساب - arabizi :
rib,compte,l7sab,lhssab,virement
- français :
- Liste de préfixes (best-effort) : 8 codes ; un préfixe inconnu abaisse la confiance de 0.20, sans jamais supprimer la détection
Motifs (sur texte normalisé, chiffres ASCII) :
ma_prefixed:(?i)(?<![A-Z0-9])MA\d{2}[ .\-]?(?:\d[ .\-]?){24}(?![A-Z0-9])
Jeu de tests embarqué :
- Registres couverts : arabe standard (MSA) (1), darija en écriture arabe (1), darija en écriture latine (arabizi) (1), français (5), français/arabe mélangés (code-switching) (1)
- Cas négatifs (aucune détection attendue) : 2
- Cas à confiance plafonnée (détection sans contexte) : 1
Limites — formulation du document de format (verbatim, anglais) :
Confidence: VERIFIED — structure and both check algorithms confirmed by multiple independent Moroccan sources AND computationally cross-validated against the official SWIFT IBAN Registry example (2026-08-27).
PAN#
13-19 digit payment-card candidates, Luhn checked; no issuance claim.
- Document de format :
docs/formats/pan.md - Niveau de confiance : VERIFIED (Luhn algorithm; bounded candidate coverage)
- Action par défaut : masquage (
redact) - Confiance : base 0.90, plafond 0.90
- Validation : fonction
luhn
Motifs (sur texte normalisé, chiffres ASCII) :
pan:(?<![\w])(?<!\d[ .-])[1-9](?:[ .-]?\d){12,18}(?![ .-]?\d)(?!\w)
Jeu de tests embarqué :
- Registres couverts : arabe standard (MSA) (1), darija en écriture arabe (1), darija en écriture latine (arabizi) (1), français (2), français/arabe mélangés (code-switching) (1)
- Cas négatifs (aucune détection attendue) : 1
Limites — formulation du document de format (verbatim, anglais) :
Confidence: VERIFIED (Luhn algorithm; bounded candidate coverage) — the rightmost digit checks the preceding digits with Luhn mod 10. Passing Luhn does not establish issuance, activity, a card brand, or PCI compliance.
Sources#
Les documents de format sous docs/formats/ sont la seule source des
motifs et algorithmes ; ils citent leurs propres références officielles
et listent les vérifications humaines encore ouvertes.
Cette page est le guide livré avec fahmek, tenu à jour à chaque version.