Index: gc_lang/fr/rules.grx
==================================================================
--- gc_lang/fr/rules.grx
+++ gc_lang/fr/rules.grx
@@ -12119,10 +12119,11 @@
 __purge_locutions_verbales__
     >aller bon train
     >arriver à échéance
     >arriver à point nommé
     >arriver à bon port
+    >battre à plate couture
     >battre en [brèche|retraite]
     >chauffer à blanc
     >compter à rebours
     >condamner à mort
     >couler à ?grands¿ flots
@@ -12204,10 +12205,11 @@
 
 __conf_locutions_verbales__
     >arriver a échéance
     >arriver a point nommé
     >arriver a bon port
+    >battre a plate couture
     >chauffer a blanc
     [>gonfler|>regonfler] a bloc
     [>mettre|>remettre] a [bas|>flot|>jour|>niveau|>nu|>nue|>plat|>terre]
     [>mettre|>remettre] a l’ [écart|épreuve]
     >percer a jour
@@ -12453,11 +12455,11 @@
 !!
 
 ## l’
 
 __gn_l_1m__
-    l’  @:[NA].*:p¬:[123][sp]|:[si]
+    l’  @:[NA].*:p¬:(?:[123][sp]|[si])
         <<- /gn/ -2>> =suggSing(\2)                                                                 # Accord de nombre erroné : “\2” devrait être au singulier.
 
 TEST: toute l’importance de l’{{accords}} musical.
 
 
@@ -13116,11 +13118,11 @@
 TEST: ces religieux inflexibles envers les femmes mais compatissants envers les tyrans qui soutiennent leur religion.
 
 
 __gn_des_2m__
     des  *WORD  *WORD
-        <<- /gn/ (morph(<1, ":[VRBX]|:Cs|>comme/|<start>", "*") or morph(\3, ":N", ":[AQ]")) and not \3.startswith("seul") >>>
+        <<- /gn/ (morph(<1, ":(?:[VRBX]|Cs)|>comme/|<start>", "*") or morph(\3, ":N", ":[AQ]")) and not \3.startswith("seul") >>>
         <<- /gn/ ( (morph(\2, ":[NA].*:m", ":[fe]") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":[me]") and morph(\3, ":[NA].*:m", "*")) ) and not apposition(\2, \3)
         -3>> =switchGender(\3, True)                                                                # Accord de genre erroné avec « \2 ».
         <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 # Accord de genre erroné avec « \3 ».
         <<- /gn/ morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A"))
         -3>> =suggPlur(\3)                                                                          # Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel.
@@ -13925,11 +13927,11 @@
 
 
 # mille
 __sgpl_mille__
     milles
-        <<- /sgpl/ morph(>1, ":B|:N.*:p", ":[QA]") or (morph(<1, ":B") and morph(>1, ":[NA]"))
+        <<- /sgpl/ morph(>1, ":(?:B|N.*:p)", ":[QA]") or (morph(<1, ":B") and morph(>1, ":[NA]"))
         ->> mille                           # “Mille” est invariable s’il s’agit d’un nombre (et non de l’unité de mesure maritime).
 
 TEST: Plus de {{milles}} personnes sont venues.
 TEST: plus de deux cent quatre-vingt mille personnes
 
@@ -16837,11 +16839,11 @@
 
 
 # bien
 __sgpl_verbe_bien__
     biens
-        <<- /sgpl/ morph(<1, ":V", ":D.*:p|:A.*:p") ->> bien    # Confusion probable. Ici, “bien” est un adverbe, donc invariable.
+        <<- /sgpl/ morph(<1, ":V", ":[DA].*:p") ->> bien        # Confusion probable. Ici, “bien” est un adverbe, donc invariable.
 
 TEST: Ils vont {{biens}}.
 TEST: Elles travaillaient vraiment {{biens}}.
 TEST: Il ne comprenait vraiment pas très {{biens}} ces principes de base.
 TEST: Il a de grands biens.
@@ -18183,42 +18185,43 @@
 
 TEST: quand tu te montres {{infaillibles}}
 
 
 __ppas_3sg_mas_se_verbe__
-    [il|quiconque]  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  [>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir]  @:[NA].*:[pf]¬:(?:G|W|V0|:[me]:[si])
+    [il|quiconque]  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  [>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir]  @:[NA].*:[pf]¬:(?:G|W|V0|[me]:[si])
         <<- /ppas/ --1>> =suggMasSing(\-1)                              # Accord avec le sujet “\1” : “\-1” devrait être au masculin singulier.
 
-    [lui|ça|ceci|cela|celui-ci|celui-là]  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  [>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir]  @:[NA].*:[pf]¬:(?:G|W|V0|:[me]:[si])
+    [lui|ça|ceci|cela|celui-ci|celui-là]  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  [>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir]  @:[NA].*:[pf]¬:(?:G|W|V0|[me]:[si])
         <<- /ppas/ not morph(<1, ":[RV]") --1>> =suggMasSing(\-1)       # Accord avec le sujet “\1” : “\-1” devrait être au masculin singulier.
 
-    ([lui|ça|ceci|cela|ce|c’|ç’|celui|celui-ci|celui-là])  qui  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  ([>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir])  @:[NA].*:[pf]¬:(?:G|W|V0|:[me]:[si])
+    ([lui|ça|ceci|cela|ce|c’|ç’|celui|celui-ci|celui-là])  qui  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  ([>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir])  @:[NA].*:[pf]¬:(?:G|W|V0|[me]:[si])
         <<- /ppas/ morph(\2, ":[123]s") --1>> =suggMasSing(\-1)         # Accord avec le sujet “\1” : “\-1” devrait être au masculin singulier.
 
-    lequel  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  [>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir]  @:[NA].*:[pf]¬:(?:G|W|V0|:[me]:[si])
+    lequel  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  [>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir]  @:[NA].*:[pf]¬:(?:G|W|V0|[me]:[si])
         <<- /ppas/ not morph(<1, ":R") --1>> =suggMasSing(\-1)          # Accord avec le sujet “\1” : “\-1” devrait être au masculin singulier.
 
 TEST: il se révéla totalement {{incapables}} d’y parvenir.
 TEST: ceci se veut {{différents}} des autres.
 TEST: celui-là qui ne se montre jamais {{reconnaissants}}
 TEST: lequel se veut {{imbattables}} ?
 
 
 __ppas_3sg_fem_se_verbe__
-    [elle|celle-ci|celle-là]  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  [>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir]  @:[NA].*:[pm]¬:(?:G|W|V0|:[fe]:[si])
+    [elle|celle-ci|celle-là]  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  [>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir]  @:[NA].*:[pm]¬:(?:G|W|V0|[fe]:[si])
         <<- /ppas/ not morph(<1, ":[RV]") --1>> =suggFemSing(\-1)       # Accord avec le sujet “\1” : “\-1” devrait être au féminin singulier.
 
-    ([elle|celle|celle-ci|celle-là])  qui  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  ([>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir])  @:[NA].*:[pm]¬:(?:G|W|V0|:[fe]:[si])
+    ([elle|celle|celle-ci|celle-là])  qui  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  ([>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir])  @:[NA].*:[pm]¬:(?:G|W|V0|[fe]:[si])
         <<- /ppas/ morph(\2, ":[123]s") --1>> =suggFemSing(\-1)         # Accord avec le sujet “\1” : “\-1” devrait être au féminin singulier.
 
-    laquelle  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  [>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir]  @:[NA].*:[pm]¬:(?:G|W|V0|:[fe]:[si])
+    laquelle  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  [>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir]  @:[NA].*:[pm]¬:(?:G|W|V0|[fe]:[si])
         <<- /ppas/ not morph(<1, ":R") --1>> =suggFemSing(\-1)          # Accord avec le sujet “\1” : “\-1” devrait être au féminin singulier.
 
 TEST: Elle se sait plus {{fortes}} qu’eux tous.
 TEST: elle se vit {{abandonné}}
 TEST: à celle qui se révélera {{attentif}} à tous ces problèmes.
 TEST: laquelle ne se sentit {{légitimes}} malgré ses compétences dans ce domaine.
+TEST: elle se sent vide.
 
 
 __ppas_1pl_nous_verbe__
     nous  ?[ne|n’]¿  nous  ([>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir])  @:[NA].*:s¬:(?:[GWpi]|V0)
         <<- /ppas/ morph(\1, ":1p") --1>> =suggPlur(\-1)                # Accord avec le sujet “nous” : “\-1” devrait être au pluriel.
@@ -18225,36 +18228,36 @@
 
 TEST: nous nous pensions {{invincible}} jusqu’au jour où tout a basculé.
 
 
 __ppas_3pl_mas_se_verbe__
-    ils  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  [>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir]  @:[NA].*:[sf]¬:(?:G|W|V0|:[me]:[pi])
+    ils  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  [>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir]  @:[NA].*:[sf]¬:(?:G|W|V0|[me]:[pi])
         <<- /ppas/ --1>> =suggMasPlur(\-1)                              # Accord avec le sujet “\1” : “\-1” devrait être au masculin singulier.
 
-    [ceux-ci|ceux-là]  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  [>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir]  @:[NA].*:[sf]¬:(?:G|W|V0|:[me]:[pi])
+    [ceux-ci|ceux-là]  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  [>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir]  @:[NA].*:[sf]¬:(?:G|W|V0|[me]:[pi])
         <<- /ppas/ not morph(<1, ":[RV]") --1>> =suggMasPlur(\-1)       # Accord avec le sujet “\1” : “\-1” devrait être au masculin singulier.
 
-    ([eux|ceux|ceux-ci|ceux-là])  qui  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  ([>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir])  @:[NA].*:[sf]¬:(?:G|W|V0|:[me]:[pi])
+    ([eux|ceux|ceux-ci|ceux-là])  qui  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  ([>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir])  @:[NA].*:[sf]¬:(?:G|W|V0|[me]:[pi])
         <<- /ppas/ morph(\2, ":3p") --1>> =suggMasPlur(\-1)             # Accord avec le sujet “\1” : “\-1” devrait être au masculin singulier.
 
-    lesquels  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  [>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir]  @:[NA].*:[sf]¬:(?:G|W|V0|:[me]:[pi])
+    lesquels  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  [>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir]  @:[NA].*:[sf]¬:(?:G|W|V0|[me]:[pi])
         <<- /ppas/ not morph(<1, ":R") --1>> =suggMasPlur(\-1)          # Accord avec le sujet “\1” : “\-1” devrait être au masculin singulier.
 
 TEST: ils se montrent {{exigeantes}}
 TEST: ceux-ci se surent {{espionné}} par les agents secrets de l’ennemi.
 TEST: agissons eux qui se montrent tellement {{arrogantes}} qu’ils méritent une petite leçon.
 TEST: lesquels se pensent encore {{anonyme}}
 
 
 __ppas_3pl_fem_se_verbe__
-    [elles|celles-ci|celles-là]  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  [>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir]  @:[NA].*:[sm]¬:(?:G|W|V0|:[fe]:[pi])
+    [elles|celles-ci|celles-là]  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  [>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir]  @:[NA].*:[sm]¬:(?:G|W|V0|[fe]:[pi])
         <<- /ppas/ not morph(<1, ":[RV]") --1>> =suggFemPlur(\-1)       # Accord avec le sujet “\1” : “\-1” devrait être au féminin singulier.
 
-    ([elles|celles|celles-ci|celles-là])  qui  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  ([>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir])  @:[NA].*:[sm]¬:(?:G|W|V0|:[fe]:[pi])
+    ([elles|celles|celles-ci|celles-là])  qui  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  ([>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir])  @:[NA].*:[sm]¬:(?:G|W|V0|[fe]:[pi])
         <<- /ppas/ morph(\2, ":3p") --1>> =suggFemPlur(\-1)             # Accord avec le sujet “\1” : “\-1” devrait être au féminin singulier.
 
-    lesquelles  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  [>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir]  @:[NA].*:[sm]¬:(?:G|W|V0|:[fe]:[pi])
+    lesquelles  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  [>montrer|>penser|>révéler|>savoir|>sentir|>voir|>vouloir]  @:[NA].*:[sm]¬:(?:G|W|V0|[fe]:[pi])
         <<- /ppas/ not morph(<1, ":R") --1>> =suggFemPlur(\-1)          # Accord avec le sujet “\1” : “\-1” devrait être au féminin singulier.
 
 TEST: elles se sentent {{perdu}}
 TEST: contre celles qui se veulent {{ignorante}} des réalités.
 TEST: Lesquelles s’y montraient {{dure}}.
@@ -20980,11 +20983,11 @@
 
 
 # Dès que + indicatif
 __vmode_dès_que__
     dès  [que|qu’]  @:(?:Os|M)  @:S¬:[IG]
-        <<- /vmode/ -4>> =suggVerbMode(\4, ":I", \3)                                                     # Ce verbe ne devrait pas être au subjonctif.
+        <<- /vmode/ -4>> =suggVerbMode(\4, ":I", \3)                                                # Après “dès que”, le verbe ne devrait pas être au subjonctif.
 #        <<- morph(\1, ":(?:Os|M)", False) and morph(\2, ":K", False)        -2>> =suggVerbMode(@, ":If", \1)    # Ce verbe ne devrait pas être au conditionnel.
 
 #TEST: dès que je le {{verrais}}
 TEST: dès qu’il le {{voie}}
 TEST: donnant à entendre qu’il avait l’intention de violer Laura dès qu’il en aurait l’occasion
@@ -20994,34 +20997,49 @@
 __vmode_qqch_que_subjonctif__
     [quoique|quoiqu’]  @:(?:Os|M)  @:I¬:[GYS]
         <<- /vmode/ -3>> =suggVerbMode(\3, ":S", \2)                                                # Après “quoique”, ce verbe devrait être au subjonctif.
 
     [>permettre|>falloir|>vouloir|>ordonner|>exiger|>désirer|>préférer|>souhaiter|>suffire]  [que|qu’]  @:(?:Os|M)  @:I¬:[GYS]
-    [afin|avant|malgré|pour|pourvu|quoi|sans]                                                [que|qu’]  @:(?:Os|M)  @:I¬:[GYS]
+    [afin|avant|malgré|pour|pourvu|qui|quoi|sans]                                            [que|qu’]  @:(?:Os|M)  @:I¬:[GYS]
+    moyennant                                                                                [que|qu’]  @:(?:Os|M)  @:I¬:[GYS]
         <<- /vmode/ -4>> =suggVerbMode(\4, ":S", \3)                                                # Après “\1 que”, ce verbe devrait être au subjonctif.
 
     >douter  [que|qu’]  @:(?:Os|M)  @:I¬:(?:[GYSK]|If)
         <<- /vmode/ not tag(\1, "upron") and morph(\1, ":V", ":N")
         -4>> =suggVerbMode(\4, ":S", \3)                                                            # Après “\1 que”, ce verbe devrait être au subjonctif.
 
     [il|ça|cela]    peut                            [que|qu’]   @:(?:Os|M)  @:I¬:[GYS]
-        <<- /vmode/ tag(\2, "upron") -5>> =suggVerbMode(\5, ":S", \4)                               # Ce verbe devrait être au subjonctif.
+        <<- /vmode/ tag(\2, "upron") -5>> =suggVerbMode(\5, ":S", \4)                               # Après “\1 se peut que”, le verbe devrait être au subjonctif.
 
     à               [condition|moins|supposer]      [que|qu’]   @:(?:Os|M)  @:I¬:[GYS]
     pour            peu                             [que|qu’]   @:(?:Os|M)  @:I¬:[GYS]
     de              [crainte|peur]                  [que|qu’]   @:(?:Os|M)  @:I¬:[GYS]
     de              [façon|manière]                 [que|qu’]   @:(?:Os|M)  @:I¬:(?:[GYS]|Iq)
+    en              sorte                           [que|qu’]   @:(?:Os|M)  @:I¬:[GYS]
+    pour            autant                          [que|qu’]   @:(?:Os|M)  @:I¬:[GYS]
+        <<- /vmode/ -5>> =suggVerbMode(\5, ":S", \4)                                                # Après “\1 \2 que”, ce verbe devrait être au subjonctif.
+
+
     [<start>|,]     non                             [que|qu’]   @:(?:Os|M)  @:I¬:[GYS]
-        <<- /vmode/ -5>> =suggVerbMode(\5, ":S", \4)                                                # Ce verbe devrait être au subjonctif.
+        <<- /vmode/ -5>> =suggVerbMode(\5, ":S", \4)                                                # Après “non que”, ce verbe devrait probablement être au subjonctif.
 
     [<start>|,]     en          admettant           [que|qu’]   @:(?:Os|M)  @:I¬:[GYS]
         <<- /vmode/ -6>> =suggVerbMode(\6, ":S", \5)                                                # Si “en admettant que” indique que la suite est une hypothèse, le verbe doit être au subjonctif.
 
-    il          est         possible            [que|qu’]   @:(?:Os|M)  @:I¬:[GYS]
-    jusqu’      à           ce                  [que|qu’]   @:(?:Os|M)  @:I¬:[GYS]
-    si          tant        est                 [que|qu’]   @:(?:Os|M)  @:I¬:[GYS]
-        <<- /vmode/ -6>> =suggVerbMode(\6, ":S", \5)                                                # Après “\1 \2 \3”, ce verbe devrait être au subjonctif.
+    [<start>|,]     en          attendant           [que|qu’]   @:(?:Os|M)  @:I¬:[GYS]
+        <<- /vmode/ -6>> =suggVerbMode(\6, ":S", \5)                                                # Après “en attendant que”, le verbe devrait être au subjonctif.
+
+    [<start>|,]     si          [bien|peu]          [que|qu’]   @:(?:Os|M)  @:I¬:(?:[GYS]|I[qf]|V0)
+        <<- /vmode/ -6>> =suggVerbMode(\6, ":S", \5)                                                # Après “\2 \3 que”, ce verbe devrait être au subjonctif.
+
+    il          est         possible                [que|qu’]   @:(?:Os|M)  @:I¬:[GYS]
+    jusqu’      à           ce                      [que|qu’]   @:(?:Os|M)  @:I¬:[GYS]
+    si          tant        est                     [que|qu’]   @:(?:Os|M)  @:I¬:[GYS]
+        <<- /vmode/ -6>> =suggVerbMode(\6, ":S", \5)                                                # Après “\1 \2 \3 que”, ce verbe devrait être au subjonctif.
+
+    peu         [est|était] fallu                   [que|qu’]   @:(?:Os|M)  @:I¬:[GYS]
+        <<- /vmode/ tag(\2, "upron") --1>> =suggVerbMode(\-1, ":S", \-2)                            # Après “peu s’en est fallu que”, ce verbe devrait être au subjonctif.
 
 TEST: Quoiqu’il {{est}} parti il y a longtemps, on pense encore beaucoup à lui.
 TEST: Il suffit qu’il {{court}} plus
 TEST: Je veux qu’il {{finit}} son repas.
 TEST: quoi qu’il en {{conclut}}
@@ -21033,15 +21051,20 @@
 TEST: Pourvu qu’elle {{réussit}}.
 TEST: en admettant que tu {{deviens}} plus talentueuse qu’elle, qu’est-ce que tu feras ?
 TEST: afin que je {{prends}} des mesures
 TEST: à condition qu’il {{finit}} son boulot.
 TEST: pour peu qu’il {{prend}} son devoir sérieux…
+TEST: Fais en sorte qu’elle {{court}} à sa perte
 TEST: il se peut que nous {{avons}} tort.
 TEST: Nous œuvrons silencieusement de crainte qu’il nous {{entend}}.
 TEST: En admettant qu’il {{devient}} juste.
 TEST: ça ira, si tant est que Paul {{comprend}} ce qui se passe.
 TEST: à condition qu’elle l’{{est}} jamais été
+TEST: non qu’il {{prend}} son temps
+TEST: si tant est que nous {{prenons}} notre temps
+TEST: moyennant qu’elle {{vient}} demain
+TEST: peu s’en est fallu qu’il {{devient}} estropié.
 TEST: Nul doute qu’elle nourrira à brève échéance la haine de demain à notre égard.
 TEST: Je ne doute pas qu’ils réussiront leur mission.
 TEST: Je me doutais bien qu’Apple pourrait marcher
 TEST: Tu vivras plus sereinement en admettant que tu ne peux pas être la meilleure en toutes choses.
 TEST: il ne fait aucun doute qu’Amazon le sait.