"""
Grammar checker regex rules
"""

# generated code, do not edit

lParagraphRules = [
  ["tab", [
    ['^[ \xa0\u202f   ]+', False, '#347p', 'tab_début_ligne', 4, [[None, '-', '', 0, 'Espace(s) en début de ligne à supprimer : utilisez les retraits de paragraphe.', '']]],
    ['[ \xa0\u202f    ]+$', False, '#348p', 'tab_fin_ligne', 4, [[None, '-', '', 0, 'Espace(s) en fin de ligne à supprimer.', '']]],
  ]],
  ["esp", [
    ['^[ \xa0\u202f]+', False, '#356p', 'esp_début_ligne', 4, [[None, '-', '', 0, 'Espace(s) en début de ligne à supprimer : utilisez les retraits de paragraphe (ou les tabulations à la rigueur).', '']]],
    ['[ \xa0\u202f]+$', False, '#357p', 'esp_fin_ligne', 4, [[None, '-', '', 0, 'Espace(s) en fin de ligne à supprimer.', '']]],
    ['(?:\\b|[.?!,:;%‰‱˚»”])(  +)', False, '#358p', 'esp_milieu_ligne', 4, [[None, '-', ' ', 1, 'Espace(s) surnuméraire(s) à supprimer.', '']]],
    ['(?: \xa0|\xa0 )', False, '#368p', 'esp_mélangés1', 4, [[None, '-', ' |\xa0', 0, 'Incohérence : l’espace insécable à côté de l’espace sécable n’a pas d’effet.', '']]],
    ['(?:\\u0009[ \xa0]|[ \xa0]\\u0009)', False, '#369p', 'esp_mélangés2', 4, [[None, '-', ' |   ', 0, 'Incohérence : espace et tabulation.', '']]],
    ['[\xa0\u202f][\xa0\u202f]+', False, '#376p', 'esp_insécables_multiples', 4, [[None, '-', ' |\u202f', 0, 'Espace(s) insécable(s) surnuméraire(s) à supprimer.', '']]],
    ['(?i)(?<![\\w.,–-])(\\w[\\w-]*)( [-–—]|[-–—] )(\\w[\\w-]*)(?![\\w–-])', True, '#383p', 'esp_avant_après_tiret', 4, [['_c_esp_avant_après_tiret_1', '>', ''], ['_c_esp_avant_après_tiret_2', '-', '\\1-\\3|\\1 – \\3|\\1 — \\3', 0, 'Espace superflu s’il s’agit bien d’une forme conjuguée interrogative (sinon, il manque un espace à côté du tiret).', ''], ['_c_esp_avant_après_tiret_3', '-', ' – | — ', 2, 'Il manque un espace à côté du tiret.', '']]],
  ]],
  ["typo", [
    ['([\\[(]) ', False, '#406p', 'typo_espace_après_signe_ouvrant', 4, [[None, '-', '\\1', 0, 'Pas d’espace après ce signe.', '']]],
    [' ([\\])])', False, '#407p', 'typo_espace_avant_signe_fermant', 4, [[None, '-', '\\1', 0, 'Pas d’espace avant ce signe.', '']]],
    ['[)]\\b(?![s¹²³⁴⁵⁶⁷⁸⁹⁰]\\b)', False, '#417p', 'typo_parenthèse_fermante_collée', 4, [['_c_typo_parenthèse_fermante_collée_1', '-', ') ', 0, 'Il manque un espace après la parenthèse.', '']]],
    ['\\b[(](?=[^)][^)][^)])', False, '#420p', 'typo_parenthèse_ouvrante_collée', 4, [[None, '-', ' (', 0, 'Il manque un espace avant la parenthèse.', '']]],
    ['[ \xa0][.](?=[ \xa0])', False, '#430p', 'typo_point_entre_deux_espaces', 4, [[None, '-', '.', 0, 'Pas d’espace avant un point.', '']]],
    ['[ \xa0][.](?=\\w)', False, '#431p', 'typo_point_collé_à_mot_suivant', 4, [[None, '-', '. |.', 0, 'L’espace se place après le point, et non avant (ou bien sert de liant entre deux lettres).', '']]],
    ['\\w+([ \xa0]…)', False, '#438p', 'typo_points_suspension_après_espace', 4, [[None, '-', '…', 1, 'Pas d’espace avant le signe “…”.', '']]],
    ['[ \xa0],(?=[ \xa0])', False, '#446p', 'typo_virgule_entre_deux_espaces', 4, [[None, '-', ',', 0, 'Pas d’espace avant une virgule.', '']]],
    ['[ \xa0],(?=\\w)', False, '#447p', 'typo_virgule_collée_à_mot_suivant', 4, [[None, '-', ', ', 0, 'Pas d’espace avant une virgule. Un espace après.', '']]],
    ['[ \xa0]”[ \xa0]', False, '#454p', 'typo_guillemets_fermants_perdus', 4, [[None, '-', '” | “', 0, 'Pas d’espace avant ces guillemets ouvrants.', '']]],
    ['[ \xa0]“[ \xa0]', False, '#457p', 'typo_guillemets_ouvrants_perdus', 4, [[None, '-', ' “|” ', 0, 'Pas d’espace après ces guillemets ouvrants.', '']]],
    ['[ \xa0\u202f](?:"|[\'‘’][\'‘’])[ \xa0\u202f]', False, '#460p', 'typo_guillemets_perdus', 4, [[None, '-', ' «\xa0|\xa0» | “|” ', 0, 'Guillemets isolés.', '']]],
    ['^(?:"|[\'‘’][\'‘’])[ \xa0\u202f]', False, '#463p', 'typo_commencement_guillemets', 4, [[None, '-', '«\xa0|“', 0, 'Guillemets ouvrants.', '']]],
    ['([ \xa0\u202f](?:"|[\'‘’][\'‘’]))(?:$|[.,;?!])', False, '#466p', 'typo_guillemets_fin', 4, [[None, '-', '\xa0»|”', 1, 'Guillemets fermants.', '']]],
    ['[ \xa0]”(?=\\w)', False, '#477p', 'typo_guillemets_fermants_inverses', 4, [[None, '-', ' “', 0, 'Mettez des guillemets ouvrants plutôt que fermants.', '']]],
    ['\\w([«“][ \xa0])', False, '#480p', 'typo_guillemets_ouvrants_inverses1', 4, [[None, '-', '\xa0»|”', 1, 'Mettez des guillemets fermants plutôt qu’ouvrants.', '']]],
    ['([«“])[ \xa0]*$', False, '#483p', 'typo_guillemets_ouvrants_inverses2', 4, [[None, '-', '\xa0»|”', 1, 'Mettez des guillemets fermants plutôt qu’ouvrants.', '']]],
    ['\\w([ \xa0][«“])[ \xa0]*[!?,:;.…]', False, '#486p', 'typo_guillemets_ouvrants_inverses3', 4, [[None, '-', '\xa0»|”', 1, 'Mettez des guillemets fermants plutôt qu’ouvrants.', '']]],
  ]],
  ["", [
    ['(?i)\\w[\\w.-]*@\\w[\\w.-]*\\w[.]\\w\\w+', True, '#512p', 'p_email', 4, [[None, '~', '__MAIL__', 0]]],
    ['(?i)(?:ht|f)tps?://[\\w./?&!%=+*"\'@$#-]+', True, '#516p', 'p_URL', 4, [[None, '~', '__URL__', 0]]],
    ['(?i)((?:\\w[\\w-]*[.])*)(\\w[\\w-]+)([.](?:com|net|org|info|fr|ca|be|ch|i[ot]|co[.]uk|tk|jp|zh|ru|us|nl|xyz))(?![\\w–-])', True, '#518p', 'p_URL2', 4, [[None, '~', '*', 1], [None, '~', '=_p_p_URL2_2', 2], [None, '~', '*', 3]]],
    ['(?i)^\\d+[.][\\d.-]*', True, '#525p', 'p_chapitre', 4, [[None, '~', '*', 0]]],
    ['(?i)^\\d+(?:  +|\\t+)', True, '#529p', 'p_num_chapitre', 4, [[None, '~', '*', 0]]],
    ['(?<![\\w.,–-])[cC](?:f|hap|oll?)([.])', False, '#533p', 'p_chap_coll_cf', 4, [[None, '~', '*', 1]]],
    ['(?<![\\w.,–-])p[.] ?\\d+(?:-\\d+|)(?![\\w–-])', False, '#534p', 'p_page', 4, [[None, '~', '*', 0]]],
    ['(?<![\\w.,–-])pp[.] ?\\d+-\\d+(?![\\w–-])', False, '#535p', 'p_pages', 4, [[None, '~', '*', 0]]],
    ['(?i)(?<![\\w.,–-])figure (\\d+(?:[.:-]\\d+|))(?![\\w–-])', True, '#536p', 'p_figure', 4, [[None, '~', '*', 1]]],
    ['(?i)(?<![\\w.,–-])art(?:icle|[.]) (1(?:er|ᵉʳ)|\\d+(?:[.:-]\\w+|))(?![\\w–-])', True, '#537p', 'p_article', 4, [[None, '~', '*', 1]]],
    ['(?<![\\w.,–-])av[.]', False, '#538p', 'p_av', 4, [[None, '~', 'av', 0]]],
    ['(?<![\\w.,–-])vs[.]', False, '#541p', 'p_vs', 4, [[None, '-', 'vs ', 0, 'Pas de point après cette abréviation.', ''], [None, '~', 'vs', 0]]],
    ['(?i)(?<![\\w.,–-])(?:versions?|mises? [àa] jour) ([0-9]+(?:[.][0-9]+[a-z]?)*)(?![\\w–-])', True, '#547p', 'p_version_numéro', 4, [[None, '~', '*', 1]]],
    ['([A-Z][.][A-Z][.](?:[A-Z][.])*) +[A-ZÉÀÂÊÎÈÔ]', False, '#551p', 'p_sigle1', 4, [[None, '~', '=_p_p_sigle1_1', 1]]],
    ['(?<![\\w.,–-])[a-zA-Z][.][a-zA-Z][.](?:[a-zA-Z][.])*', False, '#553p', 'p_sigle2', 4, [['_c_p_sigle2_1', '>', ''], ['_c_p_sigle2_2', '-', '=_s_p_sigle2_2', 0, 'Sigle. Il est recommandé d’ôter les points pour les sigles. (S’il s’agit d’un prénom et d’un nom, mettez un espace.)', 'https://fr.wikipedia.org/wiki/Sigle#Typographie'], ['_c_p_sigle2_3', '-', '=_s_p_sigle2_3', 0, 'Sigle. Il est recommandé d’ôter les points pour les sigles.', 'https://fr.wikipedia.org/wiki/Sigle#Typographie'], ['_c_p_sigle2_4', '~', '=_p_p_sigle2_4', 0]]],
    ['(?<![\\w.,–-])J[.]-[A-Z][.]', False, '#560p', 'p_sigle3', 4, [[None, '~', '=_p_p_sigle3_1', 0]]],
    ["(?<![\\w.,–-])(M[.]) (?:[A-ZÉÈÎ]\\w*|l[e'’])", False, '#564p', 'p_M_point', 4, [[None, '~', 'Mr', 1]]],
    ['(?<![\\w.,–-])MM[.]', False, '#566p', 'p_MM_point', 4, [[None, '~', 'MM ', 0]]],
    ['(?<![\\w.,–-])M(?:r|gr|me) [A-ZÉ]([.])(?=\\W+[a-zéèêâîïû])', False, '#568p', 'p_Mr_Mgr_Mme_point', 4, [[None, '~', '*', 1]]],
    ['(?<![\\w.,–-])([A-ZÉÈÂÎ][\\w-]+)[ \xa0][A-ZÉÈÂ]([.])[ \xa0]([A-ZÉÈÂ][\\w-]+)(?![\\w–-])', False, '#572p', 'p_prénom_lettre_point_patronyme', 4, [['_c_p_prénom_lettre_point_patronyme_1', '~', '*', 2]]],
    ['(?<![\\w.,–-])([A-ZÉÈÂÎ][\\w-]+)[ \xa0][A-ZÉÈÂ]([.])', False, '#575p', 'p_prénom_lettre_point', 4, [['_c_p_prénom_lettre_point_1', '~', '_', 2]]],
    ['(?<![\\w.,–-])[A-ZÉÈÂÎ][\\w-]+[-–—]L(?:es?|a) [A-ZÉÈÂÎ][\\w-]+(?![\\w–-])', False, '#580p', 'p_patronyme_composé_avec_le_la_les', 4, [[None, '~', '=_p_p_patronyme_composé_avec_le_la_les_1', 0]]],
    ['(?<![\\w.,–-])\\d+[.:]\\d+[.:]\\d+[.:]\\d+(?![\\w–-])', False, '#584p', 'p_adresse_IP', 4, [[None, '~', '*', 0]]],
    ['(?<![\\w.,–-])/(?:bin|boot|dev|etc|home|lib|mnt|opt|root|sbin|tmp|usr|var|Bureau|Documents|Images|Musique|Public|Téléchargements|Vidéos)(?:/[\\w.()]+)*', False, '#588p', 'p_arborescence_Linux_Mac', 4, [[None, '~', '*', 0]]],
    ['(?i)(?<![\\w.,–-])[a-z]:\\\\(?:Program Files(?: [(]x86[)]|)|[\\w.()]+)(?:\\\\[\\w.()]+)*', True, '#591p', 'p_arborescence_Windows', 4, [[None, '~', '*', 0]]],
    ['(?<![\\w.,–-])\\d+ (m) ', False, '#595p', 'p_chiffres_m', 4, [[None, '~', '_', 1]]],
    ['(?<![\\w.,–-])\\[…\\](?![\\w–-])', False, '#599p', 'p_points_suspension_entre_crochets', 4, [[None, '~', '*', 0]]],
    ['(?<![\\w.,–-])\\[(\\w[\\w-]*)\\](?![\\w–-])', False, '#601p', 'p_mot_entre_crochets', 4, [['_c_p_mot_entre_crochets_1', '~', '*', 0], ['_c_p_mot_entre_crochets_2', '~', '=_p_p_mot_entre_crochets_2', 0], ['_c_p_mot_entre_crochets_3', '~', ' _', 0]]],
    ['(?<![\\w.,–-])\\(…\\)(?![\\w–-])', False, '#608p', 'points_suspension_entre_parenthèses', 4, [[None, '-', '[…]', 0, 'Pour indiquer une troncature de texte, on utilise usuellement des crochets.', ''], [None, '~', '*', 0]]],
    ['(?i) (\\(r[eé]\\))\\w+', True, '#612p', 'p_préfixes_entre_parenthèses', 4, [[None, '~', '*', 1]]],
  ]],
  ["apos", [
    ['(?i)(?<![\\w.,–-])([ldsncjmç]|jusqu|lorsqu|aujourd|presqu|quelqu|puisqu|qu|prud|entr)[\'ʼ‘‛´`′‵՚ꞌꞋ](?=[\\w"«<])', True, '#653p', 'apostrophe_typographique', 8, [[None, '-', '\\1’', 0, 'Apostrophe typographique.', '']]],
    ['(?i)(?<![\\w.,–-])t[\'ʼ‘‛´`′‵՚ꞌꞋ](?!ils?|elles?|on)(?=[\\w"«<])', True, '#655p', 'apostrophe_typographique_après_t', 8, [[None, '-', 't’', 0, 'Apostrophe typographique.', '']]],
  ]],
  ["typo", [
    ['(?i)(?<![\\w.,–-])(([ldsncjmtç]|lorsqu|puisqu|presqu|quoiqu|quelqu|jusqu|qu|aujourd|entr)(?:[\'’ʼ‘‛´`′‵՚ꞌꞋ][\'’ʼ‘‛´`′‵՚ꞌꞋ ]|”|“|"| [\'’ʼ‘‛´`′‵՚ꞌꞋ] ?))[aeéiouhœæyàîèêôû<]', True, '#664p', 'typo_apostrophe_incorrecte', 8, [['_c_typo_apostrophe_incorrecte_1', '-', '\\2’', 1, 'Apostrophe incorrecte.', '']]],
    ['(?i)(?<![\\w.,–-])((lorsqu|puisqu|presqu|quoiqu|jusqu|qu|aujourd|entr) )[aeéiouhyàîèêôû<]', True, '#675p', 'typo_apostrophe_manquante', 8, [[None, '-', '\\2’', 1, 'Il manque vraisemblablement une apostrophe.', ''], [None, '~', '\\2’', 1]]],
    ['(?i)(?<![\\w.,–-])ne ([mtsl] )[aeéiouhyàîèêôû<]', True, '#680p', 'typo_apostrophe_manquante_prudence1', 8, [[None, '-', '=_s_typo_apostrophe_manquante_prudence1_1', 1, 'Il manque une apostrophe.', '']]],
    ['(?i)(?<![\\w.,–-])(?:je|tu|ie?ls?|nous|vous|on|ça|elles?) ([nmtsl] )([aeéiouhyàîèêôû][\\w-]*|<)', True, '#683p', 'typo_apostrophe_manquante_prudence2', 8, [['_c_typo_apostrophe_manquante_prudence2_1', '-', '=_s_typo_apostrophe_manquante_prudence2_1', 1, 'Il manque probablement une apostrophe.', '']]],
    ['(?<![\\w.,–-])([ldsncjmtç] )[aeéiouhAEÉIOUHyîèêôûYÎÈÊÔÛ<]', False, '#687p', 'typo_apostrophe_manquante_audace1', 8, [['_c_typo_apostrophe_manquante_audace1_1', '-', '=_s_typo_apostrophe_manquante_audace1_1', 1, 'Il manque peut-être une apostrophe.', '']]],
    ['"(?=\\w)', False, '#711p', 'typo_guillemets_typographiques_doubles_ouvrants', 4, [['_c_typo_guillemets_typographiques_doubles_ouvrants_1', '-', '«\xa0|“', 0, 'Guillemets typographiques ouvrants.', '']]],
    ['[\\w.?!…,](")(?!\\w)', False, '#714p', 'typo_guillemets_typographiques_doubles_fermants', 4, [[None, '-', '\xa0»|”', 1, 'Guillemets typographiques fermants.', '']]],
    ["(?:^|[ –—-])('')(?=\\w)", False, '#722p', 'typo_guillemets_typographiques_simples_doubles_ouvrants', 4, [[None, '-', '«\xa0|“', 1, 'Guillemets typographiques ouvrants.', '']]],
    ["[\\w.?!…,]('')(?![\\w'’])", False, '#725p', 'typo_guillemets_typographiques_simples_doubles_fermants', 4, [[None, '-', '\xa0»|”', 1, 'Guillemets typographiques fermants.', '']]],
    ["(?:^|[ –—-])(['’])(?=\\w)", False, '#734p', 'typo_guillemets_typographiques_simples_ouvrants', 4, [[None, '-', '“|‘|‹', 1, 'Guillemets typographiques ouvrants.', '']]],
    ["[\\w.?!](')(?:[ \xa0\u202f]|$)", False, '#737p', 'typo_guillemets_typographiques_simples_fermants', 4, [[None, '-', '”|’|›', 1, 'Guillemets typographiques fermants.', '']]],
  ]],
  ["html", [
    ['(?i)<\\w+.*?>', True, '#756p', 'p_html_balise_ouvrante', 4, [[None, '~', '*', 0]]],
    ['(?i)</\\w+ *>', True, '#757p', 'p_html_balise_fermante', 4, [[None, '~', '*', 0]]],
    ['(?i)&amp;[a-zA-Z]+;', True, '#758p', 'p_html_amp_xxx', 4, [[None, '~', '_', 0]]],
    ['(?i)&lt;', True, '#759p', 'p_html_lt', 4, [[None, '~', '   <', 0]]],
    ['(?i)&gt;', True, '#760p', 'p_html_gt', 4, [[None, '~', '>', 0]]],
    ['(?i)&amp;', True, '#761p', 'p_html_amp', 4, [[None, '~', '&', 0]]],
    ['(?i)&nbsp;', True, '#762p', 'p_html_nbsp', 4, [[None, '~', '@', 0]]],
    ['(?i)&#(?:160|8239);', True, '#763p', 'p_html_nbsp2', 4, [[None, '~', '@', 0]]],
    ['(?i)\\[/?\\w+\\]', True, '#764p', 'p_html_pseudo_balise', 4, [[None, '~', '*', 0]]],
  ]],
  ["latex", [
    ['(?i)\\\\[a-z]+(?![\\w–-])', True, '#767p', 'p_latex1', 4, [[None, '~', '*', 0]]],
    ['(?i)\\\\[,;/\\\\]', True, '#768p', 'p_latex2', 4, [[None, '~', '*', 0]]],
    ['\\{(?:abstract|align|cases|center|description|enumerate|equation|figure|flush(?:left|right)|gather|minipage|multline|quot(?:ation|e)|SaveVerbatim|table|tabular|thebibliography|[vV]erbatim|verse|wrapfigure)\\}', False, '#769p', 'p_latex3', 4, [[None, '~', '*', 0]]],
  ]],
  ["md", [
    [' ([*_]+)\\w', False, '#772p', 'p_md_span_ouvrant', 4, [[None, '~', '*', 1]]],
    ['(?i)[a-z0-9àéîïôûüù]([*_]+)[,.;:!?) ]', True, '#773p', 'p_md_span_fermant', 4, [[None, '~', '*', 1]]],
    ['^#+', False, '#774p', 'p_md_titre_début', 4, [[None, '~', '*', 0]]],
    ['#+ *$', False, '#775p', 'p_md_titre_fin', 4, [[None, '~', '*', 0]]],
    ['^ *[*+] ', False, '#776p', 'p_md_liste', 4, [[None, '~', '*', 0]]],
    ['^>[ >]+ ', False, '#777p', 'p_md_citation', 4, [[None, '~', '*', 0]]],
  ]],
  ["", [
    ['(?i)(?<![\\w.,–-])tous?[.(/·•⋅–—-]te[.)/·•⋅–—-]?s(?![\\w–-])', True, '#794p', 'eepi_écriture_épicène_tous_toutes', 4, [['_c_eepi_écriture_épicène_tous_toutes_1', '-', 'tous et toutes|toutes et tous', 0, 'Écriture épicène dystypographique et imprononçable.', ''], [None, '~', '=_p_eepi_écriture_épicène_tous_toutes_2', 0]]],
    ['(?i)(?<![\\w.,–-])c[./·•⋅–—-]?eux?[./·•⋅–—-]elles(?![\\w–-])', True, '#802p', 'eepi_écriture_épicène_ceux_celles', 4, [['_c_eepi_écriture_épicène_ceux_celles_1', '-', 'ceux et celles|celles et ceux', 0, 'Écriture épicène dystypographique et imprononçable.', ''], [None, '~', '=_p_eepi_écriture_épicène_ceux_celles_2', 0]]],
    ['(?<![\\w.,–-])(\\w[\\w-]+)[Ee][Uu][Rr][Ss]?[.(/·•⋅–—-][TtDdPp]?([Rr][Ii][Cc][Ee]|[Ee][Uu][Ss][Ee]|[Ss][Ee]|[OoEe][Rr][Ee][Ss][Ss][Ee])[.)/·•⋅–—-]?[Ss](?![\\w–-])', False, '#810p', 'eepi_écriture_épicène_pluriel_eur_divers', 4, [['_c_eepi_écriture_épicène_pluriel_eur_divers_1', '-', '\\1eurs et \\1\\2s|\\1\\2s et \\1eurs', 0, 'Écriture épicène dystypographique et imprononçable.', ''], ['_c_eepi_écriture_épicène_pluriel_eur_divers_2', '-', '\\1eurs et \\1euses|\\1euses et \\1eurs', 0, 'Écriture épicène dystypographique et imprononçable.', ''], [None, '~', '=_p_eepi_écriture_épicène_pluriel_eur_divers_3', 0]]],
    ['(?<![\\w.,–-])(\\w[\\w-]+)[Ee][Uu][Xx][.(/·•⋅–—-](?:[TtDdSsIi]?[Ee][Uu][Ss][Ee]|[Ss][Ee])[.)/·•⋅–—-]?[Ss](?![\\w–-])', False, '#820p', 'eepi_écriture_épicène_pluriel_eux_euses', 4, [['_c_eepi_écriture_épicène_pluriel_eux_euses_1', '-', '\\1eux et \\1euses|\\1euses et \\1eux', 0, 'Écriture épicène dystypographique et imprononçable.', ''], [None, '~', '=_p_eepi_écriture_épicène_pluriel_eux_euses_2', 0]]],
    ['(?<![\\w.,–-])(\\w[\\w-]+)[Aa][Uu][Xx][.(/·•⋅–—-][TtNnMmCcPpBbDd]?[Aa]?[Ll][Ee][.)/·•⋅–—-]?[Ss](?![\\w–-])', False, '#828p', 'eepi_écriture_épicène_pluriel_aux_ales', 4, [['_c_eepi_écriture_épicène_pluriel_aux_ales_1', '-', '\\1aux et \\1ales|\\1ales et \\1aux|\\1al·e·s', 0, 'Écriture épicène dystypographique et imprononçable. Pour ce cas, il peut être intéressant de faire comme si le pluriel masculin était régulier, ce qui rend l’ensemble prononçable…', ''], [None, '~', '=_p_eepi_écriture_épicène_pluriel_aux_ales_2', 0]]],
    ['(?<![\\w.,–-])(\\w[\\w-]+)[EeÈè][Rr][Ss]?[.(/·•⋅–—-][Ii]?[Èè]?[Rr][Ee][.)/·•⋅–—-]?[Ss](?![\\w–-])', False, '#838p', 'eepi_écriture_épicène_pluriel_er_ère', 4, [['_c_eepi_écriture_épicène_pluriel_er_ère_1', '-', '\\1ers et \\1ères|\\1ères et \\1ers', 0, 'Écriture épicène dystypographique et imprononçable.', ''], [None, '~', '=_p_eepi_écriture_épicène_pluriel_er_ère_2', 0]]],
    ['(?<![\\w.,–-])(\\w[\\w-]+)[Ii][Ff][Ss]?[.(/·•⋅–—-][SsTtDd]?[Ii]?[Vv][Ee][.)/·•⋅–—-]?[Ss](?![\\w–-])', False, '#847p', 'eepi_écriture_épicène_pluriel_if_ive', 4, [['_c_eepi_écriture_épicène_pluriel_if_ive_1', '-', '\\1ifs et \\1ives|\\1ives et \\1ifs', 0, 'Écriture épicène dystypographique et imprononçable.', ''], [None, '~', '=_p_eepi_écriture_épicène_pluriel_if_ive_2', 0]]],
    ['(?<![\\w.,–-])(\\w[\\w-]*[ÉéUuIiTtSsRrNnLlDdFf])[-·–—.•⋅(/]([NnTtLlFf]?[Ee])[-·–—.•⋅)/]?[Ss](?![\\w–-])', False, '#856p', 'eepi_écriture_épicène_pluriel_e', 4, [['_c_eepi_écriture_épicène_pluriel_e_1', '>', ''], [None, '~', '=_p_eepi_écriture_épicène_pluriel_e_2', 0], ['_c_eepi_écriture_épicène_pluriel_e_3', '>', ''], ['_c_eepi_écriture_épicène_pluriel_e_4', '-', '\\1 et \\1\\2s|\\1\\2s et \\1|\\1·\\2·s', 0, 'Écriture épicène dystypographique. Préférez écrire lisiblement. Sinon, utilisez les points médians.', ''], ['_c_eepi_écriture_épicène_pluriel_e_5', '-', '\\1s et \\1\\2s|\\1\\2s et \\1s|\\1·\\2·s', 0, 'Écriture épicène dystypographique. Préférez écrire lisiblement. Sinon, utilisez les points médians.', '']]],
    ['(?i)(?<![\\w.,–-])(\\w[\\w-]*[éuitsrnldf])([-·–—.•⋅/][ntl]?e|[(][ntl]?e[)])(?![\\w–-])', True, '#883p', 'eepi_écriture_épicène_singulier', 4, [['_c_eepi_écriture_épicène_singulier_1', '>', ''], [None, '~', '=_p_eepi_écriture_épicène_singulier_2', 0], ['_c_eepi_écriture_épicène_singulier_3', '-', 'un ou une|une ou un', 0, 'Écriture épicène imprononçable. Préférez écrire lisiblement.', ''], ['_c_eepi_écriture_épicène_singulier_4', '-', '=_s_eepi_écriture_épicène_singulier_4', 0, 'Écriture épicène. Utilisez un point médian.', '']]],
    ['(?i)(?<![\\w.,–-])(\\w[\\w-]+\\w)([-·–—.•⋅/]s|[(]s[)])(?![\\w–-])', True, '#901p', 'typo_écriture_invariable', 4, [[None, '~', '=_p_typo_écriture_invariable_1', 0], ['_c_typo_écriture_invariable_2', '-', '\\1·s', 0, 'Écriture invariable. Utilisez un point médian.', '']]],
  ]],
  ["maj", [
    ['(?<![\\w.,–-])(\\w[\\w-]+)[.] ([a-zàâéèêîôç]\\w*)(?![\\w–-])', False, '#920p', 'majuscule_après_point', 4, [['_c_majuscule_après_point_1', '-', '=_s_majuscule_après_point_1', 2, 'Après un point, une majuscule est généralement requise.', '']]],
    ["^ *([a-zàâéèêîôç](?:[\\w-]+[’'`‘]?|[’'`‘]))", False, '#929p', 'majuscule_début_paragraphe', 4, [['_c_majuscule_début_paragraphe_1', '-', '=_s_majuscule_début_paragraphe_1', 1, 'Majuscule en début de phrase, sauf éventuellement lors d’une énumération.', '']]],
  ]],
  ["poncfin", [
    ['(?i)(?<![\\w.,–-])(\\w[\\w-]*) *$', True, '#945p', 'poncfin_règle1', 4, [['_c_poncfin_règle1_1', '-', '\\1.|\\1\xa0!|\\1\xa0?', 1, 'Il semble manquer une ponctuation finale (s’il s’agit d’un titre, le point final n’est pas requis).', '']]],
  ]],
  ["virg", [
    ['(?i)(?<![\\w.,–-])\\w[\\w-]*( etc[.])', True, '#961p', 'virgule_manquante_avant_etc', 4, [[None, '-', ', etc.', 1, 'Avant « etc. », il faut mettre une virgule.', '']]],
    ['(?i)(?<![\\w.,–-])(\\w[\\w-]*)( car)(?= (?:j[e’]|tu|ie?ls?|nous|vous|elles?|on|les?|l[a’]|ces?|des?|cette|[mts](?:on|a|es))\\b)', True, '#962p', 'virgule_manquante_avant_car', 4, [['_c_virgule_manquante_avant_car_1', '-', ', car', 2, 'Si « car » est la conjonction de coordination, une virgule est peut-être souhaitable.', 'http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3447']]],
    ['(?i)(?<![\\w.,–-])(\\w[\\w-]*)( mais)(?= (?:j[e’]|tu|ie?ls?|nous|vous|elles?|on)\\b)', True, '#966p', 'virgule_manquante_avant_mais', 4, [['_c_virgule_manquante_avant_mais_1', '-', ', mais', 2, 'Si « mais » est la conjonction de coordination, une virgule est souhaitable si elle introduit une nouvelle proposition.', 'http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3445']]],
    ['(?i)(?<![\\w.,–-])(\\w[\\w-]*)( donc)(?= (?:j[e’]|tu|ie?ls?|elles?|on)\\b)', True, '#970p', 'virgule_manquante_avant_donc', 4, [['_c_virgule_manquante_avant_donc_1', '-', ', donc', 2, 'Si « donc » est la conjonction de coordination, une virgule est souhaitable si elle introduit une nouvelle proposition.', 'http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3448']]],
    ['([.]\xa0» )[a-zéà]', False, '#983p', 'virgule_point_fin_dialogue', 4, [[None, '-', '\xa0», |\xa0» ', 1, 'Ou il faut une virgule (exemple : « Je viens », dit-il). Ou le point est superflu. Ou il faut une majuscule sur le mot suivant.', '']]],
    ['(,\xa0»,? )[a-zéà]', False, '#985p', 'virgule_fin_dialogue', 4, [[None, '-', '\xa0», |\xa0» ', 1, 'Virgule mal placée ou superflue.', '']]],
    [', *…', False, '#995p', 'virg_virgule_avant_points_suspension', 4, [[None, '-', '…', 0, 'Typographie : pas de virgule avant les points de suspension.', '']]],
    ['(\\w+)([.],)', False, '#998p', 'virg_virgule_après_point', 4, [['_c_virg_virgule_après_point_1', '-', ',|.', 2, 'Pas de virgule après un point (sauf éventuellement après une abréviation).', '']]],
  ]],
  ["typo", [
    ['(\\w+)[,:](\\w[\\w-]*)', False, '#1019p', 'typo_espace_manquant_après1', 4, [['_c_typo_espace_manquant_après1_1', '-', ' \\2', 2, 'Il manque un espace.', '']]],
    ['[?!;%‰‱˚»}](\\w[\\w-]*|[({[])', False, '#1021p', 'typo_espace_manquant_après2', 4, [[None, '-', ' \\1', 1, 'Il manque un espace.', '']]],
    ['(?<![\\w.,–-])\\w[\\w-]*[.](\\w[\\w-]*|[({[])', False, '#1023p', 'typo_espace_manquant_après3', 4, [['_c_typo_espace_manquant_après3_1', '-', ' \\1', 1, 'Il manque un espace.', '']]],
    ['(?<![\\w.,–-])\\w[\\w-]+[…](\\w[\\w-]*|[({[])', False, '#1026p', 'typo_espace_manquant_après4', 4, [['_c_typo_espace_manquant_après4_1', '-', ' \\1', 1, 'Il manque un espace.', '']]],
    ['(?i)(?<![\\w.,–-])etc(?:[.]{3,5}|…)', True, '#1060p', 'typo_et_cetera', 4, [[None, '-', 'etc.', 0, 'Un seul point après « etc. »', '']]],
    ['(?<![\\w.,–-])(M(?:me|gr|lle)s?[.]) [A-ZÉÈ]', False, '#1066p', 'typo_point_après_titre', 4, [[None, '-', '=_s_typo_point_après_titre_1', 1, 'Pas de point après cette abréviation.', '']]],
    ['(?<![\\w.,–-])([nN]os?[.])[ \xa0]\\d+', False, '#1072p', 'typo_point_après_numéro', 4, [['_c_typo_point_après_numéro_1', '-', 'nᵒˢ', 1, 'Pas de point dans l’abréviation de numéro.', ''], ['_c_typo_point_après_numéro_2', '-', 'nᵒ', 1, 'Pas de point dans l’abréviation de numéro.', '']]],
    ['(?<![.])[.]{3,5}(?![.])', False, '#1081p', 'typo_points_suspension1', 4, [['_c_typo_points_suspension1_1', '-', '…', 0, 'Typographie : points de suspension. Utilisez le caractère dédié.', '']]],
    ['[.]{6,}', False, '#1082p', 'typo_points_suspension2', 4, [[None, '-', '=_s_typo_points_suspension2_1', 0, 'Typographie : succession de points. Utilisez le caractère dédié.', '']]],
    ['(?<![.…])[.][.](?![.])', False, '#1083p', 'typo_points_suspension3', 4, [[None, '-', '…|.', 0, 'Typographie : un ou trois points ?', '']]],
    ['…[.][.]?(?![.])', False, '#1084p', 'typo_points_superflus', 4, [[None, '-', '…', 0, 'Point(s) superflu(s).', '']]],
    ['^[-_][ \xa0]', False, '#1105p', 'typo_tiret_début_ligne', 4, [[None, '-', '—\xa0|–\xa0', 0, 'Dialogues et énumérations : un tiret cadratin ou demi-cadratin, suivi d’un espace insécable, est requis.', '']]],
    ['^ *«[ \xa0](-[ \xa0])', False, '#1106p', 'typo_tiret_dans_dialogue', 4, [[None, '-', '—\xa0|–\xa0', 1, 'Dialogues : un tiret cadratin ou demi-cadratin, suivi d’un espace insécable, est requis. (Attention : à moins qu’il s’agisse d’un dialogue inclus dans un autre dialogue, cette manière d’écrire est erronée.)', '']]],
  ]],
  ["nbsp", [
    ['^([—–]) +', False, '#1108p', 'nbsp_après_tiret1', 4, [[None, '-', '\\1\xa0', 0, 'Dialogues et énumérations : ce tiret doit être suivi d’un espace insécable.', '']]],
    ['^([—–-])[\\w«“‘]', False, '#1109p', 'nbsp_après_tiret2', 4, [[None, '-', '—\xa0|–\xa0', 1, 'Dialogues et énumérations : il faut tiret cadratin ou demi-cadratin suivi d’un espace insécable.', '']]],
  ]],
  ["typo", [
    [' - ', False, '#1110p', 'typo_tiret_incise', 4, [[None, '-', ' – | — ', 0, 'Tiret d’incise : un tiret cadratin ou demi-cadratin est requis.', '']]],
    [',[.,]{2,}', False, '#1128p', 'typo_virgules_points', 4, [[None, '-', '=_s_typo_virgules_points_1', 0, 'Erreur de numérisation\xa0? Virgules au lieu de points\xa0?', '']]],
    [', ?([.,;:!?])', False, '#1135p', 'typo_ponctuation_superflue1', 4, [[None, '-', '=_s_typo_ponctuation_superflue1_1', 0, 'Une de ces ponctuations est superflue.', '']]],
    ['; ?([.,;:…!?])', False, '#1136p', 'typo_ponctuation_superflue2', 4, [[None, '-', '=_s_typo_ponctuation_superflue2_1', 0, 'Une de ces ponctuations est superflue.', '']]],
    [':[.,;:…!?]', False, '#1137p', 'typo_ponctuation_superflue3', 4, [[None, '-', '=_s_typo_ponctuation_superflue3_1', 0, 'Une de ces ponctuations est superflue.', '']]],
  ]],
  ["nbsp", [
    ['\\b[?!;]', False, '#1148p', 'nbsp_ajout_avant_double_ponctuation', 4, [['_c_nbsp_ajout_avant_double_ponctuation_1', '-', '=_s_nbsp_ajout_avant_double_ponctuation_1', 0, 'Il manque un espace insécable.', '']]],
    [' ([?!;])', False, '#1150p', 'nbsp_avant_double_ponctuation', 4, [[None, '-', '\xa0\\1', 0, 'Il manque un espace insécable.', '']]],
    ['(?: |\\b):(?= |$)', False, '#1152p', 'nbsp_avant_deux_points', 4, [[None, '-', '\xa0:', 0, 'Il manque un espace insécable.', '']]],
    ['«(?: |\\b)', False, '#1154p', 'nbsp_après_chevrons_ouvrants', 4, [[None, '-', '«\xa0', 0, 'Il manque un espace insécable.', '']]],
    ['^»(?: |\\b)', False, '#1156p', 'nbsp_après_chevrons_fermants', 4, [[None, '-', '»\xa0|«\xa0', 0, 'Il manque un espace insécable. Le sens de ce guillemet n’est justifié que si ce paragraphe continue le discours du paragraphe précédent.', '']]],
    ['(?: |\\b)»', False, '#1158p', 'nbsp_avant_chevrons_fermants1', 4, [[None, '-', '\xa0»', 0, 'Il manque un espace insécable.', '']]],
    ['([].!?)])»', False, '#1160p', 'nbsp_avant_chevrons_fermants2', 4, [[None, '-', '\\1\xa0»', 0, 'Il manque un espace insécable.', '']]],
    ['([:;!?])\xa0(?=[\\w«“"])', False, '#1162p', 'nbsp_après_double_ponctuation', 4, [[None, '-', '\\1 ', 0, 'Pas d’espace insécable après le signe “\\1”.', '']]],
  ]],
  ["typo", [
    ['(\\d+) ?[x*] ?(\\d+)', False, '#1183p', 'typo_signe_multiplication', 4, [['_c_typo_signe_multiplication_1', '-', '\\1\xa0×\xa0\\2', 0, 'Signe de multiplication typographique.', '']]],
    ['-(\\d+)(?![\\w–-])', False, '#1192p', 'typo_signe_moins', 4, [['_c_typo_signe_moins_1', '-', '−\\1|– \\1|— \\1', 0, 'S’il s’agit de représenter un nombre négatif, utilisez le signe typographique “moins”. S’il s’agit d’une incise, utilisez un tiret demi-cadratin ou un tiret cadratin.', '']]],
    ['[\\w \xa0](<=)[\\w \xa0]', False, '#1199p', 'typo_inférieur_ou_égal', 4, [[None, '-', '≤|⩽', 1, 'Signe “inférieur ou égal”.', '']]],
    ['[\\w \xa0](>=)[\\w \xa0]', False, '#1200p', 'typo_supérieur_ou_égal', 4, [[None, '-', '≥|⩾', 1, 'Signe “supérieur ou égal”.', '']]],
  ]],
  ["liga", [
    ['[ﬁﬂﬀﬃﬄﬅﬆ]', False, '#1207p', 'ligatures_typographiques', 4, [[None, '-', '=_s_ligatures_typographiques_1', 0, 'Suppression de la ligature typographique.', '']]],
  ]],
  ["nf", [
    ['(?<![\\w.,–-])[nN][fF][ \xa0-]?(?:c|C|e|E|p|P|q|Q|s|S|x|X|z|Z|[eE][nN](?:[ \xa0-][iI][sS][oO]|))[ \xa0-]?[0-9]+(?:[/ ‑-][0-9]+|)(?![\\w–-])', False, '#1221p', 'nf_norme_française', 4, [['_c_nf_norme_française_1', '-', '=_s_nf_norme_française_1', 0, 'Norme française. Utilisez les espaces et tirets insécables.', 'http://fr.wikipedia.org/wiki/Liste_de_normes_NF']]],
  ]],
  ["typo", [
    ['(«)[^»“]+?(”)', False, '#1236p', 'typo_cohérence_guillemets_chevrons_ouvrants', 4, [['_c_typo_cohérence_guillemets_chevrons_ouvrants_1', '-', '“', 1, 'Guillemet ouvrant différent du guillemet fermant (”).', ''], ['_c_typo_cohérence_guillemets_chevrons_ouvrants_2', '-', '\xa0»', 2, 'Guillemet fermant différent du guillemet ouvrant («).', '']]],
    ['(“)[^”«]+?(»)', False, '#1240p', 'typo_cohérence_guillemets_chevrons_fermants', 4, [['_c_typo_cohérence_guillemets_chevrons_fermants_1', '-', '«\xa0', 1, 'Guillemet ouvrant différent du guillemet fermant (»).', ''], ['_c_typo_cohérence_guillemets_chevrons_fermants_2', '-', '”', 2, 'Guillemet fermant différent du guillemet ouvrant (“).', '']]],
    ['(“)[^”’“«]+?(’)(?!\\w)', False, '#1249p', 'typo_cohérence_guillemets_doubles_ouvrants', 4, [['_c_typo_cohérence_guillemets_doubles_ouvrants_1', '-', '‘', 1, 'Guillemet ouvrant différent du guillemet fermant (’).', ''], [None, '-', '”', 2, 'Guillemet fermant différent du guillemet ouvrant (“).', '']]],
    ['(‘)[^’“«]+?(”)', False, '#1253p', 'typo_cohérence_guillemets_doubles_fermants', 4, [['_c_typo_cohérence_guillemets_doubles_fermants_1', '-', '“', 1, 'Guillemet ouvrant différent du guillemet fermant (”).', ''], ['_c_typo_cohérence_guillemets_doubles_fermants_2', '-', '’', 2, 'Guillemet fermant différent du guillemet ouvrant (‘).', '']]],
    ['(?i)(?<![\\w.,–-])(“)\\w[^”"»]+$', True, '#1262p', 'typo_guillemets_doubles_ouvrants_non_fermés', 4, [[None, '-', '_', 1, 'Guillemets fermants introuvables dans la suite du paragraphe.', '']]],
    ['(?i)^[^“„«"]+\\w(”)(?![\\w–-])', True, '#1265p', 'typo_guillemets_doubles_fermants_non_ouverts', 4, [[None, '-', '_', 1, 'Guillemets ouvrants introuvables dans ce paragraphe.', '']]],
    ["(?i)(?<![\\w.,–-])(‘)\\w\\w[^’']+$", True, '#1273p', 'typo_guillemet_simple_ouvrant_non_fermé', 4, [['_c_typo_guillemet_simple_ouvrant_non_fermé_1', '-', '_', 1, 'Guillemet fermant introuvable dans la suite du paragraphe.', '']]],
    ["(?i)^[^‘']+\\w\\w(’)(?![\\w–-])", True, '#1276p', 'typo_guillemet_simple_fermant_non_ouvert', 4, [['_c_typo_guillemet_simple_fermant_non_ouvert_1', '-', '_', 1, 'Guillemet ouvrant introuvable dans ce paragraphe.', '']]],
  ]],
  ["unit", [
    ["(?<![\\w.,–-])((\\d+(?:,\\d+[⁰¹²³⁴⁵⁶⁷⁸⁹]?|[⁰¹²³⁴⁵⁶⁷⁸⁹]|)) ?)([kcmµn]?(?:[slgJKVΩ]|m[²³]?|Wh?|Hz|dB)|[%‰€$£¥Åℓhj]|min|px|MHz|°C|℃)(?![’'])(?![\\w–-])", False, '#1294p', 'unit_nbsp_avant_unités1', 4, [['_c_unit_nbsp_avant_unités1_1', '-', '=_s_unit_nbsp_avant_unités1_1', 0, 'Avec une unité de mesure, mettez un espace insécable.', ''], ['_c_unit_nbsp_avant_unités1_2', '-', '\\2\xa0\\3', 0, 'Avec une unité de mesure, mettez un espace insécable.', '']]],
    ['(?<![\\w.,–-])((\\d+(?:,\\d+[⁰¹²³⁴⁵⁶⁷⁸⁹]?|[⁰¹²³⁴⁵⁶⁷⁸⁹])) ?)([a-zA-Zµ][a-zA-Z0-9Ωℓ⁰¹²³⁴⁵⁶⁷⁸⁹/·]*)(?![\\w–-])', False, '#1299p', 'unit_nbsp_avant_unités2', 4, [['_c_unit_nbsp_avant_unités2_1', '>', ''], ['_c_unit_nbsp_avant_unités2_2', '-', '=_s_unit_nbsp_avant_unités2_2', 0, 'Si “\\3” est une unité de mesure, il manque un espace insécable. Si le nombre se rapporte au mot suivant, c’est aussi valable.', ''], ['_c_unit_nbsp_avant_unités2_3', '-', '\\2\xa0\\3', 0, 'Si “\\3” est une unité de mesure, il manque un espace insécable. Si le nombre se rapporte au mot suivant, c’est aussi valable.', '']]],
    ["(?<![\\w.,–-])((\\d+) )([a-zA-Zµ][a-zA-Z0-9Ωℓ⁰¹²³⁴⁵⁶⁷⁸⁹/·]*)(?![’'])(?![\\w–-])", False, '#1305p', 'unit_nbsp_avant_unités3', 4, [['_c_unit_nbsp_avant_unités3_1', '>', ''], ['_c_unit_nbsp_avant_unités3_2', '-', '=_s_unit_nbsp_avant_unités3_2', 0, 'Si “\\3” est une unité de mesure, il manque un espace insécable. Si le nombre se rapporte au mot suivant, c’est aussi valable.', ''], ['_c_unit_nbsp_avant_unités3_3', '-', '\\2\xa0\\3', 0, 'Si “\\3” est une unité de mesure, il manque un espace insécable. Si le nombre se rapporte au mot suivant, c’est aussi valable.', '']]],
  ]],
  ["num", [
    ['(?<![\\w.,–-])\\d\\d\\d\\d+(?![\\w–-])', False, '#1334p', 'num_grand_nombre_soudé', 4, [['_c_num_grand_nombre_soudé_1', '>', ''], ['_c_num_grand_nombre_soudé_2', '-', '=_s_num_grand_nombre_soudé_2', 0, 'Formatage des grands nombres.', ''], ['_c_num_grand_nombre_soudé_3', '-', '=_s_num_grand_nombre_soudé_3', 0, 'Formatage des grands nombres.', '']]],
    ['(?<![\\w.,–-])(?<!,)(\\d\\d\\d\\d)[\xa0\u202f]([a-zA-Zµ][a-zA-Z0-9Ωℓ⁰¹²³⁴⁵⁶⁷⁸⁹/·]*)(?![\\w–-])', False, '#1343p', 'num_nombre_quatre_chiffres', 4, [['_c_num_nombre_quatre_chiffres_1', '-', '=_s_num_nombre_quatre_chiffres_1', 1, 'Formatage des grands nombres.', '']]],
  ]],
  ["", [
    ['(?<![\\w.,–-])\\d\\d?\\d?(?:[.]\\d\\d\\d)+(?![0-9])', False, '#1362p', 'num_grand_nombre_avec_points', 4, [['_c_num_grand_nombre_avec_points_1', '-', '=_s_num_grand_nombre_avec_points_1', 0, 'Grands nombres : utilisez des espaces insécables plutôt que des points.', ''], [None, '~', '=_p_num_grand_nombre_avec_points_2', 0]]],
    ['(?<![\\w.,–-])\\d\\d?\\d?(?: \\d\\d\\d)+(?![\\w–-])', False, '#1370p', 'num_grand_nombre_avec_espaces', 4, [['_c_num_grand_nombre_avec_espaces_1', '-', '=_s_num_grand_nombre_avec_espaces_1', 0, 'Grands nombres : utilisez des espaces insécables.', ''], [None, '~', '=_p_num_grand_nombre_avec_espaces_2', 0]]],
  ]],
  ["date", [
    ['(?i)(?<![\\w.,–-])(?<!\\d[ ./-])(\\d\\d?)([ ./-])(\\d\\d?)([ ./-])(\\d\\d\\d+)(?![ ./-]\\d)(?![\\w–-])', True, '#1383p', 'date_nombres', 4, [['_c_date_nombres_1', '-', '_', 0, 'Cette date est invalide.', ''], [None, '~', '\\1-\\3-\\5', 0]]],
  ]],
  ["redon1", [
    ['(?i)(?<![\\w.,–-])(\\w[\\w-][\\w-]+\\w)[ \xa0,.;!?:].*[ \xa0](\\1)(?![\\w–-])', True, '#1402p', 'redondances_paragraphe', 4, [['_c_redondances_paragraphe_1', '-', '_', 2, 'Dans ce paragraphe, répétition de « \\1 » (à gauche).', ''], ['_c_redondances_paragraphe_2', '-', '_', 1, 'Dans ce paragraphe, répétition de « \\1 » (à droite).', '']]],
  ]],
  ["ocr", [
    ['[ \xa0]7(?![\\w–-])', False, '#1420p', 'ocr_point_interrogation', 3, [['_c_ocr_point_interrogation_1', '-', '\xa0?', 0, 'Erreur de numérisation ?', '']]],
    ["[ \xa0]I(?![ ’'][aâeéèêëiîïoôuy])(?![\\w–-])", False, '#1429p', 'ocr_exclamation1', 3, [[None, '-', '\xa0!', 0, 'Erreur de numérisation ?', '']]],
    ['[ \xa0]1(?= [A-ZÉÈÂÎ])(?![\\w–-])', False, '#1432p', 'ocr_exclamation2', 3, [['_c_ocr_exclamation2_1', '-', '\xa0!', 0, 'Erreur de numérisation ?', '']]],
    ['(?i)(?<![\\w.,–-])[\\dOI][\\dOI]+(?![\\w–-])', True, '#1443p', 'ocr_nombres', 3, [['_c_ocr_nombres_1', '-', '11|Il', 0, 'Erreur de numérisation ?', ''], ['_c_ocr_nombres_2', '-', '=_s_ocr_nombres_2', 0, 'Erreur de numérisation ?', '']]],
    ['(?<![\\w.,–-])\\w\\w+-(On|Ils?|Elles?|Tu|Je|Nous|Vous|Mêmes?|Ci|Là|Une?s|Les?|La|Leur)(?![\\w–-])', False, '#1453p', 'ocr_casse_pronom_vconj', 3, [[None, '-', '=_s_ocr_casse_pronom_vconj_1', 1, 'Erreur de numérisation ? Casse douteuse.', '']]],
    ['(?<![\\w.,–-])\\w+-\\w+(?![\\w–-])', False, '#1463p', 'mots_composés_inconnus', 3, [['_c_mots_composés_inconnus_1', '-', '_', 0, 'Erreur de numérisation\xa0? Mot composé inconnu du dictionnaire.', '']]],
    ['(?i)(?<![\\w.,–-])(\\w+)‑(\\w+)(?![\\w–-])', True, '#1477p', 'tu_trait_union_conditionnel', 3, [[None, '-', '\\1\\2|\\1-\\2', 0, 'Trait d’union conditionnel. Erreur de numérisation\xa0?', '']]],
    ['\\w*[{}<>&*#£^|]+\\w*', False, '#1485p', 'ocr_caractères_rares', 3, [['_c_ocr_caractères_rares_1', '-', '_', 0, 'Erreur de numérisation\xa0? Cette chaîne contient un caractère de fréquence rare.', '']]],
    ['[\\]\\[({}][\\]\\[({}]+', False, '#1495p', 'ocr_doublons_caractères_rares', 3, [[None, '-', '_', 0, 'Erreur de numérisation\xa0? Succession\xa0douteuse de caractères.', '']]],
    ['(?i)(?<![\\w.,–-])[1[\\]][easrnxiocuwàéè](?![\\w–-])', True, '#1504p', 'ocr_le_la_les_regex', 3, [['_c_ocr_le_la_les_regex_1', '-', 'le', 0, 'Erreur de numérisation ?', ''], ['_c_ocr_le_la_les_regex_2', '-', 'la', 0, 'Erreur de numérisation ?', ''], ['_c_ocr_le_la_les_regex_3', '-', 'la|là', 0, 'Erreur de numérisation ?', ''], ['_c_ocr_le_la_les_regex_4', '-', 'le|la', 0, 'Erreur de numérisation ?', '']]],
  ]],
  ["conf", [
    ['(?i)(?<![\\w.,–-])[1[\\]][ea]s?(?![\\w–-])', True, '#1517p', 'conf_1e_1a_1es', 5, [['_c_conf_1e_1a_1es_1', '-', 'le', 0, 'Erreur de frappe\xa0?', ''], ['_c_conf_1e_1a_1es_2', '-', 'la', 0, 'Erreur de frappe\xa0?', ''], ['_c_conf_1e_1a_1es_3', '-', 'les', 0, 'Erreur de frappe\xa0?', '']]],
  ]],
  ["ocr", [
    ['(?i)(?<![\\w.,–-])[1[\\]][ea]s(?![\\w–-])', True, '#1529p', 'ocr_les', 3, [[None, '-', 'les', 0, 'Erreur de numérisation ?', '']]],
    ["(?i)(?<![\\w.,–-])([1[][’'`‘])[aâeéèêëiîïoôuyh][\\w-]*(?![\\w–-])", True, '#1537p', 'ocr_l_regex', 3, [[None, '-', 'l’|L’|j’|J’', 1, 'Erreur de numérisation ?', '']]],
    ['(?i)(?<![\\w.,–-])1fs?(?![\\w–-])', True, '#1545p', 'ocr_il_regex', 3, [['_c_ocr_il_regex_1', '-', 'Ils|ils|ifs', 0, 'Erreur de numérisation ?', ''], ['_c_ocr_il_regex_2', '-', 'Il|il|if', 0, 'Erreur de numérisation ?', '']]],
  ]],
  ["", [
    ['(?i)(?<![\\w.,–-])\\w+‑\\w+‑\\w+(?![\\w–-])', True, '#1561p', 'p_trait_union_conditionnel1', 4, [[None, '~', '=_p_p_trait_union_conditionnel1_1', 0]]],
    ['(?i)(?<![\\w.,–-])\\w+‑\\w+(?![\\w–-])', True, '#1562p', 'p_trait_union_conditionnel2', 4, [[None, '~', '=_p_p_trait_union_conditionnel2_1', 0]]],
    ['([?!…][?!… \xa0]*)[ "\'”»\xa0]*,', False, '#1565p', 'p_fin_dialogue', 4, [[None, '~', '*', 1]]],
  ]],
]

lSentenceRules = [
  ["", [
    ['(?<![\\w.,–-])(\\w+) {1,3}\\1(?![\\w–-])', False, '#1629s', 'doublon', 4, [['_c_doublon_1', '-', '\\1', 0, 'Doublon.', '']]],
  ]],
  ["num", [
    ['(?<![\\w.,–-])[\\dO]+[O][\\dO]+(?![\\w–-])', False, '#1643s', 'num_lettre_O_zéro1', 4, [['_c_num_lettre_O_zéro1_1', '-', '=_s_num_lettre_O_zéro1_1', 0, 'S’il s’agit d’un nombre, utilisez le chiffre « 0 » plutôt que la lettre « O ».', '']]],
    ['(?<![\\w.,–-])[1-9]O(?![\\w–-])', False, '#1644s', 'num_lettre_O_zéro2', 4, [['_c_num_lettre_O_zéro2_1', '-', '=_s_num_lettre_O_zéro2_1', 0, 'S’il s’agit d’un nombre, utilisez le chiffre « 0 » plutôt que la lettre « O ».', '']]],
  ]],
  ["", [
    ['(?i)(?<![\\w.,–-])(\\w[\\w-]*[éuitsrn])_(?:[nt]|)e_s(?![\\w–-])', True, '#1652s', 'd_eepi_écriture_épicène_pluriel', 4, [['_c_d_eepi_écriture_épicène_pluriel_1', '=', '_d_d_eepi_écriture_épicène_pluriel_1']]],
    ['(?i)(?<![\\w.,–-])(\\w[\\w-]+[éuitsrn])_e(?![\\w–-])', True, '#1656s', 'd_eepi_écriture_épicène_singulier', 4, [['_c_d_eepi_écriture_épicène_singulier_1', '=', '_d_d_eepi_écriture_épicène_singulier_1']]],
    ['[¹²³⁴⁵⁶⁷⁸⁹⁰]+', False, '#1664s', 'p_exposants', 4, [[None, '~', '*', 0]]],
    ['(?i)(?<![\\w.,–-])(\\w[\\w-]+)(\\d+)(?![\\w–-])', True, '#1668s', 'p_références_aux_notes', 4, [['_c_p_références_aux_notes_1', '~', '*', 2]]],
  ]],
  ["tu", [
    ['(?i)(?<![\\w.,–-])(\\w+)(?:--|—|–|−|⁃)(\\w+)(?![\\w–-])', True, '#1677s', 'tu_trait_union_douteux', 7, [['_c_tu_trait_union_douteux_1', '-', '\\1-\\2', 0, 'Trait d’union : un tiret simple suffit.', '']]],
    ["(?i)([-–—− ]t(?:[’' ][-–—−]?|[-–—−][’' ]?))(ie?ls?|elles?|on|tu)(?![\\w–-])", True, '#1685s', 'tu_t_euphonique_incorrect', 7, [['_c_tu_t_euphonique_incorrect_1', '-', '-', 1, 'Le “t” euphonique n’est pas nécessaire avec “\\2”.', 'http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?T1=t+euphonique&id=2513'], ['_c_tu_t_euphonique_incorrect_2', '-', '-t-', 1, 'Pour le “t” euphonique, il faut deux traits d’union. Pas d’apostrophe. Pas d’espace.', ''], ['_c_tu_t_euphonique_incorrect_3', '~', '-t-', 1]]],
    ["(?i)[td]([- ]t[-’' ])(?:il|elle|on)(?![\\w–-])", True, '#1690s', 'tu_t_euphonique_superflu', 7, [[None, '-', '-', 1, 'Le “t” euphonique est superflu quand le verbe se termine par “t” ou “d”.', 'http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?T1=t+euphonique&id=2513'], ['_c_tu_t_euphonique_superflu_2', '~', '-t-', 1]]],
    ['(?i)[aec](-(il|elle|on))(?![\\w–-])', True, '#1694s', 'tu_t_euphonique_manquant', 7, [[None, '-', '-t-\\2', 1, 'Il faut un “t” euphonique.', 'http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?T1=t+euphonique&id=2513']]],
  ]],
  ["@@@@", [
    ['graphe0', '#1730s'],
    ['ocr', '#2621s'],
    ['graphe1', '#3531s'],
    ['purge_passe2', '#16092s'],
    ['purge_passe3', '#16422s'],
  ]],
  ["redon2", [
    ['(?i)(?<![\\w.,–-])(\\w[\\w-][\\w-]+\\w)[ ,].* (\\1)(?![\\w–-])', True, '#16860s', 'redondances_phrase', 4, [['_c_redondances_phrase_1', '-', '_', 2, 'Dans cette phrase, répétition de “\\1” (à gauche).', ''], ['_c_redondances_phrase_2', '-', '_', 1, 'Dans cette phrase, répétition de “\\1” (à droite).', '']]],
  ]],
  ["mc", [
    ['(?i)(?<![\\w.,–-])(\\w\\w+)-(\\w\\w+)(?![\\w–-])', True, '#16874s', 'mc_mot_composé', 4, [['_c_mc_mot_composé_1', '-', '\\1\\2', 0, 'Vous pouvez ôter le trait d’union.', ''], ['_c_mc_mot_composé_2', '-', '_', 0, 'Mot inconnu du dictionnaire.', 'https://grammalecte.net/dictionary.php?prj=fr&unknownword=on']]],
  ]],
  ["@@@@", [
    ['graphe2', '#16892s'],
    ['purge_ponctuations2', '#23201s'],
    ['verbes1', '#23281s'],
    ['verbes2', '#26918s'],
  ]],
]
