"""
Grammar checker regex rules
"""

# generated code, do not edit

lParagraphRules = [
  ["tab", [
    ['^[ \xa0\u202f   ]+', False, '#355p', 'tab_début_ligne', 4, [[None, '-', '', 0, 'Espace(s) en début de ligne à supprimer : utilisez les retraits de paragraphe.', '']]],
    ['[ \xa0\u202f    ]+$', False, '#356p', 'tab_fin_ligne', 4, [[None, '-', '', 0, 'Espace(s) en fin de ligne à supprimer.', '']]],
  ]],
  ["esp", [
    ['^[ \xa0\u202f]+', False, '#364p', '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, '#365p', 'esp_fin_ligne', 4, [[None, '-', '', 0, 'Espace(s) en fin de ligne à supprimer.', '']]],
    ['(?:\\b|[.?!,:;%‰‱˚»”])(  +)', False, '#366p', 'esp_milieu_ligne', 4, [[None, '-', ' ', 1, 'Espace(s) surnuméraire(s) à supprimer.', '']]],
    ['(?: \xa0|\xa0 )', False, '#376p', '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, '#377p', 'esp_mélangés2', 4, [[None, '-', ' |\t', 0, 'Incohérence : espace et tabulation.', '']]],
    ['[\xa0\u202f][\xa0\u202f]+', False, '#384p', '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, '#391p', '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, '#414p', 'typo_espace_après_signe_ouvrant', 4, [[None, '-', '\\1', 0, 'Pas d’espace après ce signe.', '']]],
    [' ([\\])])', False, '#415p', 'typo_espace_avant_signe_fermant', 4, [[None, '-', '\\1', 0, 'Pas d’espace avant ce signe.', '']]],
    ['[)]\\b(?![s¹²³⁴⁵⁶⁷⁸⁹⁰]\\b)', False, '#425p', '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, '#428p', 'typo_parenthèse_ouvrante_collée', 4, [[None, '-', ' (', 0, 'Il manque un espace avant la parenthèse.', '']]],
    ['[ \xa0][.](?=[ \xa0])', False, '#438p', 'typo_point_entre_deux_espaces', 4, [[None, '-', '.', 0, 'Pas d’espace avant un point.', '']]],
    ['[ \xa0][.](?=\\w)', False, '#439p', '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, '#446p', 'typo_points_suspension_après_espace', 4, [[None, '-', '…', 1, 'Pas d’espace avant le signe “…”.', '']]],
    ['[ \xa0],(?=[ \xa0])', False, '#454p', 'typo_virgule_entre_deux_espaces', 4, [[None, '-', ',', 0, 'Pas d’espace avant une virgule.', '']]],
    ['[ \xa0],(?=\\w)', False, '#455p', 'typo_virgule_collée_à_mot_suivant', 4, [[None, '-', ', ', 0, 'Pas d’espace avant une virgule. Un espace après.', '']]],
    ['[ \xa0]”[ \xa0]', False, '#462p', 'typo_guillemets_fermants_perdus', 4, [[None, '-', '” | “', 0, 'Pas d’espace avant ces guillemets ouvrants.', '']]],
    ['[ \xa0]“[ \xa0]', False, '#465p', 'typo_guillemets_ouvrants_perdus', 4, [[None, '-', ' “|” ', 0, 'Pas d’espace après ces guillemets ouvrants.', '']]],
    ['[ \xa0\u202f](?:"|[\'‘’][\'‘’])[ \xa0\u202f]', False, '#468p', 'typo_guillemets_perdus', 4, [[None, '-', ' «\xa0|\xa0» | “|” ', 0, 'Guillemets isolés.', '']]],
    ['^(?:"|[\'‘’][\'‘’])[ \xa0\u202f]', False, '#471p', 'typo_commencement_guillemets', 4, [[None, '-', '«\xa0|“', 0, 'Guillemets ouvrants.', '']]],
    ['([ \xa0\u202f](?:"|[\'‘’][\'‘’]))(?:$|[.,;?!])', False, '#474p', 'typo_guillemets_fin', 4, [[None, '-', '\xa0»|”', 1, 'Guillemets fermants.', '']]],
    ['[ \xa0]”(?=\\w)', False, '#485p', 'typo_guillemets_fermants_inverses', 4, [[None, '-', ' “', 0, 'Mettez des guillemets ouvrants plutôt que fermants.', '']]],
    ['\\w([«“][ \xa0])', False, '#488p', 'typo_guillemets_ouvrants_inverses1', 4, [[None, '-', '\xa0»|”', 1, 'Mettez des guillemets fermants plutôt qu’ouvrants.', '']]],
    ['([«“])[ \xa0]*$', False, '#491p', 'typo_guillemets_ouvrants_inverses2', 4, [[None, '-', '\xa0»|”', 1, 'Mettez des guillemets fermants plutôt qu’ouvrants.', '']]],
    ['\\w([ \xa0][«“])[ \xa0]*[!?,:;.…]', False, '#494p', '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, '#520p', 'p_email', 4, [[None, '~', '__MAIL__', 0]]],
    ['(?i)(?:ht|f)tps?://[\\w./?&!%=+*"\'@$#-]+', True, '#524p', '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, '#526p', 'p_URL2', 4, [[None, '~', '*', 1], [None, '~', '=_p_p_URL2_2', 2], [None, '~', '*', 3]]],
    ['(?i)^\\d+[.][\\d.-]*', True, '#533p', 'p_chapitre', 4, [[None, '~', '*', 0]]],
    ['(?i)^\\d+(?:  +|\\t+)', True, '#537p', 'p_num_chapitre', 4, [[None, '~', '*', 0]]],
    ['(?<![\\w.,–-])[cC](?:f|hap|oll?)([.])', False, '#541p', 'p_chap_coll_cf', 4, [[None, '~', '*', 1]]],
    ['(?<![\\w.,–-])p[.] ?\\d+(?:-\\d+|)(?![\\w–-])', False, '#542p', 'p_page', 4, [[None, '~', '*', 0]]],
    ['(?<![\\w.,–-])pp[.] ?\\d+-\\d+(?![\\w–-])', False, '#543p', 'p_pages', 4, [[None, '~', '*', 0]]],
    ['(?i)(?<![\\w.,–-])figure (\\d+(?:[.:-]\\d+|))(?![\\w–-])', True, '#544p', 'p_figure', 4, [[None, '~', '*', 1]]],
    ['(?i)(?<![\\w.,–-])art(?:icle|[.]) (1(?:er|ᵉʳ)|\\d+(?:[.:-]\\w+|))(?![\\w–-])', True, '#545p', 'p_article', 4, [[None, '~', '*', 1]]],
    ['(?<![\\w.,–-])av[.]', False, '#546p', 'p_av', 4, [[None, '~', 'av', 0]]],
    ['(?<![\\w.,–-])vs[.]', False, '#549p', '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, '#555p', 'p_version_numéro', 4, [[None, '~', '*', 1]]],
    ['([A-Z][.][A-Z][.](?:[A-Z][.])*) +[A-ZÉÀÂÊÎÈÔ]', False, '#559p', 'p_sigle1', 4, [[None, '~', '=_p_p_sigle1_1', 1]]],
    ['(?<![\\w.,–-])[a-zA-Z][.][a-zA-Z][.](?:[a-zA-Z][.])*', False, '#561p', '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, '#568p', 'p_sigle3', 4, [[None, '~', '=_p_p_sigle3_1', 0]]],
    ["(?<![\\w.,–-])(M[.]) (?:[A-ZÉÈÎ]\\w*|l[e'’])", False, '#572p', 'p_M_point', 4, [[None, '~', 'Mr', 1]]],
    ['(?<![\\w.,–-])MM[.]', False, '#574p', 'p_MM_point', 4, [[None, '~', 'MM ', 0]]],
    ['(?<![\\w.,–-])M(?:r|gr|me) [A-ZÉ]([.])(?=\\W+[a-zéèêâîïû])', False, '#576p', 'p_Mr_Mgr_Mme_point', 4, [[None, '~', '*', 1]]],
    ['(?<![\\w.,–-])([A-ZÉÈÂÎ][\\w-]+)[ \xa0][A-ZÉÈÂ]([.])[ \xa0]([A-ZÉÈÂ][\\w-]+)(?![\\w–-])', False, '#580p', 'p_prénom_lettre_point_patronyme', 4, [['_c_p_prénom_lettre_point_patronyme_1', '~', '*', 2]]],
    ['(?<![\\w.,–-])([A-ZÉÈÂÎ][\\w-]+)[ \xa0][A-ZÉÈÂ]([.])', False, '#583p', '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, '#588p', '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, '#592p', '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, '#596p', 'p_arborescence_Linux_Mac', 4, [[None, '~', '*', 0]]],
    ['(?i)(?<![\\w.,–-])[a-z]:\\\\(?:Program Files(?: [(]x86[)]|)|[\\w.()]+)(?:\\\\[\\w.()]+)*', True, '#599p', 'p_arborescence_Windows', 4, [[None, '~', '*', 0]]],
    ['(?<![\\w.,–-])\\d+ (m) ', False, '#603p', 'p_chiffres_m', 4, [[None, '~', '_', 1]]],
    ['(?<![\\w.,–-])\\[…\\](?![\\w–-])', False, '#607p', 'p_points_suspension_entre_crochets', 4, [[None, '~', '*', 0]]],
    ['(?<![\\w.,–-])\\[(\\w[\\w-]*)\\](?![\\w–-])', False, '#609p', '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, '#616p', '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, '#620p', 'p_préfixes_entre_parenthèses', 4, [[None, '~', '*', 1]]],
  ]],
  ["apos", [
    ['(?i)(?<![\\w.,–-])([ldsncjmç]|jusqu|lorsqu|aujourd|presqu|quelqu|puisqu|qu|prud|entr)[\'ʼ‘‛´`′‵՚ꞌꞋ](?=[\\w"«<])', True, '#661p', 'apostrophe_typographique', 8, [[None, '-', '\\1’', 0, 'Apostrophe typographique.', '']]],
    ['(?i)(?<![\\w.,–-])t[\'ʼ‘‛´`′‵՚ꞌꞋ](?!ils?|elles?|on)(?=[\\w"«<])', True, '#663p', '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, '#672p', '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, '#683p', 'typo_apostrophe_manquante', 8, [[None, '-', '\\2’', 1, 'Il manque vraisemblablement une apostrophe.', ''], [None, '~', '\\2’', 1]]],
    ['(?i)(?<![\\w.,–-])ne ([mtsl] )[aeéiouhyàîèêôû<]', True, '#688p', '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, '#691p', '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, '#695p', '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, '#719p', 'typo_guillemets_typographiques_doubles_ouvrants', 4, [['_c_typo_guillemets_typographiques_doubles_ouvrants_1', '-', '«\xa0|“', 0, 'Guillemets typographiques ouvrants.', '']]],
    ['[\\w.?!…,](")(?!\\w)', False, '#722p', 'typo_guillemets_typographiques_doubles_fermants', 4, [[None, '-', '\xa0»|”', 1, 'Guillemets typographiques fermants.', '']]],
    ["(?:^|[ –—-])('')(?=\\w)", False, '#730p', 'typo_guillemets_typographiques_simples_doubles_ouvrants', 4, [[None, '-', '«\xa0|“', 1, 'Guillemets typographiques ouvrants.', '']]],
    ["[\\w.?!…,]('')(?![\\w'’])", False, '#733p', 'typo_guillemets_typographiques_simples_doubles_fermants', 4, [[None, '-', '\xa0»|”', 1, 'Guillemets typographiques fermants.', '']]],
    ["(?:^|[ –—-])(['’])(?=\\w)", False, '#742p', 'typo_guillemets_typographiques_simples_ouvrants', 4, [[None, '-', '“|‘|‹', 1, 'Guillemets typographiques ouvrants.', '']]],
    ["[\\w.?!](')(?:[ \xa0\u202f]|$)", False, '#745p', 'typo_guillemets_typographiques_simples_fermants', 4, [[None, '-', '”|’|›', 1, 'Guillemets typographiques fermants.', '']]],
  ]],
  ["html", [
    ['(?i)<\\w+.*?>', True, '#764p', 'p_html_balise_ouvrante', 4, [[None, '~', '*', 0]]],
    ['(?i)</\\w+ *>', True, '#765p', 'p_html_balise_fermante', 4, [[None, '~', '*', 0]]],
    ['(?i)&amp;[a-zA-Z]+;', True, '#766p', 'p_html_amp_xxx', 4, [[None, '~', '_', 0]]],
    ['(?i)&lt;', True, '#767p', 'p_html_lt', 4, [[None, '~', '   <', 0]]],
    ['(?i)&gt;', True, '#768p', 'p_html_gt', 4, [[None, '~', '>', 0]]],
    ['(?i)&amp;', True, '#769p', 'p_html_amp', 4, [[None, '~', '&', 0]]],
    ['(?i)&nbsp;', True, '#770p', 'p_html_nbsp', 4, [[None, '~', '@', 0]]],
    ['(?i)&#(?:160|8239);', True, '#771p', 'p_html_nbsp2', 4, [[None, '~', '@', 0]]],
    ['(?i)\\[/?\\w+\\]', True, '#772p', 'p_html_pseudo_balise', 4, [[None, '~', '*', 0]]],
  ]],
  ["latex", [
    ['(?i)\\\\[a-z]+(?![\\w–-])', True, '#775p', 'p_latex1', 4, [[None, '~', '*', 0]]],
    ['(?i)\\\\[,;/\\\\]', True, '#776p', '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, '#777p', 'p_latex3', 4, [[None, '~', '*', 0]]],
  ]],
  ["md", [
    [' ([*_]+)\\w', False, '#780p', 'p_md_span_ouvrant', 4, [[None, '~', '*', 1]]],
    ['(?i)[a-z0-9àéîïôûüù]([*_]+)[,.;:!?) ]', True, '#781p', 'p_md_span_fermant', 4, [[None, '~', '*', 1]]],
    ['^#+', False, '#782p', 'p_md_titre_début', 4, [[None, '~', '*', 0]]],
    ['#+ *$', False, '#783p', 'p_md_titre_fin', 4, [[None, '~', '*', 0]]],
    ['^ *[*+] ', False, '#784p', 'p_md_liste', 4, [[None, '~', '*', 0]]],
    ['^>[ >]+ ', False, '#785p', 'p_md_citation', 4, [[None, '~', '*', 0]]],
  ]],
  ["", [
    ['(?i)(?<![\\w.,–-])tous?[.(/·•⋅–—-]te[.)/·•⋅–—-]?s(?![\\w–-])', True, '#802p', '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, '#810p', '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, '#818p', '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, '#828p', '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, '#836p', '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, '#846p', '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, '#855p', '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, '#864p', '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, '#891p', '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, '#909p', '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, '#928p', '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, '#937p', '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, '#953p', '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, '#969p', '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, '#970p', '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, '#974p', '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, '#978p', '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, '#991p', '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, '#993p', 'virgule_fin_dialogue', 4, [[None, '-', '\xa0», |\xa0» ', 1, 'Virgule mal placée ou superflue.', '']]],
    [', *…', False, '#1003p', 'virg_virgule_avant_points_suspension', 4, [[None, '-', '…', 0, 'Typographie : pas de virgule avant les points de suspension.', '']]],
    ['(\\w+)([.],)', False, '#1006p', '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, '#1026p', 'typo_espace_manquant_après1', 4, [['_c_typo_espace_manquant_après1_1', '-', ' \\2', 2, 'Il manque un espace.', '']]],
    ['[?!;%‰‱˚»}](\\w[\\w-]*|[({[])', False, '#1028p', 'typo_espace_manquant_après2', 4, [[None, '-', ' \\1', 1, 'Il manque un espace.', '']]],
    ['(?<![\\w.,–-])\\w[\\w-]*[.](\\w[\\w-]*|[({[])', False, '#1030p', '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, '#1033p', '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, '#1067p', 'typo_et_cetera', 4, [[None, '-', 'etc.', 0, 'Un seul point après « etc. »', '']]],
    ['(?<![\\w.,–-])(M(?:me|gr|lle)s?[.]) [A-ZÉÈ]', False, '#1073p', '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, '#1079p', '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, '#1088p', 'typo_points_suspension1', 4, [['_c_typo_points_suspension1_1', '-', '…', 0, 'Typographie : points de suspension. Utilisez le caractère dédié.', '']]],
    ['[.]{6,}', False, '#1089p', 'typo_points_suspension2', 4, [[None, '-', '=_s_typo_points_suspension2_1', 0, 'Typographie : succession de points. Utilisez le caractère dédié.', '']]],
    ['(?<![.…])[.][.](?![.])', False, '#1090p', 'typo_points_suspension3', 4, [[None, '-', '…|.', 0, 'Typographie : un ou trois points ?', '']]],
    ['…[.][.]?(?![.])', False, '#1091p', 'typo_points_superflus', 4, [[None, '-', '…', 0, 'Point(s) superflu(s).', '']]],
    [',[.,]{2,}', False, '#1111p', 'typo_virgules_points', 4, [[None, '-', '=_s_typo_virgules_points_1', 0, 'Erreur de numérisation\xa0? Virgules au lieu de points\xa0?', '']]],
    [', ?([.,;:!?])', False, '#1118p', 'typo_ponctuation_superflue1', 4, [[None, '-', '=_s_typo_ponctuation_superflue1_1', 0, 'Une de ces ponctuations est superflue.', '']]],
    ['; ?([.,;:…!?])', False, '#1119p', 'typo_ponctuation_superflue2', 4, [[None, '-', '=_s_typo_ponctuation_superflue2_1', 0, 'Une de ces ponctuations est superflue.', '']]],
    [':[.,;:…!?]', False, '#1120p', 'typo_ponctuation_superflue3', 4, [[None, '-', '=_s_typo_ponctuation_superflue3_1', 0, 'Une de ces ponctuations est superflue.', '']]],
  ]],
  ["nbsp", [
    ['\\b[?!;]', False, '#1134p', '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, '#1136p', 'nbsp_avant_double_ponctuation', 4, [[None, '-', '\xa0\\1', 0, 'Il manque un espace insécable.', '']]],
    ['(?: |\\b):(?= |$)', False, '#1138p', 'nbsp_avant_deux_points', 4, [[None, '-', '\xa0:', 0, 'Il manque un espace insécable.', '']]],
    ['«(?: |\\b)', False, '#1140p', 'nbsp_après_chevrons_ouvrants', 4, [[None, '-', '«\xa0', 0, 'Il manque un espace insécable.', '']]],
    ['^»(?: |\\b)', False, '#1142p', '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, '#1144p', 'nbsp_avant_chevrons_fermants1', 4, [[None, '-', '\xa0»', 0, 'Il manque un espace insécable.', '']]],
    ['([].!?)])»', False, '#1146p', 'nbsp_avant_chevrons_fermants2', 4, [[None, '-', '\\1\xa0»', 0, 'Il manque un espace insécable.', '']]],
    ['([:;!?])\xa0(?=[\\w«“"])', False, '#1148p', 'nbsp_après_double_ponctuation', 4, [[None, '-', '\\1 ', 0, 'Pas d’espace insécable après le signe “\\1”.', '']]],
  ]],
  ["unit", [
    ["(?<![\\w.,–-])((\\d+(?:,\\d+[⁰¹²³⁴⁵⁶⁷⁸⁹]?|[⁰¹²³⁴⁵⁶⁷⁸⁹]|)) ?)([kcmµn]?(?:[slgJKVΩ]|m[²³]?|Wh?|Hz|dB)|[%‰€$£¥Åℓhj]|min|jours?|semaines|mois|ans?|euros?|heures?|px|MHz|°C|℃)(?![’'])(?![\\w–-])", False, '#1163p', '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, '#1168p', '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, '#1174p', '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.', '']]],
  ]],
  ["typo", [
    ['(?<![\\w.,–-])(?:cos|sin|tan|cotan|log|ln)²? [2-9]?[a-zA-Zα-ωΑ-Ω](?![\\w–-])', False, '#1199p', 'typo_math', 4, [[None, '-', '=_s_typo_math_1', 0, 'Mettez des parenthèses (ou éventuellement un espace insécable).', '']]],
    ['^[-_][ \xa0]', False, '#1223p', 'typo_tiret_début_ligne', 4, [[None, '-', '—\xa0|–\xa0', 0, 'Dialogues et énumérations : un tiret cadratin [1] ou demi-cadratin [2], suivi d’un espace insécable, est requis.', '']]],
    ['^ *«[ \xa0](-[ \xa0])', False, '#1224p', 'typo_tiret_dans_dialogue', 4, [[None, '-', '—\xa0|–\xa0', 1, 'Dialogues : un tiret cadratin [1] ou demi-cadratin [2], 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, '#1226p', 'nbsp_après_tiret1', 4, [[None, '-', '\\1\xa0', 0, 'Dialogues et énumérations : ce tiret doit être suivi d’un espace insécable.', '']]],
    ['^([—–-])\\d', False, '#1227p', 'nbsp_après_tiret2', 4, [[None, '-', '—\xa0|–\xa0|−', 1, 'Dialogues et énumérations : il faut tiret cadratin [1] ou demi-cadratin [2] suivi d’un espace insécable. S’il s’agit de représenter un nombre négatif, utilisez le signe “moins” [3].', '']]],
    ['^([—–-])[\\w«“‘]', False, '#1228p', 'nbsp_après_tiret3', 4, [[None, '-', '—\xa0|–\xa0', 1, 'Dialogues et énumérations : il faut tiret cadratin [1] ou demi-cadratin [2] suivi d’un espace insécable.', '']]],
  ]],
  ["typo", [
    [' - (?=[0-9])', False, '#1229p', 'typo_tiret_incise1', 4, [[None, '-', ' – | — | − | −', 0, 'Tiret d’incise : un tiret demi-cadratin [1] ou cadratin [2] est requis. (Ou éventuellement le signe “moins” s’il s’agit d’une soustraction [3] ou de représenter un nombre négatif [4].)', '']]],
    [' - (?![0-9])', False, '#1230p', 'typo_tiret_incise2', 4, [[None, '-', ' – | — | − ', 0, 'Tiret d’incise : un tiret demi-cadratin [1] ou cadratin [2] est requis. (Ou éventuellement le signe “moins” [3], s’il s’agit d’une soustraction.)', '']]],
    ['-(\\d+)(?![\\w–-])', False, '#1249p', '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” [1]. S’il s’agit d’une incise, utilisez un tiret demi-cadratin [2] ou un tiret cadratin [3].', '']]],
    ['(\\d+) ?[x*] ?(\\d+)', False, '#1256p', 'typo_signe_multiplication', 4, [['_c_typo_signe_multiplication_1', '-', '\\1\xa0×\xa0\\2', 0, 'Signe de multiplication typographique.', '']]],
    ['[\\w \xa0](<=)[\\w \xa0]', False, '#1265p', 'typo_inférieur_ou_égal', 4, [[None, '-', '≤|⩽', 1, 'Signe “inférieur ou égal”.', '']]],
    ['[\\w \xa0](>=)[\\w \xa0]', False, '#1266p', 'typo_supérieur_ou_égal', 4, [[None, '-', '≥|⩾', 1, 'Signe “supérieur ou égal”.', '']]],
  ]],
  ["liga", [
    ['[ﬁﬂﬀﬃﬄﬅﬆ]', False, '#1273p', '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, '#1289p', '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, '#1304p', '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, '#1308p', '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, '#1317p', '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, '#1321p', '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, '#1330p', 'typo_guillemets_doubles_ouvrants_non_fermés', 4, [[None, '-', '_', 1, 'Guillemets fermants introuvables dans la suite du paragraphe.', '']]],
    ['(?i)^[^“„«"]+\\w(”)(?![\\w–-])', True, '#1333p', 'typo_guillemets_doubles_fermants_non_ouverts', 4, [[None, '-', '_', 1, 'Guillemets ouvrants introuvables dans ce paragraphe.', '']]],
    ["(?i)(?<![\\w.,–-])(‘)\\w\\w[^’']+$", True, '#1341p', '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, '#1344p', 'typo_guillemet_simple_fermant_non_ouvert', 4, [['_c_typo_guillemet_simple_fermant_non_ouvert_1', '-', '_', 1, 'Guillemet ouvrant introuvable dans ce paragraphe.', '']]],
  ]],
  ["num", [
    ['(?<![\\w.,–-])\\d\\d\\d\\d+(?![\\w–-])', False, '#1362p', '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, '#1371p', '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, '#1390p', '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, '#1398p', '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, '#1411p', '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, '#1430p', '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, '#1448p', 'ocr_point_interrogation', 3, [['_c_ocr_point_interrogation_1', '-', '\xa0?', 0, 'Erreur de numérisation ?', '']]],
    ["[ \xa0]I(?![ ’'][aâeéèêëiîïoôuy])(?![\\w–-])", False, '#1457p', 'ocr_exclamation1', 3, [[None, '-', '\xa0!', 0, 'Erreur de numérisation ?', '']]],
    ['[ \xa0]1(?= [A-ZÉÈÂÎ])(?![\\w–-])', False, '#1460p', 'ocr_exclamation2', 3, [['_c_ocr_exclamation2_1', '-', '\xa0!', 0, 'Erreur de numérisation ?', '']]],
    ['(?i)(?<![\\w.,–-])[\\dOI][\\dOI]+(?![\\w–-])', True, '#1471p', '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, '#1481p', 'ocr_casse_pronom_vconj', 3, [[None, '-', '=_s_ocr_casse_pronom_vconj_1', 1, 'Erreur de numérisation ? Casse douteuse.', '']]],
    ['(?<![\\w.,–-])\\w+-\\w+(?![\\w–-])', False, '#1491p', '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, '#1505p', 'tu_trait_union_conditionnel', 3, [[None, '-', '\\1\\2|\\1-\\2', 0, 'Trait d’union conditionnel. Erreur de numérisation\xa0?', '']]],
    ['\\w*[{}<>&*#£^|]+\\w*', False, '#1513p', '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, '#1523p', 'ocr_doublons_caractères_rares', 3, [[None, '-', '_', 0, 'Erreur de numérisation\xa0? Succession\xa0douteuse de caractères.', '']]],
    ['(?i)(?<![\\w.,–-])[1[\\]][easrnxiocuwàéè](?![\\w–-])', True, '#1532p', '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, '#1545p', '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, '#1557p', 'ocr_les', 3, [[None, '-', 'les', 0, 'Erreur de numérisation ?', '']]],
    ["(?i)(?<![\\w.,–-])([1[][’'`‘])[aâeéèêëiîïoôuyh][\\w-]*(?![\\w–-])", True, '#1565p', 'ocr_l_regex', 3, [[None, '-', 'l’|L’|j’|J’', 1, 'Erreur de numérisation ?', '']]],
    ['(?i)(?<![\\w.,–-])1fs?(?![\\w–-])', True, '#1573p', '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, '#1589p', 'p_trait_union_conditionnel1', 4, [[None, '~', '=_p_p_trait_union_conditionnel1_1', 0]]],
    ['(?i)(?<![\\w.,–-])\\w+‑\\w+(?![\\w–-])', True, '#1590p', 'p_trait_union_conditionnel2', 4, [[None, '~', '=_p_p_trait_union_conditionnel2_1', 0]]],
    ['([?!…][?!… \xa0]*)[ "\'”»\xa0]*,', False, '#1593p', 'p_fin_dialogue', 4, [[None, '~', '*', 1]]],
  ]],
]

lSentenceRules = [
  ["", [
    ['(?<![\\w.,–-])(\\w+) {1,3}\\1(?![\\w–-])', False, '#1657s', 'doublon', 4, [['_c_doublon_1', '-', '\\1', 0, 'Doublon.', '']]],
  ]],
  ["num", [
    ['(?<![\\w.,–-])[\\dO]+[O][\\dO]+(?![\\w–-])', False, '#1671s', '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, '#1672s', '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, '#1680s', '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, '#1684s', 'd_eepi_écriture_épicène_singulier', 4, [['_c_d_eepi_écriture_épicène_singulier_1', '=', '_d_d_eepi_écriture_épicène_singulier_1']]],
    ['[¹²³⁴⁵⁶⁷⁸⁹⁰]+', False, '#1692s', 'p_exposants', 4, [[None, '~', '*', 0]]],
    ['(?i)(?<![\\w.,–-])(\\w[\\w-]+)(\\d+)(?![\\w–-])', True, '#1696s', 'p_références_aux_notes', 4, [['_c_p_références_aux_notes_1', '~', '*', 2]]],
  ]],
  ["tu", [
    ['(?i)(?<![\\w.,–-])(\\w+)(?:--|—|–|−|⁃)(\\w+)(?![\\w–-])', True, '#1705s', '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, '#1713s', '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[-’' ])(?:ie?l|elle|on)(?![\\w–-])", True, '#1718s', '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]]],
  ]],
  ["eleu", [
    ['(?i)[aec](-(ie?l|elle|on))(?![\\w–-])', True, '#1722s', 'eleu_t_euphonique_manquant', 4, [[None, '-', '-t-\\2', 1, 'Euphonie. Il faut un “t” euphonique.', 'http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?T1=t+euphonique&id=2513']]],
  ]],
  ["@@@@", [
    ['graphe0', '#1758s'],
    ['ocr', '#2735s'],
    ['graphe1', '#3651s'],
    ['purge_passe2', '#17109s'],
    ['purge_passe3', '#17484s'],
  ]],
  ["redon2", [
    ['(?i)(?<![\\w.,–-])(\\w[\\w-][\\w-]+\\w)[ ,].* (\\1)(?![\\w–-])', True, '#18003s', '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, '#18017s', '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', '#18035s'],
    ['purge_ponctuations2', '#24678s'],
    ['verbes1', '#24774s'],
    ['verbes2', '#28108s'],
  ]],
]
