Grammalecte  Check-in [5aa6eb0c1c]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:[fr] nr confusions, +ajustements
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256:5aa6eb0c1c6b6d3f5fda5150f6f044ca7f0729c73c80e6c430bffb5a4974be7f
User & Date: olr 2019-06-14 20:00:19
Context
2019-06-14
23:38
[fr] ajustements check-in: b948b2507c user: olr tags: fr, trunk
20:00
[fr] nr confusions, +ajustements check-in: 5aa6eb0c1c user: olr tags: fr, trunk
2019-06-13
11:37
[fr] formatNumber and missing nbsp merged check-in: 3d0131a097 user: olr tags: fr, trunk
Changes

Changes to gc_lang/fr/rules.grx.

408
409
410
411
412
413
414

415
416

417
418
419
420
421
422
423
424
...
434
435
436
437
438
439
440
441


442



443

444



445

446
447
448
449
450
451
452
453
454


455


456


457


458
459
460
461
462
463
464
...
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
...
987
988
989
990
991
992
993

994

995

996

997

998

999

1000

1001
1002
1003
1004
1005
1006
1007
1008
....
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
....
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
....
6188
6189
6190
6191
6192
6193
6194

6195


6196
6197
6198
6199
6200
6201
6202
....
8321
8322
8323
8324
8325
8326
8327



8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340

8341
8342
8343
8344
8345
8346
8347
....
9055
9056
9057
9058
9059
9060
9061

9062
9063
9064
9065
9066
9067
9068
....
9611
9612
9613
9614
9615
9616
9617
9618
9619
9620
9621
9622
9623
9624
9625
9626
9627
9628
9629
9630
9631
9632
9633
9634
9635
9636
9637
9638
9639
9640
9641
9642
9643
9644
9645
9646
9647
9648
9649
9650
9651
9652
9653
9654
9655
9656
9657
9658
9659
9660
9661
9662
9663
9664
9665
9666
9667
9668
9669
9670
9671
9672
9673
9674
9675
....
9680
9681
9682
9683
9684
9685
9686
9687
9688
9689
9690
9691
9692
9693
9694
9695
9696
9697
9698
9699
9700
9701
9702
9703
9704
9705
9706
9707
9708
9709
9710
9711
9712
9713
9714
9715
9716
9717
9718
9719
9720
9721
9722
9723
9724
9725
9726
9727
9728
9729
9730
9731
9732
9733
9734
9735
9736
9737
9738
9739
9740
9741
9742
9743
9744
9745
9746
9747
9748
9749
9750
9751
.....
10089
10090
10091
10092
10093
10094
10095

10096


10097
10098
10099
10100
10101
10102
10103
.....
10302
10303
10304
10305
10306
10307
10308
10309
10310
10311
10312
10313
10314
10315
10316
.....
10452
10453
10454
10455
10456
10457
10458

10459
10460
10461
10462
10463
10464
10465
.....
10522
10523
10524
10525
10526
10527
10528
10529
10530
10531
10532
10533
10534
10535
10536
.....
10852
10853
10854
10855
10856
10857
10858





10859
10860
10861
10862
10863
10864
10865
10866
10867
10868
10869
10870
10871
10872
10873
10874
10875
10876
10877
10878
10879
.....
11662
11663
11664
11665
11666
11667
11668

11669
11670
11671
11672
11673
11674
11675
.....
11777
11778
11779
11780
11781
11782
11783

11784
11785
11786
11787
11788
11789
11790
.....
11796
11797
11798
11799
11800
11801
11802

11803
11804
11805
11806
11807
11808
11809
.....
11881
11882
11883
11884
11885
11886
11887
11888
11889
11890
11891
11892
11893
11894
11895
.....
12518
12519
12520
12521
12522
12523
12524

12525
12526
12527
12528
12529
12530
12531
.....
12540
12541
12542
12543
12544
12545
12546

12547
12548
12549
12550
12551
12552
12553
.....
12967
12968
12969
12970
12971
12972
12973

12974
12975
12976
12977
12978
12979
12980
12981
12982

12983
12984
12985
12986
12987


12988
12989
12990
12991
12992
12993
12994
.....
13001
13002
13003
13004
13005
13006
13007

13008
13009
13010
13011
13012
13013
13014
.....
13226
13227
13228
13229
13230
13231
13232
13233
13234
13235
13236
13237
13238
13239
13240
13241
13242
13243
13244
13245
13246
13247
13248
13249
.....
13510
13511
13512
13513
13514
13515
13516

13517
13518
13519
13520
13521

13522
13523
13524
13525
13526
13527
13528
.....
15513
15514
15515
15516
15517
15518
15519


























15520
15521
15522
15523
15524
15525
15526
.....
17554
17555
17556
17557
17558
17559
17560
17561
17562
17563
17564
17565
17566
17567
17568
.....
19523
19524
19525
19526
19527
19528
19529
19530
19531
19532
19533
19534
19535
19536
19537
19538
19539
.....
19616
19617
19618
19619
19620
19621
19622
19623
19624
19625
19626
19627
19628
19629
19630
19631
19632
19633
19634
19635
19636
19637
19638
19639
19640
19641
19642
19643
19644
19645
.....
19835
19836
19837
19838
19839
19840
19841
19842
19843
19844
19845
19846
19847
19848
19849
19850
19851
19852
.....
21799
21800
21801
21802
21803
21804
21805


21806
21807
21808
21809
21810
21811
21812
TEST: {{( }}parenthèses)                                                  ->> (
TEST: c’est (enfin{{ )}} parti.
TEST: voici des (parenthèses{{ )}}, n’est-ce pas ?                        ->> )


# Parenthèses collées
__<s>/typo(typo_parenthèse_fermante_collée)__

    [)]\b(?![s¹²³⁴⁵⁶⁷⁸⁹⁰]\b) <<- not before("\\([rR][eéEÉ]$") ->> ") "                              # Il manque un espace après la parenthèse.
__<s>/typo(typo_parenthèse_ouvrante_collée)__

    \b[(](?=[^)][^)][^)]) <<- ->> " ("                                                              # Il manque un espace avant la parenthèse.

TEST: C’est au fond du couloir{{(}}celui du deuxième étage{{)}}qu’il se trouve.
TEST: (a + b)²
TEST: il faut (re)former tout ça.


# Points et espaces
................................................................................
__<s>/typo(typo_virgule_collée_à_mot_suivant)__  "[  ],(?=\w)"  <<- ->> ", "                        # Pas d’espace avant une virgule. Un espace après.

TEST: Merde{{ ,}}ça fait chier.
TEST: Eh oui{{ ,}} c’est encore moi.


# Guillemets et espaces
__<s>/typo(typo_guillemets_fermants_perdus)__   [  ]”[  ]  <<- ->> "” | “"                          # Pas d’espace avant ces guillemets ouvrants.


__<s>/typo(typo_guillemets_ouvrants_perdus)__   [  ]“[  ]  <<- ->> " “|” "                          # Pas d’espace après ces guillemets ouvrants.



__<s>/typo(typo_guillemets_perdus)__            [   ](?:"|['‘’]['‘’])[   ]  <<- ->> " « | » | “|” " # Guillemets isolés.

__<s>/typo(typo_commencement_guillemets)__      ^(?:"|['‘’]['‘’])[   ]  <<- ->> « |“                # Guillemets ouvrants.



__<s>/typo(typo_guillemets_fin)__       ([   ](?:"|['‘’]['‘’]))(?:$|[.,;?!])  @@0  <<- -1>> " »|”"  # Guillemets fermants.


TEST: Bon sang, c’en est trop à présent. Vos prétendues “excuses{{ ” }}ne trompent personne !
TEST: Bon sang, c’en est trop à présent. Vos prétendues{{ “ }}excuses” ne trompent personne !
TEST: Encore des guillemets{{ ‘’ }}dont on ne sait que faire.
TEST: {{" }}Ça suffit.{{ "}}
TEST: {{" }}Mangez{{ "}}, déclara-t-elle.


__<s>/typo(typo_guillemets_fermants_inverses)__  [  ]”(?=\w) <<- ->> " “"                           # Mettez des guillemets ouvrants plutôt que fermants.


__<s>/typo(typo_guillemets_ouvrants_inverses1)__ \w([«“][  ]) @@1 <<- -1>> " »|”"                   # Mettez des guillemets fermants plutôt qu’ouvrants.


__<s>/typo(typo_guillemets_ouvrants_inverses2)__ ([«“])[  ]*$ @@0 <<- -1>> " »|”"                   # Mettez des guillemets fermants plutôt qu’ouvrants.


__<s>/typo(typo_guillemets_ouvrants_inverses3)__ \w([  ][«“])[  ]*[!?,:;.…] @@1 <<- -1>> " »|”"     # Mettez des guillemets fermants plutôt qu’ouvrants.



TEST: « Le grand homme{{«}}
TEST: « La grande femme{{ «}} !
TEST: Eux et leurs{{ ”}}amis{{”}} sont finis !
TEST: Vos {{“}}amis{{“ }}et vous êtes finis !


................................................................................

TEST: Je crois que {{Mlle.}} Eva est partie.
TEST: J’ai pensé à {{Mme.}} Bovary toute la journée.


__[s>/typo(typo_point_après_numéro)__
    ([nN]os?[.])[  ]\d+  @@0
        <<- \1[1:3] == "os" -1>> nᵒˢ                                                                # Pas de point dans l’abréviation de numéro.
        <<- __else__ -1>> nᵒ                                                                        # Pas de point dans l’abréviation de numéro.

TEST: C’est situé au {{no.}} 12.


# Points de suspension
__<s>/typo(typo_points_suspension1)__    (?<![.])[.]{3,5}(?![.]) <<- not before("(?i)etc$") ->> …   # Typographie : points de suspension. Utilisez le caractère dédié.
................................................................................
TEST: Raisons {{:.}} trop, c’est trop.


#__<s]/typo__  °C <<- ->> ℃                                                      # Typographie. Utilisez le signe des degrés approprié.


# Espaces insécables

__<s>/nbsp(nbsp_ajout_avant_double_ponctuation)__   \b[?!;]  <<- sCountry != "CA" ->> =" "+\0               # Il manque un espace insécable.

__<s>/nbsp(nbsp_avant_double_ponctuation)__         " ([?!;])"  @@1 <<- ->> " \1"                           # Il manque un espace insécable.

__<s>/nbsp(nbsp_avant_deux_points)__                (?: |\b):(?= |$)  <<- ->> " :"                          # Il manque un espace insécable.

__<s>/nbsp(nbsp_après_chevrons_ouvrants)__          «(?: |\b)  <<- ->> "« "                                 # Il manque un espace insécable.

__<s>/nbsp(nbsp_après_chevrons_fermants)__      ^»(?: |\b)  <<- ->> "» |« "     # 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.

__<s>/nbsp(nbsp_avant_chevrons_fermants1)__         (?: |\b)»  <<- ->> " »"                                 # Il manque un espace insécable.

__<s>/nbsp(nbsp_avant_chevrons_fermants2)__         ([].!?)])»  <js>([\].!?\)])»</js>  @@0 <<- ->> "\1 »"   # Il manque un espace insécable.

__<s>/nbsp(nbsp_après_double_ponctuation)__         ([:;!?]) (?=\w)  @@0 <<- ->> "\1 "                      # Pas d’espace insécable après le signe “\1”.

TEST: {{«}}Il manque deux espaces insécables. »                             ->> "« "
TEST: « Il manque deux espaces insécables{{.»}}                             ->> ". »"
TEST: « Il manque deux espaces insécables{{ »}}                             ->> " »"
TEST: Et encore{{!}}?                                                       ->> " !"
TEST: Quoi{{?}}                                                             ->> " ?"
TEST: Voici{{:}} les deux points.                                           ->> " :"
................................................................................
    <<- __else__
        and after("^(?:,[0-9]+[⁰¹²³⁴⁵⁶⁷⁸⁹]?|[⁰¹²³⁴⁵⁶⁷⁸⁹])")
        or after("^[   ]*(?:[kcmµn]?(?:[slgJKΩ]|m[²³]?|Wh?|Hz|dB)|[%‰€$£¥Åℓhj]|min|°C|℃)(?![\\w’'])")
    ->> =formatNumber(\0)                                                                           # Formatage des grands nombres.

__[s]/num(num_nombre_quatre_chiffres)__
    (?<!,)(\d\d\d\d)[  ]([a-zA-Zµ][a-zA-Z0-9Ωℓ⁰¹²³⁴⁵⁶⁷⁸⁹/·]*) @@0,$
    <<- morph(\2, ";S", ":[VCR]") or mbUnit(\2) -1>> =formatNumber(\1)                              # Formatage des grands nombres

TEST: {{12345}}                                 ->> 12 345
TEST: {{123456}}                                ->> 123 456
TEST: {{1234567}}                               ->> 1 234 567
TEST: {{12345678}}                              ->> 12 345 678
TEST: {{023456789}}                             ->> 023 456 789|023 45 67 89|02 345 67 89
TEST: {{0234567890}}                            ->> 0 234 567 890|02 34 56 78 90|023 456 78 90|0234 567-890
................................................................................
TEST: __ocr__ Ça a duré 3 h.
TEST: __ocr__ c’est alors que je suis fort.


## Caractères rares
__<s>/ocr(ocr_caractères_rares)__
    \w*[{}<>&*#£]+\w*
    <<- \0 != "<" and \0 != ">" ->> _                                                               # Erreur de numérisation ? Cette chaîne contient un caractère de fréquence rare.

__<s>/ocr(ocr_doublons_caractères_rares)__
    [\]\[({}][\]\[({}]+
        <<- ->> _                                                                                   # Erreur de numérisation ? Succession douteuse de caractères.

TEST: __ocr__ trouve {{l£}} temps
TEST: __ocr__ elle s’{{avance*}} sur le seuil
................................................................................
    a faible tirant d’ eau
    a feu et à sang
    a flanc de [colline|montagne]
    a fleur de peau
    a géométrie variable
    a grand-peine
    a grande échelle

    a haut risque


    a hue et à dia
    a huis clos
    a intervalles [réguliers|irréguliers]
    a juste [raison|titre]
    a l’ heure actuelle
    a l’ heure qu’ il est
    a l’ [accoutumée|amiable|arrache|avance|avenir|avenant|aveuglette|emporte-pièce|évidence|extérieur|improviste|intérieur|inverse]
................................................................................
    au >mètre [>prêt|>pré]
        <<- /conf/ -3>> près                                                # Confusion probable. Locution “au \2 près”.

    à ([ceci|cela]) ([prêt|prêts]) [que|qu’]
    , à ([ceci|cela]) ([prêt|prêts]) ,
        <<- /conf/ -2>> près                                                # Confusion probable. Locution “à \1 près”.|https://fr.wiktionary.org/wiki/%C3%A0_cela_pr%C3%A8s




    depuis [prêt|prêts] [de|d’] *NUM [secondes|minutes|heures|jours|semaines|mois|ans|années|décennies|siècles|millénaires]
    depuis [prêt|prêts] [de|d’] @:B  [secondes|minutes|heures|jours|semaines|mois|ans|années|décennies|siècles|millénaires]
        <<- /conf/ -2>> près                                                # Confusion : “prêt” signifie “être apprêté”. Depuis presque “\4 \5”, donc près de “\4 \5”.

TEST: depuis {{prêt}} de 15 ans
TEST: ils se sont approchés très {{prêts}}.
TEST: Je suis si {{prêt}} d’y arriver.
TEST: Elle est si {{prêt}} de la trouver.
TEST: Il est {{près}} à les aider
TEST: Elle va regarder ça de plus {{prêt}}.
TEST: Il était rasé de {{prés}}
TEST: Il est un peu fantasque ; mais, à cela {{prêt}}, c’est un aimable homme.
TEST: Il nous emmerde depuis {{prêt}} de cinq jours avec son histoire à dormir debout

TEST: Il a obtenu un prêt de Patrick
TEST: Il a obtenu un prêt de Le Drian
TEST: collait au millimètre près à la réalité
TEST: les prêts de BMW ou de Mercedes pour visiter la ville


# puits / puis
................................................................................
TEST: ce {{vert}} quoi nous allons, c’est une catastrophe à l’échelle planétaire.
TEST: On va lui tirer les {{verts}} du nez


# voix / voie / vois / voit
__conf_voie_voix_vois_voit__
    à haute [>voie|vois|voit]

    de vive [>voie|vois|voit]
    à portée de [>voie|vois|voit]
        <<- /conf/ --1>> voix       # Confusion. Pour évoquer un son humain, animal ou instrumental, écrivez “voix”.|http://fr.wiktionary.org/wiki/voix

    à [>voie|vois|voit] [basse|haute|basses|hautes]
        <<- /conf/ -2>> voix        # Confusion. Pour évoquer un son humain, animal ou instrumental, écrivez “voix”.|http://fr.wiktionary.org/wiki/voix

................................................................................

!!
!!
!!!! Adverbes de négation                                                                         !!
!!
!!

__ne_manquant__
    [<start>|,]  je             [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]     @:1s¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  tu             [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]     @:2s¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  [il|elle|on]   [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]     @:3s¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  nous           [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]     @:1p¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  vous           [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]     @:2p¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  [ils|elles]    [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]     @:3p¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
        <<- /neg/ -3>> ne \3                                                                        # Ne … \5 : il manque l’adverbe de négation.

    [<start>|,]  [je|j’]        [en|y]                                                  @:1s¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  tu             [en|y]                                                  @:2s¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  [il|elle|on]   [en|y]                                                  @:3s¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  nous           [en|y]                                                  @:1p¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  vous           [en|y]                                                  @:2p¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  [ils|elles]    [en|y]                                                  @:3p¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
        <<- /neg/ -3>> n’\3                                                                         # Ne … \5 : il manque l’adverbe de négation.

    [<start>|,]  je             [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]     @:1s¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  tu             [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]     @:2s¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  [il|elle|on]   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]     @:3s¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  nous           [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]     @:1p¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  vous           [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]     @:2p¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  [ils|elles]    [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]     @:3p¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  je             [le|la|l’|les]                  [lui|leur|en|y]         @:1s¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  tu             [le|la|l’|les]                  [lui|leur|en|y]         @:2s¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  [il|elle|on]   [le|la|l’|les]                  [lui|leur|en|y]         @:3s¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  nous           [le|la|l’|les]                  [lui|leur|en|y]         @:1p¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  vous           [le|la|l’|les]                  [lui|leur|en|y]         @:2p¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  [ils|elles]    [le|la|l’|les]                  [lui|leur|en|y]         @:3p¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  je             [lui|leur]                      en                      @:1s¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  tu             [lui|leur]                      en                      @:2s¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  [il|elle|on]   [lui|leur]                      en                      @:3s¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  nous           [lui|leur]                      en                      @:1p¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  vous           [lui|leur]                      en                      @:2p¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  [ils|elles]    [lui|leur]                      en                      @:3p¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
        <<- /neg/ -3>> ne \3                                                                        # Ne … \6 : il manque l’adverbe de négation.

    [<start>|,]  [je|j’]        @>[aeéiouœ].*:1s¬:(?:Oo|X)              [pas|rien|jamais|guère|point]
    [<start>|,]  tu             @>[aeéiouœ].*:2s¬:(?:Oo|X)              [pas|rien|jamais|guère|point]
    [<start>|,]  [il|elle|on]   @>[aeéiouœ].*:3s¬:(?:Oo|X)              [pas|rien|jamais|guère|point]
    [<start>|,]  nous           @>[aeéiouœ].*:1p¬:(?:Oo|X)              [pas|rien|jamais|guère|point]
    [<start>|,]  vous           @>[aeéiouœ].*:2p¬:(?:Oo|X)              [pas|rien|jamais|guère|point]
    [<start>|,]  [ils|elles]    @>[aeéiouœ].*:3p¬:(?:Oo|X)              [pas|rien|jamais|guère|point]
        <<- /neg/ -3>> n’\3                                                                         # Ne … \4 : il manque l’adverbe de négation.

    [<start>|,]  je             @>[bcdfgjklmnpqrstvwxz].*:1s¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  tu             @>[bcdfgjklmnpqrstvwxz].*:2s¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  [il|elle|on]   @>[bcdfgjklmnpqrstvwxz].*:3s¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  nous           @>[bcdfgjklmnpqrstvwxz].*:1p¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  vous           @>[bcdfgjklmnpqrstvwxz].*:2p¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
    [<start>|,]  [ils|elles]    @>[bcdfgjklmnpqrstvwxz].*:3p¬:(?:Oo|X)  [pas|rien|jamais|guère|point]
        <<- /neg/ -3>> ne \3                                                                        # Ne … \4 : il manque l’adverbe de négation.

TEST: __neg__ On {{a}} pas compris.
TEST: __neg__ Il {{part}} pas encore.
TEST: __neg__ On {{vous}} a pas compris.
TEST: __neg__ On {{en}} a pas.
TEST: __neg__ Il {{y}} a jamais d’eau.
................................................................................
!!
!!
!!!! Infinitif                                                                                    !!
!!
!!

__infi_ne_pas_jamais_etc__
    ne ?presque¿ [pas|rien|guère|point]                   ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿  @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ [pas|rien|guère|point] [trop|beaucoup]   ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿  @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ [pas|rien|guère|point] non plus          ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿  @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ jamais ?[rien|plus|trop|beaucoup]¿       ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿  @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ jamais ?[rien|plus]¿ non plus            ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿  @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ plus ?[jamais|rien|guère|trop|beaucoup]¿ ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿  @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ plus ?[jamais|rien|guère]¿ non plus      ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿  @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ [pas|rien|guère|point]                   [m’|t’|s’|nous|vous|les|lui|leur|l’]  [en|y]                @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ [pas|rien|guère|point] [trop|beaucoup]   [m’|t’|s’|nous|vous|les|lui|leur|l’]  [en|y]                @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ [pas|rien|guère|point] non plus          [m’|t’|s’|nous|vous|les|lui|leur|l’]  [en|y]                @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ jamais ?[rien|plus|trop|beaucoup]¿       [m’|t’|s’|nous|vous|les|lui|leur|l’]  [en|y]                @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ jamais ?[rien|plus]¿ non plus            [m’|t’|s’|nous|vous|les|lui|leur|l’]  [en|y]                @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ plus ?[jamais|rien|guère|trop|beaucoup]¿ [m’|t’|s’|nous|vous|les|lui|leur|l’]  [en|y]                @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ plus ?[jamais|rien|guère]¿ non plus      [m’|t’|s’|nous|vous|les|lui|leur|l’]  [en|y]                @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ [pas|rien|guère|point]                   [me|te|nous|vous] [le|la|les]                               @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ [pas|rien|guère|point] [trop|beaucoup]   [me|te|nous|vous] [le|la|les]                               @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ [pas|rien|guère|point] non plus          [me|te|nous|vous] [le|la|les]                               @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ jamais ?[rien|plus|trop|beaucoup]¿       [me|te|nous|vous] [le|la|les]                               @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ jamais ?[rien|plus]¿ non plus            [me|te|nous|vous] [le|la|les]                               @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ plus ?[jamais|rien|guère|trop|beaucoup]¿ [me|te|nous|vous] [le|la|les]                               @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ plus ?[jamais|rien|guère]¿ non plus      [me|te|nous|vous] [le|la|les]                               @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ [pas|rien|guère|point]                   [le|la|les] [lui|leur]                                      @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ [pas|rien|guère|point] [trop|beaucoup]   [le|la|les] [lui|leur]                                      @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ [pas|rien|guère|point] non plus          [le|la|les] [lui|leur]                                      @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ jamais ?[rien|plus|trop|beaucoup]¿       [le|la|les] [lui|leur]                                      @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ jamais ?[rien|plus]¿ non plus            [le|la|les] [lui|leur]                                      @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ plus ?[jamais|rien|guère|trop|beaucoup]¿ [le|la|les] [lui|leur]                                      @:[VNA]¬:(?:Y|W|X|O[own])|>que/
    ne ?presque¿ plus ?[jamais|rien|guère]¿ non plus      [le|la|les] [lui|leur]                                      @:[VNA]¬:(?:Y|W|X|O[own])|>que/
        <<- /infi/ --1>> =suggVerbInfi(\-1)                                                         # Après “ne pas”, “ne jamais”, “ne plus”, “ne rien”… le verbe devrait être à l’infinitif.

    n’ [en|y] ?presque¿ [pas|rien|guère|point]                        @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ [pas|rien|guère|point] [trop|beaucoup]        @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ [pas|rien|guère|point] non plus               @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ jamais ?[rien|plus|trop|beaucoup]¿            @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ jamais ?[rien|plus]¿ non plus                 @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ plus ?[jamais|rien|guère|trop|beaucoup]¿      @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ plus ?[jamais|rien|guère]¿ non plus           @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ [pas|rien|guère|point]                        @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ [pas|rien|guère|point] [trop|beaucoup]        @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ [pas|rien|guère|point] non plus               @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ jamais ?[rien|plus|trop|beaucoup]¿            @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ jamais ?[rien|plus]¿ non plus                 @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ plus ?[jamais|rien|guère|trop|beaucoup]¿      @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ plus ?[jamais|rien|guère]¿ non plus           @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ [pas|rien|guère|point]                        @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ [pas|rien|guère|point] [trop|beaucoup]        @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ [pas|rien|guère|point] non plus               @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ jamais ?[rien|plus|trop|beaucoup]¿            @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ jamais ?[rien|plus]¿ non plus                 @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ plus ?[jamais|rien|guère|trop|beaucoup]¿      @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ plus ?[jamais|rien|guère]¿ non plus           @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ [pas|rien|guère|point]                        @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ [pas|rien|guère|point] [trop|beaucoup]        @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ [pas|rien|guère|point] non plus               @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ jamais ?[rien|plus|trop|beaucoup]¿            @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ jamais ?[rien|plus]¿ non plus                 @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ plus ?[jamais|rien|guère|trop|beaucoup]¿      @:[VNA]¬:(?:Y|W|X|O)
    n’ [en|y] ?presque¿ plus ?[jamais|rien|guère]¿ non plus           @:[VNA]¬:(?:Y|W|X|O)
        <<- /infi/ --1>> =suggVerbInfi(\-1)                                                         # Après “ne pas”, “ne jamais”, “ne plus”, “ne rien”… le verbe devrait être à l’infinitif.

    ne [pas|jamais|plus|rien|guère|point] [beaucoup|trop|assez|mal]
        <<- ~3>> *

TEST: ne jamais les {{cédé}}
TEST: ne point nous {{donné}}
................................................................................
    à flanc de [colline|montagne]
    à fleur de peau
    à franchement parler
    à géométrie variable
    à glacer le sang
    à glacer les sangs
    à grande échelle

    à haut risque


    à hue et à dia
    à huis clos
    à intervalles [irréguliers|réguliers]
    à juste [raison|titre]
    à l’ accoutumée
    à l’ air libre
    à l’ amiable
................................................................................
    au lieu de [cela|ceci|ça|quoi]
    au loin
    au milieu de nulle part
    au moment opportun
    au même titre que n’ importe [laquelle|lequel] d’ entre [nous|vous|eux|elles]
    au pas de [charge|course]
    au plus [près|pressé|vite|tôt|tard]
    au plus haut point
    au premier abord
    au propre comme au figuré
    au préalable
    au ras des pâquerettes
    au saut du lit
    au sens [figuré|large|propre]
    au surplus
................................................................................
    d’ ouest en est
    d’ [ors|ores] et déjà
    d’ un autre côté
    d’ un [bout|jour] à l’ autre
    d’ un côté comme [de|d’] l’ autre
    d’ un commun accord
    d’ un pas [alerte|mesuré]

    d’ une autre trempe
    d’ une [façon|manière] ou d’ une autre
    d’ une certaine [façon|manière]
    d’ une tout autre ampleur
    d’ une [minute|seconde] à l’ autre
    de-ci ?,¿ de-là
    [de|d’] *NUM %
................................................................................
    [de|d’] nulle part
    [de|d’] pire en pire
    [de|d’] près
    [de|d’] près ou de loin
    [de|d’] par le monde ?entier¿
    [de|d’] part et d’ autre
    [de|d’] ?presque¿ partout
    d’ un peu partout
    [de|d’] petite taille
    [de|d’] pied ferme
    [de|d’] place en place
    [de|d’] plein [droit|fouet]
    [de|d’] plus [belle|près]
    [de|d’] premier [choix|ordre|plan]
    [de|d’] première [catégorie|main|nécessité]
................................................................................
    moitié ** ?,¿ moitié **
    mot pour mot
    mouais
    naguère
    ne [lui|leur|m’|t’|nous|vous] en déplaise
    néanmoins
    nez à nez





    non loin [de|d’] [ici|là]
    non sans mal
    nulle part
    ô combien
    oh
    ou quelque chose d’ approchant
    où bon [me|te|lui|nous|vous|leur] semble
    oui [ou|et] non
    outre mesure
    ni [de|d’] près ?,¿ ni [de|d’] loin
    ni plus ?,¿ ni moins
    ni vu ?,¿ ni connu
    non [plus|seulement]
    non sans raison
    quant à présent
    par [à-coups|ailleurs|avance|chance|conséquent|curiosité|contre|défaut|définition|endroits|essence|excellence|exemple|hasard|ici|inadvertance|là|moments|nature|principe|terre]
    par acquit [de|d’] conscience
    par [beau|mauvais] temps
    par bien des [aspects|côtés]
    par bonté [de|d’] cœur
    par ce biais
................................................................................
    >bombe à [eau|fragmentation|retardement]
    >brosse à [>dent|reluire]
    >cabinet de toilette
    >camp [de|d’] [concentration|internement|rééducation]
    >canne à [pêche|sucre]
    >caisse à >outil
    >chair à [pâté|>canon]

    >chambre [de|d’] [agriculture|hôte|hôtes|commerce|compensation|décompression|dégrisement]
    >chasse à courre
    >chemin de [traverse|fer]
    >chèque sans provision
    >chili con carne
    >claire comme de l’ eau de [boudin|roche|source]
    >claire comme du cristal
................................................................................
    >papier à [>lettre|musique]
    >partie de jambes en l’ air
    >passage à tabac
    >passation de pouvoir
    >pièce de [théâtre|monnaie]
    >pièce de *NUM [>euro|>dollar|>centime|>cent|>livre|>shilling]
    >plan [A|B|C]

    >pleine aux as
    >politique spectacle
    >pomme [de|d’] [discorde|terre|reinette|pin|Adam|api|amour|ambre|eau|or]
    >pompe à [essence|fric]
    >porte de [service|garage]
    >poudre aux yeux
    >presse à >scandale
................................................................................
    [réglé|réglée|réglés|réglées] comme du papier à musique
    >règlement de comptes
    [remis|remise|remises] à plat
    >requête en nullité
    >requête en non [conciliation|inscription|lieu]
    >requête en non révocation de sursis
    >retour à la case départ

    >roman à l’ eau de rose
    >roue [avant|arrière]
    >rouge à lèvres
    >roulement à billes
    >sac à [dos|main|langer|merde|foutre]
    >sac de [couchage|sport|voyage]
    >salle à manger
................................................................................

__purge_couleurs__
    [beige|blanc|bleu|brun|châtain|cyan|gris|incarnat|jaune|magenta|marron|orange|pourpre|rose|rouge|vert|violet|or|argent] [brillant|clair|fluo|foncé|irisé|mat|pâle|pastel|sale|sombre|tendre|terne|vif]
    [beige|blanc|bleu|brun|châtain|cyan|gris|incarnat|jaune|magenta|marron|orange|pourpre|rose|rouge|vert|violet|or|argent] et [beige|blanc|bleu|brun|châtain|cyan|gris|incarnat|jaune|magenta|marron|orange|pourpre|rose|rouge|vert|violet|or|argent]
    blanc   argenté
    bleu    [azur|ciel|indigo|marine|roi|saphir|turquoise]
    blond   platine
    gris    [acier|anthracite|argenté|perle|souris]
    jaune   [paille|sable]
    noir    [de|d’] [encre|jais]
    noir    et blanc
    rose    [bonbon|chair|corail]
    rouge   [brique|carmin|cerise|écarlate|incarnat|rubis|sang|tomate|vermillon]
    vert    [émeraude|olive|pistache|pomme]
        <<- morph(<1, ":[NA]", ":D") ~>> *
................................................................................
    >tenir [compte|compagnie]
    >tenir au courant
    >tenir en haute estime
    >tomber à [pic|point]
    >trier sur le volet
    >trouver refuge
    >tirer [avantage|profit]

    >tourner court
    >venir à bout
    [>venir|>revenir] je ne sais ?pas¿ ?trop¿ d’ où
    [>venir|>revenir] on ne sait ?pas¿ ?trop¿ d’ où
        <<- ~2:0>> *


................................................................................
    [>mettre|>remettre] a [bas|>flot|>jour|>niveau|>nu|>nue|>plat|>terre]
    [>mettre|>remettre] a l’ [écart|épreuve]
    >percer a jour
    >prendre a la légère
    >saigner a blanc
    >tenir a distance
    >tomber a [pic|point]

    >venir a bout
    [>venir|>revenir] a point
        <<- /conf/ -2>> à               # Confusion : “a” est une conjugaison du verbe “avoir”. Pour la préposition, écrivez “à”.

    >faire plaisirs
        <<- /sgpl/ -2>> plaisir         # Faire plaisir : dans cette locution, “plaisir” doit être au singulier.
        <<- ~2>> *
................................................................................
        <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|") and not \3.startswith("seul") >>>
        <<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*")))
            and not apposition(\2, \3)
        -3>> =switchGender(\3, False)                                                       # Accord de genre erroné entre « \2 » et « \3 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, False)                  # Accord de genre erroné avec « \3 ».
        <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3)
        -3>> =suggSing(\3)                                                                  # Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.


    [et|ou|de]  leur  *WORD  *WORD
        <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>>
        <<- /gn/ ((morph(\3, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\4, ":[NA].*:f", "*")) or (morph(\3, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\4, ":[NA].*:m", "*")))
            and not apposition(\3, \4)
        -4>> =switchGender(\4, False)                                                       # Accord de genre erroné entre « \3 » et « \4 ».
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =switchGender(\3, False)                  # Accord de genre erroné avec « \4 ».
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4)
        -4>> =suggSing(\4)                                                                  # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.


TEST: leur puissance {{perdues}}
TEST: leur arbre {{élaguée}}
TEST: je me souviens de leur verve {{décalé}}
TEST: ils arrivent et leur arrogance {{insupportables}} nous fatigue tous.




__gn_le_la_leur_3m__
    [le|la|leur]  *WORD  *WORD  *WORD
        <<- /gn/ morph(\1, ":D") and morph(\2, ":[NA].*:[si]", ":(?:[123][sp]|G)") and morph(\3, ":[NA].*:[si]", ":(?:[123][sp]|G)") and morph(\4, ":[NA].*:p", "*") and \4.islower()
        -4>> =suggSing(\4)                                                                  # Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au singulier.

................................................................................
__gn_ledit_1m__
    ledit  *WORD
        <<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> ladite                              # Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True)                    # Accord de genre erroné : « \1 » est un déterminant masculin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2)                    # Accord de nombre erroné : « \2 » devrait être au singulier.

TEST: ledit {{accords}} ne vaut rien.


__gn_ladite_1m__
    ladite  *WORD
        <<- /gn/ morph(\2, ":[NA].*:m", ":[efGW]") -1>> ledit                               # Accord de genre erroné : « \2 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemSing(\2, True)                    # Accord de genre erroné : « \1 » est un déterminant féminin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggFemSing(\2)                    # Accord de nombre erroné : « \2 » devrait être au singulier.

................................................................................


__gn_mon_ton_son_2m__
    [mon|ton|son]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|") and not \3.startswith("seul") >>>
        <<- /gn/ morph(\2, ":[NA].*:m", ":(?:B|G|e|V0|f)") and morph(\3, ":[NA].*:f", "*") and not apposition(\2, \3)
        -3>> =suggMasSing(\3, True)                                                         # Accord de genre erroné : « \2 » est masculin, « \3 » est féminin.
        <<- /gn/ morph(\2, ">[aeéèêhiîouy].*:[NA].*:f", ":(?:B|G|e|V0|m)") and morph(\3, ":[NA].*:m", "*") and not apposition(\2, \3)
        -3>> =suggFemSing(\3, True)                                                         # Accord de genre erroné : « \2 » est féminin, « \3 » est masculin.
        <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3)
        -3>> =suggMasSing(\3)                                                               # Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.

    [et|ou|de]  [mon|ton|son]  *WORD  *WORD
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>>
        <<- /gn/ morph(\3, ":[NA].*:m", ":(?:B|G|e|V0|f)") and morph(\4, ":[NA].*:f", "*") and not apposition(\3, \4)
        -4>> =suggMasSing(\4, True)                                                         # Accord de genre erroné : « \3 » est masculin, « \4 » est féminin.
        <<- /gn/ morph(\3, ">[aeéèêhiîouy].*:[NA].*:f", ":(?:B|G|e|V0|m)") and morph(\4, ":[NA].*:m", "*") and not apposition(\3, \4)
        -4>> =suggFemSing(\4, True)                                                         # Accord de genre erroné : « \3 » est féminin, « \4 » est masculin.
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4)
        -4>> =suggMasSing(\4)                                                               # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.

TEST: il brandissait avec fougue son drapeau {{déchirés}}
TEST: comment osez-vous médire de mon héritage {{glorieuse}}
TEST: on parlait de son escapade {{éperdu}} au milieu de la nuit.
................................................................................
TEST: les heureux imbéciles {{payé}} au lance-pierre.


__gn_det_plur_3m__
    [ces|mes|tes|ses|nos|vos|leurs|quels|quelles|aux]       *WORD  *WORD  *WORD
    [plusieurs|quelques|certains|certaines|moult]           *WORD  *WORD  *WORD
    [lesdits|lesdites|desdits|desdites|auxdits|auxdites]    *WORD  *WORD  *WORD

        <<- /gn/ morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:[pi]", ":(?:[123][sp]|G)") and morph(\4, ":[NA].*:s", "*") and \4.islower() and not before("(?i)\\bune? de +$") and not \4.startswith("seul")
        -4>> =suggPlur(\4)                                                                  # Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au pluriel.

    [les|leurs]    *WORD  *WORD  *WORD
        <<- /gn/ morph(\2, ":[NA].*:[pi]", "[123][sp]") and morph(\3, ":[NA].*:[pi]", ":(?:[123][sp]|G)") and morph(\4, ":[NA].*:s", "*") and not before("(?i)\\bune? de +$") and not \4.startswith("seul")

        -4>> =suggPlur(\4)                                                                  # Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au pluriel.

TEST: ces petites sottes {{déjantée}}
TEST: Les grandes volontés {{dépassée}} par les évènements
TEST: Prendre goût aux heures passées seul à marcher


................................................................................
        <<- /conf/ -1>> =\1.replace("ind", "end").replace("Ind", "End").replace("IND", "END")       # Confusion probable. Pour “appliquer un enduit”, écrivez “enduire”.|https://fr.wiktionary.org/wiki/induire

TEST: Il l’avait {{enduit}} en erreur par des affirmations calomnieuses.    ->> induit
TEST: Elle en avait {{enduit}} qu’il y avait anguille sous roche.           ->> induit
TEST: Nous avons {{induit}} la façade.                                      ->> enduit
TEST: il faut {{induire}} cette boue sur son visage.                        ->> enduire




























# envi / envie
__conf_à_l_envi__
    à l’ envie
        <<- /conf/ not morph(<1, ">(?:abandonner|céder|résister)/") and not value(>1, "|de|d’|")
        -3>> envi                                           # Locution adverbiale « à l’envi », signifiant « autant que possible ».

................................................................................
!!
!!
!!!! Participes passés: se +laisser +adjectif                                                     !!
!!
!!

__ppas_pronom_laisser_adj__
    [me|te|le|la]  >laisser  @:A.*:p¬:(?:[YG]|[AQ].*:[is])
        <<- /ppas/ -3>> =suggSing(\3)                                       # Accord avec “\1” : “\3” devrait être au singulier.

TEST: Elle te laisse {{épuisés}} par la tâche.
TEST: Ils la laissèrent {{malades}}.
TEST: Ils la laissent prendre le train.
TEST: Elle te laisse finir le travail.
TEST: Je me laisse de quoi finir.
................................................................................

    [<start>|,] leur            @:V¬:[NAY]  [ne|n’|me|m’|te|s’|se|s’]
    [<start>|,] leur            @:V¬:[NAY]  [le|la|l’|les|leur]         @:[123][sp]¬:[QNAG]
    [<start>|,] leur            @:V¬:[NAY]  ?[nous|vous]¿               @:[123][sp]¬:[QG]
        <<- /conf/ hasSimil(\3, ":[NA].*:[si]")
        -3>> =suggSimil(\3, ":[NA].*:[si]", True)                                   # Confusion probable : “\3” est une forme verbale conjuguée. Si “\2” est un déterminant, il faut placer un nom après.

    [<start>|,] [les|plusieurs] @:V¬:[NAY]  [ne|n’|me|m’|te|s’|se|s’]
    [<start>|,] [les|plusieurs] @:V¬:[NAY]  [le|la|l’|les|leur]         @:[123][sp]¬:[QNAG]
    [<start>|,] [les|plusieurs] @:V¬:[NAY]  ?[nous|vous]¿               @:[123][sp]¬:[QG]
        <<- /conf/ hasSimil(\3, ":[NA].*:[pi]")
        -3>> =suggSimil(\3, ":[NA].*:[pi]", True)                                   # Confusion probable : “\3” est une forme verbale conjuguée. Si “\2” est un déterminant, il faut placer un nom après.

    [<start>|,] certains        @:V¬:[NAY]  [ne|n’|me|m’|te|s’|se|s’]
    [<start>|,] certains        @:V¬:[NAY]  [le|la|l’|les|leur]         @:[123][sp]¬:[QNAG]
    [<start>|,] certains        @:V¬:[NAY]  ?[nous|vous]¿               @:[123][sp]¬:[QG]
        <<- /conf/ hasSimil(\3, ":[NA].*:[me]:[pi]")
................................................................................
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  @:Y                                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  @:Y                                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  @:Y                                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  @:Y                                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                      # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.

    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        les  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        les  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        les  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        les  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  les  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  les  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  les  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  les  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  les  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  les  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  les  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  les  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:Y                                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        les  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:Y                                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        les  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:Y                                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        les  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:Y                                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        les  @:[123][sp]¬:[NA].*:[pi]
        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[pi]", True)                      # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.

    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
................................................................................

    [<start>|,]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NAGM]  leur   @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NAGM]  leur   @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NAGM]  leur   @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NAGM]  leur   @:[123][sp]¬:[NA].*:[si]
        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                  # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.

    [<start>|,]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NAGM]  les    @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NAGM]  les    @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NAGM]  les    @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NAGM]  les    @:[123][sp]¬:[NA].*:[pi]
        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[pi]", True)                  # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.

    [<start>|,]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NAGM]  en     @:[123][sp]¬:[NA]
    [<start>|,]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NAGM]  en     @:[123][sp]¬:[NA]
    [<start>|,]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NAGM]  en     @:[123][sp]¬:[NA]
    [<start>|,]  ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NAGM]  en     @:[123][sp]¬:[NA]
        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                  # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est une préposition, il faut placer un nom après.
................................................................................
TEST: qui aura à elle seule justifié la présence de la gent féminine
TEST: Première & dernière fois
TEST: Ce que nos éminences grises ont décidé, nul ne le sait.
TEST: Plusieurs agents doubles ont été démasqués.
TEST: ni l’un ni l’autre n’était fiable.
TEST: si l’un ou l’autre s’était trouvé en sa présence, ça aurait bardé.
TEST: ni l’un ni l’autre n’osait parler.





!!! Tests historiques                                                                             !!

## Version 0.5.14
TEST: par le léger tissu de rayonne qui les protégeait en ce moment.







>
|

>
|







 







|
>
>
|
>
>
>
|
>
|
>
>
>
|
>








|
>
>
|
>
>
|
>
>
|
>
>







 







|







 







>
|
>
|
>
|
>
|
>
|
>
|
>
|
>
|







 







|







 







|







 







>

>
>







 







>
>
>













>







 







>







 







|
|
|
|
|
|
|


|
|
|
|
|
|


|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


|
|
|
|
|
|


|
|
|
|
|
|







 







|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|







 







>

>
>







 







|







 







>







 







<







 







>
>
>
>
>









<
<
<
<
<







 







>







 







>







 







>







 







|







 







>







 







>







 







>









>





>
>







 







>







 







|








|







 







>
|



|
>







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







 







|







 







|
|
|







 







|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|







 







|
|
|
|







 







>
>







408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
...
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
...
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
....
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
....
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
....
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
....
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
....
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
....
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
....
9647
9648
9649
9650
9651
9652
9653
9654
9655
9656
9657
9658
9659
9660
9661
9662
9663
9664
9665
9666
9667
9668
9669
9670
9671
9672
9673
9674
9675
9676
9677
9678
9679
9680
9681
9682
9683
9684
9685
9686
9687
9688
9689
9690
9691
9692
9693
9694
9695
9696
9697
9698
9699
9700
9701
9702
9703
9704
9705
9706
9707
9708
9709
9710
9711
....
9716
9717
9718
9719
9720
9721
9722
9723
9724
9725
9726
9727
9728
9729
9730
9731
9732
9733
9734
9735
9736
9737
9738
9739
9740
9741
9742
9743
9744
9745
9746
9747
9748
9749
9750
9751
9752
9753
9754
9755
9756
9757
9758
9759
9760
9761
9762
9763
9764
9765
9766
9767
9768
9769
9770
9771
9772
9773
9774
9775
9776
9777
9778
9779
9780
9781
9782
9783
9784
9785
9786
9787
.....
10125
10126
10127
10128
10129
10130
10131
10132
10133
10134
10135
10136
10137
10138
10139
10140
10141
10142
.....
10341
10342
10343
10344
10345
10346
10347
10348
10349
10350
10351
10352
10353
10354
10355
.....
10491
10492
10493
10494
10495
10496
10497
10498
10499
10500
10501
10502
10503
10504
10505
.....
10562
10563
10564
10565
10566
10567
10568

10569
10570
10571
10572
10573
10574
10575
.....
10891
10892
10893
10894
10895
10896
10897
10898
10899
10900
10901
10902
10903
10904
10905
10906
10907
10908
10909
10910
10911





10912
10913
10914
10915
10916
10917
10918
.....
11701
11702
11703
11704
11705
11706
11707
11708
11709
11710
11711
11712
11713
11714
11715
.....
11817
11818
11819
11820
11821
11822
11823
11824
11825
11826
11827
11828
11829
11830
11831
.....
11837
11838
11839
11840
11841
11842
11843
11844
11845
11846
11847
11848
11849
11850
11851
.....
11923
11924
11925
11926
11927
11928
11929
11930
11931
11932
11933
11934
11935
11936
11937
.....
12560
12561
12562
12563
12564
12565
12566
12567
12568
12569
12570
12571
12572
12573
12574
.....
12583
12584
12585
12586
12587
12588
12589
12590
12591
12592
12593
12594
12595
12596
12597
.....
13011
13012
13013
13014
13015
13016
13017
13018
13019
13020
13021
13022
13023
13024
13025
13026
13027
13028
13029
13030
13031
13032
13033
13034
13035
13036
13037
13038
13039
13040
13041
13042
.....
13049
13050
13051
13052
13053
13054
13055
13056
13057
13058
13059
13060
13061
13062
13063
.....
13275
13276
13277
13278
13279
13280
13281
13282
13283
13284
13285
13286
13287
13288
13289
13290
13291
13292
13293
13294
13295
13296
13297
13298
.....
13559
13560
13561
13562
13563
13564
13565
13566
13567
13568
13569
13570
13571
13572
13573
13574
13575
13576
13577
13578
13579
.....
15564
15565
15566
15567
15568
15569
15570
15571
15572
15573
15574
15575
15576
15577
15578
15579
15580
15581
15582
15583
15584
15585
15586
15587
15588
15589
15590
15591
15592
15593
15594
15595
15596
15597
15598
15599
15600
15601
15602
15603
.....
17631
17632
17633
17634
17635
17636
17637
17638
17639
17640
17641
17642
17643
17644
17645
.....
19600
19601
19602
19603
19604
19605
19606
19607
19608
19609
19610
19611
19612
19613
19614
19615
19616
.....
19693
19694
19695
19696
19697
19698
19699
19700
19701
19702
19703
19704
19705
19706
19707
19708
19709
19710
19711
19712
19713
19714
19715
19716
19717
19718
19719
19720
19721
19722
.....
19912
19913
19914
19915
19916
19917
19918
19919
19920
19921
19922
19923
19924
19925
19926
19927
19928
19929
.....
21876
21877
21878
21879
21880
21881
21882
21883
21884
21885
21886
21887
21888
21889
21890
21891
TEST: {{( }}parenthèses)                                                  ->> (
TEST: c’est (enfin{{ )}} parti.
TEST: voici des (parenthèses{{ )}}, n’est-ce pas ?                        ->> )


# Parenthèses collées
__<s>/typo(typo_parenthèse_fermante_collée)__
    [)]\b(?![s¹²³⁴⁵⁶⁷⁸⁹⁰]\b)
    <<- not before("\\([rR][eéEÉ]$") ->> ") "                                                       # Il manque un espace après la parenthèse.
__<s>/typo(typo_parenthèse_ouvrante_collée)__
    \b[(](?=[^)][^)][^)])
    <<- ->> " ("                                                                                    # Il manque un espace avant la parenthèse.

TEST: C’est au fond du couloir{{(}}celui du deuxième étage{{)}}qu’il se trouve.
TEST: (a + b)²
TEST: il faut (re)former tout ça.


# Points et espaces
................................................................................
__<s>/typo(typo_virgule_collée_à_mot_suivant)__  "[  ],(?=\w)"  <<- ->> ", "                        # Pas d’espace avant une virgule. Un espace après.

TEST: Merde{{ ,}}ça fait chier.
TEST: Eh oui{{ ,}} c’est encore moi.


# Guillemets et espaces
__<s>/typo(typo_guillemets_fermants_perdus)__
    [  ]”[  ]
        <<- ->> "” | “"                                                                             # Pas d’espace avant ces guillemets ouvrants.
__<s>/typo(typo_guillemets_ouvrants_perdus)__
    [  ]“[  ]
        <<- ->> " “|” "                                                                             # Pas d’espace après ces guillemets ouvrants.
__<s>/typo(typo_guillemets_perdus)__
    [   ](?:"|['‘’]['‘’])[   ]
        <<- ->> " « | » | “|” "                                                                     # Guillemets isolés.
__<s>/typo(typo_commencement_guillemets)__
    ^(?:"|['‘’]['‘’])[   ]
        <<- ->> « |“                                                                                # Guillemets ouvrants.
__<s>/typo(typo_guillemets_fin)__
    ([   ](?:"|['‘’]['‘’]))(?:$|[.,;?!])  @@0
        <<- -1>> " »|”"                                                                             # Guillemets fermants.

TEST: Bon sang, c’en est trop à présent. Vos prétendues “excuses{{ ” }}ne trompent personne !
TEST: Bon sang, c’en est trop à présent. Vos prétendues{{ “ }}excuses” ne trompent personne !
TEST: Encore des guillemets{{ ‘’ }}dont on ne sait que faire.
TEST: {{" }}Ça suffit.{{ "}}
TEST: {{" }}Mangez{{ "}}, déclara-t-elle.


__<s>/typo(typo_guillemets_fermants_inverses)__
    [  ]”(?=\w)
        <<- ->> " “"                                                                                # Mettez des guillemets ouvrants plutôt que fermants.
__<s>/typo(typo_guillemets_ouvrants_inverses1)__
    \w([«“][  ]) @@1
        <<- -1>> " »|”"                                                                             # Mettez des guillemets fermants plutôt qu’ouvrants.
__<s>/typo(typo_guillemets_ouvrants_inverses2)__
    ([«“])[  ]*$ @@0
        <<- -1>> " »|”"                                                                             # Mettez des guillemets fermants plutôt qu’ouvrants.
__<s>/typo(typo_guillemets_ouvrants_inverses3)__
    \w([  ][«“])[  ]*[!?,:;.…] @@1
        <<- -1>> " »|”"                                                                             # Mettez des guillemets fermants plutôt qu’ouvrants.

TEST: « Le grand homme{{«}}
TEST: « La grande femme{{ «}} !
TEST: Eux et leurs{{ ”}}amis{{”}} sont finis !
TEST: Vos {{“}}amis{{“ }}et vous êtes finis !


................................................................................

TEST: Je crois que {{Mlle.}} Eva est partie.
TEST: J’ai pensé à {{Mme.}} Bovary toute la journée.


__[s>/typo(typo_point_après_numéro)__
    ([nN]os?[.])[  ]\d+  @@0
        <<- \1[1:3] == "os" -1>> nᵒˢ                                                                 # Pas de point dans l’abréviation de numéro.
        <<- __else__ -1>> nᵒ                                                                        # Pas de point dans l’abréviation de numéro.

TEST: C’est situé au {{no.}} 12.


# Points de suspension
__<s>/typo(typo_points_suspension1)__    (?<![.])[.]{3,5}(?![.]) <<- not before("(?i)etc$") ->> …   # Typographie : points de suspension. Utilisez le caractère dédié.
................................................................................
TEST: Raisons {{:.}} trop, c’est trop.


#__<s]/typo__  °C <<- ->> ℃                                                      # Typographie. Utilisez le signe des degrés approprié.


# Espaces insécables
__<s>/nbsp(nbsp_ajout_avant_double_ponctuation)__
    \b[?!;]  <<- sCountry != "CA" ->> =" "+\0               # Il manque un espace insécable.
__<s>/nbsp(nbsp_avant_double_ponctuation)__
    " ([?!;])"  @@1 <<- ->> " \1"                           # Il manque un espace insécable.
__<s>/nbsp(nbsp_avant_deux_points)__
    (?: |\b):(?= |$)  <<- ->> " :"                          # Il manque un espace insécable.
__<s>/nbsp(nbsp_après_chevrons_ouvrants)__
    «(?: |\b)  <<- ->> "« "                                 # Il manque un espace insécable.
__<s>/nbsp(nbsp_après_chevrons_fermants)__
    ^»(?: |\b)  <<- ->> "» |« "                             # 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.
__<s>/nbsp(nbsp_avant_chevrons_fermants1)__
    (?: |\b)»  <<- ->> " »"                                 # Il manque un espace insécable.
__<s>/nbsp(nbsp_avant_chevrons_fermants2)__
    ([].!?)])»  <js>([\].!?\)])»</js>  @@0 <<- ->> "\1 »"   # Il manque un espace insécable.
__<s>/nbsp(nbsp_après_double_ponctuation)__
    ([:;!?]) (?=\w)  @@0 <<- ->> "\1 "                      # Pas d’espace insécable après le signe “\1”.

TEST: {{«}}Il manque deux espaces insécables. »                             ->> "« "
TEST: « Il manque deux espaces insécables{{.»}}                             ->> ". »"
TEST: « Il manque deux espaces insécables{{ »}}                             ->> " »"
TEST: Et encore{{!}}?                                                       ->> " !"
TEST: Quoi{{?}}                                                             ->> " ?"
TEST: Voici{{:}} les deux points.                                           ->> " :"
................................................................................
    <<- __else__
        and after("^(?:,[0-9]+[⁰¹²³⁴⁵⁶⁷⁸⁹]?|[⁰¹²³⁴⁵⁶⁷⁸⁹])")
        or after("^[   ]*(?:[kcmµn]?(?:[slgJKΩ]|m[²³]?|Wh?|Hz|dB)|[%‰€$£¥Åℓhj]|min|°C|℃)(?![\\w’'])")
    ->> =formatNumber(\0)                                                                           # Formatage des grands nombres.

__[s]/num(num_nombre_quatre_chiffres)__
    (?<!,)(\d\d\d\d)[  ]([a-zA-Zµ][a-zA-Z0-9Ωℓ⁰¹²³⁴⁵⁶⁷⁸⁹/·]*) @@0,$
    <<- morph(\2, ";S", ":[VCR]") or mbUnit(\2) -1>> =formatNumber(\1)                              # Formatage des grands nombres.

TEST: {{12345}}                                 ->> 12 345
TEST: {{123456}}                                ->> 123 456
TEST: {{1234567}}                               ->> 1 234 567
TEST: {{12345678}}                              ->> 12 345 678
TEST: {{023456789}}                             ->> 023 456 789|023 45 67 89|02 345 67 89
TEST: {{0234567890}}                            ->> 0 234 567 890|02 34 56 78 90|023 456 78 90|0234 567-890
................................................................................
TEST: __ocr__ Ça a duré 3 h.
TEST: __ocr__ c’est alors que je suis fort.


## Caractères rares
__<s>/ocr(ocr_caractères_rares)__
    \w*[{}<>&*#£]+\w*
    <<- \0 != "<" and \0 != ">" ->> _                                                               # Erreur de numérisation ? Cette chaîne contient un caractère de fréquence rare.

__<s>/ocr(ocr_doublons_caractères_rares)__
    [\]\[({}][\]\[({}]+
        <<- ->> _                                                                                   # Erreur de numérisation ? Succession douteuse de caractères.

TEST: __ocr__ trouve {{l£}} temps
TEST: __ocr__ elle s’{{avance*}} sur le seuil
................................................................................
    a faible tirant d’ eau
    a feu et à sang
    a flanc de [colline|montagne]
    a fleur de peau
    a géométrie variable
    a grand-peine
    a grande échelle
    a grands frais
    a haut risque
    a haute voix
    a haute et intelligible voix
    a hue et à dia
    a huis clos
    a intervalles [réguliers|irréguliers]
    a juste [raison|titre]
    a l’ heure actuelle
    a l’ heure qu’ il est
    a l’ [accoutumée|amiable|arrache|avance|avenir|avenant|aveuglette|emporte-pièce|évidence|extérieur|improviste|intérieur|inverse]
................................................................................
    au >mètre [>prêt|>pré]
        <<- /conf/ -3>> près                                                # Confusion probable. Locution “au \2 près”.

    à ([ceci|cela]) ([prêt|prêts]) [que|qu’]
    , à ([ceci|cela]) ([prêt|prêts]) ,
        <<- /conf/ -2>> près                                                # Confusion probable. Locution “à \1 près”.|https://fr.wiktionary.org/wiki/%C3%A0_cela_pr%C3%A8s

    ni de [prêt|prêts|>pré] ?,¿ ni de loin
        <<- /conf/ -3>> près                                                # Confusion. Être près de (faire) quelque chose. Prêt à faire quelque chose.

    depuis [prêt|prêts] [de|d’] *NUM [secondes|minutes|heures|jours|semaines|mois|ans|années|décennies|siècles|millénaires]
    depuis [prêt|prêts] [de|d’] @:B  [secondes|minutes|heures|jours|semaines|mois|ans|années|décennies|siècles|millénaires]
        <<- /conf/ -2>> près                                                # Confusion : “prêt” signifie “être apprêté”. Depuis presque “\4 \5”, donc près de “\4 \5”.

TEST: depuis {{prêt}} de 15 ans
TEST: ils se sont approchés très {{prêts}}.
TEST: Je suis si {{prêt}} d’y arriver.
TEST: Elle est si {{prêt}} de la trouver.
TEST: Il est {{près}} à les aider
TEST: Elle va regarder ça de plus {{prêt}}.
TEST: Il était rasé de {{prés}}
TEST: Il est un peu fantasque ; mais, à cela {{prêt}}, c’est un aimable homme.
TEST: Il nous emmerde depuis {{prêt}} de cinq jours avec son histoire à dormir debout
TEST: Ils ne sont ni de {{prêt}} ni de loin affiliés à ces gens
TEST: Il a obtenu un prêt de Patrick
TEST: Il a obtenu un prêt de Le Drian
TEST: collait au millimètre près à la réalité
TEST: les prêts de BMW ou de Mercedes pour visiter la ville


# puits / puis
................................................................................
TEST: ce {{vert}} quoi nous allons, c’est une catastrophe à l’échelle planétaire.
TEST: On va lui tirer les {{verts}} du nez


# voix / voie / vois / voit
__conf_voie_voix_vois_voit__
    à haute [>voie|vois|voit]
    à haute et intelligible [>voie|vois|voit]
    de vive [>voie|vois|voit]
    à portée de [>voie|vois|voit]
        <<- /conf/ --1>> voix       # Confusion. Pour évoquer un son humain, animal ou instrumental, écrivez “voix”.|http://fr.wiktionary.org/wiki/voix

    à [>voie|vois|voit] [basse|haute|basses|hautes]
        <<- /conf/ -2>> voix        # Confusion. Pour évoquer un son humain, animal ou instrumental, écrivez “voix”.|http://fr.wiktionary.org/wiki/voix

................................................................................

!!
!!
!!!! Adverbes de négation                                                                         !!
!!
!!

__neg_ne_manquant__
    [<start>|,]  je             [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]     @:1s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  tu             [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]     @:2s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  [il|elle|on]   [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]     @:3s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  nous           [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]     @:1p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  vous           [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]     @:2p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  [ils|elles]    [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]     @:3p¬:Ov  [pas|rien|jamais|guère|point]
        <<- /neg/ -3>> ne \3                                                                        # Ne … \5 : il manque l’adverbe de négation.

    [<start>|,]  [je|j’]        [en|y]                                                  @:1s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  tu             [en|y]                                                  @:2s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  [il|elle|on]   [en|y]                                                  @:3s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  nous           [en|y]                                                  @:1p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  vous           [en|y]                                                  @:2p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  [ils|elles]    [en|y]                                                  @:3p¬:Ov  [pas|rien|jamais|guère|point]
        <<- /neg/ -3>> n’\3                                                                         # Ne … \5 : il manque l’adverbe de négation.

    [<start>|,]  je             [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]     @:1s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  tu             [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]     @:2s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  [il|elle|on]   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]     @:3s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  nous           [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]     @:1p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  vous           [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]     @:2p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  [ils|elles]    [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]     @:3p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  je             [le|la|l’|les]                  [lui|leur|en|y]         @:1s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  tu             [le|la|l’|les]                  [lui|leur|en|y]         @:2s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  [il|elle|on]   [le|la|l’|les]                  [lui|leur|en|y]         @:3s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  nous           [le|la|l’|les]                  [lui|leur|en|y]         @:1p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  vous           [le|la|l’|les]                  [lui|leur|en|y]         @:2p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  [ils|elles]    [le|la|l’|les]                  [lui|leur|en|y]         @:3p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  je             [lui|leur]                      en                      @:1s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  tu             [lui|leur]                      en                      @:2s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  [il|elle|on]   [lui|leur]                      en                      @:3s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  nous           [lui|leur]                      en                      @:1p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  vous           [lui|leur]                      en                      @:2p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  [ils|elles]    [lui|leur]                      en                      @:3p¬:Ov  [pas|rien|jamais|guère|point]
        <<- /neg/ -3>> ne \3                                                                        # Ne … \6 : il manque l’adverbe de négation.

    [<start>|,]  [je|j’]        @>[aeéiouœ].*:1s¬:Ov              [pas|rien|jamais|guère|point]
    [<start>|,]  tu             @>[aeéiouœ].*:2s¬:Ov              [pas|rien|jamais|guère|point]
    [<start>|,]  [il|elle|on]   @>[aeéiouœ].*:3s¬:Ov              [pas|rien|jamais|guère|point]
    [<start>|,]  nous           @>[aeéiouœ].*:1p¬:Ov              [pas|rien|jamais|guère|point]
    [<start>|,]  vous           @>[aeéiouœ].*:2p¬:Ov              [pas|rien|jamais|guère|point]
    [<start>|,]  [ils|elles]    @>[aeéiouœ].*:3p¬:Ov              [pas|rien|jamais|guère|point]
        <<- /neg/ -3>> n’\3                                                                         # Ne … \4 : il manque l’adverbe de négation.

    [<start>|,]  je             @>[bcdfgjklmnpqrstvwxz].*:1s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  tu             @>[bcdfgjklmnpqrstvwxz].*:2s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  [il|elle|on]   @>[bcdfgjklmnpqrstvwxz].*:3s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  nous           @>[bcdfgjklmnpqrstvwxz].*:1p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  vous           @>[bcdfgjklmnpqrstvwxz].*:2p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,]  [ils|elles]    @>[bcdfgjklmnpqrstvwxz].*:3p¬:Ov  [pas|rien|jamais|guère|point]
        <<- /neg/ -3>> ne \3                                                                        # Ne … \4 : il manque l’adverbe de négation.

TEST: __neg__ On {{a}} pas compris.
TEST: __neg__ Il {{part}} pas encore.
TEST: __neg__ On {{vous}} a pas compris.
TEST: __neg__ On {{en}} a pas.
TEST: __neg__ Il {{y}} a jamais d’eau.
................................................................................
!!
!!
!!!! Infinitif                                                                                    !!
!!
!!

__infi_ne_pas_jamais_etc__
    ne ?presque¿ [pas|rien|guère|point]                   ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿  @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ [pas|rien|guère|point] [trop|beaucoup]   ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿  @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ [pas|rien|guère|point] non plus          ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿  @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ jamais ?[rien|plus|trop|beaucoup]¿       ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿  @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ jamais ?[rien|plus]¿ non plus            ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿  @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ plus ?[jamais|rien|guère|trop|beaucoup]¿ ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿  @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ plus ?[jamais|rien|guère]¿ non plus      ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿  @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ [pas|rien|guère|point]                   [m’|t’|s’|nous|vous|les|lui|leur|l’]  [en|y]                @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ [pas|rien|guère|point] [trop|beaucoup]   [m’|t’|s’|nous|vous|les|lui|leur|l’]  [en|y]                @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ [pas|rien|guère|point] non plus          [m’|t’|s’|nous|vous|les|lui|leur|l’]  [en|y]                @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ jamais ?[rien|plus|trop|beaucoup]¿       [m’|t’|s’|nous|vous|les|lui|leur|l’]  [en|y]                @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ jamais ?[rien|plus]¿ non plus            [m’|t’|s’|nous|vous|les|lui|leur|l’]  [en|y]                @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ plus ?[jamais|rien|guère|trop|beaucoup]¿ [m’|t’|s’|nous|vous|les|lui|leur|l’]  [en|y]                @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ plus ?[jamais|rien|guère]¿ non plus      [m’|t’|s’|nous|vous|les|lui|leur|l’]  [en|y]                @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ [pas|rien|guère|point]                   [me|te|nous|vous] [le|la|les]                               @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ [pas|rien|guère|point] [trop|beaucoup]   [me|te|nous|vous] [le|la|les]                               @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ [pas|rien|guère|point] non plus          [me|te|nous|vous] [le|la|les]                               @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ jamais ?[rien|plus|trop|beaucoup]¿       [me|te|nous|vous] [le|la|les]                               @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ jamais ?[rien|plus]¿ non plus            [me|te|nous|vous] [le|la|les]                               @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ plus ?[jamais|rien|guère|trop|beaucoup]¿ [me|te|nous|vous] [le|la|les]                               @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ plus ?[jamais|rien|guère]¿ non plus      [me|te|nous|vous] [le|la|les]                               @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ [pas|rien|guère|point]                   [le|la|les] [lui|leur]                                      @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ [pas|rien|guère|point] [trop|beaucoup]   [le|la|les] [lui|leur]                                      @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ [pas|rien|guère|point] non plus          [le|la|les] [lui|leur]                                      @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ jamais ?[rien|plus|trop|beaucoup]¿       [le|la|les] [lui|leur]                                      @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ jamais ?[rien|plus]¿ non plus            [le|la|les] [lui|leur]                                      @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ plus ?[jamais|rien|guère|trop|beaucoup]¿ [le|la|les] [lui|leur]                                      @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
    ne ?presque¿ plus ?[jamais|rien|guère]¿ non plus      [le|la|les] [lui|leur]                                      @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/
        <<- /infi/ --1>> =suggVerbInfi(\-1)                                                         # Après “ne pas”, “ne jamais”, “ne plus”, “ne rien”… le verbe devrait être à l’infinitif.

    n’ [en|y] ?presque¿ [pas|rien|guère|point]                        @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ [pas|rien|guère|point] [trop|beaucoup]        @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ [pas|rien|guère|point] non plus               @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ jamais ?[rien|plus|trop|beaucoup]¿            @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ jamais ?[rien|plus]¿ non plus                 @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ plus ?[jamais|rien|guère|trop|beaucoup]¿      @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ plus ?[jamais|rien|guère]¿ non plus           @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ [pas|rien|guère|point]                        @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ [pas|rien|guère|point] [trop|beaucoup]        @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ [pas|rien|guère|point] non plus               @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ jamais ?[rien|plus|trop|beaucoup]¿            @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ jamais ?[rien|plus]¿ non plus                 @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ plus ?[jamais|rien|guère|trop|beaucoup]¿      @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ plus ?[jamais|rien|guère]¿ non plus           @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ [pas|rien|guère|point]                        @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ [pas|rien|guère|point] [trop|beaucoup]        @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ [pas|rien|guère|point] non plus               @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ jamais ?[rien|plus|trop|beaucoup]¿            @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ jamais ?[rien|plus]¿ non plus                 @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ plus ?[jamais|rien|guère|trop|beaucoup]¿      @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ plus ?[jamais|rien|guère]¿ non plus           @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ [pas|rien|guère|point]                        @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ [pas|rien|guère|point] [trop|beaucoup]        @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ [pas|rien|guère|point] non plus               @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ jamais ?[rien|plus|trop|beaucoup]¿            @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ jamais ?[rien|plus]¿ non plus                 @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ plus ?[jamais|rien|guère|trop|beaucoup]¿      @:[VNA]¬:(?:Y|W|X|O[vwn])
    n’ [en|y] ?presque¿ plus ?[jamais|rien|guère]¿ non plus           @:[VNA]¬:(?:Y|W|X|O[vwn])
        <<- /infi/ --1>> =suggVerbInfi(\-1)                                                         # Après “ne pas”, “ne jamais”, “ne plus”, “ne rien”… le verbe devrait être à l’infinitif.

    ne [pas|jamais|plus|rien|guère|point] [beaucoup|trop|assez|mal]
        <<- ~3>> *

TEST: ne jamais les {{cédé}}
TEST: ne point nous {{donné}}
................................................................................
    à flanc de [colline|montagne]
    à fleur de peau
    à franchement parler
    à géométrie variable
    à glacer le sang
    à glacer les sangs
    à grande échelle
    à grands frais
    à haut risque
    à haute voix
    à haute et intelligible voix
    à hue et à dia
    à huis clos
    à intervalles [irréguliers|réguliers]
    à juste [raison|titre]
    à l’ accoutumée
    à l’ air libre
    à l’ amiable
................................................................................
    au lieu de [cela|ceci|ça|quoi]
    au loin
    au milieu de nulle part
    au moment opportun
    au même titre que n’ importe [laquelle|lequel] d’ entre [nous|vous|eux|elles]
    au pas de [charge|course]
    au plus [près|pressé|vite|tôt|tard]
    au plus haut [degré|point]
    au premier abord
    au propre comme au figuré
    au préalable
    au ras des pâquerettes
    au saut du lit
    au sens [figuré|large|propre]
    au surplus
................................................................................
    d’ ouest en est
    d’ [ors|ores] et déjà
    d’ un autre côté
    d’ un [bout|jour] à l’ autre
    d’ un côté comme [de|d’] l’ autre
    d’ un commun accord
    d’ un pas [alerte|mesuré]
    d’ un peu partout
    d’ une autre trempe
    d’ une [façon|manière] ou d’ une autre
    d’ une certaine [façon|manière]
    d’ une tout autre ampleur
    d’ une [minute|seconde] à l’ autre
    de-ci ?,¿ de-là
    [de|d’] *NUM %
................................................................................
    [de|d’] nulle part
    [de|d’] pire en pire
    [de|d’] près
    [de|d’] près ou de loin
    [de|d’] par le monde ?entier¿
    [de|d’] part et d’ autre
    [de|d’] ?presque¿ partout

    [de|d’] petite taille
    [de|d’] pied ferme
    [de|d’] place en place
    [de|d’] plein [droit|fouet]
    [de|d’] plus [belle|près]
    [de|d’] premier [choix|ordre|plan]
    [de|d’] première [catégorie|main|nécessité]
................................................................................
    moitié ** ?,¿ moitié **
    mot pour mot
    mouais
    naguère
    ne [lui|leur|m’|t’|nous|vous] en déplaise
    néanmoins
    nez à nez
    ni [de|d’] près ?,¿ ni [de|d’] loin
    ni plus ?,¿ ni moins
    ni vu ?,¿ ni connu
    non [plus|seulement]
    non sans raison
    non loin [de|d’] [ici|là]
    non sans mal
    nulle part
    ô combien
    oh
    ou quelque chose d’ approchant
    où bon [me|te|lui|nous|vous|leur] semble
    oui [ou|et] non
    outre mesure





    quant à présent
    par [à-coups|ailleurs|avance|chance|conséquent|curiosité|contre|défaut|définition|endroits|essence|excellence|exemple|hasard|ici|inadvertance|là|moments|nature|principe|terre]
    par acquit [de|d’] conscience
    par [beau|mauvais] temps
    par bien des [aspects|côtés]
    par bonté [de|d’] cœur
    par ce biais
................................................................................
    >bombe à [eau|fragmentation|retardement]
    >brosse à [>dent|reluire]
    >cabinet de toilette
    >camp [de|d’] [concentration|internement|rééducation]
    >canne à [pêche|sucre]
    >caisse à >outil
    >chair à [pâté|>canon]
    >chambre à coucher
    >chambre [de|d’] [agriculture|hôte|hôtes|commerce|compensation|décompression|dégrisement]
    >chasse à courre
    >chemin de [traverse|fer]
    >chèque sans provision
    >chili con carne
    >claire comme de l’ eau de [boudin|roche|source]
    >claire comme du cristal
................................................................................
    >papier à [>lettre|musique]
    >partie de jambes en l’ air
    >passage à tabac
    >passation de pouvoir
    >pièce de [théâtre|monnaie]
    >pièce de *NUM [>euro|>dollar|>centime|>cent|>livre|>shilling]
    >plan [A|B|C]
    >planche de salut
    >pleine aux as
    >politique spectacle
    >pomme [de|d’] [discorde|terre|reinette|pin|Adam|api|amour|ambre|eau|or]
    >pompe à [essence|fric]
    >porte de [service|garage]
    >poudre aux yeux
    >presse à >scandale
................................................................................
    [réglé|réglée|réglés|réglées] comme du papier à musique
    >règlement de comptes
    [remis|remise|remises] à plat
    >requête en nullité
    >requête en non [conciliation|inscription|lieu]
    >requête en non révocation de sursis
    >retour à la case départ
    >robe de soirée
    >roman à l’ eau de rose
    >roue [avant|arrière]
    >rouge à lèvres
    >roulement à billes
    >sac à [dos|main|langer|merde|foutre]
    >sac de [couchage|sport|voyage]
    >salle à manger
................................................................................

__purge_couleurs__
    [beige|blanc|bleu|brun|châtain|cyan|gris|incarnat|jaune|magenta|marron|orange|pourpre|rose|rouge|vert|violet|or|argent] [brillant|clair|fluo|foncé|irisé|mat|pâle|pastel|sale|sombre|tendre|terne|vif]
    [beige|blanc|bleu|brun|châtain|cyan|gris|incarnat|jaune|magenta|marron|orange|pourpre|rose|rouge|vert|violet|or|argent] et [beige|blanc|bleu|brun|châtain|cyan|gris|incarnat|jaune|magenta|marron|orange|pourpre|rose|rouge|vert|violet|or|argent]
    blanc   argenté
    bleu    [azur|ciel|indigo|marine|roi|saphir|turquoise]
    blond   platine
    gris    [acier|anthracite|argenté|fer|perle|souris]
    jaune   [paille|sable]
    noir    [de|d’] [encre|jais]
    noir    et blanc
    rose    [bonbon|chair|corail]
    rouge   [brique|carmin|cerise|écarlate|incarnat|rubis|sang|tomate|vermillon]
    vert    [émeraude|olive|pistache|pomme]
        <<- morph(<1, ":[NA]", ":D") ~>> *
................................................................................
    >tenir [compte|compagnie]
    >tenir au courant
    >tenir en haute estime
    >tomber à [pic|point]
    >trier sur le volet
    >trouver refuge
    >tirer [avantage|profit]
    >tourner à l’ aigre
    >tourner court
    >venir à bout
    [>venir|>revenir] je ne sais ?pas¿ ?trop¿ d’ où
    [>venir|>revenir] on ne sait ?pas¿ ?trop¿ d’ où
        <<- ~2:0>> *


................................................................................
    [>mettre|>remettre] a [bas|>flot|>jour|>niveau|>nu|>nue|>plat|>terre]
    [>mettre|>remettre] a l’ [écart|épreuve]
    >percer a jour
    >prendre a la légère
    >saigner a blanc
    >tenir a distance
    >tomber a [pic|point]
    >tourner a l’ aigre
    >venir a bout
    [>venir|>revenir] a point
        <<- /conf/ -2>> à               # Confusion : “a” est une conjugaison du verbe “avoir”. Pour la préposition, écrivez “à”.

    >faire plaisirs
        <<- /sgpl/ -2>> plaisir         # Faire plaisir : dans cette locution, “plaisir” doit être au singulier.
        <<- ~2>> *
................................................................................
        <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|") and not \3.startswith("seul") >>>
        <<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*")))
            and not apposition(\2, \3)
        -3>> =switchGender(\3, False)                                                       # Accord de genre erroné entre « \2 » et « \3 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, False)                  # Accord de genre erroné avec « \3 ».
        <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3)
        -3>> =suggSing(\3)                                                                  # Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.
        <<- /gn/ __also__ and morph(\2, ":[NA].*:i") -1>> leurs                             # Accord de nombre erroné avec « \2 \3 ».

    [et|ou|de]  leur  *WORD  *WORD
        <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>>
        <<- /gn/ ((morph(\3, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\4, ":[NA].*:f", "*")) or (morph(\3, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\4, ":[NA].*:m", "*")))
            and not apposition(\3, \4)
        -4>> =switchGender(\4, False)                                                       # Accord de genre erroné entre « \3 » et « \4 ».
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =switchGender(\3, False)                  # Accord de genre erroné avec « \4 ».
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4)
        -4>> =suggSing(\4)                                                                  # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.
        <<- /gn/ __also__ and morph(\3, ":[NA].*:i") -2>> leurs                             # Accord de nombre erroné avec « \3 \4 ».

TEST: leur puissance {{perdues}}
TEST: leur arbre {{élaguée}}
TEST: je me souviens de leur verve {{décalé}}
TEST: ils arrivent et leur arrogance {{insupportables}} nous fatigue tous.
TEST: {{leur}} gros {{grains}}
TEST: Que ferons-nous de {{leur}} gros {{grains}}


__gn_le_la_leur_3m__
    [le|la|leur]  *WORD  *WORD  *WORD
        <<- /gn/ morph(\1, ":D") and morph(\2, ":[NA].*:[si]", ":(?:[123][sp]|G)") and morph(\3, ":[NA].*:[si]", ":(?:[123][sp]|G)") and morph(\4, ":[NA].*:p", "*") and \4.islower()
        -4>> =suggSing(\4)                                                                  # Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au singulier.

................................................................................
__gn_ledit_1m__
    ledit  *WORD
        <<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> ladite                              # Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True)                    # Accord de genre erroné : « \1 » est un déterminant masculin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2)                    # Accord de nombre erroné : « \2 » devrait être au singulier.

TEST: ledit {{accords}} ne vaut rien.


__gn_ladite_1m__
    ladite  *WORD
        <<- /gn/ morph(\2, ":[NA].*:m", ":[efGW]") -1>> ledit                               # Accord de genre erroné : « \2 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemSing(\2, True)                    # Accord de genre erroné : « \1 » est un déterminant féminin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggFemSing(\2)                    # Accord de nombre erroné : « \2 » devrait être au singulier.

................................................................................


__gn_mon_ton_son_2m__
    [mon|ton|son]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|") and not \3.startswith("seul") >>>
        <<- /gn/ morph(\2, ":[NA].*:m", ":(?:B|G|e|V0|f)") and morph(\3, ":[NA].*:f", "*") and not apposition(\2, \3)
        -3>> =suggMasSing(\3, True)                                                         # Accord de genre erroné : « \2 » est masculin, « \3 » est féminin.
        <<- /gn/ morph(\2, ">[aâeéèêiîoôuûyœæ].*:[NA].*:f", ":(?:B|G|e|V0|m)") and morph(\3, ":[NA].*:m", "*") and not apposition(\2, \3)
        -3>> =suggFemSing(\3, True)                                                         # Accord de genre erroné : « \2 » est féminin, « \3 » est masculin.
        <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3)
        -3>> =suggMasSing(\3)                                                               # Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.

    [et|ou|de]  [mon|ton|son]  *WORD  *WORD
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>>
        <<- /gn/ morph(\3, ":[NA].*:m", ":(?:B|G|e|V0|f)") and morph(\4, ":[NA].*:f", "*") and not apposition(\3, \4)
        -4>> =suggMasSing(\4, True)                                                         # Accord de genre erroné : « \3 » est masculin, « \4 » est féminin.
        <<- /gn/ morph(\3, ">[aâeéèêiîoôuûyœæ].*:[NA].*:f", ":(?:B|G|e|V0|m)") and morph(\4, ":[NA].*:m", "*") and not apposition(\3, \4)
        -4>> =suggFemSing(\4, True)                                                         # Accord de genre erroné : « \3 » est féminin, « \4 » est masculin.
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4)
        -4>> =suggMasSing(\4)                                                               # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.

TEST: il brandissait avec fougue son drapeau {{déchirés}}
TEST: comment osez-vous médire de mon héritage {{glorieuse}}
TEST: on parlait de son escapade {{éperdu}} au milieu de la nuit.
................................................................................
TEST: les heureux imbéciles {{payé}} au lance-pierre.


__gn_det_plur_3m__
    [ces|mes|tes|ses|nos|vos|leurs|quels|quelles|aux]       *WORD  *WORD  *WORD
    [plusieurs|quelques|certains|certaines|moult]           *WORD  *WORD  *WORD
    [lesdits|lesdites|desdits|desdites|auxdits|auxdites]    *WORD  *WORD  *WORD
        <<- /gn/ morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:[pi]", ":(?:[123][sp]|G)")
            and morph(\4, ":[NA].*:s", "*") and \4.islower() and not before("(?i)\\bune? de +$") and not \4.startswith("seul")
        -4>> =suggPlur(\4)                                                                  # Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au pluriel.

    [les|leurs]    *WORD  *WORD  *WORD
        <<- /gn/ morph(\2, ":[NA].*:[pi]", "[123][sp]") and morph(\3, ":[NA].*:[pi]", ":(?:[123][sp]|G)")
            and morph(\4, ":[NA].*:s", "*") and not before("(?i)\\bune? de +$") and not \4.startswith("seul")
        -4>> =suggPlur(\4)                                                                  # Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au pluriel.

TEST: ces petites sottes {{déjantée}}
TEST: Les grandes volontés {{dépassée}} par les évènements
TEST: Prendre goût aux heures passées seul à marcher


................................................................................
        <<- /conf/ -1>> =\1.replace("ind", "end").replace("Ind", "End").replace("IND", "END")       # Confusion probable. Pour “appliquer un enduit”, écrivez “enduire”.|https://fr.wiktionary.org/wiki/induire

TEST: Il l’avait {{enduit}} en erreur par des affirmations calomnieuses.    ->> induit
TEST: Elle en avait {{enduit}} qu’il y avait anguille sous roche.           ->> induit
TEST: Nous avons {{induit}} la façade.                                      ->> enduit
TEST: il faut {{induire}} cette boue sur son visage.                        ->> enduire


# entretien / maintien / soutien
__conf_entretien_maintien_soutien__
    [<start>|,]  [un|le|ce|cet]                     *WORD           [entretien|maintien|soutien]  [,|@:D]
        <<- /conf/ morph(\3, ":N", ":[AG]") -4>> \4t                                                # Confusion probable. S’il s’agit d’un verbe, ajoutez un “t” final. Ici, il s’agit du nom commun.

    [<start>|,]  [une|la|cette|ma|ta|sa]            *WORD           [entretien|maintien|soutien]  [,|@:D]
        <<- /conf/ morph(\3, ":N.*:[fe]") -4>> \4t                                                  # Confusion probable. S’il s’agit d’un verbe, ajoutez un “t” final. Ici, il s’agit du nom commun.

    [<start>|,]  [l’|mon|ton|son|notre|votre|leur]  *WORD           [entretien|maintien|soutien]  [,|@:D]
        <<- /conf/ morph(\3, ":N", ":A.*:[me]:[si]") -4>> \4t                                       # Confusion probable. S’il s’agit d’un verbe, ajoutez un “t” final. Ici, il s’agit du nom commun.

    [<start>|,]  [un|le|ce|cet]                     *WORD  *WORD    [entretien|maintien|soutien]  [,|@:D]
        <<- /conf/ morph(\3, ":[NA]") and morph(\4, ":N", ":[AG]") -5>> \5t                         # Confusion probable. S’il s’agit d’un verbe, ajoutez un “t” final. Ici, il s’agit du nom commun.

    [<start>|,]  [une|la|cette|ma|ta|sa]            *WORD  *WORD    [entretien|maintien|soutien]  [,|@:D]
        <<- /conf/ morph(\3, ":[NA].*:[fe]:[si]") and morph(\4, ":[NA].*:[fe]:[si]") -5>> \5t       # Confusion probable. S’il s’agit d’un verbe, ajoutez un “t” final. Ici, il s’agit du nom commun.

    [<start>|,]  [l’|mon|ton|son|notre|votre|leur]  *WORD  *WORD    [entretien|maintien|soutien]  [,|@:D]
        <<- /conf/ morph(\3, ":[NA]") and morph(\4, ":N", ":A.*:[me]:[si]") -5>> \5t                # Confusion probable. S’il s’agit d’un verbe, ajoutez un “t” final. Ici, il s’agit du nom commun.

TEST: la grande {{maintien}} sa version.                        ->> maintient
TEST: le petit homme {{maintien}} fermement son pantalon        ->> maintient
TEST: cette femme {{entretien}} sa santé                        ->> entretient
TEST: le petit entretien le paralysait


# envi / envie
__conf_à_l_envi__
    à l’ envie
        <<- /conf/ not morph(<1, ">(?:abandonner|céder|résister)/") and not value(>1, "|de|d’|")
        -3>> envi                                           # Locution adverbiale « à l’envi », signifiant « autant que possible ».

................................................................................
!!
!!
!!!! Participes passés: se +laisser +adjectif                                                     !!
!!
!!

__ppas_pronom_laisser_adj__
    [me|m’|te|t’|le|la|l’]  >laisser  @:A.*:p¬:(?:[YG]|[AQ].*:[is])
        <<- /ppas/ -3>> =suggSing(\3)                                       # Accord avec “\1” : “\3” devrait être au singulier.

TEST: Elle te laisse {{épuisés}} par la tâche.
TEST: Ils la laissèrent {{malades}}.
TEST: Ils la laissent prendre le train.
TEST: Elle te laisse finir le travail.
TEST: Je me laisse de quoi finir.
................................................................................

    [<start>|,] leur            @:V¬:[NAY]  [ne|n’|me|m’|te|s’|se|s’]
    [<start>|,] leur            @:V¬:[NAY]  [le|la|l’|les|leur]         @:[123][sp]¬:[QNAG]
    [<start>|,] leur            @:V¬:[NAY]  ?[nous|vous]¿               @:[123][sp]¬:[QG]
        <<- /conf/ hasSimil(\3, ":[NA].*:[si]")
        -3>> =suggSimil(\3, ":[NA].*:[si]", True)                                   # Confusion probable : “\3” est une forme verbale conjuguée. Si “\2” est un déterminant, il faut placer un nom après.

    [<start>|,] [les|plusieurs|leurs]  @:V¬:[NAY]  [ne|n’|me|m’|te|s’|se|s’]
    [<start>|,] [les|plusieurs|leurs]  @:V¬:[NAY]  [le|la|l’|les|leur]         @:[123][sp]¬:[QNAG]
    [<start>|,] [les|plusieurs|leurs]  @:V¬:[NAY]  ?[nous|vous]¿               @:[123][sp]¬:[QG]
        <<- /conf/ hasSimil(\3, ":[NA].*:[pi]")
        -3>> =suggSimil(\3, ":[NA].*:[pi]", True)                                   # Confusion probable : “\3” est une forme verbale conjuguée. Si “\2” est un déterminant, il faut placer un nom après.

    [<start>|,] certains        @:V¬:[NAY]  [ne|n’|me|m’|te|s’|se|s’]
    [<start>|,] certains        @:V¬:[NAY]  [le|la|l’|les|leur]         @:[123][sp]¬:[QNAG]
    [<start>|,] certains        @:V¬:[NAY]  ?[nous|vous]¿               @:[123][sp]¬:[QG]
        <<- /conf/ hasSimil(\3, ":[NA].*:[me]:[pi]")
................................................................................
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  @:Y                                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  @:Y                                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  @:Y                                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  @:Y                                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                      # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.

    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:Y                                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:Y                                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:Y                                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:Y                                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[pi]", True)                      # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.

    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
................................................................................

    [<start>|,]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NAGM]  leur   @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NAGM]  leur   @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NAGM]  leur   @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NAGM]  leur   @:[123][sp]¬:[NA].*:[si]
        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                  # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.

    [<start>|,]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NAGM]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NAGM]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NAGM]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NAGM]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[pi]", True)                  # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.

    [<start>|,]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NAGM]  en     @:[123][sp]¬:[NA]
    [<start>|,]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NAGM]  en     @:[123][sp]¬:[NA]
    [<start>|,]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NAGM]  en     @:[123][sp]¬:[NA]
    [<start>|,]  ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NAGM]  en     @:[123][sp]¬:[NA]
        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                  # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est une préposition, il faut placer un nom après.
................................................................................
TEST: qui aura à elle seule justifié la présence de la gent féminine
TEST: Première & dernière fois
TEST: Ce que nos éminences grises ont décidé, nul ne le sait.
TEST: Plusieurs agents doubles ont été démasqués.
TEST: ni l’un ni l’autre n’était fiable.
TEST: si l’un ou l’autre s’était trouvé en sa présence, ça aurait bardé.
TEST: ni l’un ni l’autre n’osait parler.
TEST: Ne pense pas à ce sur quoi tu poses les pieds et tout ira bien
TEST: les nerfs du vieux Paul lâchent



!!! Tests historiques                                                                             !!

## Version 0.5.14
TEST: par le léger tissu de rayonne qui les protégeait en ce moment.