All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.languagetool.rules.pt.pt-PT.grammar.xml Maven / Gradle / Ivy

There is a newer version: 6.4
Show newest version
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../print.xsl" title="Pretty print" ?>
<?xml-stylesheet type="text/css" href="../rules.css" title="Easy editing stylesheet" ?>
<!--

Portuguese (Portugal - postreform) - Grammar and Typo Rules for LanguageTool.

See tagset.txt for the meaning of the POS tags
Copyright (C) 2001-2024 Daniel Naber (http://www.danielnaber.de),
Marcin Miłkowski, and the LanguageTool contributors.

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
USA
-->

<!-- Contribuidores open-source, leiam isto: https://dev.languagetool.org/#portuguese -->


<!DOCTYPE rules [
        <!ENTITY % messages   SYSTEM "../../resource/pt/entities/messages.ent" >
        <!ENTITY % datetime   SYSTEM "../../resource/pt/entities/datetime.ent" >
        <!ENTITY % misc       SYSTEM "../../resource/pt/entities/misc.ent"     >
        <!ENTITY % abbrev     SYSTEM "../../resource/pt/entities/abbrev.ent"   >
        <!ENTITY % paronyms   SYSTEM "../../resource/pt/entities/paronyms.ent" >
        <!ENTITY % verbs      SYSTEM "../../resource/pt/entities/verbs.ent"    >
        <!ENTITY % languages  SYSTEM "../../resource/pt/entities/languages.ent">
        <!ENTITY % postal     SYSTEM "../../resource/pt/entities/postal.ent"   >
        <!ENTITY % hyphenised SYSTEM "../../resource/pt/entities/hyphenised.ent"   >
        <!ENTITY % chars      SYSTEM "../../resource/pt/entities/chars.ent"    >
        %messages;
        %datetime;
        %misc;
        %abbrev;
        %paronyms;
        %verbs;
        %languages;
        %postal;
        %hyphenised;
        %chars;

<!-- Declared the three sets of entities below separed with one line since the imported ones were causing conflicts with certain pt-PT rules -->
<!ENTITY meses_ano_abrev_pt_pt "abr|ago|dez|fev|jan|jul|jun|mai|mar|nov|out|set">
<!ENTITY meses_ano_pt_pt "abril|agosto|dezembro|fevereiro|janeiro|julho|junho|maio|março|novembro|outubro|setembro">

<!ENTITY introduz_proclise_pt_pt "ainda|apenas|até|bem|caso|como|conforme|consoante|embora|enquanto|já|mais|onde|para|pois|porque|portanto|quais|qual|quando|quão|quant[ao]s?|que|quem|se|sempre|talvez"><!-- XXX Excluded ali|aqui|acolá -->

<!ENTITY pronomes_obliquos_pt_pt "[ao]s?|l[ao]s?|lh[aeo]s?|n[ao]s?|me|se|te|vos">
<!ENTITY pronomes_obliquos_sem_a_as_o_os_pt_pt "l[ao]s?|lh[aeo]s?|n[ao]s?|me|se|te|vos">
<!ENTITY pronomes_retos_pt_pt "ela|elas|ele|eles|eu|nós|tu|você|vocês|vós">
<!ENTITY pronomes_ambiguos_pt_pt "a|as|mas|nos|o|os|se">
<!ENTITY pronomes_nao_ambiguos_pt_pt "lha|lhas|lhe|lhes|lho|lhos|ma|me|mo|mos|ta|tas|te|to|tos|vos">
<!ENTITY pronomes_informais_pt_pt "contigo|t[ao]s?|teus?|tuas?|t[uie]|vocês?">
<!ENTITY pronomes_possessivos_pt_pt "del[ae]s?|meus?|noss[ao]s?|seus?|suas?|teus?|tuas?|voss[ao]s?">


<!ENTITY expressoes_invariaveis_pt_pt "algema|afazere|alvíssara|anai|antolho|apetrecho|arra|arredore|boda|brócol[io]|cã|calça|calenda|ceroula|cócega|condolência|confin|endoença|esponsai|esposório|exéquia|fasto|féria|feze|finança|hemorróida|mane|núpcia|óculo|olheira|pantalona|parabén|pêsame|petrecho|pi[ck]le|primícia|reticência|suspensório|treva|víscera|vívere">

<!ENTITY pontos_cardeais_capitalizados "Norte|Sul|Este|Oeste|Ocidente|Oriente|Nascente|Poente|Nordeste|Sudeste|Noroeste|Sudoeste">

        ]>


<rules lang="pt" xsi:noNamespaceSchemaLocation="../../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/rules.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <!-- Unification rules retrieved from galician grammar.xml - START-->
    <unification feature="number">
        <equivalence type="singular">
            <token postag="(?:[NZ]..|[ADP]...|V....)S.+" postag_regexp="yes"/>
        </equivalence>
        <equivalence type="plural">
            <token postag="(?:[NZ]..|[ADP]...|V....)P.+" postag_regexp="yes"/>
        </equivalence>
    </unification>

    <unification feature="gender">
        <equivalence type="masc">
            <token postag="(?:[NZ].|[ADP]..|V.....)[MC].+" postag_regexp="yes"/>
        </equivalence>
        <equivalence type="fem">
            <token postag="(?:[NZ].|[ADP]..|V.....)[FC].+" postag_regexp="yes"/>
        </equivalence>
    </unification>

    <unification feature="person">
        <equivalence type="first">
            <token postag="(?:V...|PP)1.+" postag_regexp="yes"/>
        </equivalence>
        <equivalence type="second">
            <token postag="(?:V...|PP)2.+" postag_regexp="yes"/>
        </equivalence>
        <equivalence type="third">
            <token postag="(?:V...|PP)3.+" postag_regexp="yes"/>
        </equivalence>
    </unification>
    <!-- Unification rules retrieved from galician grammar.xml - END  -->


    <category id="EUROPEAN_PORTUGUESE_PT_PT" name="[pt-PT] Português de Portugal">
        <rule id='A_APRENDIZ' name="[pt-PT] Concordância: Variação (p.ex. juiz/juíza)">
        <!--      Created by Marco A.G.Pinto, Portuguese rule      -->
            <pattern>
                <token negate_pos="yes" postag="VMP.+|N.+|AQ.+" postag_regexp="yes"/>
                <token negate_pos="yes" postag="RG" min="0" skip="-1"/>
                <marker>
                    <token postag_regexp='yes' postag='D..F.+'/>
                    <token regexp='yes'>andaluz|aprendiz|petiz</token>
                </marker>
            </pattern>
            <message>Esta palavra é variável. Substitua por <suggestion>\3 \4a</suggestion>.</message>
            <suggestion><match no='3' postag_regexp='yes' postag='(D..)F(.+)' postag_replace='$1M$2'/> \4</suggestion>
            <suggestion>ao \4</suggestion>
            <example correction="a aprendiza|o aprendiz|ao aprendiz">Vamos ver <marker>a aprendiz</marker>.</example>
            <example>manifesta apoio a aprendiz</example>
        </rule>


        <!-- DAR NA VISTA das nas vistas -->
        <!--      Created by Marco A.G.Pinto, Portuguese rule 2020-10-26 (21-OCT-2020+)     -->
        <rule id='DAR_NA_VISTA' name="[pt-PT] Dar nas vistas">
            <pattern>
                <token inflected='yes'>dar</token>
                <marker>
                    <token>na</token>
                    <token>vista</token>
                </marker>
            </pattern>
            <message>Esta expressão é utilizada no plural: <suggestion>nas vistas</suggestion>.</message>
            <example correction="nas vistas">Procura não dar <marker>na vista</marker>.</example>
        </rule>


        <rulegroup id="ARTICLES_PRECEDING_LOCATIONS" name="[pt-PT] Nomes geográficos que requerem artigo">
            <!-- Based on Catalan grammar.xml by Tiago F. Santos,  2017-09-05      -->
            <url>https://ciberduvidas.iscte-iul.pt/consultorio/perguntas/toponimos-com-ou-sem-artigo/24569</url>
            <!--
                MARCOAGPINTO inserted global antipatterns for all subrules on top using the logic (2-MAR-2023+)
            -->

            <!-- MARCOAGPINTO 2022-12-04 (Checked/Enhanced) (25-JUL-2022+) *START* -->
            <antipattern>
                <token>made</token>
                <token>in</token>
                <token postag='NP.+' postag_regexp='yes'/>
                <example>A etiqueta da caixa dizia: "Made in China".</example>
            </antipattern>
            <!-- MARCOAGPINTO 2022-12-04 (Checked/Enhanced) (25-JUL-2022+) *END* -->

            <antipattern case_sensitive="yes">
                <token>do</token>
                <token regexp='yes'>Norte|Sul</token>
            </antipattern>
            <antipattern case_sensitive="yes">
                <token>a</token>
                <token postag="NPFS.+" postag_regexp="yes"/>
            </antipattern>
            <antipattern>
                <token>uma</token>
                <token>espécie</token>
                <token>de</token>
            </antipattern>
            <antipattern>
                <token regexp='yes'>teatros?</token>
                <token>de</token>
                <token>rua</token>
            </antipattern>
            <antipattern case_sensitive='yes'>
                <token>Porto</token>
                <token regexp='yes'>\p{Lu}\w*</token>
            </antipattern>
            <antipattern case_sensitive='yes'>
                <token>Viena</token>
                <token>de</token>
                <token>Áustria</token>
            </antipattern>
            <antipattern>
                <token postag="SENT_START"/>
                <token postag="SENT_END"/>
            </antipattern>
            <antipattern>
                <token postag_regexp='yes' postag='D..F.+'/>
                <token postag_regexp='yes' postag='N.F.+'/>
            </antipattern>
            <rule>
                <pattern>
                    <token postag="SPS00"/><!-- TODO rethink postag_regexp='yes' CC|SENT_START Belize, Honduras e Panamá usam também a língua inglesa.-->
                    <marker>
                        <token regexp="yes" case_sensitive="yes">&paises_com_artigo;|&outros_toponimos_com_artigo;</token>
                    </marker>
                </pattern>
                <message>Este nome geográfico é precedido de um artigo (contração obrigatória depois).</message>
                <suggestion><match no='2' postag="NP(..).+" postag_regexp="yes" postag_replace="DA0$1." case_conversion="alllower">o</match> \2</suggestion>
                <example correction="o Peru">Vão a <marker>Peru</marker>.</example><!-- XXX a o handled by CONTRACOES_OBRIGATORIAS -->
                <example correction="os EUA">Vão a <marker>EUA</marker>.</example><!-- XXX a os handled by CONTRACOES_OBRIGATORIAS -->
                <!--example correction="a China">...entre os EUA e <marker>China</marker>...</example--><!-- TODO rethink postag_regexp='yes' CC|SENT_START Belize, Honduras e Panamá usam também a língua inglesa.-->
            <example correction="a China">para <marker>China</marker></example>
            <example>Peru</example>
            <example>Vão aos EUA</example>
            <example>Cerca de 500 km a oeste de Dakar, Senegal</example>
            <example>A ilha de Honshū, Japão.</example>
            <example>A ilha de Honshū (Japão).</example>
            <example>A China é um país emergente.</example>
            <example>Vou a Porto Rico.</example>
        </rule>
        <rule>
            <antipattern case_sensitive="yes">
                <token>Santa</token>
                <token>Casa</token>
            </antipattern>
            <!-- MARCOAGPINTO 2020-06-10 *START* -->
            <!-- "O presidente da França visitará o Japão próximo mês." -->
            <!-- "O francês é falado em partes da Itália, assim como na França." -->
            <antipattern>
                <token regexp='yes'>da|de</token>
                <token regexp="yes" case_sensitive="yes">&toponimos_sem_artigo;</token>
            </antipattern>
            <!-- MARCOAGPINTO 2020-06-10 *END* -->
            <!-- MARCOAGPINTO 2020-06-11 *START* -->
            <!-- "O estudo foi realizado pela Espanha." -->
            <antipattern>
                <token>pela</token>
                <token regexp="yes" case_sensitive="yes">&toponimos_sem_artigo;
                <exception postag_regexp='yes' postag='NPMSG00|NPMS000'/>
            </token>
        </antipattern>
        <!-- MARCOAGPINTO 2020-06-11 *END* -->
        <!-- MARCOAGPINTO 2020-06-11 + 2020-06-12 *START* -->
        <!-- "O estudo foi realizado na Espanha." -->
        <!-- "Essa ilha pertenceu à França no século XIX." -->
        <antipattern>
            <token regexp='yes'>na|à</token>
            <token regexp="yes" case_sensitive="yes">&paises_com_artigo;|&paises_com_artigo_marcoagpinto_na;
            <exception postag_regexp='yes' postag='NPMSG00|NPMS000'/>
        </token>
    </antipattern>
    <!-- MARCOAGPINTO 2020-06-11 + 2020-06-12 *END* -->
    <pattern>
        <or>
            <token postag="DA.+" postag_regexp="yes">
                <exception>a</exception></token>
            <token regexp="yes" case_sensitive="yes">&contracoes_MS;|&contracoes_MP;|&contracoes_FS;|&contracoes_FP;
            <exception regexp='yes'>mas|[dn]aq.+</exception>
            <exception postag_regexp='yes' postag='UNKNOWN|NP.+'/></token>
    </or>
    <!--token postag="NPCSG.+" postag_regexp="yes">
    <exception regexp="yes">&paises_com_artigo;|&outros_toponimos_com_artigo;</exception></token--><!-- XXX Too many NPs mistagged -->
<token regexp="yes" case_sensitive="yes">&toponimos_sem_artigo;</token>
        </pattern>
        <message>Este nome geográfico não é precedido de um artigo.</message>
        <url>https://ciberduvidas.iscte-iul.pt/consultorio/perguntas/o-artigo-em-topoonimos-estrangeiros/12454</url>
        <example type='incorrect'>Vou <marker>ao Faro</marker>.</example>
        <example>Vou a <marker>Faro</marker>.</example>
        <example type='incorrect'>Está <marker>na Lisboa</marker>.</example>
        <example>Está <marker>em Lisboa</marker>.</example>
        <example>A Coreia do Norte é vizinha da Coreira do Sul.</example>
        <example>Faro</example>
        <example>Encontrei-a naquela Lisboa barulhenta e cosmopolita.</example>
    </rule>
    <rule>
        <pattern>
            <or>
                <token postag="DA.+" postag_regexp="yes">
                    <exception>a</exception></token>
                <token regexp="yes" case_sensitive="yes">&contracoes_MS;|&contracoes_MP;|&contracoes_FS;|&contracoes_FP;
                <exception regexp='yes'>mas|[dn]aq.+</exception>
                <exception postag_regexp='yes' postag='UNKNOWN|NP.+'/></token>
        </or>
        <token case_sensitive="yes">Cabo</token>
        <token case_sensitive="yes">Verde</token>
    </pattern>
    <message>Este nome geográfico não é precedido de um artigo.</message>
    <url>https://ciberduvidas.iscte-iul.pt/consultorio/perguntas/o-artigo-em-topoonimos-estrangeiros/12454</url>
    <example type='incorrect'>Vou <marker>ao Cabo Verde</marker>.</example>
    <example>Vou a <marker>Cabo Verbe</marker>.</example>
    <example>Cabo Verde</example>
</rule>
<rule>
    <pattern>
        <or>
            <token postag="DA.+" postag_regexp="yes"/>
            <token regexp="yes" case_sensitive="yes">&contracoes_MS;|&contracoes_MP;|&contracoes_FS;|&contracoes_FP;
            <exception regexp='yes'>mas|[dn]aq.+</exception>
            <exception postag_regexp='yes' postag='UNKNOWN|NP.+'/></token>
    </or>
    <token case_sensitive="yes">Nova</token>
    <token case_sensitive="yes" regexp='yes'>York|Iorque|Orleans</token>
</pattern>
<message>Este nome geográfico não é precedido de um artigo.</message>
<url>https://ciberduvidas.iscte-iul.pt/consultorio/perguntas/o-artigo-em-topoonimos-estrangeiros/12454</url>
<example type='incorrect'>Vou <marker>à Nova Iorque</marker>.</example>
<example>Vou a <marker>Nova Iorque</marker>.</example>
<example>Nova Iorque</example>
      </rule>
      <rule>
          <pattern>
              <token>
                  <exception regexp='yes'>&contracoes_FS;</exception>
                  <exception regexp="yes">[(,;:]</exception></token>
              <marker>
                  <token case_sensitive="yes">Costa
                  <exception scope="previous" postag="D..FS.+" postag_regexp="yes"/></token>
              <token min='0'>do</token>
              <token case_sensitive="yes" regexp='yes'>Rica|Marfim</token>
          </marker>
      </pattern>
      <message>Este nome geográfico é precedido de um artigo.</message>
      <suggestion><match no='2' postag="N.(..).+" postag_regexp="yes" postag_replace="DA0$1." case_conversion="alllower">o</match> Costa <match no='3' include_skipped='all'/> <match no='4' include_skipped='all'/></suggestion>
      <example correction="a Costa Rica">Vão para <marker>Costa Rica</marker>.</example>
      <example correction="a Costa do Marfim"><marker>Costa do Marfim</marker>.</example>
      <example>É natural da Costa Rica.</example>
      <example>Belize, Cuba, Costa Rica</example>
  </rule>
  <rule>
      <pattern>
          <token>
              <exception regexp='yes'>&contracoes_MP;</exception>
              <exception regexp="yes">[(,;:]|outros|próprios</exception></token>
          <marker>
              <token case_sensitive="yes">Estados
              <exception scope="previous" postag="DD.MP.+|DA.+" postag_regexp="yes"/></token>
          <token case_sensitive="yes">Unidos</token>
      </marker>
  </pattern>
  <message>Este nome geográfico é precedido de um artigo.</message>
  <suggestion><match no='2' postag="N.(..).+" postag_regexp="yes" postag_replace="DA0$1." case_conversion="alllower">o</match> Estados Unidos</suggestion>
  <example correction="os Estados Unidos">Vão a <marker>Estados Unidos</marker>.</example>
  <example correction="os Estados Unidos"><marker>Estados Unidos</marker>.</example>
  <example>Michigan, Estados Unidos</example>
      </rule>
      <rule>
          <pattern>
              <token>
                  <exception regexp='yes'>&contracoes_MS;</exception>
                  <exception regexp="yes">[(,;:]</exception></token>
              <marker>
                  <token case_sensitive="yes">Reino
                  <exception scope="previous" postag="D..MS.+" postag_regexp="yes"/></token>
              <token case_sensitive="yes">Unido</token>
          </marker>
      </pattern>
      <message>Este nome geográfico é precedido de um artigo.</message>
      <suggestion><match no='2' postag="N.(..).+" postag_regexp="yes" postag_replace="DA0$1." case_conversion="alllower">o</match> Reino Unido</suggestion>
      <example correction="o Reino Unido">Vão a <marker>Reino Unido</marker>.</example>
      <example correction="o Reino Unido"><marker>Reino Unido</marker>.</example>
      <example>Michigan, Estados Unidos</example>
  </rule>
  <rule>
      <antipattern>
          <token>Papua</token>
          <token min='0' regexp="yes">&hifen;</token>
          <token>Nova</token>
          <token>Guiné</token>
      </antipattern>
      <pattern>
          <token>
              <exception regexp='yes'>&contracoes_FS;</exception>
              <exception regexp="yes">[(,;:]</exception></token>
          <marker>
              <token case_sensitive="yes">Nova
              <exception scope="previous" postag="D..FS.+|SENT_START" postag_regexp="yes"/></token>
          <token case_sensitive="yes" regexp='yes'>Zelândia|Guiné</token>
      </marker>
  </pattern>
  <message>Este nome geográfico é precedido de um artigo.</message>
  <suggestion><match no='2' postag="N.(..).+" postag_regexp="yes" postag_replace="DA0$1." case_conversion="alllower">o</match> \2 \3</suggestion>
  <example correction="a Nova Zelândia">A série é gravada em <marker>Nova Zelândia</marker> .</example>
  <example correction="a Nova Guiné">São os habitantes nativos de <marker>Nova Guiné</marker>.</example>
      </rule>
      <rule>
          <pattern case_sensitive="yes">
              <token>El</token>
              <token>Salvador</token>
          </pattern>
          <message>Este nome geográfico não necessita do artigo 'El' em português.</message>
          <suggestion>Salvador</suggestion>
          <url>https://ciberduvidas.iscte-iul.pt/consultorio/perguntas/sobre-os-adjetivos-patrios/13918</url>
          <example correction="Salvador">Vão a <marker>El Salvador</marker>.</example>
          <example correction="Salvador"><marker>El Salvador</marker>.</example>
      </rule>
  </rulegroup>



  <!-- ME DISSE Disse-me / ME DISSERAM Disseram-me / TE PODERIA Poder-te-ia / NOS PODERIAM Poder-nos-iam -->
  <rulegroup id='PROCLISE_COMECO_FRASE' name="[pt-PT] Próclise começo frase">
      <!--      Created by Ricardo Joseh Lima and improved by Marco A.G.Pinto, Portuguese rule 2021-11-25 + 2021-12-02 (25-JUN-2021+)      -->
      <!--
          Me disse que ele veio. → Disse-me que ele veio.
          Me disseram que ele veio. → Disseram-me que ele veio.
          Te poderia escrever uma carta? → Poder-te-ia escrever uma carta?
          Nos poderiam escrever uma carta? → Poder-nos-iam escrever uma carta?

          ; I have removed "se" at the start of sentences since it produced too many false positives.

          ; Notice that there are exceptions for the verbs 'dizer' and 'fazer' ('dir-me-ás' and 'far-me-ás')
          as I see no easy way of coding them.
          Also, there is this verb 'farar' which has forms in "fazer".
      -->

      <!-- simple verbs -->
      <rule>
          <pattern>
              <token postag='SENT_START'/>
              <marker>
                  <token spacebefore='no'>nos</token>
                  <token postag='VMIP1P0'>
                      <exception postag='VMIF1S0'/>
                  </token>
              </marker>
          </pattern>
          <message>Em escrita formal não se começa uma frase com pronome átono. Coloque o pronome após o verbo.</message>
          <suggestion><match no='3' case_conversion='startupper' postag="VMIP1P0" postag_regexp="yes" postag_replace="VMIP1P0:PP1CPO00"/></suggestion>
          <suggestion><match no='2' regexp_match="o" regexp_replace="ó"/> \3</suggestion>
          <example correction="Acostumamo-nos|Nós acostumamos"><marker>Nos acostumamos</marker> com tudo.</example>
      </rule>

      <rule>
          <pattern>
              <token postag='SENT_START'/>
              <marker>
                  <token regexp='yes' spacebefore='no'>lhes?|me|te|nos|vos</token>
                  <token postag='VMI[MS][13].+' postag_regexp='yes'>
                      <exception postag='VMIF1S0'/>
                  </token>
              </marker>
          </pattern>
          <message>Em escrita formal não se começa uma frase com pronome átono. Coloque o pronome após o verbo.</message>
          <suggestion><match no='3' case_conversion='startupper'/>-<match no='2' case_conversion='startlower'/></suggestion>
          <example correction="Disse-me"><marker>Me disse</marker> que ele veio.</example>
          <example correction="Disseram-me"><marker>Me disseram</marker> que ele veio.</example>
      </rule>

      <!-- ia/ias/iam -->
      <rule>
          <pattern>
              <token postag='SENT_START'/>
              <marker>
                  <token regexp='yes' spacebefore='no'>lhes?|me|te|nos|vos</token>
                  <token postag='VMI[C][13]S.+' postag_regexp='yes'>
                      <exception regexp='yes' inflected='yes'>dizer|fazer|farar</exception>
                  </token>
              </marker>
          </pattern>
          <message>Em escrita formal não se começa uma frase com pronome átono. Coloque o pronome após o verbo.</message>
          <suggestion><match no='3' postag="V.+" postag_replace='VMN0000' postag_regexp="yes" case_conversion='startupper'/>-<match no='2' case_conversion='startlower'/>-ia</suggestion>
          <example correction="Poder-te-ia"><marker>Te poderia</marker> escrever uma carta?</example>
      </rule>
      <rule>
          <pattern>
              <token postag='SENT_START'/>
              <marker>
                  <token regexp='yes' spacebefore='no'>lhes?|me|te|nos|vos</token>
                  <token postag='VMI[C]2S.+' postag_regexp='yes'>
                      <exception regexp='yes' inflected='yes'>dizer|fazer|farar</exception>
                  </token>
              </marker>
          </pattern>
          <message>Em escrita formal não se começa uma frase com pronome átono. Coloque o pronome após o verbo.</message>
          <suggestion><match no='3' postag="V.+" postag_replace='VMN0000' postag_regexp="yes" case_conversion='startupper'/>-<match no='2' case_conversion='startlower'/>-ias</suggestion>
          <example correction="Poder-nos-ias"><marker>Nos poderias</marker> escrever uma carta?</example>
      </rule>
      <rule>
          <pattern>
              <token postag='SENT_START'/>
              <marker>
                  <token regexp='yes' spacebefore='no'>lhes?|me|te|nos|vos</token>
                  <token postag='VMI[C]3P.+' postag_regexp='yes'>
                      <exception regexp='yes' inflected='yes'>dizer|fazer|farar</exception>
                  </token>
              </marker>
          </pattern>
          <message>Em escrita formal não se começa uma frase com pronome átono. Coloque o pronome após o verbo.</message>
          <suggestion><match no='3' postag="V.+" postag_replace='VMN0000' postag_regexp="yes" case_conversion='startupper'/>-<match no='2' case_conversion='startlower'/>-iam</suggestion>
          <example correction="Poder-nos-iam"><marker>Nos poderiam</marker> escrever uma carta?</example>
      </rule>

      <!-- ei/emos -->
      <rule>
          <pattern>
              <token postag='SENT_START'/>
              <marker>
                  <token regexp='yes' spacebefore='no'>lhes?|me|te|nos|vos</token>
                  <token postag='VMI[F]1S.+' postag_regexp='yes'>
                      <exception regexp='yes' inflected='yes'>dizer|fazer|farar</exception>
                  </token>
              </marker>
          </pattern>
          <message>Em escrita formal não se começa uma frase com pronome átono. Coloque o pronome após o verbo.</message>
          <suggestion><match no='3' postag="V.+" postag_replace='VMN0000' postag_regexp="yes" case_conversion='startupper'/>-<match no='2' case_conversion='startlower'/>-ei</suggestion>
          <example correction="Encontrar-te-ei"><marker>Te encontrarei</marker> amanhã.</example>
      </rule>
      <rule>
          <pattern>
              <token postag='SENT_START'/>
              <marker>
                  <token regexp='yes' spacebefore='no'>lhes?|me|te|nos|vos</token>
                  <token postag='VMI[F]1P.+' postag_regexp='yes'>
                      <exception regexp='yes' inflected='yes'>dizer|fazer|farar</exception>
                  </token>
              </marker>
          </pattern>
          <message>Em escrita formal não se começa uma frase com pronome átono. Coloque o pronome após o verbo.</message>
          <suggestion><match no='3' postag="V.+" postag_replace='VMN0000' postag_regexp="yes" case_conversion='startupper'/>-<match no='2' case_conversion='startlower'/>-emos</suggestion>
          <example correction="Encontrar-nos-emos"><marker>Nos encontraremos</marker> amanhã.</example>
      </rule>

      <!-- á/ás -->
      <rule>
          <pattern>
              <token postag='SENT_START'/>
              <marker>
                  <token regexp='yes' spacebefore='no'>lhes?|me|te|nos|vos</token>
                  <token postag='VMI[F]3S.+' postag_regexp='yes'>
                      <exception regexp='yes' inflected='yes'>dizer|fazer|farar</exception>
                  </token>
              </marker>
          </pattern>
          <message>Em escrita formal não se começa uma frase com pronome átono. Coloque o pronome após o verbo.</message>
          <suggestion><match no='3' postag="V.+" postag_replace='VMN0000' postag_regexp="yes" case_conversion='startupper'/>-<match no='2' case_conversion='startlower'/>-á</suggestion>
          <example correction="Comer-me-á"><marker>Me comerá</marker> o pão.</example>
      </rule>
      <rule>
          <pattern>
              <token postag='SENT_START'/>
              <marker>
                  <token regexp='yes' spacebefore='no'>lhes?|me|te|nos|vos</token>
                  <token postag='VMI[F]2S.+' postag_regexp='yes'>
                      <exception regexp='yes' inflected='yes'>dizer|fazer|farar</exception>
                  </token>
              </marker>
          </pattern>
          <message>Em escrita formal não se começa uma frase com pronome átono. Coloque o pronome após o verbo.</message>
          <suggestion><match no='3' postag="V.+" postag_replace='VMN0000' postag_regexp="yes" case_conversion='startupper'/>-<match no='2' case_conversion='startlower'/>-ás</suggestion>
          <example correction="Comer-me-ás"><marker>Me comerás</marker> o pão.</example>
      </rule>

      <!-- ão -->
      <rule>
          <pattern>
              <token postag='SENT_START'/>
              <marker>
                  <token regexp='yes' spacebefore='no'>lhes?|me|te|nos|vos</token>
                  <token postag='VMI[F]3P.+' postag_regexp='yes'>
                      <exception regexp='yes' inflected='yes'>dizer|fazer|farar</exception>
                  </token>
              </marker>
          </pattern>
          <message>Em escrita formal não se começa uma frase com pronome átono. Coloque o pronome após o verbo.</message>
          <suggestion><match no='3' postag="V.+" postag_replace='VMN0000' postag_regexp="yes" case_conversion='startupper'/>-<match no='2' case_conversion='startlower'/>-ão</suggestion>
          <example correction="Comer-me-ão"><marker>Me comerão</marker> o pão.</example>
      </rule>

  </rulegroup>

  <rule id="ACEITO_ACEITE" name="[pt-PT] aceito → aceite" >
      <pattern>
          <token regexp='yes' inflected='yes'>ser|estar|ficar|permanecer|parecer
          <exception>seres</exception></token>
      <token min="0" max="3" postag_regexp='yes' postag='R.'/>
      <token regexp='yes'>aceit[ao]s?</token>
  </pattern>
  <message>Em Portugal, a forma mais comum deste particípio é <match no='3' regexp_match='(.+)([ao])(s?)' regexp_replace='$1e$3'/>.</message>
  <suggestion>\1 <match no='2' include_skipped='all'/> <match no='3' regexp_match='(.+)([ao])(s?)' regexp_replace='$1e$3'/></suggestion>
  <!--suggestion>\1 <match no='2' include_skipped='all'/> <match no='3' regexp_match='(.+)ad([ao]s?)' regexp_replace='$1ue' suppress_misspelled='yes'/></suggestion-->
      <example correction='foi aceite'>O projeto <marker>foi aceito</marker>.</example>
      <example correction='foi aceite'>A China <marker>foi aceita</marker> na Organização Mundial do Comércio.</example>
      <example correction='serem aceites'>Que ser de um certo tamanho e qualidade antes de <marker>serem aceitas</marker> pelos praticantes da MTC e consumidores.</example>
  </rule>


  <rule id="EFEITO_ESTUFA" name="[pt-PT] Hifenização: Efeito-estufa">
      <!-- Created by Marco A.G.Pinto, Portuguese rule, 2017-01-25 -->
      <pattern>
          <token regexp='yes'>efeitos?</token>
          <token regexp='yes' spacebefore='no'>&hifen;</token>
          <token regexp='yes'>estufas?</token>
      </pattern>
      <message>Esta expressão não é hifenizada.</message>
      <suggestion>efeito de estufa</suggestion>
      <suggestion>efeito estufa</suggestion>
      <url>https://ciberduvidas.iscte-iul.pt/consultorio/perguntas/sobre-a-formacao-dos-substantivos-compostos/13909</url>
      <example correction="efeito de estufa|efeito estufa">O calor deve-se ao <marker>efeito-estufa</marker>.</example><!-- TODO Confirm if this is a case of AO changes. VOP (AO90) has 'efeito de estufa'. Verify per-AO. -->
  </rule>

  <rulegroup id='INVARIABLE_NOUNS' name="[pt-PT] Substantivos invariáveis">
      <!-- Created by Tiago F. Santos, Portuguese rule, 2017-06-18 -->
      <short>Expressão invariável</short>
      <rule>
          <antipattern>
              <token>calça</token>
              <token regexp='yes'>umas?</token>
          </antipattern>
          <antipattern>
              <token>alta</token>
              <token>finança</token>
          </antipattern>
          <pattern>
              <token regexp='yes'>&expressoes_invariaveis_pt_pt;</token>
          </pattern>
          <message>Esta expressão é invariável.</message>
          <suggestion>\1s</suggestion>
          <url>https://pt.wikipedia.org/wiki/Plural#Apenas_plural</url>
          <example correction="bodas">Fizeram a <marker>boda</marker> de ouro a semana passada.</example>
          <example correction="óculos">Parti <marker>óculo</marker>.</example>
          <example>Quero acordar às cinco da matina.</example>
          <example>Se você der cravos às 7 da matina ao invés de água, eles duram mais tempo - durante três ou quatro semanas.</example>
          <example>Levei a injeção na nádega esquerda.</example>
      </rule>
      <rule>
          <pattern>
              <token regexp='yes'>belas?</token>
              <token regexp='yes' spacebefore='no'>&hifen;</token>
              <token>arte</token>
          </pattern>
          <message>Esta expressão é invariável.</message>
          <suggestion>belas-artes</suggestion>
          <url>https://pt.wikipedia.org/wiki/Plural#Apenas_plural</url>
          <example correction="belas-artes">É uma bom exemple de <marker>bela-arte</marker>.</example>
      </rule>
      <rule>
          <pattern case_sensitive='yes'>
              <token>Estado</token>
              <token>Unido</token>
          </pattern>
          <message>Esta expressão é invariável.</message>
          <suggestion>Estados Unidos</suggestion>
          <url>https://pt.wikipedia.org/wiki/Plural#Apenas_plural</url>
          <example correction="Estados Unidos">A sul do Canadá está o <marker>Estado Unido</marker>.</example>
      </rule>
      <rule>
          <antipattern>
              <token regexp='yes'>Gran(?:de)?</token>
              <token>Canária</token>
          </antipattern>
          <pattern case_sensitive='yes'>
              <token regexp='yes'>B[aá]lcã|Canária</token>
          </pattern>
          <message>Esta expressão é invariável.</message>
          <suggestion>\1s</suggestion>
          <url>https://pt.wikipedia.org/wiki/Plural#Apenas_plural</url>
          <example correction="Balcãs">A Bósnia situa-se no <marker>Balcã</marker>.</example>
      </rule>
      <rule>
          <antipattern>
              <token regexp='yes'>óleos?</token>
              <token>de</token>
              <token>palma</token>
          </antipattern>
          <pattern case_sensitive='yes'>
              <token skip='-1' inflected='yes'>bater</token>
              <token>palma</token>
          </pattern>
          <message>Esta expressão é invariável.</message>
          <suggestion><match no='1' include_skipped='all'/> \2s</suggestion>
          <url>https://pt.wikipedia.org/wiki/Plural#Apenas_plural</url>
          <example correction="bateram palmas">No fim, <marker>bateram palma</marker>.</example>
          <example>Piero Pollaiuolo, Dosso Dossi, Palma il Giovane</example>
      </rule>
      <rule>
          <pattern>
              <token>por</token>
              <token regexp='yes'>(?:ali|aqui|certo|completo|dentro|entre|exemplo|fora|onde|perto|que)s</token>
          </pattern>
          <message>Esta expressão é invariável.</message>
          <suggestion>por <match no='2' regexp_match='(.+)s$' regexp_replace='$1'/></suggestion>
          <url>https://ciberduvidas.iscte-iul.pt/consultorio/perguntas/por-exemplo/10225</url>
          <example correction="Por exemplo"><marker>Por exemplos</marker>, cães, gatos e ratos.</example>
      </rule>
      <rule>
          <pattern>
              <token>por</token>
              <token regexp='yes'>(?:causa|cima|conta|iniciativa|meio|parte|via|volta)s</token>
              <token>de</token>
          </pattern>
          <message>Esta expressão é invariável.</message>
          <suggestion>por <match no='2' regexp_match='(.+)s$' regexp_replace='$1'/> de</suggestion>
          <url>https://ciberduvidas.iscte-iul.pt/consultorio/perguntas/por-exemplo/10225</url>
          <example correction="Por causa de"><marker>Por causas de</marker> cães, gatos e ratos.</example>
      </rule>
      <rule>
          <pattern>
              <token>por</token>
              <token>ocasiões</token>
              <token>de</token>
          </pattern>
          <message>Esta expressão é invariável.</message>
          <suggestion>por ocasião de</suggestion>
          <url>https://ciberduvidas.iscte-iul.pt/consultorio/perguntas/por-exemplo/10225</url>
          <example correction="Por ocasião de"><marker>Por ocasiões de</marker> dar a vacina a cães, gatos e ratos.</example>
      </rule>
      <rule>
          <pattern>
              <token regexp='yes'>tempos?</token>
              <token>ido</token>
          </pattern>
          <message>Esta expressão é invariável.</message>
          <suggestion>tempos idos</suggestion>
          <url>https://pt.wikipedia.org/wiki/Plural#Apenas_plural</url>
          <example correction="tempos idos">É uma bom exemple dos <marker>tempo ido</marker>.</example>
          <example>Depois de ter ido ao Convénio, teve novas ideias e projetos.</example>
      </rule>
      <rule>
          <antipattern>
              <token case_sensitive='yes' regexp='yes'>\p{Lu}\p{Ll}+</token>
              <token case_sensitive='yes' >Pratas</token>
          </antipattern>
          <pattern>
              <token regexp='yes'>(?:falsi|humil|sinceri|leal|bon|cari|mal)dades|fés|pratas|cobres|platinas|brisas|fomes|lenhas|oxig[éê]nios|plebes|profundidades|(cristian|islam|protestant|bud|hindu|xaman|satan|naz)[ií]smos</token>
          </pattern>
          <message>Esta palavra costuma ser apenas referida no singular.</message>
          <suggestion><match no='1' regexp_match='(.+)s$' regexp_replace='$1'/></suggestion>
          <url>https://pt.wikipedia.org/wiki/Singular#Apenas_singular</url>
          <example correction="prata">Ele tinha muitas <marker>pratas</marker> da casa.</example>
          <example>Mafalda Pratas</example>
      </rule>
      <rule>
          <pattern>
              <token>xadrezes</token>
          </pattern>
          <message>Esta expressão é invariável.</message>
          <suggestion>xadrez</suggestion>
          <example correction="xadrez">...os <marker>xadrezes</marker> partidário.</example>
      </rule>
      <rule>
          <antipattern><!-- XXX 'pós' as prefix handled by hiphenation rules -->
              <token>pós</token>
              <token>
                  <exception regexp="yes">[-,.!?\(\)]</exception>
                  <exception postag="C.|R.|S.+" postag_regexp="yes"/></token>
          </antipattern>

          <!-- MARCOAGPINTO 2022-05-04 (1-JAN-2022+) *START* -->
          <!--
              Fixed by Marco and Ricardo Joseh Lima "as pós" (pós-graduações).

              Outra pergunta: posso fazer uma pós que me autorize a demolir e construir auxiliando melhorar ambientes somente?
              Na pós, você pode continuar a desenvolver o que aprendeu na graduação, focando em uma área específica do s...
              Atualmente cursando Engenharia de Produção e já sonhando com a pós em Engenharia de Segurança do Trabalho.
          -->
          <antipattern>
              <token postag='SPS.+|DA0F.+|DI0F.+|Z0.+' postag_regexp='yes'/>
              <token regexp='no'>pós</token>
          </antipattern>
          <!-- MARCOAGPINTO 2022-05-04 (1-JAN-2022+) *END* -->

          <pattern case_sensitive='yes'>
              <token>
                  <exception regexp='yes'>&hifen;</exception></token>
              <marker>
                  <token regexp='yes'>pós|neves</token>
              </marker>
              <token>
                  <exception regexp='yes'>&hifen;</exception></token>
          </pattern>
          <message>Esta expressão é invariável.</message>
          <suggestion><match no='2' regexp_match='(.+)s$' regexp_replace='$1'/></suggestion>
          <url>https://pt.wikipedia.org/wiki/Singular#Apenas_singular</url>
          <example correction="pó">Passou o dia a limpar os <marker>pós</marker> da casa.</example>
          <example>Correntes pós-clássicas</example>
          <example>Tancredo Neves, morto antes da posse, foi substituído pelo seu…</example>
          <example>Saiu do pós operatório ontem.</example><!-- XXX This should be handled by hiphenation rules -->

          <example>Outra pergunta: posso fazer uma pós que me autorize a demolir e construir auxiliando melhorar ambientes somente?</example>
          <example>Na pós, você pode continuar a desenvolver o que aprendeu na graduação, focando em uma área específica do s...</example>
          <example>Atualmente cursando Engenharia de Produção e já sonhando com a pós em Engenharia de Segurança do Trabalho.</example>
      </rule>
      <rule>
          <pattern case_sensitive='yes'>
              <token>Reinos</token>
              <token>Unidos</token>
          </pattern>
          <message>Esta expressão é invariável.</message>
          <suggestion>Reino Unido</suggestion>
          <url>https://pt.wikipedia.org/wiki/Singular#Apenas_singular</url>
          <example correction="Reino Unido">A norte de França estão os <marker>Reinos Unidos</marker>.</example>
      </rule>
      <rule>
          <!--      Created by Marco A.G.Pinto, Portuguese rule      -->
          <pattern>
              <token>preste</token>
              <token>a</token>
          </pattern>
          <message>Substitua por <suggestion>prestes a</suggestion>.</message>
          <example correction="prestes a">Está <marker>preste a</marker> acontecer.</example>
      </rule>


      <rule id='INVARIABLE_NOUNS_ÀS_CUSTAS_DA_DAS_DO_DOS' name="[pt-PT][Confusão] 'às custas'/'à custa'">
      <!-- Created by Marco A.G.Pinto, Portuguese rule 2022-09-20 (Checked/Enhanced) (25-JUL-2022+) -->
          <pattern>
              <marker>
                  <token>às</token>
                  <token>custas</token>
              </marker>
              <token postag='SPS00|SPS00:D[AI].+' postag_regexp='yes'/>
          </pattern>
          <message>Esta expressão é invariável.</message>
          <suggestion>à custa</suggestion>
          <example correction="à custa">Ele fê-lo <marker>às custas</marker> do filho.</example>
          <example>Ele se tornou um aluno brilhante mas somente à custa de sua saúde.</example>
          <example>O consumo de gorduras n-6 aumentou à custa das gorduras n-3.</example>
      </rule>


      <rule id='INVARIABLE_NOUNS_POR_MOMENTO_POR_MOMENTOS' name="[pt-PT] 'por momento'/'por momentos'">
          <pattern>
              <marker>
                  <token>por</token>
                  <token>momento</token>
              </marker>
          </pattern>
          <message>Esta expressão é invariável.</message>
          <suggestion>por momentos</suggestion>
          <example correction="Por momentos"><marker>Por momento</marker> vi a nossa vida a andar para trás.</example>
          <example correction="Por momentos"><marker>Por momento</marker> a Ana pareceu-me bem.</example>
      </rule>


  </rulegroup>


  <!-- MEIO CHEIA meio-cheia -->
  <rule id='MEIO_ADJETIVO_HÍFEN_PT_PT' name="[pt-PT] Hifenizar 'meio' + adjetivo">
      <!-- Created by Marco A.G.Pinto with Ricardo Joseh Lima suggestions, Portuguese rule 2022-11-11 (25-JUL-2022+) -->
      <!--
          A garrafa está meio cheia. → A garrafa está meio-cheia.
      -->
      <pattern>
          <token postag='V.+|NC.+|AQ.+|RG' postag_regexp='yes'>
              <exception postag_regexp='yes' postag='SPS00|SPS00:.+'/>
          </token>
          <marker>
              <token>meio</token>        
              <token postag='AQ.+' postag_regexp='yes'>
                  <exception regexp='yes' inflected='yes'>&unidades_de_medida_por_extenso;|&numero_por_extenso;</exception>
              </token>
          </marker>
      </pattern>
      <message>Este conjunto forma uma palavra composta.</message>
      <suggestion>\2-\3</suggestion>
      <example correction="meio-cheia">A garrafa está <marker>meio cheia</marker>.</example>
  </rule>


  <rule id='PHRASAL_VERB_RESIDIR_EM' name='[pt-PT] Regência verbal: Residir em'>
      <!--      Created by Tiago F. Santos, 2018-09-19      -->
      <!--antipattern>
          <token regexp='yes'>residentes?|morador(?:es)?</token>
          <token/>
          <token regexp='yes'>com|em|n[ao]s?</token>
      </antipattern-->
      <antipattern>
          <token regexp='yes'>residentes?|morad(?:as?|or(?:es)?)</token>
          <token postag_regexp='yes' postag='A.+'/>
      </antipattern>
      <!-- MARCOAGPINTO 2020-10-06 + 2020-10-27 (21-OCT-2020+) *START* -->
      <!-- "No núcleo reside a força imprescindível dos modelos." -->
      <antipattern>
          <token regexp="yes">residem?</token>
          <token regexp="yes">as?|os?|um|uns|umas?</token>
          <token postag='NC[CFM][SP]000|AQ0[CFM][SP]0' postag_regexp='yes'/>
      </antipattern>
      <!-- MARCOAGPINTO 2020-10-06 + 2020-10-27 (21-OCT-2020+) *END* -->
      <pattern>
          <token inflected='yes' regexp='yes'>residir|morar|residente|morador</token>
          <token postag_regexp='yes' postag='[DN].+'>
              <exception postag_regexp='yes' postag='[AP].+'/>
              <exception postag_regexp='yes' postag='R.+'/>
              <exception regexp='yes'>com|em|n[ao]s?</exception>
              <exception scope='next' regexp='yes'>perigos?</exception></token>
      </pattern>
      <message>Erro de regência. Dependendo do significado, escolha:</message>
      <suggestion>\1 em \2</suggestion>
      <suggestion>\1 com \2</suggestion>
      <url>https://ciberduvidas.iscte-iul.pt/glossario/erros/251</url>
      <example correction='Reside em casa|Reside com casa'><marker>Reside casa</marker> da namorada?</example>
      <example>Lá reside o perigo.</example>
      <example>…que residentes cubanos nos Estados Unidos…</example>
      <example>, entre residentes estrangeiros e nacionais no regime fiscal.</example>
      <example type='correct'>No núcleo <marker>reside a</marker> força imprescindível dos modelos.</example>
      <example>Mora alguém nesta casa?</example>
      <example>Moramos juntos agora.</example>
  </rule>


  <rulegroup id="POSSESSIVE_WITHOUT_ARTICLE" name="[pt-PT] Determinante possessivo sem artigo">
      <!-- Improved by Tiago F. Santos, Portuguese rule, 2016-10-18 -->
      <!--     Base rule id="A_SUA" name="a sua" by Marco Pinto -->
      <!--
          MARCOAGPINTO inserted global antipatterns for all subrules on top using the logic (2-MAR-2023+)
      -->
      <url>https://pt.wikipedia.org/wiki/Portugu%C3%AAs_brasileiro#Artigo_definido_antes_do_possessivo</url>

      <!-- Whole antipatterns must be rewritten: 2024+ -->

      <antipattern>
          <token>nada</token>
          <token>de</token>
          <token postag='DP.+' postag_regexp='yes'><exception scope='next' postag_regexp='yes' postag='N.+|AQ.+'/></token>
          <example>O Rui não podia ter nada de teu.</example>
          <example>O Rui não podia ter nada de meu.</example>
          <example>Não possuia nada de meu.</example>
          <example>O Rui nada de meu tinha.</example>
          <example>Não queria nada de meu.</example>
      </antipattern>

      <antipattern>
          <token postag_regexp="yes" postag="V.+:PP.+"/>
          <token regexp='yes'>comigo|con[st]igo|con[nv]osco</token>
          <token min='0' max='1' postag='_PUNCT' postag_regexp='no'/>
          <token postag='DP1..S' postag_regexp='yes'/>
          <token postag='NC.+|AQ.+|NP.+' postag_regexp='yes'/>
          <example>Vou levar-te comigo meu irmão.</example>
          <example>Vou levar-te comigo, meu irmão.</example>
          <example>Quero levar-vos connosco meus irmãos.</example>
      </antipattern>

      <!-- MARCOAGPINTO 2023-04-11 (Checked/Enhanced) (2-MAR-2023+) *START* -->
      <antipattern>
          <token regexp='yes' inflected='yes'>apresentar|querer|ter</token> <!-- Add verbs here when found -->
          <token regexp='yes'>como|por</token>
          <token regexp='yes'>&pronomes_possessivos_pt_pt;</token>
          <token postag='VMP00.+|NC.+|AQ.+' postag_regexp='yes'/>
          <example>... Lee, coreano radicado no EUA no ano de 1989, professa um estilo de Taekwondo chamado Hangil, tendo como seu maior representante e Presidente o Mestre Faixa Preta 8o Dan Agustin Garay Ramirez, na cidade de La...</example>
          <example>Quem respeita a natureza e a tem como sua aliada.</example>
          <example>Em 2010, apresentou como seu enredo uma homenagem a Chica da Silva, abrindo o desfile do Grupo Especial, com cerca de 750 compon...</example>
      </antipattern>
      <!-- MARCOAGPINTO 2023-04-11 (Checked/Enhanced) (2-MAR-2023+) *END* -->

      <!-- MARCOAGPINTO 2023-04-11 (Checked/Enhanced) (2-MAR-2023+) *START* -->
      <antipattern>
          <token regexp='no'>de</token>
          <token regexp='yes'>&pronomes_possessivos_pt_pt;</token>
          <token regexp='yes'>alcunhas?|apelidos?|nomes?|sobrenomes?|títulos?</token> <!-- Add nouns here when found -->
          <token postag='NP.+' postag_regexp='yes'/>
          <example>Eles tiveram uma vocalista, de seu nome Célia.</example>
      </antipattern>
      <!-- MARCOAGPINTO 2023-04-11 (Checked/Enhanced) (2-MAR-2023+) *END* -->

      <!-- MARCOAGPINTO 2023-02-28 (Checked/Enhanced) (27-FEB-2023+) *START* -->
      <antipattern>
          <token inflected='yes'>ser</token>
          <token postag='RG|CC' postag_regexp='yes'>
              <exception regexp='yes'>assim|como|quando</exception> <!-- Add exceptions here when found -->
          </token>
          <token regexp='yes'>&pronomes_possessivos_pt_pt;</token>
          <token><exception postag_regexp='yes' postag='AQ.+'/></token>
          <example>A verdade é sempre tua, e ninguém pode mudar isso.</example>
          <example>A tua verdade é só tua.</example>
          <example>A verdade é apenas tua.</example>
          <example>Isto é apenas para teu conhecimento.</example>
          <example>Ele é quase meu irmão: neto do primo do tio de um conhecido.</example>
          <example>O namorado dela é apenas meu amigo.</example>
          <example>Você não é mais meu amigo.</example>
          <example>Tom não é mais meu aluno.</example>
          <example>Dormir em silêncio e esparramada até meio dia é dez vezes melhor do que de conchinha com seres e suas idiossincrasias nasais.</example>
          <example>Não sou mais seu treinador.</example>
          <example>Se você se juntar às forças especiais, não será mais meu filho.</example>
          <example>Eu, simplesmente, quero ser apenas sua amiga.</example>
          <example>Sou apenas seu humilde servo, minha deusa.</example>
          <example>Não sou mais seu professor.</example>
      </antipattern>
      <!-- MARCOAGPINTO 2023-02-28 (Checked/Enhanced) (27-FEB-2023+) *START* -->

      <!-- MARCOAGPINTO 2022-10-25 (Checked/Enhanced) (25-JUL-2022+) *START* -->
      <!-- zero hits in 600 000 sentences -->
      <antipattern>
          <token postag='PD.+' postag_regexp='yes'/>
          <token postag='DP.+' postag_regexp='yes'/>
          <token postag='SPS00|CC|CS|RG|I|RM|RN' postag_regexp='yes'/>
          <example>Estão dispostos a retomar tudo aquilo seu por direito, com sinceridade e lealdade.</example>
      </antipattern>
      <!-- MARCOAGPINTO 2022-10-25 (Checked/Enhanced) (25-JUL-2022+) *END* -->

      <!-- MARCOAGPINTO 2022-12-13 (Checked/Enhanced) (25-JUL-2022+) *START* -->
      <antipattern>
          <token><exception postag_regexp='no' postag='SPS00'/></token>
          <token postag='D[ADI].+' postag_regexp='yes'/>
          <token postag='NC.+|AQ.+' postag_regexp='yes'/>
          <token postag='AQ.+' postag_regexp='yes'> <!-- It only works with AQ.+ -->
              <exception postag_regexp='yes' postag='V.+'/>
          </token>
          <token postag='DP.+' postag_regexp='yes'/>
          <example>Dialoga com Elas, é próximo a Elas, com as mães e as filhas, que encontram no PE um cantinho só seu.</example>
          <example>Mas eu, cá no meu canto devassado pelo Google, bem que gostaria de ter um ou outro segredinho todo meu.</example>
          <example>Temos uma Amazônia inteira pra monitorar e não temos um satélite exclusivo nosso.</example>
          <example>O Tom é um parente distante meu.</example>
          <example>Os pastores amigos meus, por exemplo, jamais dizem uma besteira desta de que a Igreja católica nasceu com constantino.</example>
          <example>Eu leio o poema pro meu filho.</example>
          <example>...tro no Brasil, pois a convites do Instituto Papai, euzinha cheguei para aprontar aquela intervenção artística meu bem.</example>
      </antipattern>
      <!-- MARCOAGPINTO 2022-12-13 (Checked/Enhanced) (25-JUL-2022+) *END* -->

      <rule>
          <antipattern>
              <token postag='N.FS.+' postag_regexp='yes'>
                  <exception negate_pos='yes' postag='[AN].+' postag_regexp='yes'/></token>
              <token postag='R.+' postag_regexp='yes' min='0'>
                  <exception negate_pos='yes' postag='R.+' postag_regexp='yes'/></token>
              <token postag='DP.FS.+' postag_regexp='yes'/>
          </antipattern>
          <antipattern>
              <token postag='N.FP.+' postag_regexp='yes'>
                  <exception negate_pos='yes' postag='[AN].+' postag_regexp='yes'/></token>
              <token postag='R.+' postag_regexp='yes' min='0'>
                  <exception negate_pos='yes' postag='R.+' postag_regexp='yes'/></token>
              <token postag='DP.FP.+' postag_regexp='yes'/>
          </antipattern>
          <antipattern>
              <token postag='N.MS.+' postag_regexp='yes'>
                  <exception negate_pos='yes' postag='[AN].+' postag_regexp='yes'/></token>
              <token postag='R.+' postag_regexp='yes' min='0'>
                  <exception negate_pos='yes' postag='R.+' postag_regexp='yes'/></token>
              <token postag='DP.MS.+' postag_regexp='yes'/>
          </antipattern>
          <antipattern>
              <token postag='N.MP.+' postag_regexp='yes'>
                  <exception negate_pos='yes' postag='[AN].+' postag_regexp='yes'/></token>
              <token postag='R.+' postag_regexp='yes' min='0'>
                  <exception negate_pos='yes' postag='R.+' postag_regexp='yes'/></token>
              <token postag='DP.MP.+' postag_regexp='yes'/>
          </antipattern>
          <antipattern>
              <token inflected="yes">ser</token>
              <token postag='DP.+' postag_regexp='yes'/>
          </antipattern>
          <antipattern>
              <token>em</token>
              <token regexp="yes">(?:[mts]eu|[nv]osso|dele)s?</token>
              <token regexp="yes">nomes?</token>
          </antipattern>
          <antipattern>
              <token regexp="yes">(?:sua|vossa)s?</token>
              <token regexp="yes">&pronomes_de_tratamento;</token>
          </antipattern>
          <antipattern>
              <token regexp="yes">[ao]s?|es[st][ae]s?|uma?s?|uns|por|de|em|&contracoes_MS;|&contracoes_MP;|&contracoes_FS;|&contracoes_FP;</token>
              <token regexp="yes">["“]</token>
          </antipattern>
          <antipattern>
              <token>em</token>
              <token>seu</token>
              <token>favor</token>
          </antipattern>
          <antipattern>
              <token>em</token>
              <token>sua</token>
              <token regexp='yes'>adoração|defesa|homenagem|honra</token>
          </antipattern>
          <antipattern>
              <token postag_regexp='yes' postag='_PUNCT|SENT_START'/>
              <token>meus</token>
              <token>caros</token>
              <token postag='_PUNCT'/>
          </antipattern>
          <antipattern>
              <token regexp='yes'>saudades?</token>
              <token regexp='yes'>suas?|vossas</token>
          </antipattern>
          <!-- MARCOAGPINTO 2021-01-08 (1-JAN-2021+) *START* -->
          <!--
              E, meus caros e minhas caras, o dinheiro nunca é suficiente.
              E, meus caros e caras, o dinheiro nunca é suficiente.
          -->
          <antipattern>
              <token regexp='yes'>[.,!?]</token>
              <token postag='DP.+' postag_regexp='yes'/>
              <token min="1" max="3" postag='NC.+|AQ.+|NP.+' postag_regexp='yes'/>
              <token postag='CC' postag_regexp='no'>
                  <exception postag_regexp='yes' postag='I|RG'/>
              </token>
              <token min="0" max="1" postag='DP.+' postag_regexp='yes'/>
              <token min="1" max="3" postag='NC.+|AQ.+|NP.+' postag_regexp='yes'/>
              <token regexp='yes'>[.,!?]</token>
          </antipattern>
          <!--
              Meus caros e caras, o dinheiro nunca é suficiente.
              Meus caros e minhas caras, o dinheiro nunca é suficiente.
          -->
          <antipattern>
              <token postag='SENT_START' postag_regexp='no'/>
              <token postag='DP1[FM][SP]S' postag_regexp='yes'/>
              <token min="1" max="3" postag='NC.+|AQ.+|NP.+' postag_regexp='yes'/>
              <token postag='CC' postag_regexp='no'>
                  <exception postag_regexp='yes' postag='I|RG'/>
              </token>
              <token min="0" max="1" postag='DP.+' postag_regexp='yes'/>
              <token min="1" max="3" postag='NC.+|AQ.+|NP.+' postag_regexp='yes'/>
              <token regexp='yes'>[.,!?]</token>
          </antipattern>
          <!-- MARCOAGPINTO 2021-01-08 (1-JAN-2021+) *END* -->
          <!-- MARCOAGPINTO 2021-01-13 (Enhanced) (1-JAN-2021+) *START* -->
          <!--
              Há dias, minha paixão assolapada, mirei-te numa capa de livrinho.
              Não obstante, gostares de andar descalça, minha gazela doce e paradoxalmente selvagem.
              Não obstante, gostares de andar descalça, minha gazela doce e selvagem.
              Portanto, meu querido amigo, cautelas e caldos de galinha.
          -->
          <antipattern>
              <token></token>
              <token regexp='yes'>[,]</token>
              <token postag='DP[12].SS' postag_regexp='yes'/>
              <token min="1" max="2" postag='NC.+|RM|AQ0.+|NP.+' postag_regexp='yes'>
                  <exception postag_regexp='yes' postag='V.+'/></token>
              <token regexp='yes'>[.,!?();]|e|ou</token>
          </antipattern>
          <!-- MARCOAGPINTO 2021-01-13 (Enhanced) (1-JAN-2021+) *END* -->
          <!-- MARCOAGPINTO 2021-01-18 (1-JAN-2021+) *START* -->
          <!--
              Quero dizer que, para sua compensação, tenciono reformar-me.
              Ele produz alimento suficiente para o proprietário da terra, e sua família.
              A deusa Tétis criou esta ilha do mar, para seu filho Aquiles, que nela vive.
              A ilha de Santa Lúcia, com suas vizinhas, tem origem vulcânica.
          -->
          <antipattern>
              <token></token>
              <token regexp='yes'>[,]</token>
              <token postag='CC|SPS.+' postag_regexp='yes'>
                  <exception postag_regexp='yes' postag='V.+|NC.+|AQ0+|RG'/>
                  <exception regexp='yes'>após|daí|desde|durante|exceto|perante|porém|qual</exception>
              </token>
              <token postag='DP.+' postag_regexp='yes'/>
              <token min="1" max="4" postag='NC.+|RM|AQ0.+|NP.+' postag_regexp='yes'>
                  <exception postag_regexp='yes' postag='V.+'/></token>
              <token regexp='yes'>[.,!?();]|e|ou</token>
          </antipattern>
          <!-- MARCOAGPINTO 2021-01-18 (1-JAN-2021+) *END* -->
          <!-- MARCOAGPINTO 2021-01-19 (1-JAN-2021+) *START* -->
          <!--
              Ele confundiu o rapaz com um borrego, seu tira moncos.
              Ele confundiu o rapaz com um borrego, sua tira moncos.
          -->
          <antipattern>
              <token></token>
              <token regexp='yes'>[,]</token>
              <token postag='DP.+' postag_regexp='yes'/>
              <token postag='NC.S.+|AQ0.S.+' postag_regexp='yes'/>
              <token postag='NC.P.+|AQ0.P.+' postag_regexp='yes'/>
              <token regexp='yes'>[.,!?();]|e|ou</token>
          </antipattern>
          <!-- MARCOAGPINTO 2021-01-19 (1-JAN-2021+) *END* -->
          <!-- MARCOAGPINTO 2021-01-20 (1-JAN-2021+) *START* -->
          <!--
              Ele confundiu o rapaz com um borrego, sua tira moncos.
          -->
          <antipattern>
              <token></token>
              <token regexp='yes'>[,]</token>
              <token postag='DP.+' postag_regexp='yes'/>
              <token postag='V.+' postag_regexp='yes'/>
              <token postag='NC.+|AQ0.+' postag_regexp='yes'/>
              <token regexp='yes'>[.,!?();]|e|ou</token>
          </antipattern>
          <!-- MARCOAGPINTO 2021-01-20 (1-JAN-2021+) *END* -->

          <!-- MARCOAGPINTO 2021-11-05 (25-JUN-2021+) *START* -->
          <!--
              Este é o pai cujo seu filho foi à escola.

              ; In 600 000 sentences, it only removed 1 false positive.
          -->
          <antipattern>
              <token regexp='yes'>cuj[oa]s?</token>
              <token postag='DP.+' postag_regexp='yes'/>
          </antipattern>
          <!-- MARCOAGPINTO 2021-11-05 (25-JUN-2021+) *END* -->

          <!-- MARCOAGPINTO 2022-01-13/14/19 (1-JAN-2022+) *START* -->
          <!--
              THIS ANTIPATTERN CHECKS FOR AN INTERJECTION/etc. + COMMA(_PUNCT) + DP + NC/AQ/NP/etc.:MIN_MAX=1_TO_3 + _PUNCT.
              ITS ACCURACY WILL IMPROVE AS NEW INTERJECTIONS POS ARE ADDED.

              Parabéns, meu Querido Irmão Vítor!
              Feliz Natal, meu Querido Irmão Vítor!
              Olá, Seu Pica Pica! Como vai a sua esposa?
              Olhe, seu João, eu jamais diria uma coisa assim.
              Sim — minha mãezinha, pessoa atenciosa e de bom coração! A única criatura amável naquela família desajustada.
              Boa noite, meu ursinho fofinho!
              Obrigado por tudo, meus amigos!
              Hoje faz anos o Rui, meu amigo de longa data.
              Tua gente, teus anos de glória,
              Eu não peguei o seu maldito carro, meu deus do céu!

              HITS IN 600000 SENTENCES:
              BEFORE:42247 (WITH TWO ANTIPATTERNS REMOVED ABOVE, COVERED BY THIS ONE)
              AFTER:41750
          -->
          <antipattern>
              <token postag='I|NP.+|AQ.+|NC.+|UNKNOWN|V.+|PD.+|PP.+|RG|_QUOT|RM|PI.+' postag_regexp='yes'/>
              <token postag='_PUNCT' postag_regexp='no'/>
              <token postag='DP.+' postag_regexp='yes'/>
              <token min="1" max="4" postag='NP.+|AQ.+|NC.+|RG|SPS.+|CC|DA.+|DI.+|RM|I' postag_regexp='yes'>
                  <exception regexp="yes" inflected="yes">&cores;</exception>
              </token>
              <token postag='_PUNCT|CC' postag_regexp='yes'/> <!-- "CC" adds "e" and "ou" -->
          </antipattern>
          <!-- MARCOAGPINTO 2022-01-13/14/19 (1-JAN-2022+) *END* -->

          <!-- MARCOAGPINTO 2022-01-18/19 (1-JAN-2022+) *START* -->
          <!--
              A app era para meu uso privado, mas um amigo viu ter potencial para ser vendido.
              Nós o convidamos a vir para nossa casa.
              Para minha surpresa, ele tinha uma bela voz.
              Para meu azar, chegaram as melgas.

              HITS IN 600000 SENTENCES:
              BEFORE:42569
              AFTER:41745
          -->
          <antipattern>
              <token>para</token>
              <token postag='DP.+' postag_regexp='yes'/>
              <token postag='V.+|NC.+|AQ.+' postag_regexp='yes'/>
              <token negate="yes" regexp="yes" inflected="yes">&cores;</token>
          </antipattern>
          <!-- MARCOAGPINTO 2022-01-18/19 (1-JAN-2022+) *END* -->

          <!-- MARCOAGPINTO 2022-07-29 (Checked/Enhanced) (25-JUL-2022+) *START* -->
          <antipattern>
              <token postag='V.+' postag_regexp='yes'/>
              <token postag='V.+|NC.+|AQ.+' postag_regexp='yes'/>
              <token postag='DP.+' postag_regexp='yes'/>
              <token postag='_PUNCT|CC' postag_regexp='yes'>
                  <exception postag_regexp='yes' postag='NC.+|AQ.+|_QUOT'/>
              </token>
              <example>As suas contribuições devem ser só suas.</example>
              <example>Isto é culpa sua ou nossa?</example>
              <example>Aliás, é esse o "diferencial", uma das coisas q só o meu site tem, minha opinião, q é só minha .</example>
              <example>A culpa foi só minha.</example>
              <example>Eu não sou conhecido seu, né?</example>
          </antipattern>
          <!-- MARCOAGPINTO 2022-07-29 (Checked/Enhanced) (25-JUL-2022+) *END* -->

          <!-- MARCOAGPINTO 2022-07-29 (Checked/Enhanced) (25-JUL-2022+) *START* -->
          <antipattern>
              <token postag='DA.+|SPS00:DA.+' postag_regexp='yes'/>
              <token postag='_PUNCT|_QUOT' postag_regexp='yes'/>
              <token spacebefore="no" postag='DP.+' postag_regexp='yes'/>
              <example>O teor desrespeita os (seus) "padrões da comunidade".</example>
              <example>Ainda por cima não sabes qual é o «teu» clube.</example>
          </antipattern>
          <!-- MARCOAGPINTO 2022-07-29 (Checked/Enhanced) (25-JUL-2022+) *END* -->

          <!-- MARCOAGPINTO 2022-07-29 (Checked/Enhanced) (25-JUL-2022+) *START* -->
          <antipattern>
              <token postag='[DP][ADIPR].+|SPS00:[DP][ADIPR].+' postag_regexp='yes'/>
              <token postag='NC.+|AQ.+|V.+' postag_regexp='yes'/>
              <token postag='CS' postag_regexp='no'/>
              <token min="0" max="1" postag='[DP][ADIPR].+|SPS00:[DP][ADIPR].+' postag_regexp='yes'/>
              <token postag='V.+' postag_regexp='yes'/>
              <token postag='DP.+' postag_regexp='yes'/>
              <token postag='_PUNCT' postag_regexp='no'/>
              <example>Lá na aldeia que fizera minha.</example>
              <example>Lá da aldeia que fizera minha.</example>
              <example>Editar as informações, Fazer um download dos dados que temos seus, fornecendo a portabilidade, ou simplesmente accionar o direito ao esquecimento.</example>
              <example>Lá na aldeia que ela fizera minha.</example>
          </antipattern>
          <!-- MARCOAGPINTO 2022-07-29 (Checked/Enhanced) (25-JUL-2022+) *END* -->

          <!-- MARCOAGPINTO 2022-07-30 (Checked/Enhanced) (25-JUL-2022+) *START* -->
          <antipattern>
              <token postag='SPS00' postag_regexp='no'/>
              <token postag='DD.+|SPS00:DD.+' postag_regexp='yes'/>
              <token postag='DP.+' postag_regexp='yes'/>
              <example>Com aquele seu jeito tipicamente oblíquo que nos encantava a todos, ela disse “Não”, o que naturalmente queria diz...</example>
              <example>E com aquele seu bom humor, que por vezes transbordava sem dique, foi entrando pela porta e não aguentou mais.</example>
          </antipattern>
          <!-- MARCOAGPINTO 2022-07-30 (Checked/Enhanced) (25-JUL-2022+) *END* -->

          <!-- MARCOAGPINTO 2022-07-31 (Checked/Enhanced) (25-JUL-2022+) *START* -->
          <antipattern>
              <token postag='RG' postag_regexp='no'/>
              <token postag='DP.+' postag_regexp='yes'/>
              <token postag='SPS00|CC|RG|RM|RN' postag_regexp='yes'/>
              <token postag='_PUNCT|VMN0000|AO.+|RG|VMIM.+|NP.+' postag_regexp='yes'>
                  <exception regexp='no'>a</exception> <!-- "dia a dia" = RG = False positive -->
              </token>
              <example>Então meu caro.</example>
              <example>John não é meu irmão, e sim meu primo.</example>
              <example>Com isto pretendemos disponibilizar sempre mecanismos directos para que o controlo dos dados seja sempre seu em primeira e última instância.</example>
              <example>Engenhoso egoísmo que semeia a virtude de algo apenas nosso e nunca revelado, mesmo quando na troca de confissões intimas.</example>
          </antipattern>
          <!-- MARCOAGPINTO 2022-07-31 (Checked/Enhanced) (25-JUL-2022+) *END* -->

          <!-- MARCOAGPINTO 2022-07-31 (Checked/Enhanced) (25-JUL-2022+) *START* -->
          <antipattern>
              <token postag='_PUNCT'>
                  <exception regexp='yes'>[)\]]</exception>
              </token>
              <token postag='DP.+' postag_regexp='yes'/>
              <token postag='_PUNCT|CC|SPS00' postag_regexp='yes'>
                  <exception postag_regexp='no' postag='_QUOT'/>
              </token>
              <example>E pelos quotes que você colocou, nossa, a autora veio com tudo dessa vez, tenho certeza de que irei amar!!!!</example>
              <example>Se o blog bem feito, meu, ganha dinheiro sim.</example>
              <example>Ao introduzir o seu email poderemos enviar-lhe propostas comerciais personalizadas automáticas, nossas e dos nossos parceiros.</example>
              <example>Gostei da entrevista, de 3 livros passou para 7, nossa!</example>
              <example>Rezemos dez ave-marias e um pai-nosso.</example>
              <example>Portanto, se não podem satisfazer estas duas "exigências", minhas, AFASTEM-SE!</example>
              <example>Estes livros são meus e aqueles, seus.</example>
              <example>A culpa não é das estrelas, mas sim, sua.</example>
          </antipattern>
          <!-- MARCOAGPINTO 2022-07-31 (Checked/Enhanced) (25-JUL-2022+) *END* -->

          <!-- MARCOAGPINTO 2022-08-01 (Checked/Enhanced) (25-JUL-2022+) *START* -->
          <antipattern>
              <token postag='I' postag_regexp='no'>
                  <exception postag_regexp='yes' postag='RG|CC|V.+|SPS00|CS|PD.+'/>
              </token>
              <token postag='DP.+' postag_regexp='yes'/>
              <token postag='AQ.+|NC.+|NP.+' postag_regexp='yes'/>
              <example>Ó meu Deus! Está um caos completo!</example>
              <example>Ó minha amada, que pele a tua!</example>
              <example>Boa noite meus amores!</example>
              <example>Oi minha gente linda!</example>
              <example>Olá meus amores, como estão?</example>
              <example>Que beleza tuas faces entre os brincos, teu pescoço, com colares!</example>
              <example>Quando uma forma cria beleza tem na beleza sua própria justificativa.</example>
              <example>Olá minha gestora, quando voltas de férias?</example>
              <example>Ó meu Deus! Está um caos completo!</example>
          </antipattern>
          <!-- MARCOAGPINTO 2022-08-01 (Checked/Enhanced) (25-JUL-2022+) *END* -->

          <!-- MARCOAGPINTO 2022-08-03 (Checked/Enhanced) (25-JUL-2022+) *START* -->
          <antipattern>
              <token postag='SENT_START'/>
              <token min="0" max="2" postag='CC|_PUNCT' postag_regexp='yes'/>
              <token postag='DP1.+' postag_regexp='yes'/>
              <token postag='AQ.+' postag_regexp='yes'> <!-- It needs to be an ADJECTIVE for the rule to work properly -->
                  <exception postag_regexp='yes' postag='NC.+|AQ.C.+'/>
              </token>
              <token min="0" max="2" postag='AQ.+|NC.+|NP.+' postag_regexp='yes'>
                  <exception postag_regexp='yes' postag='V.+'/>
              </token>
              <token postag='SENT_END|_PUNCT' postag_regexp='yes'/>
              <example>Minha bela dama, ousarei eu oferecer-lhe o meu braço e levá-la de volta?</example>
              <example>Meu filho amado.</example>
              <example>Meu terno abraço.</example>
              <example>Meu pequeno gênio!</example>
          </antipattern>

          <antipattern>
              <token postag='SENT_START'/>
              <token min="0" max="2" postag='CC|_PUNCT' postag_regexp='yes'/>
              <token postag='DP1.+' postag_regexp='yes'/>
              <and>
                  <token postag='RG' postag_regexp='no'/>
                  <token postag='AQ.+' postag_regexp='yes'/>
              </and>
              <token min="0" max="2" postag='AQ.+|NC.+|NP.+' postag_regexp='yes'>
                  <exception postag_regexp='yes' postag='V.+'/>
              </token>
              <token postag='SENT_END|_PUNCT' postag_regexp='yes'>
                  <exception scope="next" postag_regexp='yes' postag='CC|CS'/>
              </token>
              <example>Meu bem, é um privilégio estar ao seu lado.</example>
              <example>Meu caro, isso pode ser um problema; porém, iremos resolvê-lo.</example>
              <example>Meu caro, não se preocupe com isso. Vai dar tudo certo!</example>
              <example>Meu bem, ainda estou ocupado.</example>
              <example>Meu caro, isto não tem o menor sentido.</example>
          </antipattern>

          <antipattern>
              <token postag='SENT_START'/>
              <token postag='DP1.+' postag_regexp='yes'/>
              <token postag='AQ.+|NC.+|NP.+' postag_regexp='yes'/>
              <token postag='SENT_END|_PUNCT' postag_regexp='yes'/>
              <example>Meu deus, o que eu fiz, eu não acredito.</example>
              <example>Minha cara, isso não faz o menor sentido!</example>
              <example>Meu amor, eu faria qualquer coisa para te fazer feliz.</example>
              <example>Meu pai, o rei, morreu, segundo dizem, da picada de uma cobra.</example>
              <example>Meu amor, pretendo procurar um restaurante, caso a refeição não esteja pronta até as sete.</example>
              <example>Meu amigo, toda as teorias são cinzentas. Floresce apenas a árvore dourada da vida.</example>
              <example>Meu amor, eu olho em seus olhos e vejo um mar de possibilidades.</example>
              <example>Nossa casa, nossas regras.</example>
              <example>Minha cara, não se preocupe com isso. Vai dar tudo certo!</example>
              <example>Meu coração, que é pássaro selvagem, encontrou o seu céu no teu olhar.</example>
          </antipattern>
          <!-- MARCOAGPINTO 2022-08-03 (Checked/Enhanced) (25-JUL-2022+) *END* -->

          <antipattern>
              <token postag='SENT_START|_PUNCT|I|SPS00:DA.+' postag_regexp='yes'>
                  <exception regexp='yes'>como|já|mas|também</exception> <!-- Used specific words because POSes remove valid entries -->
              </token>
              <token postag='DP1.+' postag_regexp='yes'/>
              <token regexp='yes' inflected='yes'>adorável|amante|amigo|caro|cliente|colaborador|colega|companheiro|empregado|estimado|excelente|excelentíssimo|filho|funcionário|inimigo|irmão|mãe|médico|pai|primo|professor|querido</token>
              <token min='0' max='2' postag='NC.+|AQ.+|NP.+|UNKNOWN' postag_regexp='yes'>
                  <exception postag_regexp='yes' postag='V.+|RG'/>
              </token>
              <token postag='_QUOT|_PUNCT|CC|SENT_END' postag_regexp='yes'>
                  <exception postag_regexp='yes' postag='V.+|RG'/>
                  <exception scope='next' postag_regexp='yes' postag='[DP]P.+'/>
              </token>
              <example>Meus caros músicos, se achar que é necessário uma música ungida para tocar, componha uma.</example>
              <example>E eles dizem a ela com amor: “Minha querida criança”.</example>
              <example>Obrigado por tudo, meu caro Joshua!</example>
              <example>Olá, meus amigos e amigas de longa data.</example>
              <example>Não iria antes ligar pro meu pai.</example>
              <example>Valeu minha querida amiga, beijinhos!!!</example>
              <example>Então meu caro Kotscho, somente Deus sabe a hora e quanto tempo de vida ainda teremos.</example>
          </antipattern>

          <antipattern>
              <unify>
                  <feature id="number"/>
                  <feature id="gender"/>
                  <token postag="NC.*" postag_regexp="yes"/>
                  <token postag="AP.*" postag_regexp="yes"/>
              </unify>
          </antipattern>

          <pattern>
              <token>
                  <exception regexp="yes">[ao]s?|es[st][ae]s?|uma?s?|uns|por|de|em|&contracoes_MS;|&contracoes_MP;|&contracoes_FS;|&contracoes_FP;</exception></token>
              <token postag='DP.+' postag_regexp='yes'/>
          </pattern>
          <message>Será que quis dizer:</message>
          <suggestion>\1 <match no='2' postag='DP.(..).' postag_regexp='yes' postag_replace='DA.$1.'>o</match> <match no='2' case_conversion="alllower"/></suggestion>
          <example correction='honrou a sua'>Augusto <marker>honrou sua</marker> memória com um magnífico funeral.</example>
          <example correction='Leve a sua'><marker>Leve sua</marker> irmã no carro.</example>
          <example correction='A minha'><marker>Minha</marker> prancha partiu.</example>
          <example correction='turismo a sua'>Boa parte das Antilhas, tem no <marker>turismo sua</marker> mais importante fonte de recursos</example>
          <example type='correct'>Tudo bem, mas <marker>sua</marker> majestade está zangada.</example>
          <example type='correct'>Tudo bem, mas <marker>vossa</marker> eminência está zangada.</example>
          <example>e o Nuno Leitão que é meu amigo no Facebook e Skype.</example>
          <example>Apesar de reafirmar que vai prosseguir o “seu dever” no acolhimento às vagas de migrantes.</example>
          <!--        <example type='correct'>Hospital Nossa Senhora da Paz</example> -->
          <example>Isto é uma característica tipicamente sua.</example>
          <example>Sentimos muita saudade sua.</example>
          <example type='correct'>Isso cheira a paixão assolapada, <marker>meu</marker> menino!</example>
          <example type='correct'>Isso é muito feio no desporto, <marker>meus</marker> senhores!</example>
          <example type='correct'>Olhe, aqui, <marker>meu</marker> amigo.</example>
          <example type='correct'>A Ana perguntou-me <marker>com aquele seu</marker> olhar lascivo.</example>
          <example type='correct'>Esta mania <marker>tão nossa</marker> de desdenhar de tudo e de todos.</example>
          <example type='correct'>Há dias, <marker>minha</marker> paixão assolapada, mirei-te numa capa de livrinho.</example>
          <example type='correct'>Não obstante, gostares de andar descalça, <marker>minha</marker> gazela doce e selvagem.</example>

          <example>Meus amigos,</example>
          <example>Meu querido amigo,</example>
          <example>Meus queridos amigos,</example>
          <example>Meu querido amigo Luís,</example>

          <example>Quero dizer que, para <marker>sua</marker> compensação, tenciono reformar-me.</example>
          <example>Ele produz alimento suficiente para o proprietário da terra, e sua família.</example>
          <example>A deusa Tétis criou esta ilha do mar, para seu filho Aquiles, que nela vive.</example>
          <example>A ilha de Santa Lúcia, com suas vizinhas, tem origem vulcânica.</example>

          <example>Há dias, <marker>minha</marker> paixão assolapada, mirei-te numa capa de livrinho.</example>
          <example>Não obstante, gostares de andar descalça, minha gazela doce e paradoxalmente selvagem.</example>
          <example>Não obstante, gostares de andar descalça, minha gazela doce e selvagem.</example>
          <example>Portanto, meu querido amigo, cautelas e caldos de galinha.</example>

          <example><marker>Meus</marker> caros e caras, o dinheiro nunca é suficiente.</example>
          <example>Meus caros e minhas caras, o dinheiro nunca é suficiente.</example>

          <example>E, <marker>meus</marker> caros e minhas caras, o dinheiro nunca é suficiente.</example>
          <example>E, meus caros e caras, o dinheiro nunca é suficiente.</example>

          <example>Eh pá, vai enganar outro, <marker>meu</marker>, essa já não pega!</example>
          <example>Eh pá, vai enganar outro, meu!</example>

          <example>Ele confundiu o rapaz com um borrego, <marker>sua</marker> tira moncos.</example>

          <example>Olá <marker>minha</marker> gestora, quando voltas de férias?</example>
          <example>Ó meu Deus! Está um caos completo!</example>

          <example>Este é o pai cujo seu filho foi à escola.</example>

          <example>Parabéns, meu Querido Irmão Vítor!</example>
          <!--	  <example>Feliz Natal, meu Querido Irmão Vítor!</example> -->
          <example>Olá, Seu Pica Pica! Como vai a sua esposa?</example>
          <example>Olhe, seu João, eu jamais diria uma coisa assim.</example>
          <example>Sim — minha mãezinha, pessoa atenciosa e de bom coração! A única criatura amável naquela família desajustada.</example>
          <example>Boa noite, meu ursinho fofinho!</example>
          <example>Obrigado por tudo, meus amigos!</example>
          <example>Hoje faz anos o Rui, meu amigo de longa data.</example>
          <!--  <example>Tua gente, teus anos de glória,</example> -->
          <example>Eu não peguei o seu maldito carro, meu deus do céu!</example>

          <example>A app era para meu uso privado, mas um amigo viu ter potencial para ser vendido.</example>
          <example>Nós o convidamos a vir para nossa casa.</example>
          <example>Para minha surpresa, ele tinha uma bela voz.</example>
          <example>Para meu azar, chegaram as melgas.</example>
      </rule>
      <rule>
          <antipattern>
              <token regexp="yes">(?:sua|vossa)s?</token>
              <token regexp="yes">&pronomes_de_tratamento;</token>
          </antipattern>
          <antipattern>
              <token>de</token>
              <token regexp="yes">["“]</token>
          </antipattern>
          <pattern>
              <token>de</token>
              <token postag='DP.*' postag_regexp='yes'/>
          </pattern>
          <message>Será que quis dizer:</message>
          <suggestion>d<match no='2' postag='DP.(..).' postag_regexp='yes' postag_replace='DA.$1.'>o</match> <match no='2' case_conversion="alllower"/></suggestion>
          <example correction='da sua'>Leve a cesta <marker>de sua</marker> irmã.</example>
      </rule>
      <rule>
          <antipattern>
              <token regexp="yes">(?:sua|vossa)s?</token>
              <token regexp="yes">&pronomes_de_tratamento;</token>
          </antipattern>
          <antipattern>
              <token>em</token>
              <token regexp="yes">["“]</token>
          </antipattern>
          <!-- MARCOAGPINTO 2021-11-09/10 (25-JUN-2021+) *START* -->
          <!--
              Todavia, estive lá eu em sua representação.
              Ele é superior a mim em seu conhecimento de inglês.
              Ele quer fazer aquilo em seu nome.
              Eu não teria feito isso em seu lugar.
              Que é isso em sua mão?
              Meu irmão fez isso em meu lugar.
              Amor é ver ela em seus sonhos.
          -->
          <antipattern>
              <token postag='RG|V.+' postag_regexp='yes'>
                  <exception postag_regexp='yes' postag='SPS.+'/>
              </token>
              <token postag='PP.+|PD.+' postag_regexp='yes'/>
              <token>em</token>
              <token postag='DP.+' postag_regexp='yes'/>
              <token postag='NC.+|AQ.+' postag_regexp='yes'/>
          </antipattern>
          <!-- MARCOAGPINTO 2021-11-09/10 (25-JUN-2021+) *END* -->

          <!-- MARCOAGPINTO 2022-08-28 (Checked/Enhanced) (25-JUL-2022+) *START* -->
          <!-- 0 hits in 600 000 sentences, only the example here works. -->
          <antipattern>
              <token>em</token>
              <token>seu</token>
              <token>redor</token>
              <example>Por outros que se ergueram em seu redor.</example>
          </antipattern>
          <!-- MARCOAGPINTO 2022-08-28 (Checked/Enhanced) (25-JUL-2022+) *END* -->

          <pattern>
              <token>em</token>
              <token postag='DP.*' postag_regexp='yes'/>
          </pattern>
          <message>Será que quis dizer:</message>
          <suggestion>n<match no='2' postag='DP.(..).' postag_regexp='yes' postag_replace='DA.$1.'>o</match> <match no='2' case_conversion="alllower"/></suggestion>
          <example correction='na sua'>Leve <marker>em sua</marker> cesta.</example>

          <example>Todavia, estive lá eu em sua representação.</example>
          <example>Ele é superior a mim em seu conhecimento de inglês.</example>
          <example>Ele quer fazer aquilo em seu nome.</example>
          <example>Eu não teria feito isso em seu lugar.</example>
          <example>Que é isso em sua mão?</example>
          <example>Meu irmão fez isso em meu lugar.</example>
          <example>Amor é ver ela em seus sonhos.</example>
      </rule>
  </rulegroup>


  <rule id='SEQUER_WITHOUT_NEGATIVE' name='[pt-PT] Sequer sem negativa'>
      <!--      Created by Tiago F. Santos, 2017-03-05      -->
      <antipattern>
          <token regexp='yes' skip='-1'>&negacoes;</token>
          <token>sequer</token>
      </antipattern>
      <antipattern>
          <token>antes</token>
          <token skip='-1'>de</token>
          <token>sequer</token>
      </antipattern>
      <pattern>
          <token>sequer
          <exception scope='previous' regexp='yes'>antes|ou</exception></token>
  </pattern>
  <message>'Sequer' deve ser precedido de uma negação.</message>
  <suggestion>nem <match no='1' case_conversion='alllower'/></suggestion>
  <url>https://duvidas.dicio.com.br/sequer-ou-nem-sequer/</url>
  <example correction='nem sequer'>Ele <marker>sequer</marker> cumprimentou.</example>
  <example>Nem sequer vi o que estava a fazer.</example>
    </rule>


    <rule id='TODOS_FOLLOWED_BY_NOUN_SINGULAR' name="[pt-PT] Expressão: Todo + 'nome sem artigo'">
        <!-- FIXME: too many matches -->
        <!-- Created by Tiago F. Santos, 2017-10-12 -->
        <antipattern>
            <token inflected='yes'>ser
            <exception scope='previous' postag_regexp='yes' postag='V.+'/></token>
        <token min='0' max='1' regexp='yes'>de|o|um</token>
        <token>todo</token>
        <token postag='AQ.+|NC.+' postag_regexp='yes'>
            <exception postag_regexp='yes' postag='V.+'/></token>
        <token postag='_PUNCT|CC|RG|RM' postag_regexp='yes'/>
        <example>Esta solução não é de todo verdade.</example>
        <example>Esta solução não é de todo verdade embora seja possível.</example>
        <example>Esta solução não é de todo verdade certamente como pensámos.</example>
        <example>O lutador profissional é todo músculos.</example>
        <example>E DEUS É O TODO PODEROSO, O CRIADOR DE TODAS AS COISAS !!!</example>
        <example>Devemos nos livrar da ideia falsa de que a África é um todo indivisível.</example>
    </antipattern>
    <antipattern>
        <token regexp='yes'>tod[ao]</token>
        <token postag_regexp='yes' postag='A.+'>
            <exception negate_pos='yes' postag_regexp='yes' postag='A.+'/></token>
        <token>
            <exception postag_regexp='yes' postag='(?:N|A).+'/></token>
    </antipattern>
    <antipattern>
        <token regexp='yes' postag_regexp='yes' postag='V...3P.+' inflected='yes'>&verbos_de_ligacao;</token>
        <token regexp='yes'>tod[ao]</token>
        <token/>
        <token>
            <exception postag_regexp='yes' postag='(?:N|A).+'/></token>
    </antipattern>
    <pattern>
        <token regexp='yes'>tod[ao]</token>
        <token postag_regexp='yes' postag='N.+'>
            <exception negate_pos='yes' postag_regexp='yes' postag='N.+'/></token>
    </pattern>
    <message>Esta expressão no plural exige um segundo artigo.</message>
    <suggestion>\1 <match no='1' regexp_match='...(.)' regexp_replace='$1'/> \2</suggestion>
    <example correction='todo o dia'>Está aberto das dez às seis <marker>todo dia</marker> durante o ano.</example>
    <example correction='toda a hora'>Está aberto a <marker>toda hora</marker>.</example>
    <example>A mulher ficou toda satisfeita.</example>
</rule>


<rule id="VERBO_GENERAL_VERB_AGREEMENT_ERRORS_PT" name="[pt-PT] Erro de concordância verbal">
    <antipattern>
        <token regexp='yes' case_sensitive='yes'>e|ou</token>
        <token>tu</token>
    </antipattern>
    <pattern>
        <token>tu</token>
        <token min="0" max="3" postag='R.+' postag_regexp='yes'>
            <exception scope='next'>,</exception></token>
        <token postag='V.[CIS].([13]S|[123]P).' postag_regexp='yes'>
            <exception postag='V.[CIS].2S0' postag_regexp='yes'/></token>
    </pattern>
    <message>&MSG_ECV;</message>
    <suggestion><match no='1' include_skipped='all'/> <match no='2' include_skipped='all'/> <match no='3' include_skipped='all' postag='(V.[CIS].)..(.)' postag_replace='$1\2S$2' postag_regexp='yes'/></suggestion>
    <example correction='Tu não passeias'><marker>Tu não passeia</marker> na praia.</example>
</rule>


<rulegroup id='VERBO_HIFENIZADOR_VERBOS_1' name='[pt-PT] Colocações pronominais: mesóclise'>
    <!-- Created by Tiago F. Santos , Portuguese rule, 2016-11-04 -->
    <url>https://pt.wikipedia.org/wiki/Coloca%C3%A7%C3%A3o_pronominal</url>
    <short>Erro de colocação pronominal</short>
    <rule>
        <!-- MARCOAGPINTO 2021-06-08 (17-MAR-2021+) *START* -->
        <!--
            Quem as abordou a perguntar se iam pagar com multibanco?
        -->
        <antipattern>
            <token postag='SPS.+|PD.+|PP.+' postag_regexp='yes'/>
            <token postag='V.+' postag_regexp='yes'/>
        </antipattern>
        <!-- MARCOAGPINTO 2021-06-08 (17-MAR-2021+) *END* -->
        <pattern>
            <token postag='V.+' postag_regexp='yes'>
                <exception regexp='yes'>como|para|casa|nada</exception></token>
            <token regexp='yes'>m[aeo]s?|t[aeo]s?|s[aeo]|lh[aeo]s?|n[ao]s|vos</token>
            <token regexp='yes'>á|ão|ás|ei|eis|emos|ia|iam|íamos|ias|íeis</token>
        </pattern>
        <message>Forma hifenizada. Será que quis dizer:</message>
        <suggestion>\1-\2-\3</suggestion>
        <example correction='dar-nos-á'>A vida <marker>dar nos á</marker> sempre mais do que achamos que merecemos.</example>
        <example>Quem as abordou a perguntar se iam pagar com multibanco?</example>
    </rule>
</rulegroup>


<rulegroup id='VERBO_HIFENIZADOR_VERBOS_2' name='[pt-PT] Colocações pronominais dois termos'>
    <!-- Created by Tiago F. Santos , Portuguese rule, 2016-11-04 -->
    <!-- Brazilian Portuguese has some inverted colocations  -->
    <!--
        MARCOAGPINTO inserted global antipatterns for all subrules on top using the logic (2-MAR-2023+)
    -->
    <url>https://ciberduvidas.iscte-iul.pt/consultorio/perguntas/a-colocacao-dos-pronomes-atonos/11366</url>
    <short>Erro de colocação pronominal</short>

    <!-- I must create an AP just with exception verbs, to do in 2025+ KEEP THIS AP ABOVE ALL OTHERS FOR AN EASY VIEW-->
    <antipattern>
        <token postag='CC' postag_regexp='no'/>
        <token>se</token>
        <token regexp='yes' inflected='yes'>acontecer|correr|estar|faltar|haver|ser</token>
        <token postag='N.+|AQ.+|RG' postag_regexp='yes'/>
        <example>Será uma das suas raras aparições públicas e se correr bem avançamos.</example>
        <example>Verifique as medidas, e se é necessário contratar o serviço de um profissional qualificado.</example>
        <example>Nao sei como é o clima em Portugual ou se houveram mortes devido a gripe. mas onde moro</example>
        <example>Não é necessário que o público reconheça se estou brincando ou se estou sério.</example>
        <example>E se faltarem cinco aos cinquenta justos? Destruirás toda a cidade por causa de cinco?</example>
        <example>Vão até lá, vejam se foi vista com alguém ou se aconteceu algo incomum.</example>
    </antipattern>


    <antipattern>
        <token>se</token>
        <token postag='V......:.+' postag_regexp='yes'/>
        <example>O Cruzeiro venceu o Olimpia por 1 a 0 com gol de Marcelo Ramos e se sagrou-se campeão.</example>
        <example>É comum se denominá-los como enrolamento primário e secundário,</example>
    </antipattern>

    <antipattern>
        <token postag='N.+|AQ.+|V.+|PP.+' postag_regexp='yes'/>
        <token>a</token>
        <token postag='VMN0000:.+' postag_regexp='yes'/>
        <example>Ela estava toda zangada e eu a borrifar-me.</example>
        <example>Hoje, temos a satisfação de compartilhar nossa nova página inicial e convidar você a acessá-la.</example>
        <example>O Tom e a Mary juram que não foram eles a fazê-lo.</example>
        <example>"Eu posso ajudar vocês a encontrá-los."</example>
    </antipattern>

    <antipattern>
        <token postag='V.+' postag_regexp='yes'>
            <exception postag_regexp='yes' postag='VMP00.+|VMIS.+|RG|VM[NG]0000|NC.+|AQ.+'/>
        </token>
        <token regexp='yes'>e|ou</token>
        <token>se</token>
        <token postag='VMI[MPS]3.+|VMM03.+' postag_regexp='yes'>
            <exception scope='next' postag_regexp='yes' postag='RM|NC.+|AQ.+|SPS00:DA.+|_PUNCT_COMMA|SENT_END'/>
        </token>
        <example>Os polícias escolhem os alvos, e se avançam ou se recuam para eles.</example>
        <example>Poucas são as pessoas que pensam e se preocupam com esses animais que estão esperando a morte nos matadouros.</example>
        <example>Algum tempo depois ele me reconhece e se precipita em minha direção, com gestos amistosos.</example>
        <example>Ethan e seu melhor amigo, Benny Weir (Atticus Dean Mitchell), a seguem e se deparam com Sarah comendo um rato.</example>
    </antipattern>

    <!-- MARCOAGPINTO 2023-05-06 (Checked/Enhanced) (2-MAR-2023+) *START* -->
    <antipattern>
        <token postag='RG' postag_regexp='no'/>
        <token postag='(SPS00:)?D[AI].+' postag_regexp='yes'/>
        <token postag='NC.+|AQ.+|NP.+|V.+' postag_regexp='yes'/>
        <token regexp='yes'>&pronomes_obliquos_pt_pt;</token>
        <token postag='VMI[MPS]3.+|VMM03.+' postag_regexp='yes'/>
        <example>Aproveitando para agradecer pois os kits me ajudaram bastante.</example>
        <example>...ezes… Ele queria fazer uma coisa romântica e eu estragava os planos hehehe e um dia antes uma amiga me mandou mensagem perguntando do anel (detalhe: ela não sabia).</example>
        <example>Uma vez uma empregada lhe pediu permissão para ir à festa de casamento...</example>
        <example>Eu fiquei surpreso quando o Tom me contou por que ele fez aquilo.</example>
        <example>Eu não me lembro de jamais me haver sentido cansado pelo trabalho, embora a ociosidade me esgote completamente.</example>
        <example>Eu não gosto quando as pessoas me pedem para fazer coisas para elas.</example>
        <example>Odeio quando o Tom me beija em público.</example>
        <example>É muito triste quando as pessoas te excluem por causa da cor da tua pele.</example>
    </antipattern>
    <!-- MARCOAGPINTO 2023-05-06 (Checked/Enhanced) (2-MAR-2023+) *END* -->

    <!-- MARCOAGPINTO 2023-05-08 (Checked/Enhanced) (2-MAR-2023+) *START* -->
    <antipattern>
        <token regexp='yes'>nem|mas</token> <!-- Add words as found. Hardcoded because the POSes would remove valid results -->
        <token postag='NC.+|AQ.+|NP.+|V.+' postag_regexp='yes'/>
        <token regexp='yes'>&pronomes_obliquos_pt_pt;</token>
        <token postag='VMI[MPS]3.+' postag_regexp='yes'/>
        <example>Não preciso de favores especiais, nem falta me fizeram.</example>
        <example>Não preciso de favores especiais, mas falta me fizeram.</example>
        <example>E de Epafrodito: Efésios 2:27 – “E, de fato esteve doente, e quase à morte, mas Deus se apiedou dele”.</example>
        <example>Tom pensou que tinha terminado, mas Mary lhe disse que não.</example>
        <example>Eu ia comprá-lo, mas Tom me disse que não o fizesse.</example>
        <example>A operação foi muito séria, mas Tom se saiu bem.</example>
        <example>Mas Labão lhe disse: Se mereço tua consideração, peço-te que fiques. Sem dúvida fui favorecido com tua presença: fiquei...</example>
        <example>Não queria cantar, mas Tom me obrigou.</example>
    </antipattern>
    <!-- MARCOAGPINTO 2023-05-08 (Checked/Enhanced) (2-MAR-2023+) *END* -->

    <!-- MARCOAGPINTO 2022-08-28 (Checked/Enhanced) (25-JUL-2022+) *START* -->
    <antipattern>
        <token postag='RG' postag_regexp='no'/>
        <token regexp='yes'>&pronomes_obliquos_pt_pt;</token>
        <token postag='V.+' postag_regexp='yes'/>
        <token postag='CS|V.+' postag_regexp='yes'>
            <exception postag_regexp='yes' postag='RG|VMN0000'/>
            <exception scope="next" postag_regexp='yes' postag='V.+'/>
        </token>
        <example>E por aqui me fico porque já excedi as minhas fracas competências.</example>
        <example>Às vezes me pergunto se eu o fiz bem.</example>
        <example>Lá lhe disse que no fim de semana vamos ver o Dumbo, não pelo comportamento, mas apenas e só pelas notas.</example>
        <example>Enfim lhe disse que sim.</example>
        <example>Disse então Rute, a moabita: Ele também me disse que eu posso continuar trabalhando com as suas ceifeiras até acabar a colheita.</example>
        <example>Eu também me questionei sobre qual seria a minha escolha.</example>
        <example>Depois eu parto, mas então me dou conta que esqueci minha mochila em sua casa.</example>
        <example>A notícia de que a escola foi queimada logo se espalhou pela cidade.</example>
        <example>Antes que cante o galo, três vezes me terás negado.</example>
        <example>Lady Danbury é uma das minhas queridinhas desde que a conheci na série Os Bridgertons e aqui me peguei apaixonada por Malcom, seu gato, também.</example>
        <example>Depois eu parto, mas então me dou conta que esqueci minha mochila em sua casa.</example>
        <example>Eu quase me tornei carpinteiro.</example>
        <example>Quanto mais você fala, menos lhe dão ouvidos.</example>
        <example>Alguma vez te sentiste enganado?</example>
        <example>Alguma vez te sentiste traído por um amigo?</example>
        <example>Então lhe foi dirigida esta palavra do Senhor: "Não será esse o herdeiro, mas alguém saído do teu sangue."</example>
        <example>Eu quase me matei há três anos.</example>
    </antipattern>
    <!-- MARCOAGPINTO 2022-08-28 (Checked/Enhanced) (25-JUL-2022+) *END* -->

    <!-- MARCOAGPINTO 2022-08-30 (Checked/Enhanced) (25-JUL-2022+) *START* -->
    <antipattern>
        <token postag='SENT_START' postag_regexp='no'/>
        <token postag='V.+' postag_regexp='yes'/>
        <token postag='SPS00' postag_regexp='no'/>
        <token regexp='yes'>&pronomes_obliquos_pt_pt;</token>
        <token postag='VMN0000' postag_regexp='no'/>
        <example>Pare de me pedir um drinque! Vá e pegue um você mesmo.</example>
        <example>Acabei de te encaminhar no seu email!</example>
        <example>Gostaria de lhe dar um presente pelo seu aniversário.</example>
        <example>Gostava de te dar um conselho.</example>
        <example>Gostava de me sentir amada apenas num olhar.</example>
        <example>É pra te pedir que não tenha medo de mim.</example>
        <example>Gostaria de te beijar.</example>
        <example>Gostaria de te ver antes de partir.</example>
        <example>Gostaria de lhe dizer uma coisa.</example>
        <example>Gostaria de lhes agradecer do fundo do meu coração por toda a sua ajuda.</example>
        <example>Gostaria de lhes agradecer pela cooperação.</example>
        <example>Obrigada por me fazer este favor.</example>
        <example>Pare de me bater!</example>
        <example>Tenho de lhe dizer algo muito importante.</example>
        <example>Passando pra te desejar uma ótima semana e dizer que tem postagem nova lá.</example>
        <example>Prazer em te conhecer.</example>
        <example>Antes de me confessar, o padre perguntou-me: "Quais são seus pescados?"</example>
    </antipattern>
    <!-- MARCOAGPINTO 2022-08-30 (Checked/Enhanced) (25-JUL-2022+) *END* -->

    <!-- MARCOAGPINTO 2022-09-06 (Checked/Enhanced) (25-JUL-2022+) *START* -->
    <antipattern>
        <token postag='CS|RG' postag_regexp='yes'/>
        <token postag='DA.+|SPS00:DA.+' postag_regexp='yes'/>
        <token postag='NC.+|AQ.+|NP.+' postag_regexp='yes'/>
        <token regexp='yes'>&pronomes_obliquos_pt_pt;</token>
        <token postag='V.+' postag_regexp='yes'>
            <exception scope='next' postag_regexp='yes' postag='RG|SPS00|RM'/> <!-- Can't add "CC" here as it removes "e", the CC must be added below as words. -->
            <exception scope='next' regexp='yes'>para|tão</exception>
        </token>
        <example>Parece que foi ontem, mas na verdade a gente se viu há quase 10 anos.</example>
        <example>Mas o mesmo não aconteceu quando mudamos em 04, a esposa que o Senhor me deu e o bebê no ventre dela, para uma cidade na Região do Lagos.</example>
        <example>Eu estava dirigindo a cento e vinte quilômetros por hora quando a polícia me parou.</example>
        <example>Saiba que se você foi convidada como madrinha, é porque os noivos te consideram especial.</example>
        <example>Deixo que a vida me carregue, como o vento carrega uma folha seca.</example>
        <example>Espero que as coisas te vão bem.</example>
        <example>Fiquei muito feliz ao saber que a vida me dera uma segunda chance.</example>
        <example>Espero que gostem e que nos comentários me contem qual dos 5 conjuntos é mais a vossa cara!</example>
        <example>O espaço de experimentação que a universidade lhe permitiu foi fundamental.</example>
        <example>Quando a vida lhe dá os limões, faça uma limonada.</example>
        <example>Ele sempre dá o que os filhos lhe pedem.</example>
        <example>Faz uma semana que a gente se encontrou.</example>
    </antipattern>
    <!-- MARCOAGPINTO 2022-09-06 (Checked/Enhanced) (25-JUL-2022+) *END* -->

    <!-- MARCOAGPINTO 2022-09-06 (Checked/Enhanced) (25-JUL-2022+) *START* -->
    <antipattern>
        <token postag='DI.+|SPS00:DI.+' postag_regexp='yes'>
            <exception postag_regexp='yes' postag='Z0.+'/>
        </token>
        <token postag='NC.+|AQ.+|NP.+' postag_regexp='yes'/>
        <token regexp='yes'>&pronomes_obliquos_pt_pt;</token>
        <token postag='V.+' postag_regexp='yes'/>
        <token postag='_PUNCT|SPS00|VMN0000|VMG0000|[DP][ADIPR].+|SPS00:[DP][ADIPR].+' postag_regexp='yes'>
            <exception postag_regexp='no' postag='CC'/> 
            <exception regexp='no'>por</exception>
        </token>
        <example>A educação nesse mundo me decepciona.</example>
        <example>A poucos dias me deparei com a trilogia dos irmãos Angelis.</example>
        <example>No decorrer do episódio, quando a guerra era iminente e clara, cada grupo se preparou da sua maneira.</example>
        <example>Entretanto tal procedimento se tornou a rotina de sua vida monástica.</example>
        <example>Alguns colegas me viram dando chocolate a ele.</example>
        <example>Certa mulher lhe telefonou?</example>
        <example>Ele é muito crédulo: até nas coisas mais incríveis que as pessoas menos confiáveis lhe contam ele logo acredita.</example>
        <example>Muitos outros lugares se deixaram seduzir por vantagens momentâneas e viraram depósito de resíduos do progresso.</example>
        <example>Com toda simpatia nos fez rir de nossas mazelas e dengos.</example>
        <example>Por algum motivo me perguntam isso.</example>
        <example>Muitos anos se passaram desde esse tempo, e muito mal nos atingiu.</example>
        <example>Cada erro me fortaleceu.</example>
        <example>Poucas coisas nos dão tanto prazer quanto a música.</example>
        <example>Já por várias vezes vos falei dela, Alteza.</example>
        <example>Todo mundo me ama.</example>
        <example>E um outro dia se foi.</example>
        <example>Muitos cidadãos se juntaram ao exército.</example>
    </antipattern>
    <!-- MARCOAGPINTO 2022-09-06 (Checked/Enhanced) (25-JUL-2022+) *END* -->

    <!-- MARCOAGPINTO 2022-09-26 (Checked/Enhanced) (25-JUL-2022+) *START* -->
    <antipattern>
        <token postag='SPS00' postag_regexp='no'/>
        <token regexp='yes'>&pronomes_obliquos_pt_pt;</token>
        <token postag='V.+' postag_regexp='yes'>
            <exception postag_regexp='yes' postag='NC.+|AQ.+|NP.+'/>
        </token>
        <token postag='CS' postag_regexp='no'/>
        <example>Mas sentimos em lhe dizer que nem sempre o uso da vírgula entre o sujeito e o predicado está errado.</example>
        <example>Eu gasto metade do meu salário pra me sentir como você deve se sentir escovando os dentes.</example>
        <example>É o desespero aconchegante.E as almofadas de várias cores pra me dizer que pode dar certo.</example>
        <example>Não se esqueça de me avisar quando chegar a hora!</example>
        <example>Não tem de me dizer se não quiser.</example>
        <example>Quantas vezes vou ter de te explicar que aqui é tudo ao contrário!</example>
        <example>Não se preocupe em me entender pois há vezes que nem eu me entendo.</example>
    </antipattern>
    <!-- MARCOAGPINTO 2022-09-26 (Checked/Enhanced) (25-JUL-2022+) *END* -->

    <!-- MARCOAGPINTO 2022-10-24 (Checked/Enhanced) (25-JUL-2022+) *START* -->
    <antipattern>
        <token postag='RG' postag_regexp='no'/>
        <token regexp='yes'>&pronomes_obliquos_pt_pt;</token>
        <token postag='V.+' postag_regexp='yes'>
            <exception postag_regexp='yes' postag='NC.+|AQ.+|NP.+|VMG0000|VMIP1S0'/>
        </token>
        <token postag='VMN0000' postag_regexp='no'/>
        <example>Agora falando sério, o episódio 21 quase me fez chorar de rir.</example>
        <example>A atualização de hoje me fez resolver testar esse tema novo do WordPress.</example>
        <example>Com os clientes, comportavam-se como astutos cortesãos, e quase todos os dias me faziam lembrar o Polônio, de Shakespeare.</example>
        <example>Você também me fez chorar.</example>
        <example>Os baixos preços de compra das lavouras do Estado também lhe permitiram financiar a industrialização.</example>
    </antipattern>
    <!-- MARCOAGPINTO 2022-10-24 (Checked/Enhanced) (25-JUL-2022+) *END* -->

    <!-- MARCOAGPINTO 2022-10-24 (Checked/Enhanced) (25-JUL-2022+) *START* -->
    <antipattern>
        <token postag='PP.+' postag_regexp='yes'>
            <exception postag_regexp='no' postag='CC'/>
        </token>
        <token regexp='yes'>&pronomes_obliquos_pt_pt;
        <exception postag_regexp='yes' postag='PD.+'/>
    </token>
    <token postag='V.+' postag_regexp='yes'>
        <exception postag_regexp='yes' postag='NC.+|AQ.+|NP.+|VMG0000|VMIP1S0'/>
    </token>
    <token min="0" max="1" postag='_PUNCT' postag_regexp='no'/>
    <token postag='CS|SPS00' postag_regexp='yes'>
        <exception scope="next" postag_regexp='yes' postag='DP.+'/>
    </token>
    <example>Ela se move como uma rainha e mostra que traz consigo o ritmo no sangue.</example>
    <example>Ele nos disse para começarmos de uma vez por todas.</example>
    <example>Eu me liguei a ele por meio de uma estreita amizade.</example>
    <example>Ele se beneficiou com a chuva.</example>
    <example>Ele me implorou para ficar.</example>
    <example>Ele me perguntou até onde ir.</example>
    <example>Ele se casou com Ann no mês passado.</example>
    <example>Ele se interessa por várias coisas.</example>
    <example>Ele me prometeu que viria às quatro.</example>
    <example>Ele se enfureceu com ela.</example>
    <example>Queríamos falar com o presidente sobre a empresa, mas ele se recusou a falar conosco.</example>
    <example>Eu me reconciliei com a minha tia antes que ela morresse.</example>
</antipattern>
<!-- MARCOAGPINTO 2022-10-24 (Checked/Enhanced) (25-JUL-2022+) *END* -->

<!-- MARCOAGPINTO 2022-10-24 (Checked/Enhanced) (25-JUL-2022+) *START* -->
<!-- "também" (RG) works with all sentences (no false positives, although kind of hardcoded. -->
<antipattern>
    <token regexp='no'>também</token>
    <token regexp='yes'>&pronomes_obliquos_pt_pt;</token>
    <token postag='V.+' postag_regexp='yes'/>
    <example>Também me tornei parceira da Thaylane e estou ansiosa para ler os livros dela.</example>
    <example>Além das ricas informações que lí neste blog, também me deparei com um dos os motivos que fizeram o ser humano estar em Guerra por tantos anos.</example>
    <example>Também me entreguei a ela, tal como as milhares de pessoas que lá estavam.</example>
    <example>Eu também te amo.</example>
    <example>Também lhe oferecia batatinhas fritas?</example>
    <example>As recomendações que recebeu da maçonaria do Amazonas também lhe renderam bons contatos e ainda mais dinheiro.</example>
    <example>Ademais, esse desenvolvimento mais visceral com os coringas também me chama a atenção.</example>
    <example>Também te dou um abraço se um dia a vir por aí.</example>
    <example>Eu também me senti um pouco perdida quando engravidei pela primeira vez.</example>
    <example>Tom também me esconde algo.</example>
</antipattern>
<!-- MARCOAGPINTO 2022-10-24 (Checked/Enhanced) (25-JUL-2022+) *END* -->

<!-- MARCOAGPINTO 2022-11-01 (Checked/Enhanced) (25-JUL-2022+) *START* -->
<antipattern>
    <token postag='SPS00' postag_regexp="no"/>
    <token regexp='yes'>&pronomes_obliquos_pt_pt;</token>
    <token postag='V.+' postag_regexp="yes"/>
    <token postag='SPS00|CC|CS|RG|I|RM|RN' postag_regexp="yes"/>
    <example>Então, a pergunta é: Será que a forma como usas o dinheiro está a impedir Deus de te abençoar com mais?</example>
    <example>Colocarei a mesa antes de me sentar para jantar.</example>
    <example>Ela foi gentil o bastante a ponto de me acompanhar até a estação.</example>
    <example>Obrigado Leonardo por me ajudar a pensar diferente.</example>
    <example>Estou surpreso de te ver aqui.</example>
    <example>Não se esqueça de me ligar assim que você chegar lá.</example>
    <example>Estou muito feliz de te encontrar hoje.</example>
    <example>Sou sua esposa e gosto de me ver bem para agradá-lo.</example>
    <example>Pai, não se esqueça de me chamar cedo amanhã, que tenho prova!</example>
    <example>a Mãe é que sabe: Isto acabou de me acontecer e vim a chorar para casa.</example>
    <example>Ao invés de estar por aí caçando qualquer mala na rua pra te esquecer ou para me esquecer.</example>
    <example>Independente de lhe agradar ou não você deve fazê-lo.</example>
    <example>Você pode vir à minha festa, mas tem de me dar algo.</example>
</antipattern>
<!-- MARCOAGPINTO 2022-11-01 (Checked/Enhanced) (25-JUL-2022+) *END* -->

<!-- MARCOAGPINTO 2022-11-18 (Checked/Enhanced) (25-JUL-2022+) *START* -->
<antipattern>
    <token postag='SPS00' postag_regexp="no"/>
    <token postag='PP.+' postag_regexp="yes"/>
    <token regexp='yes'>&pronomes_obliquos_pt_pt;
    <exception regexp='no'>se</exception>
</token>
<token postag='V.+' postag_regexp="yes"/>
<token postag='SPS00|CC|CS|RG|I|RN|V.+' postag_regexp="yes"/>
<example>Cobri-me com o manto da vossa maternal proteção, pois a Vós me consagro hoje e para sempre.</example>
<example>Pena que ainda nao consigo dar a ele o peso que ele pede!!</example>
<example>A faca estava tão cega, que eu não pude cortar com ela a carne e tive de usar meu canivete.</example>
<example>As chances de você me assustar com suas frívolas ameaças de processo são nulas.</example>
<example>Queremos falar com você a respeito de um problema.</example>
<example>Eu queria falar com vocês a respeito de uma coisa.</example>
<example>Quero nesse momento falar com você a respeito de Tom.</example>
<example>Breve vai-se ter de pedir a eles a esmola de um pão de cevada.</example>
<example>Através do jogo da memória eu ensino a ela o significado de palavras simples.</example>
<example>Por que a mãe de vocês os proibiu de ir à festa?</example>
<example>temos de agradecer ao Encontros a Dois em Portugal por ele nos ter posto os dois no mesmo caminho.</example>
<example>Mostro a ele o projeto concluído do novo estatuto.</example>
<example>André Lucas, meu tesouro, minha razão de viver. Vales pra mim mais que o ouro, Deus em ti me fazes ver.</example>
        </antipattern>
        <!-- MARCOAGPINTO 2022-11-18 (Checked/Enhanced) (25-JUL-2022+) *END* -->

        <!-- MARCOAGPINTO 2022-12-04 (Checked/Enhanced) (25-JUL-2022+) *START* -->
        <antipattern>
            <token>
                <exception regexp='yes'>&pronomes_obliquos_pt_pt;</exception>
                <exception postag_regexp='yes' postag='V.+'/>
            </token>
            <token postag='V.+' postag_regexp='yes'>
                <exception postag_regexp='no' postag='RN'/>
            </token>
            <token postag='SPS00' postag_regexp='no'/>
            <token regexp='yes'>&pronomes_obliquos_pt_pt;</token>
            <token postag='V.+' postag_regexp='yes'/>
            <example>Ele acabara de lhe frustrar as esperanças.</example>
            <example>Não deixes de me visitar, um destes dias.</example>
            <example>Não esqueça de me ligar.</example>
            <example>Se arranjar um tempinho, não deixe de me escrever dizendo como está passando.</example>
            <example>Só mais uma vez eu tenho de te beijar!</example>
            <example>Eu sonhava em me tornar piloto de corrida.</example>
            <example>Eu gostaria de me trocar.</example>
        </antipattern>
        <!-- MARCOAGPINTO 2022-12-04 (Checked/Enhanced) (25-JUL-2022+) *END* -->

        <antipattern>
            <token postag='V.+' postag_regexp='yes'/>
            <token regexp="yes">a|o|as|os|se|nos|nas|mas</token>
            <example>Certamente o capacete lhe salvou a vida.</example>
        </antipattern>        
        <!-- MARCOAGPINTO 2022-12-30 (Checked/Enhanced) (25-JUL-2022+) *START* -->
        <antipattern>
            <token postag='DA.+' postag_regexp='yes'>
                <exception scope="previous" postag_regexp='yes' postag='SENT_START|_PUNCT|RG'/>
            </token>
            <token min="1" max="2" postag='NC.+|AQ.+|NP.+' postag_regexp='yes'/>
            <token regexp='yes'>&pronomes_obliquos_pt_pt;
            <exception regexp='no'>se</exception>
        </token>
        <token postag='V.+' postag_regexp='yes'/>
        <token postag='SPS00' postag_regexp='no'></token>
        <example>Não vou chorar mais pelo que o ano me trouxe de menos bom.</example>
        <example>Obrigado por me explicar finalmente por que as pessoas me tomam por um idiota.</example>
        <example>Que o Universo lhe envolva em plena felicidade e perfeita harmonia!</example>
        <example>Quanto é que o político te pagou para que o retratassem no teu muro?</example>
        <example>Jamais passou pela minha cabeça machucá-lo, mas as circunstâncias me levaram a fazê-lo.</example>
        <example>Eu tenho medo de não fazer as pessoas me entenderem em inglês.</example>
        <example>Nós simplesmente não podemos ignorar o que o Tom nos disse para fazer.</example>
    </antipattern>
    <!-- MARCOAGPINTO 2022-12-30 (Checked/Enhanced) (25-JUL-2022+) *END* -->

    <!-- MARCOAGPINTO 2023-01-01 (Checked/Enhanced) (25-JUL-2022+) *START* -->
    <antipattern>
        <token postag='NC.+|AQ.+|NP.+' postag_regexp='yes'/>
        <token postag='SPS00' postag_regexp='no'/>
        <token regexp='yes'>&pronomes_obliquos_pt_pt;
        <exception regexp='no'>se</exception>
    </token>
    <token postag='V.+' postag_regexp='yes'/>
    <token postag='DA.+|SPS00:DA.+|[DP][ADIPR].+|SPS00:[DP][ADIPR].+' postag_regexp='yes'>
        <exception scope="next" postag_regexp='no' postag='VMIP3S0'/> <!-- "Se alguém tiver alguma informação sobre os convocados me avisa." -->
    </token>
    <example>Você tem esse jeitinho de me estragar o dia quando acordo bem disposta.</example>
    <example>Ele teve a bondade de me mostrar o caminho.</example>
    <example>Ficarei feliz em te ajudar a qualquer hora.</example>
    <example>Tom é incapaz de me dizer o que fazer.</example>
    <example>Não tem pressa em me devolver o livro.</example>
    <example>Espero ter a chance de lhe retribuir o favor que você fez para mim.</example>
    <example>Estou ansioso por te encontrar na próxima vez que visitar sua cidade.</example>
    <example>Eu tinha medo de me perder no escuro.</example>
    <example>Não fui capaz de me lembrar do endereço dela.</example>
    <example>Eu espero que eu tenha uma chance de te ver na próxima vez que eu estiver em Nova Iorque.</example>
    <example>Estou perdendo rápidamente a minha habilidade de me imergir nas atividades que gosto.</example>
    <example>Eu não tive a intenção de te passar tal impressão.</example>
    <example>Eu ficarei feliz em te ajudar qualquer hora dessas.</example>
    <example>Você acaba de me fazer muito feliz em me dizer isso, de verdade!</example>
    <example>Poderia fazer a gentileza de me explicar?</example>
    <example>Apesar de eu não usar mais esses sapatos, não tenho coragem de me livrar deles.</example>
    <example>Não tenho outro jeito de me livrar dessa infelicidade.</example>
</antipattern>
<!-- MARCOAGPINTO 2023-01-01 (Checked/Enhanced) (25-JUL-2022+) *END* -->

<!-- MARCOAGPINTO 2023-01-24 + 2023-01-31 (Checked/Enhanced) (25-JUL-2022+) *START* -->
<antipattern>
    <token postag='DI.+|SPS00:DI.+|V.+' postag_regexp='yes'/>
    <token min="1" max="2" postag='NC.+|AQ.+|NP.+|RG' postag_regexp='yes'/>
    <token postag='SPS00' postag_regexp='no'/>
    <token regexp='yes'>&pronomes_obliquos_pt_pt;</token>
    <token postag='VMN0000|VMN0.+' postag_regexp='yes'/>
    <example>Perdoem-me a linguagem, mas não vejo outra forma de me exprimir.</example>
    <example>...saltos aos bolsos dos que ainda neles creem,o fazem entrando na poitica,que também é uma maneira de me roubar!!Safados!</example>
    <example>Você pode bloquear um usuário de lhe enviar mensagens privadas usando as regras de mensagem dentro de seu Painel de Controle do Usuário.</example>
    <example>Eu queria agradecer a uma pessoa por me valorizar, apoiar-me ao invés de me criticar.</example>
    <example>Eu sou incapaz de me manter calmo.</example>
    <example>Fiquei maravilhado até pelo simples facto de te ter encontrado.</example>
    <example>Passei aqui pra te dizer gratidão pelas suas partilhas.</example>
    <example>Preciso refletir antes de lhe responder.</example>
</antipattern>
<!-- MARCOAGPINTO 2023-01-24 + 2023-01-31 (Checked/Enhanced) (25-JUL-2022+) *END* -->

<!-- MARCOAGPINTO 2023-01-31 (Checked/Enhanced) (25-JUL-2022+) *START* -->
<antipattern>
    <token postag='SENT_START|_PUNCT' postag_regexp='yes'/>
    <token min="1" max="2" postag='RN|PP.+' postag_regexp='yes'>
        <exception scope="previous" postag_regexp='yes' postag='dddddddddddV.+'/>
    </token>
    <token postag='V.+' postag_regexp='yes'/>
    <token>se</token>
    <token postag='V.+' postag_regexp='yes'/>		  
    <example>Partilhei o link do vídeo no Skype, não sei se reparou.</example>
    <example>Não sei se virá.</example>
    <example>Não sei se poderei bancar o alto custo da reforma.</example>
    <example>Ele será certamente deportado se for encontrado.</example>
    <example>Não sei se choverá ou não amanhã.</example>
    <example>Eu não sei se entraria em contacto com ela.</example>
</antipattern>
<!-- MARCOAGPINTO 2023-01-31 (Checked/Enhanced) (25-JUL-2022+) *END* -->

<!-- MARCOAGPINTO 2023-02-01 (Checked/Enhanced) (25-JUL-2022+) *START* -->
<!--
    Notice that this rule set is just to remove false suggestions such as: "te darei" to "darei-te" (instead of "dar-te-ei").
    The complex suggestion of verbs such as "dar-te-ei" is done in another rule.

    The RM postag does seem to remove right.
-->
<antipattern>
    <token postag='NP.+|NC.+|AQ.+|PP.+|RM|PD.+|SPS00:PD.+|CC' postag_regexp='yes'/>
    <token min="0" max="1" postag='_PUNCT' postag_regexp='no'/>
    <token regexp='yes'>&pronomes_obliquos_pt_pt;</token>
    <token postag='VMI[CF].+|RG|CC' postag_regexp='yes'/>
    <example>Ela o fará em 24 horas.</example>
    <example>Eu te darei esse livro.</example>
    <example>Você se sentirá melhor.</example>
    <example>Os corações dos assistentes se abrirão para receber a palavra.</example>
    <example>Eu te farei feliz.</example>
    <example>A verdade te libertará.</example>
    <example>Tu o farias?</example>
    <example>Vós o encontrareis em casa.</example>
    <example>Um dia me esquecerás.</example>
    <example>Isso possivelmente me agradaria.</example>
    <example>Se eu tivesse que escolher, seguramente te descartaria.</example>
    <example>Isso possivelmente me agradaria.</example>
    <example>Se eu ficar rico, te darei dinheiro.</example>
    <example>Ao chegar à estação, te ligarei.</example>
    <example>Se descobrirmos algo novo, te avisaremos.</example>
    <example>Um dia desses te levarei ao zoológico.</example>
    <example>Uma segunda vitória dessa me esmagaria!</example>
    <example>Isto vos servirá de lição.</example>
    <example>Como diz o provérbio, “Diga-me com quem anda e te direi quem és!”.</example>
    <example>Amanhã entrarei em contato com Tom e lhe pedirei que nos dê uma mão.</example>
    <example>Não tenho certeza se tenho tempo o bastante para te ajudar.</example>
    <example>... só quer pôr-vos à prova. Ele quer que o temor de Deus, estando sempre presente em vossos corações, vos livre de pecar.</example>
    <!-- Shouldn't match, as 'quer' here is clearly a verb but not a conditional or future. -->
    <!-- <example>Você os quer de que jeito?</example> -->
    <!-- <example>Você me quer?</example> -->
    <!-- <example>O Tom te quer muito.</example> -->
</antipattern>
<antipattern>
    <token postag='SENT_START|_PUNCT|CS|CC' postag_regexp='yes'/>
    <token postag='NP.+|NC.+|AQ.+|PP.+|RM|PD.+|SPS00:PD.+|CC' postag_regexp='yes'/>
    <token postag='VMI[CF].+' postag_regexp='yes'/>
    <token regexp='yes'>&pronomes_obliquos_pt_pt;</token>
    <token postag='V.+|DA.+|SPS00:DA.+|DI.+|SPS00:DI.+' postag_regexp='yes'/>
    <example>Se eu soubesse disso, eu teria lhe contado.</example>
    <example>Você poderia me levar ao hospital, por favor?</example>
    <example>Ele estará te esperando.</example>
    <example>Estou com uns projetos em mente, e necessitarei me afastar por um tempinho, mas logo votarei, tá?</example>
    <example>Amanhã irei te ver.</example>
    <example>Chova ou faça sol, eu virei te encontrar na estação.</example>
    <example>Será que vocês poderiam me ajudar?</example>
    <example>Será que você poderia me dizer se há uma agência de correios nesta área?</example>
    <example>Como eu poderia te confortar?</example>
    <example>Você acha que ela poderia me ensinar francês?</example>
    <example>Tom sabe que eu irei te ligar.</example>
    <example>O ideal é se descobrir a gravidez procurar um médico especialista no assunto e este irá lhe recomendar os remédios certos para a gravidez.</example>
    <example>Desculpe, mas você poderia me esclarecer o significado desta frase?</example>
    <example>Eu darei lhe o dinheiro amanhã.</example>
</antipattern>
<antipattern>
    <token postag='SENT_START|_PUNCT|CS|CC' postag_regexp='yes'/>
    <token min="0" max="2" postag='V.+|RG' postag_regexp='yes'/>
    <token regexp='yes'>&pronomes_obliquos_pt_pt;</token>
    <token postag='VMI[CF].+' postag_regexp='yes'/>
    <example>Te levarei ao hospital.</example>
    <example>Vos telefonarei dentro de uma semana.</example>
    <example>Te acharei, Charley.</example>
    <example>Me vingarei dele.</example>
    <example>Me encontrarei contigo na estação.</example>
    <example>Como arrumares a cama, assim te deitarás.</example>
    <example>Porque com o juízo com que julgais, sereis julgados; e com a medida com que medis vos medirão a vós.</example>
    <example>Você não é meu amigo, senão me compreenderia.</example>
</antipattern>
<!-- MARCOAGPINTO 2023-02-01 (Checked/Enhanced) (25-JUL-2022+) *END* -->

<!-- MARCOAGPINTO 2023-02-08 (Checked/Enhanced) (25-JUL-2022+) *START* -->
<antipattern>
    <token postag='SENT_START|_PUNCT' postag_regexp='yes'/>
    <token postag='CC|SPS00|CS|RG|(SPS00:)?D[AI].+' postag_regexp='yes'/>
    <token>se</token>
    <token postag='V.+' postag_regexp='yes'/>
    <example>A entrada tem um custo de 5€, mas se comprar um livro esse valor será descontado.</example>
    <example>Feliz quem te mencionou, e procurou o teu bel-prazer, e se humilhou diante de ti, e se segurou firmemente à corda do teu amor.</example>
    <example>A religião antiga não sumiu por decreto, e se manteve viva entre a raia miúda dos camponeses.</example>
    <example>E se fizermos uma pausa?</example>
    <example>Estes se casaram com mulheres moabitas: uma se chamava Orfa, e a outra, Rute. E ali moraram por quase dez anos.</example>
</antipattern>
<!-- MARCOAGPINTO 2023-02-08 (Checked/Enhanced) (25-JUL-2022+) *END* -->

<!-- MARCOAGPINTO 2023-02-08/09 (Checked/Enhanced) (25-JUL-2022+) *START* -->
<antipattern>
    <token postag='SPS00|CC|CS|RG|V.+|RN' postag_regexp='yes'/>
    <token min="1" max="2" postag='(SPS00:)?D[AIP].+|RM|V.+|SPS00' postag_regexp='yes'/>
    <token min="0" max="4" postag='NC.+|AQ.+|NP.+' postag_regexp='yes'/>
    <token>se</token>
    <token postag='V.+' postag_regexp='yes'/>
    <example>Colin ficou apaixonado e os dois se tornaram inseparáveis.</example>
    <example>Desta forma a Proteção e a Prevenção se complementam, usando este conceito as chances de um acidente diminuem e seu bloqueio é mais efetivo.</example>
    <example>O que acontecerá com o Tom se for achado culpado?</example>
    <example>O Tom e a Mary se tornaram grandes amigos.</example>
    <example>O Tom e a Mary se beijaram novamente.</example>
    <example>Em ambas Portugal se manteve neutro e a Inglaterra participante ativo.</example>
    <example>Ouvi dizer que o Tom se casou com uma mulher rica.</example>
    <example>Vocês dizem que o domingo se iniciou com Constantino no século IV.</example>
    <example>Como o Facebook se tornou tão famoso?</example>
    <example>Ela e sua família se dão maravilhosamente.</example>
    <example>Nem todos os professores se comportam assim.</example>
    <example>Faz três anos que a minha irmã se casou.</example>
    <example>Veja que os meus filhos se comportam bem na escola.</example>
    <example>Foi naquela noite que os nossos olhos se encontraram pela primeira vez.</example>
    <example>Acho que os nossos caminhos se separam agora.</example>
    <example>... diretor Daniel Ribeiro procura evitar cenas clichês sobre homossexualismo, deixando os sentimentos se desenvolverem naturalmente e sem pressa.</example>
    <example>Ficarei muito feliz se puder servi-lo.</example>
    <example>Corrija minha ortografia se estiver errada.</example>
    <example>Parece que as portas do céu se abriram para mim.</example>
    <example>Isso só é possível se formos um!</example>
    <example>Tu, que te julgas humano e só gostas de beber água se for de um copo.</example>
    <example>Enquanto os canhões são fabricados, já jornalistas, porta-vozes, até poetas chauvinistas se põem em ação para criar um sentimento comum.</example>
    <example>Dinheiro é como adubo, só tem utilidade se for espalhado.</example>
    <example>A Mary pode falar francês se quiser.</example>
    <example>O que seria de nós se estourasse uma guerra?></example>
    <example>Você está com problemas se comeu aquele bolo!</example>
    <example>Você vai ficar com remorso se fizer isso com ele.</example>
    <example>Levante a mão se tiver alguma pergunta.</example>
    <example>Foi lamentavelmente já neste contexto que o senhor presidente da República se amesendou na sua casa de Cascais por ter recebido em Belém, uns dias antes da deserção, uns miúdos de Felguei...</example>
    <example>Não tenho certeza se conseguimos atender suas expectativas.</example>
    <example>Não tenho certeza se quero dar isto ao Tom.</example>
    <example>Não tenho certeza se é amor.</example>
    <example>Não tenho certeza se concordo com você.</example>
    <example>Ela o xingou por se atrasar.</example>
    <example>Isto é o melhor a se fazer.</example>
</antipattern>
<!-- MARCOAGPINTO 2023-02-08/09 (Checked/Enhanced) (25-JUL-2022+) *END* -->

<!-- MARCOAGPINTO 2023-02-12 (Checked/Enhanced) (25-JUL-2022+) *START* -->
<antipattern>
    <token postag='SPS00' postag_regexp='no'/>
    <token postag='(SPS00:)?PP.+|VMN0000|NC.+|NP.+|AQ.+' postag_regexp='yes'/>
    <token min="0" max="1" postag='_PUNCT' postag_regexp='no'/>
    <token postag='CC' postag_regexp='no'>
        <exception postag_regexp='yes' postag='PP.+'/> <!-- "mas" -->
    </token>
    <token regexp='yes'>&pronomes_obliquos_pt_pt;</token>
    <token postag='V.+' postag_regexp='yes'/>
    <token postag='_PUNCT|SPS00|CS|NC.+|NP.+|AQ.+' postag_regexp='yes'/>
    <example>Enquanto falavam sobre isso, o próprio Jesus apresentou-se entre eles e lhes disse: "Paz seja com vocês! "</example>
    <example>Depois que meu sexto negócio fracassou, meus amigos e familiares zombaram de mim e me chutaram sem piedade, quando eu estava deprimido.</example>
    <example>Esta Jerusalém eleva agora a sua voz para vós e vos implora socorro.</example>
    <example>Além disso, fazer uma visita periódica à filial da UBC mais próxima de você e nos deixar cientes das gravações de que você participa e das músicas novas que você compõe.</example>
    <example>...rcereiro não se preocupava com nada do que estava a cargo de José, porque o Senhor estava com ele e lhe concedia bom êxito em tudo o que empreendia.</example>
    <example>Sopa no termo que coloco em pratos e lhes dou enquanto estão sentadinhos à chinês debaixo do chapéu ou no toldo.</example>
    <example>Não há como saber se os outros animais estão com as vacinas em dia ou se estão com alguma doença.</example>
    <example>Seu único interesse agora é aproveitar o tempo que tem para brincar e se divertir.</example>
    <example>Eu vi um esfregão cheio de pelos e me inspirei nele.</example>
    <example>Meu primo recebeu o chamado de Deus e se tornou padre.</example>
    <example>Aconselhamos a ir prevenido ou ligar antes na rodoviária de embarque e se informar.</example>
</antipattern>
<!-- MARCOAGPINTO 2023-02-12 (Checked/Enhanced) (25-JUL-2022+) *END* -->

<!-- MARCOAGPINTO 2023-02-14 (Checked/Enhanced) (25-JUL-2022+) *START* -->
<antipattern>
    <token postag='SPS00:DA.+' postag_regexp='yes'/>
    <token min="1" max="2" postag='NC.+|NP.+|AQ.+' postag_regexp='yes'/>
    <token regexp='yes'>&pronomes_obliquos_pt_pt;</token>
    <token postag='V.+' postag_regexp='yes'/>
    <token postag='CC|_PUNCT|SPS00:D[AI].+|CS|Z0.+' postag_regexp='yes'>
        <exception scope="next" postag_regexp='yes' postag='V.+|PP.+|DP.+'/>
    </token>
    <example>Todos no prédio se dirigiram para as saídas ao mesmo tempo.</example>
    <example>Porém, antes disso, todas as sextas-feiras os alunos da educação infantil se reúnem para o momento da “Contação de histórias”.</example>
    <example>Todos no prédio se dirigiram para as saídas ao mesmo tempo.</example>
    <example>Os donos da casa me receberam para uma vistoria antes da venda do imóvel.</example>
    <example>Sua completa ignorância em relação ao acidente me surpreendeu.</example>
    <example>As reuniões no gabinete do prefeito se incorporaram às histórias contadas na Cracolândia a respeito do surgimento do DBA.</example>
    <example>Pode ser que os sermões do pastor te chateiem, mas eles são moralmente instrutivos.</example>
    <example>Toda vez que ligo na Regional me informam que ainda não foi chamado ninguém pra essa área.</example>
    <example>O zumbido das abelhas me deixa um pouco nervosa.</example>
    <example>Confesso que a cadeira do dentista me mete um pouco de medo.</example>
    <example>Ver nuvens vermelhas ao pôr do sol me dá uma profunda tristeza.</example>
    <example>Os últimos raios do sol se refletem na superfície do mar infinito.</example>
    <example>Várias das principais atrações da cidade se aglomeram no denominado centro histórico, Patrimônio da Humanidade pela UNESCO.</example>
    <example>O modo que ele se pendura do teto lhe dá uma aparência ameaçadora, como uma aranha.</example>
</antipattern>
<!-- MARCOAGPINTO 2023-02-14 (Checked/Enhanced) (25-JUL-2022+) *END* -->

<!--
    TO DO - 2023-01-31:
    THE ANTIPATTERNS BELOW CODED BY ME ARE OLD AND NEED TO BE REWRITTEN.

    I WILL DO IT SLOWLY.
-->

<!-- MARCOAGPINTO 2021-04-30 + 2021-05-01 + 2021-05-04 (17-MAR-2021+) *START* -->
<!--
    E se estamos em modo de edição no campo.
    Eu não sei se tenho tempo para isso.
    Não sei se devo aceitar ou recusar.
    Me pergunto se teríamos algum problema com a empresa.
    Nem todos os professores se comportam assim.
    John e Mary se conhecem desde 1976.
    Em dias quentes os mantimentos se estragam mais rápido.
    Os sonhos se tornam realidade.
    Não sei se é um bug ou não, mas este software não está funcionando direito.
    Eles se falam bastante, por telefone e pessoalmente.
    Não é possível você se perder em grandes cidades, pois há mapas por toda parte.
    Eu não gosto quando matemáticos que sabem muito mais do que eu não conseguem se expressar explicitamente.
    Antigamente eles se comunicavam com sinais de fumaça.
    Eu não sabia se queria ir à universidade.
    Perguntei-lhe se podia ler seu livro.
    Eles se odiavam.
-->
<!--
    <antipattern>
    <token/>
    <token>se</token>
    <token postag='VM..[12].+|VM.[0CFIP][123].+' postag_regexp='yes'>
    <exception postag_regexp='yes' postag='VM.[^0CFIP]3.+|VMM02S0'/>
    </token>
    <token/>
    </antipattern>
-->
    <!-- MARCOAGPINTO 2021-04-30 + 2021-05-01 + 2021-05-04 (17-MAR-2021+) *END* -->

    <antipattern>
        <token>de</token>
        <token regexp='yes'>forma|jeito|modo</token>
        <token regexp='yes' skip='-1'>(?:algum|nenhum)a?
        <exception scope='next' postag='V.+' postag_regexp='yes'/>
        <exception scope='next' regexp='yes'>[,;—]|\(</exception></token>
    <token regexp='yes' min='0'>&pronomes_retos_pt_pt;</token>
    <token regexp='yes'>&pronomes_nao_ambiguos_pt_pt;|&pronomes_ambiguos_pt_pt;</token>
    <token postag='V.+' postag_regexp='yes'/>
</antipattern>
<antipattern>
    <token regexp='yes' skip='-1'>&negacoes;
    <exception scope='next' postag='V.+' postag_regexp='yes'/>
    <exception scope='next' regexp='yes'>[,;—]|\(</exception></token>
<token regexp='yes' min='0'>&pronomes_retos_pt_pt;</token>
<token regexp='yes'>&pronomes_nao_ambiguos_pt_pt;|&pronomes_ambiguos_pt_pt;</token>
<token postag='V.+' postag_regexp='yes'/>
      </antipattern>
      <antipattern>
          <token regexp='yes'>nenhu[mn]a?s?|tod[ao]s?|tudo|nada|pouc[ao]s?|muit[ao]s?|algo<!-- TODO Review algu[mn]a?s? --></token>
          <token regexp='yes' min='0'>&pronomes_retos_pt_pt;</token>
          <token regexp='yes'>&pronomes_nao_ambiguos_pt_pt;|&pronomes_ambiguos_pt_pt;</token>
          <token postag='V.+' postag_regexp='yes'/>
      </antipattern>
      <antipattern>
          <token regexp='yes' skip='-1'>&introduz_proclise_pt_pt;
          <exception scope='next' postag='V.+' postag_regexp='yes'/>
          <exception scope='next' regexp='yes'>[,;—]|\(</exception></token>
      <token regexp='yes' min='0'>&pronomes_retos_pt_pt;</token>
      <token regexp='yes'>&pronomes_nao_ambiguos_pt_pt;|&pronomes_ambiguos_pt_pt;</token>
      <token postag='V.+' postag_regexp='yes'/>
  </antipattern>
  <antipattern>
      <token regexp='yes' skip='-1'>só|ora|quer<!-- TODO Review ou -->
          <exception scope='next' postag='V.+' postag_regexp='yes'/>
          <exception scope='next' regexp='yes'>[,;—]|\(</exception></token>
      <token regexp='yes' min='0'>&pronomes_retos_pt_pt;</token>
      <token regexp='yes'>&pronomes_nao_ambiguos_pt_pt;|&pronomes_ambiguos_pt_pt;</token>
      <token postag='V.+' postag_regexp='yes'/>
  </antipattern>

  <!-- This rule is just a clone of the one below, with changes to fix false positives MARCOAGPINTO 2021-04-21 (17-MAR-2021+) -->
  <rule>
      <antipattern>
          <token regexp='yes'>nenhu[mn]a?s?</token>
          <token postag_regexp='yes' postag='N.+'/><!-- TODO min='0' after better disambiguation -->
          <token postag_regexp='yes' postag='V.[^N].+'>
              <exception regexp='yes'>mortos?</exception></token>
          <token regexp='yes' spacebefore='no'>&hifen;</token>
          <token regexp='yes'>me|te|se|lhe|nos|vos|lhes</token>
      </antipattern>
      <antipattern>
          <token negate_pos="yes" postag_regexp='yes' postag='PD.+|PP.+|CC|NP.+|Z0.+'/>
          <token regexp='yes'>me|te|se|lhe|nos|vos|lhes</token>
          <token postag='V.[PG].*' postag_regexp='yes'/>
      </antipattern>
      <antipattern>
          <token postag_regexp='yes' postag='NP.+|NC.+|AQ0.+'/>
          <token regexp='yes'>me|te|se|lhe|nos|vos|lhes</token>
          <token postag='VMN0000|VMII.+' postag_regexp='yes'/>
      </antipattern>
      <antipattern>
          <token>se</token>
          <token regexp='yes'>for(em)?</token>
          <example>Os estudos avançam e se for superior ao estimado, recuam.</example>
          <example>Se for pelos Correios pode demorar de 20 a 60 dias e se for por Courrier de 10 a 15 dias.</example>
          <example>Quanto ao período,é indeterminado e pode variar conforme o motivo do uso mas se for para fins anti aging, é a longo prazo.</example>
          <example>Repita isso se for homem!</example>
          <example>Só fale comigo se for estritamente necessário.</example>
          <example>Não quero machucar o Tom, mas vou fazê-lo se for preciso.</example>
      </antipattern>
      <pattern>
          <token postag='V.+|PD.+|PP.+|CC|NP.+|Z0.+|NC.+|AQ0.+' postag_regexp='yes'>
              <exception regexp='yes'>como|para|casa|nada</exception>
              <exception postag='VM[NG].+|VMM0.+|VMIS.+' postag_regexp='yes'/>
          </token>
          <marker>
              <token regexp='yes'>me|te|se|lhe|nos|vos|lhes</token>
              <token postag='V.+' postag_regexp='yes'>
                  <exception postag='VMSI.+|VMM0.+|NC.+|AQ0.+' postag_regexp='yes'/>
              </token>
          </marker>
          <token><exception postag_regexp="yes" postag="SPS00.."/><exception regexp="yes">a|o|as|os|se|nos|nas|mas</exception></token>
          <!--NOTE DO NOT INCLUDE a,o,as,os,se,nos,nas,mas. They produce too many
          false positives (Determinants & Contractions)  -->
      </pattern>
      <message>Forma hifenizada. Será que quis dizer:</message>
      <suggestion>\3-\2</suggestion>
      <example correction='dar-te'>Eu vou <marker>te dar</marker> um laptop.</example>
      <example>Ela pode ter-me visto na festa.</example>
      <example>Todos se admiram da sua perseverança.</example>
      <example>Foi então que algo me persuadiu a continuar.</example>
      <example>Quem lhe contou essa notícia?</example>
      <example>Só te tirei o brinquedo, porque te portaste mal</example>
      <example>Nenhum lugar te recorda daquelas férias?</example>
      <example>Ele foi se deitar.</example>
  </rule>

  <rule>
      <antipattern>
          <token regexp='yes'>nenhu[mn]a?s?</token>
          <token postag_regexp='yes' postag='N.+'/><!-- TODO min='0' after better disambiguation -->
          <token postag_regexp='yes' postag='V.[^N].+'>
              <exception regexp='yes'>mortos?</exception></token>
          <token regexp='yes' spacebefore='no'>&hifen;</token>
          <token regexp='yes'>me|te|se|lhe|nos|vos|lhes</token>
      </antipattern>
      <antipattern>
          <token regexp='yes'>&pronomes_nao_ambiguos_pt_pt;</token>
          <token postag='V.[PG].*' postag_regexp='yes'/>
      </antipattern>
      <pattern>
          <token postag='V.+' postag_regexp='yes'>
              <exception regexp='yes'>como|para|casa|nada</exception></token>
          <token regexp='yes'>&pronomes_nao_ambiguos_pt_pt;</token>
          <token postag='V.+' postag_regexp='yes'/>
          <!--NOTE DO NOT INCLUDE a,o,as,os,se,nos,nas,mas. They produce too many
          false positives (Determinants & Contractions)  -->
      </pattern>
      <message>Forma hifenizada. Será que quis dizer:</message>
      <suggestion>\1-\2 \3</suggestion>
      <suggestion>\1 \3-\2</suggestion>
      <example correction='vou-te dar|vou dar-te'>Eu <marker>vou te dar</marker> um laptop.</example>
      <example>Ela pode ter-me visto na festa.</example>
      <example>Todos se admiram da sua perseverança.</example>
      <example>Foi então que algo me persuadiu a continuar.</example>
      <example>Quem lhe contou essa notícia?</example>
      <example>Só te tirei o brinquedo, porque te portaste mal</example>
      <example>Nenhum lugar te recorda daquelas férias?</example>
  </rule>

  <rule>
      <antipattern>
          <token regexp='yes'>-|–</token>
          <token regexp='yes'>&pronomes_nao_ambiguos_pt_pt;</token>
      </antipattern>
      <antipattern>
          <token regexp='yes'>nenhu[mn]a?s?</token>
          <token postag_regexp='yes' postag='N.+'/>
          <token regexp='yes'>&pronomes_nao_ambiguos_pt_pt;</token>
          <token postag_regexp='yes' postag='V.[^N].+'/>
      </antipattern>
      <antipattern>
          <token regexp='yes'>&pronomes_nao_ambiguos_pt_pt;</token>
          <token postag='V.[PG].*' postag_regexp='yes'/>
      </antipattern>
      <pattern>
          <token regexp='yes'>&pronomes_nao_ambiguos_pt_pt;
          <exception scope='previous'>Deus</exception></token>
      <token postag='V.+' postag_regexp='yes'>
          <exception regexp='yes'>mortos?</exception></token>
          <!--NOTE DO NOT INCLUDE a,o,as,os,se,nos,nas,mas. They produce too many
          false positives (Determinants & Contractions)  -->
  </pattern>
  <message>Forma hifenizada. Será que quis dizer:</message>
  <suggestion>\2-<match no='1' case_conversion="startlower"/></suggestion>
  <example correction='dou-te'>Eu <marker>te dou</marker> um laptop.</example>
  <example correction='dou-te'><marker>Te dou</marker> um laptop.</example><!-- XXX changing the behaviour of the second token effects also the first token. This is Ok, since this error is caught by a second rule. -->
  <example correction='ver-te'>Foi muito bom <marker>te ver</marker> de novo.</example>
  <example>Ela pode ter-me visto na festa.</example>
  <example>Todos se admiram da sua perseverança.</example>
  <example>Foi então que algo me persuadiu a continuar.</example>
  <example>Quem lhe contou essa notícia?</example>
  <example>Só te tirei o brinquedo, porque te portaste mal</example>
  <example>Nenhum lugar te recorda daquelas férias?</example>
  <example>...que eu vos peça expressamente...</example>
  <example>Deus me livre!</example>
      </rule>

      <rule>
          <pattern>
              <token postag='V.+' postag_regexp='yes'>
                  <exception regexp='yes'>como|para|casa|nada|mortos?</exception></token>
              <token regexp='yes'>&pronomes_nao_ambiguos_pt_pt;</token>
              <!--NOTE DO NOT INCLUDE a,o,as,os,se,nos,nas,mas. They produce too many
              false positives (Determinants & Contractions)  -->
          </pattern>
          <message>Forma hifenizada. Será que quis dizer:</message>
          <suggestion>\1-\2</suggestion>
          <example correction='dar-me'>Isto vai <marker>dar me</marker> muitas dores de cabeça.</example>
          <example correction='estava-me'>Eu <marker>estava me</marker> perguntando se você ia aparecer hoje.</example>
          <example correction='ter-me'>Muito obrigado por <marker>ter me</marker> convidado.</example>
      </rule>

      <rule>
          <antipattern>
              <token regexp='yes'>&pronomes_retos_pt_pt;</token>
              <token regexp='yes'>[ao]s?</token>
              <token postag='V.+' postag_regexp='yes' regexp='yes'>.+[rsz]$</token>
          </antipattern>
          <antipattern>
              <token regexp='yes'>&pronomes_retos_pt_pt;</token>
              <token regexp='yes'>[ao]s?</token>
              <token postag='V.+' postag_regexp='yes' regexp='yes'>.+(?:am|ão|õe)$</token>
          </antipattern>
          <!-- MARCOAGPINTO 2020-07-26 (2-JUL-2020+) *START* -->
          <!-- "O Rui suscitando em nós o poder criador." -->
          <!-- "O Rui suscitando em nós a força criadora." -->
          <!-- "O Rui suscitando em nós os poderes criadores." -->
          <!-- "O Rui suscitando em nós as forças criadoras." -->
          <!-- "Entre elas as chamadas 16 regras do esperanto." -->
          <!-- "Os vícios da mocidade, entre eles as drogas e as bebidas." -->
          <!-- "Havia vários cursos de água em Xangai, entre eles o rio Zhaojia." -->
          <antipattern>
              <token regexp='yes'>em|entre|por</token>
              <token regexp='yes'>&pronomes_retos_pt_pt;|mim|ti|si</token>
              <token regexp='yes'>m[aeo]s?|t[aeo]s?|s[aeo]|lh[aeo]s?|[ao]s?|[nv]os</token>
              <token postag='V.+|AQ0[CFM][SP]0|NC[CFM][SP]000|NP[CFM][SP][0GS]00' postag_regexp='yes'/>
              <token negate="yes" regexp='yes'>nas?|nos?|em|pelos?|pelas?|como|tal|tais</token>
              <!--		  <token postag='AQ0[CFM][SP]0|NC[CFM][SP]000|Z0CN0|VMIP2S0|VMIP3S0|VMM02S0|NP[CFM][SP][0GS]00' postag_regexp='yes'/> -->
          </antipattern>
          <!-- MARCOAGPINTO 2020-07-26 (2-JUL-2020+) *END* -->
          <pattern>
              <token regexp='yes'>&pronomes_retos_pt_pt;</token>
              <token regexp='yes'>m[aeo]s?|t[aeo]s?|s[aeo]|lh[aeo]s?|[ao]s?|[nv]os</token>
              <token postag='V.+' postag_regexp='yes'/>
          </pattern>
          <message>Forma hifenizada. Será que quis dizer:</message>
          <suggestion>\1 \3-\2</suggestion>
          <example correction='Eu convido-o'><marker>Eu o convido</marker> para a inauguração.</example>
          <example correction='Ele esmera-se'><marker>Ele se esmera</marker> na apresentação.</example>
          <example correction="Eu amo-o"><marker>Eu o amo</marker> mais que tudo.</example>
          <example>O Rui suscitando em nós o poder criador.</example>
          <example>O Rui suscitando em nós a força criadora.</example>
          <example>O Rui suscitando em nós os poderes criadores.</example>
          <example>O Rui suscitando em nós as forças criadoras.</example>
          <example>Entre elas as chamadas 16 regras do esperanto.</example>
          <example>Os vícios da mocidade, entre eles as drogas e as bebidas.</example>
          <example>Havia vários cursos de água em Xangai, entre eles o rio Zhaojia.</example>
      </rule>
      <rule>
          <antipattern>
              <token>de</token>
              <token regexp='yes'>forma|jeito|modo</token>
              <token regexp='yes' skip='-1'>(?:algum|nenhum)a?
              <exception scope='next' regexp='yes'>[,;—]|\(</exception></token>
          <token regexp='yes'>&pronomes_retos_pt_pt;</token>
          <token regexp='yes'>[ao]s?</token>
      </antipattern>
      <antipattern>
          <token regexp='yes' skip='-1'>&negacoes;|&introduz_proclise_pt_pt;
          <exception scope='next' regexp='yes'>[,;—]|\(</exception></token>
      <token regexp='yes'>&pronomes_retos_pt_pt;</token>
      <token regexp='yes'>[ao]s?</token>
  </antipattern>
  <antipattern>
      <token inflected='yes'>dar</token>
      <token>por</token>
      <token regexp='yes'>&pronomes_retos_pt_pt;|mim|ti|si</token>
      <token>a</token>
  </antipattern>
  <antipattern>
      <token>a</token>
      <token postag='VMN0000'/>
  </antipattern>
  <!-- MARCOAGPINTO 2020-07-26 (2-JUL-2020+) *START* -->
  <!-- "O Rui suscitando em nós o poder criador." -->
  <!-- "O Rui suscitando em nós a força criadora." -->
  <!-- "O Rui suscitando em nós os poderes criadores." -->
  <!-- "O Rui suscitando em nós as forças criadoras." -->
  <!-- "Entre elas as chamadas 16 regras do esperanto." -->
  <!-- "Os vícios da mocidade, entre eles as drogas e as bebidas." -->
  <!-- "Havia vários cursos de água em Xangai, entre eles o rio Zhaojia." -->
  <antipattern>
      <token regexp='yes'>em|entre|por</token>
      <token regexp='yes'>&pronomes_retos_pt_pt;|mim|ti|si</token>
      <token regexp='yes'>m[aeo]s?|t[aeo]s?|s[aeo]|lh[aeo]s?|[ao]s?|[nv]os</token>
      <token postag='V.+|AQ0[CFM][SP]0|NC[CFM][SP]000|NP[CFM][SP][0GS]00' postag_regexp='yes'/>
      <token negate="yes" regexp='yes'>nas?|nos?|em|pelos?|pelas?|como|tal|tais</token>
      <!--		  <token postag='AQ0[CFM][SP]0|NC[CFM][SP]000|Z0CN0|VMIP2S0|VMIP3S0|VMM02S0|NP[CFM][SP][0GS]00' postag_regexp='yes'/> -->
  </antipattern>
  <!-- MARCOAGPINTO 2020-07-26 (2-JUL-2020+) *END* -->
  <pattern>
      <token regexp='yes'>&pronomes_retos_pt_pt;</token>
      <token regexp='yes'>[ao]s?</token>
      <token postag='V.+' postag_regexp='yes' regexp='yes'>.+[rsz]$</token>
  </pattern>
  <message>Forma hifenizada. Será que quis dizer:</message>
  <suggestion>\1 <match no='3' regexp_match='(.+).$' regexp_replace='$1'/>-l\2</suggestion>
  <suggestion>\1 <match no='3' regexp_match='(.+).$' regexp_replace='$1'/>-l\2</suggestion>
  <example correction='Nós convidamo-lo'><marker>Nós o convidamos</marker> para a inauguração.</example>
  <example>De modo algum <marker>nós o convidamos</marker> para a inauguração.</example>
  <example correction='Ela fa-las'><marker>Ela as faz</marker> manualmente.</example>
  <example>Demos por nós a extinguir o fogo.</example>
  <example>Entregue o aval hoje, para ser ela a fechar o negócio.</example>
  <example correction='nós recebemo-las'>...atribuem-se por meio de transmissão genética; <marker>nós as recebemos</marker> pelos genes, que herdamos de nossos pais.</example>
  <example>O Rui suscitando em nós o poder criador.</example>
  <example>O Rui suscitando em nós a força criadora.</example>
  <example>O Rui suscitando em nós os poderes criadores.</example>
  <example>O Rui suscitando em nós as forças criadoras.</example>
  <example>Entre elas as chamadas 16 regras do esperanto.</example>
  <example>Os vícios da mocidade, entre eles as drogas e as bebidas.</example>
  <example>Havia vários cursos de água em Xangai, entre eles o rio Zhaojia.</example>
      </rule>

      <rule>
          <antipattern>
              <token>de</token>
              <token regexp='yes'>forma|jeito|modo</token>
              <token regexp='yes' skip='-1'>(?:algum|nenhum)a?
              <exception scope='next' regexp='yes'>[,;—]|\(</exception></token>
          <token regexp='yes'>&pronomes_retos_pt_pt;</token>
          <token regexp='yes'>[ao]s?</token>
      </antipattern>
      <antipattern>
          <token regexp='yes' skip='-1'>&negacoes;|&introduz_proclise_pt_pt;
          <exception scope='next' regexp='yes'>[,;—]|\(</exception></token>
      <token regexp='yes'>&pronomes_retos_pt_pt;</token>
      <token regexp='yes'>[ao]s?</token>
  </antipattern>
  <pattern>
      <token regexp='yes'>&pronomes_retos_pt_pt;</token>
      <token regexp='yes'>[ao]s?</token>
      <token postag='V.+' postag_regexp='yes' regexp='yes'>.+(?:am|ão|õe)$</token>
  </pattern>
  <message>Forma hifenizada. Será que quis dizer:</message>
  <suggestion>\1 \3-n\2</suggestion>
  <example correction='Eles convidaram-no'><marker>Eles o convidaram</marker> para a inauguração.</example>
  <example>De forma alguma <marker>eles o convidaram</marker> para a inauguração.</example>
  <example correction='Ela põe-nas'><marker>Ela as põe</marker> na mesa.</example>
      </rule>
  </rulegroup>


  <!-- LHE(S)/TE/VOS + VERB verb-lhe(s)/me/te/vos -->
  <rule id='VERBO_PRONOME_PESSOAL_VERB' name="[pt-PT] Pron. Pessoal + Verbo → Verbo + - + Pron. Pessoal">
      <!-- Created by Marco A.G.Pinto, Portuguese rule 2022-09-19 (Checked/Enhanced) (25-JUL-2022+) -->
      <!--
          Lhe amo muito. → Amo-lhe muito.
          Te vejo amanhã na biblioteca. → Vejo-te amanhã na biblioteca.
          Te vejo por aí. → Vejo-te por aí.
          Me manda uma foto sua, por favor. → Manda-me uma foto sua, por favor.
      -->
      <antipattern>
          <token regexp='yes'>n[ao]s?</token>
          <token postag='VMIP1S0' postag_regexp='no'/>
          <token postag='[DP][ADIPR].+|SPS00:[DP][ADIPR].+|SPS00|CC|CS|RG|I|RM|RN|NC.+|AQ.+|V.+' postag_regexp='yes'/>
          <example>no sitio da minha cunhada coloquei um roteador 3g da vivo, funcionava muito bem, foi só o pessoal da vivo fa...</example>
          <example>No vasto pélago, a nadar, eis vão surgindo aqui e além, alguns sobreviventes, enquanto armas de heróis, quad...</example>
          <example>No curto prazo, Stalin quer fornecer à população como bodes expiatórios para as dificuldades diárias, recusa...</example>
          <example>No inicio realizou-se na Praça D. Pedro IV, depois passou para a Avenida da Liberdade e, actualmente, realiza...</example>
      </antipattern>

      <antipattern>
          <token regexp='yes'>n[ao]s?</token>
          <token postag='VMIP3S0' postag_regexp='no'/>
          <token postag='V.+|_PUNCT|CS|RG|SPS00' postag_regexp='yes'>
              <exception postag_regexp='no' postag='VMN0000'/>
          </token>
          <example>Na sequencia será servido o porco, feijão “diablito” e Santa María de Anis, de Leonor Espinosa.</example>
          <example>Na sequencia, o comercial e os seus desdobramentos desconstroem a ideia de que as Havaianas foram feitas apenas ...</example>
          <example>Na pratica, os muçulmanos nos consideram todos infiéis e caso não se convertam devem morrer.</example>
          <example>Na SEMEIA – Secretaria Municipal de Meio Ambiente.</example>
          <example>No Opera, as teclas são Shift + Escape + número.</example>
          <example>Nos USA quando foi publicada em 2010 ganhou a medalha de ouro em nova ciência e cosmologia e em novembro de...</example>
          <example>Na clausula de garantias – com relação ao penhor rural agrícola (Cana de açúcar) – período agrícola do ano safr...</example>
      </antipattern>

      <pattern>
          <token postag='SENT_START'/>
          <marker>
              <token regexp='yes'>&pronomes_obliquos_sem_a_as_o_os_pt_pt;
              <exception regexp='no'>se</exception>
          </token>
          <token postag='VMIP[13]S0|VMM02S0' postag_regexp='yes'>
              <exception postag_regexp='yes' postag='NP.+|[DP][ADIPR].+|SPS00:[DP][ADIPR].+'/>
          </token>
      </marker>
  </pattern>
  <message>Substitua por <suggestion><match no='3' case_conversion='startupper'/>-<match no="2" case_conversion="alllower"/></suggestion>.</message>
  <example correction="Amo-lhes"><marker>Lhes amo</marker> muito.</example>
  <example>Vejo-te amanhã na biblioteca.</example>
  <example>Vejo-te por aí.</example>
  <example>Manda-me uma foto sua, por favor.</example>
    </rule>

    <rule id="ZERO_MEDIDA_SINGULAR" name="[pt-PT] Concordância de número: 'zero grau'">
        <!-- Created by Tiago F. Santos, Portuguese rule, 2017-09-23 -->

        <!-- MARCOAGPINTO 2022-09-21 (Checked/Enhanced) (25-JUL-2022+) *START* -->
        <antipattern>
            <token>zero</token>
            <token>player</token>
            <token>game</token>
            <example>O Jogo da Vida de John Conway é também conhecido por “zero player game”.</example>
        </antipattern>

        <antipattern>
            <token>zero</token>
            <token postag='NC.+|AQ.+' postag_regexp='yes'/>
            <token postag='CC|_PUNCT' postag_regexp='yes'/>
            <token postag='NC.+|AQ.+' postag_regexp='yes'/>
            <example>...procuradas pelos adeptos das dietas Paleo e Baixo Carbo pois apresentam baixo teor de carboidratos, zero glúten e boas quantidades de proteínas!</example>
            <example>BENEFÍCIOS: Zero glúten, elaborado com waxy maize e farinha de arroz, alto teor proteico, pode ser consumido com opções sal...</example>
            <example>BENEFÍCIOS: pronto para o consumo, zero sódio, açúcar e calorias, efetiva o emagrecimento.</example>
        </antipattern>

        <antipattern>
            <token>zero</token>
            <token regexp='yes'>&meses_ano_abrev;|&meses_ano;|&dias_semana_abrev;|&dias_semana;|&partes_do_dia;</token>
            <token postag='VMP00S.+' postag_regexp='yes'/>
            <example>A temperatura ficou abaixo de zero noite passada.</example>
        </antipattern> 
        <!-- MARCOAGPINTO 2022-09-21 (Checked/Enhanced) (25-JUL-2022+) *END* -->

        <pattern>
            <token>zero</token>
            <token postag='(?:N..|A...)S.+' postag_regexp='yes'>
                <exception postag='(?:N..|A...)S.+' postag_regexp='yes' negate_pos='yes'/>
                <exception regexp="yes">absoluto|kelvin|nulo</exception> <!-- "perto do zero ABSOLUTO/KELVIN/NULO" MARCOAGPINTO 2022-09-21 (25-JUL-2022+) -->
                <exception postag='VMP00S.+' postag_regexp='yes'/> <!-- "perto do zero CONHECIDO" MARCOAGPINTO 2022-09-21 (25-JUL-2022+) -->
            </token>
        </pattern>
        <message>Em Português Europeu medidas com zero escrevem-se no plural.</message>
        <suggestion>\1 <match no="2" postag="(N..|A...)S(.+)" postag_replace='$1P$2' postag_regexp="yes"/></suggestion>
        <url>https://ciberduvidas.iscte-iul.pt/consultorio/perguntas/zero-graus--zero-grau/15274</url>
        <example correction="zero graus">Lá fora estão <marker>zero grau</marker>.</example>
        <example>Assim, com a divisão de valores mais próximos do zero, o resultado será o zero absoluto.</example>
        <example>Teoricamente, ao cessar a agitação térmica das moléculas a pressão é nula, e atinge-se o zero absoluto.</example>
    </rule>
    <rule id='DAÍ' name="[pt-PT] Contração: de aí">
        <!-- Created by Marco A.G. Pinto, Portuguese rule -->
        <pattern>
            <marker>
                <token postag="VMN0000"/>
                <token>daí</token>
            </marker>
            <token postag="VMN0000"/>
        </pattern>
        <message>Será que quis dizer <suggestion>\1 de aí</suggestion>?</message>
        <example correction="partir de aí">A <marker>partir daí</marker> deduzir o que fazer.</example>
    </rule>

    <!-- TROCAS-TE trocaste -->
    <rulegroup id='HIFEN_INTRUSIVO' name="[pt-PT] Verbo com hífen intrusivo">
        <!--      Created by Marco A.G.Pinto, Portuguese rule 2021-03-30 + 2021-03-31 + 2021-05-31 (17-MAR-2021+)      -->
        <rule>
            <!--
                Hoje trocas-te de computador? → Hoje trocaste de computador?
                Hoje andas-te a cantar? → Hoje andaste a cantar?
                Hoje andas-te à procura da chave? → Hoje andaste à procura da chave?

            -->
            <pattern>
                <marker>
                    <token postag='VMIP2S0:PP2CSO00'/>
                </marker>
                <token postag='SPS.+|PD0FS.+|PP3FSA.+' postag_regexp='yes'/>
                <token postag='AQ0.+|NC.+|V.+|DD.+' postag_regexp='yes'/>
            </pattern>
            <message>Caso se trate de uma forma do pretérito perfeito, escreve-se sem hífen.</message>
            <suggestion><match no="1" postag_regexp="yes" postag="V.+" postag_replace="VMIS2S0"/></suggestion>
            <example correction="trocaste">Hoje <marker>trocas-te</marker> de computador?</example>
            <example>Hoje andaste a cantar?</example>
            <example>Hoje andaste à procura da chave?</example>
        </rule>

        <rule>
            <!--
                Tu também ficas te com essa canção.
            -->
            <pattern>
                <marker>
                    <token postag='VMIP2S0'/>
                    <token spacebefore='yes'>te</token>
                </marker>
                <token postag='SPS.+|PD0FS.+|PP3FSA.+' postag_regexp='yes'/>
                <token postag='AQ0.+|NC.+|V.+|DD.+' postag_regexp='yes'/>
            </pattern>
            <message>Caso se trate de uma forma do pretérito perfeito, escreve-se unido.</message>
            <suggestion>\1\2</suggestion>
            <example correction="ficaste">Tu também <marker>ficas te</marker> com essa canção.</example>
        </rule>

    </rulegroup>

    <rulegroup id='REFLEXIVO_CONJUNTIVO' name='[pt-PT] Confusão de Tempo Verbal: Conjuntivo - Reflexivo' default='off'><!-- XXX rethink rule. too many false positives -->
        <!-- Created by Tiago F. Santos, 2017-08-25 -->
        <url>https://ciberduvidas.iscte-iul.pt/consultorio/perguntas/as-formas-verbais-com-sse-ou-com--se/11603</url>
        <rule>
            <pattern>
                <token postag='SENT_START' skip='-1'>
                    <exception scope='next' regexp='yes'>&separadores_de_oracoes;</exception>
                    <exception scope='next' regexp='yes'>&introduz_conjuntivo;</exception>
                </token>
                <marker>
                    <token postag_regexp='yes' postag='VMSI.+' regexp='yes'>.+sse
                        <exception negate_pos='yes' postag_regexp='yes' postag='VMSI.+'/>
                    </token>
                </marker>
            </pattern>
            <message>O conjuntivo é utilizado em condicionais ('se...'). Será que pretende utilizar a forma reflexiva?</message>
            <suggestion><match no='2' regexp_match='(.+)sse' regexp_replace='$1-se'/></suggestion>
            <example correction='chega-se'>Ela <marker>chegasse</marker> mais perto, a cada palavra.</example>
        </rule>
        <rule>
            <pattern>
                <token regexp='yes' skip='-1'>&separadores_de_oracoes;
                    <exception scope='next' regexp='yes'>&separadores_de_oracoes;</exception>
                    <exception scope='next' regexp='yes'>&introduz_conjuntivo;</exception>
                </token>
                <marker>
                    <token postag_regexp='yes' postag='VMSI.+' regexp='yes'>.+sse
                        <exception negate_pos='yes' postag_regexp='yes' postag='VMSI.+'/>
                    </token>
                </marker>
            </pattern>
            <message>O conjuntivo é utilizado em condicionais ('se...'). Será que pretende utilizar a forma reflexiva?</message>
            <suggestion><match no='2' regexp_match='(.+)sse' regexp_replace='$1-se'/></suggestion>
            <example correction='chega-se'>A cada palavra, ela <marker>chegasse</marker> mais perto.</example>
        </rule>
        <rule>
            <pattern>
                <token skip='-1' postag_regexp='yes' postag='C.+' regexp='yes'>se|embora
                    <exception scope='next' regexp='yes'>&separadores_de_oracoes;</exception>
                </token>
                <marker>
                    <token postag_regexp='yes' postag='V.+:PP3CNO00'/>
                </marker>
            </pattern>
            <message>O conjuntivo no pretérito imperfeito é utilizado em orações condicionais. Considere se esta não é uma dessas situações.</message>
            <suggestion><match no="2" postag_regexp="yes" postag="V.+" postag_replace="VMSI3S0"/></suggestion>
            <example correction='lavasse'>Se <marker>lava-se</marker> os pratos, é que era bom.</example>
            <example correction='trabalhasse'>Embora Tchecov  <marker>trabalha-se</marker> como médico, enriqueceu a sua escrita com…</example>
        </rule>
    </rulegroup>
</category>


<category id="CONTRACTIONS_PT_PT" name="[pt-PT] Contrações">


    <rulegroup type='grammar' id="CONTRAÇÕES_2_PT_PT" name="[pt-PT] Contrações" default='on'>
        <!-- Created by Tiago F. Santos, Portuguese rule, 2016-10-31 -->
        <!-- XXX Default off to avoid alarm fatigue. Reactivate when there is a color code/custom highlight system working on LibreOffice -->
        <url>https://pt.wiktionary.org/wiki/Ap%C3%AAndice:Combina%C3%A7%C3%B5es_e_contra%C3%A7%C3%B5es_do_portugu%C3%AAs</url>
        <antipattern>
            <token regexp='yes'>antes|apesar|capacidade|depois|expec?tativas?|facto|objec?tivo|possibilidade|risco|intenção</token>
            <token>de</token>
        </antipattern>
        <antipattern>
            <token regexp='yes'>aos?</token>
            <token regexp='yes'>pontos?</token>
            <token>de</token>
        </antipattern>
        <antipattern>
            <token inflected='yes'>chamar</token>
            <token>de</token>
        </antipattern>
        <antipattern>
            <token inflected='yes'>ser</token>
            <token>tempo</token>
            <token>de</token>
        </antipattern>

        <rule id='CONTRAÇÃO_DOUTREM_PT_PT' name='[pt-PT][Contração] De outro/outrem → doutro/doutrem' default='off'>
            <pattern>
                <token>de</token>
                <token case_sensitive="yes" regexp='yes'>outrem|outr[ao]s?</token>
            </pattern>
            <message>Pode também dizer <suggestion>d\2</suggestion>.</message>
            <example correction='doutrem'><marker>de outrem</marker>.</example>
            <example correction='doutro'><marker>de outro</marker>.</example>
            <example correction='doutros'><marker>de outros</marker>.</example>
            <example correction='doutra'><marker>de outra</marker>.</example>
            <example correction='doutras'><marker>de outras</marker>.</example>
        </rule>

        <rule id='CONTRAÇÃO_DUM2_PT_PT' name='[pt-PT][Contração] De um(a)(s)/uns → dum(a)(s)/duns' default='off'>
            <pattern>
                <marker>
                    <token>de</token>
                    <token case_sensitive="yes" regexp='yes'>uma?s?|uns</token>
                </marker>
                <token postag='(?:N|A).+' postag_regexp='yes'>
                    <exception negate_pos='yes' postag='(?:N|A).+' postag_regexp='yes'/></token>
            </pattern>
            <message>Pode também dizer <suggestion>d\2</suggestion>.</message>
            <example correction='dum'><marker>de um</marker> calmo dia.</example>
            <example correction='duma'><marker>de uma</marker> bonita manhã.</example>
            <example correction='dumas'><marker>de umas</marker> laranjas verdes.</example>
            <example correction='duns'><marker>de uns</marker> rios.</example>
        </rule>

        <rule id='CONTRAÇÃO_EM_UM_NUM_PT_PT' name='[pt-PT][Contração] Em um(a) → num(a)' default='on'>
            <!-- MARCOAGPINTO 2023-02-03 (Checked/Enhanced) (25-JUL-2022+) *START* -->
            <antipattern>
                <token regexp="no">em</token>
                <token regexp="yes">uma?s?|uns</token>
                <token regexp='yes'>&expressoes_de_tempo_simples;</token>	  
                <example>Isto aconteceu em um ano apenas.</example>
                <example>Quantos dias há em uma semana? - Em uma semana há sete dias.</example>
                <example>Estou de saída, mas volto em uma hora.</example>
                <example>Ela será capaz de nadar em uma semana.</example>
                <example>A avião pousará em uma hora.</example>
                <example>Em uns segundos, sua foto estará pronta.</example>
            </antipattern>
            <!-- MARCOAGPINTO 2023-02-03 (Checked/Enhanced) (25-JUL-2022+) *END* -->

            <pattern>
                <marker>
                    <token>em</token>
                    <token case_sensitive="yes" regexp='yes'>uma?s?|uns</token>
                </marker>
                <token min='0' max='2' postag='(?:N|A).+' postag_regexp='yes'>
                    <exception negate_pos='yes' postag='(?:N|A).+' postag_regexp='yes'/></token>
            </pattern>
            <message>Pode também dizer <suggestion>n\2</suggestion>.</message>
            <example correction='num'><marker>em um</marker> belo dia.</example>
            <example correction='numa'><marker>em uma</marker> bonita manhã.</example>
            <example correction='numas'><marker>em umas</marker> laranjas verdes.</example>
            <example correction='nuns'><marker>em uns</marker> rios.</example>
            <example type='correct'>Isto aconteceu <marker>em um ano</marker> apenas.</example>
        </rule>
    </rulegroup>


    <rulegroup id='O_FACTO_DA_AÇÃO' name="[pt-PT] Contração: expressão invariável com contração (p.ex. o facto da/de a)" default='off'>
        <url>https://ciberduvidas.iscte-iul.pt/consultorio/perguntas/preposicao-seguida-de-artigo-definido-sem-contracao/32586</url>
        <!-- Created by Marco A.G. Pinto, Portuguese rule -->
        <rule>

            <!-- MARCOAGPINTO 2022-09-09 (Checked/Enhanced) (25-JUL-2022+) *START* -->
            <!-- It has no hits in 600 000 sentences, it just removes one false positive in my thesis -->
            <antipattern>
                <token postag='AQ..+|NC.+' postag_regexp='yes'/>
                <token regexp='yes'>d[ao]s?</token>
                <token postag='[DP][ADIPR].+|SPS00:[DP][ADIPR].+' postag_regexp='yes'/>
                <example>E assim reforçando a necessidade do nosso estudo.</example>
            </antipattern>
            <!-- MARCOAGPINTO 2022-09-09 (Checked/Enhanced) (25-JUL-2022+) *END* -->
            <antipattern>
                <token regexp='yes'>&expressao_invariavel_com_DE;</token>
                <token skip='-1' regexp='yes'>d[ao]s?</token>
                <token postag='SPS00|C.+' postag_regexp='yes'/>
                <token postag_regexp='yes' postag='VMN.+'/>
                <example>Isto reafirma a necessidade da existência da nossa equação para fazer face às necessidades científicas.</example>
            </antipattern>
            <pattern>
                <marker>
                    <token regexp='yes'>&expressao_invariavel_com_DE;</token>
                    <token skip='-1' regexp='yes'>d[ao]s?
                    <exception scope='next' postag='_PUNCT|V.[^N].+' postag_regexp='yes'/></token>
            </marker>
            <token postag_regexp='yes' postag='VMN.+'/>
        </pattern>
        <message>Nesta expressão não deve utilizar a contração.</message>
        <suggestion>\1 de <match no='2' regexp_match='d(.+)' regexp_replace='$1'/></suggestion>
        <example correction="facto de a">Ter em conta o <marker>facto da</marker> aluna não saber.</example>
        <example correction="facto de as">Ter em conta o <marker>facto das</marker> alunas não saberem.</example>
        <example correction="facto de o">Ter em conta o <marker>facto do</marker> aluno não saber.</example>
        <example correction="facto de os">Ter em conta o <marker>facto dos</marker> alunos não saberem.</example>
        <example>Esta é a intenção da senhora.</example>
        <example>…Tancredo Neves, morto antes da posse, sendo substituído pelo seu vice…</example>
        <example><marker>Muito antes da</marker> chegada de Cristóvão Colombo à América.</example>
        <example>O problema resultou de a secção de contabilidade ter enviado o NIB errado.</example>
        <example>Preocupa-me o facto de ele não estar preocupado.</example>
        <example>O cão pôs-se a rosnar pouco antes de uma rapariga ter aparecido.</example>
        <example>O problema está em o homem não querer pagar impostos.</example>
        <example>Esperou por o João chegar.</example>
        <example>Depois das várias aplicações que tem sido instaladas para impedir malware…</example>
    </rule>
</rulegroup>


  </category>


  <category id='REGIONALISMS_PT_PT' name='[pt-PT] Regionalismos'>


      <rule id='BRASILEIRISMO_ATERRISAR' name='[pt-PT][Brasileirismo] aterrisar → aterrar'>
          <!-- Created by Tiago F. Santos , Portuguese rule, 2017-04-12 -->
          <pattern>
              <token regexp='yes'>aterri(?:z|ss?).+</token>
          </pattern>
          <message>Grafia do Brasil. Substitua por <suggestion><match no='1' regexp_match='aterri(z|ss?)(.+)' regexp_replace='aterr$2'/></suggestion>.</message>
          <example correction='aterrar'>O avião vai <marker>aterrizar</marker> dentro de momentos.</example><!-- TODO Add aterrisar POSs to tagger -->
      </rule>


      <rule id='BRASILEIRISMO_CONTROLO_CONTROLE' name='[pt-PT][Brasileirismo] controle → controlo'>
          <!-- Created by Marco A.G.Pinto , Portuguese rule -->
          <pattern>
              <token regexp="yes">(?:d|n|outr|pel)?os?|de|(?:alg|d|n)?(?:um|uns)|em</token>
              <marker>
                  <token>controle</token>
              </marker>
              <token regexp="yes">das?|dos?|de</token>
          </pattern>
          <message>Grafia do Brasil. Substitua por <suggestion>controlo</suggestion>.</message>
          <example correction="controlo">Perdeu o <marker>controle</marker> da situação.</example>
      </rule>


      <rule id='BRASILEIRISMO_CONTROLO_CONTROLE_SOB' name="[pt-PT][Brasileirismo] 'sob controle' → 'sob controlo'">
          <!-- Created by Marco A.G.Pinto , Portuguese rule -->
          <pattern>
              <token>sob</token>
              <token>controle</token>
          </pattern>
          <message>Grafia do Brasil. Substitua por <suggestion>sob controlo</suggestion>.</message>
          <example correction="sob controlo">Está tudo <marker>sob controle</marker>.</example>
      </rule>


      <rule id='BRASILEIRISMO_DECOLAR' name='[pt-PT][Brasileirismo] decolar → descolar'>
          <!-- Created by Tiago F. Santos , Portuguese rule, 2017-04-12 -->
          <pattern>
              <token regexp='yes'>decol.+</token>
          </pattern>
          <message>Grafia do Brasil. Substitua por <suggestion><match no='1' regexp_match='decol(.+)' regexp_replace='descol$1'/></suggestion>.</message>
          <example correction='descolar'>O avião vai <marker>decolar</marker> dentro de momentos.</example><!-- TODO Add decolar POSs to tagger -->
      </rule>


      <rule id="EQUIPES" name="[pt-PT][Brasileirismo] equipes → equipas">
          <!-- Created by Marco A.G.Pinto , Portuguese rule -->
          <pattern>
              <token regexp="yes">(?:d|n|outr|pel)?[ao]s?|(?:alg|d|n)?(?:um(a|as)?|uns)|em|(?:sua|[nv]ossa|tua)s?</token>
              <marker>
                  <token regexp='yes'>equipes?</token>
              </marker>
          </pattern>
          <message>Grafia do Brasil. Substitua por <suggestion><match no='2' regexp_match='ipe' regexp_replace='ipa'/></suggestion>.</message>
          <example correction="equipa">A nossa <marker>equipe</marker> é a melhor.</example>
          <example correction="equipas">As nossas <marker>equipes</marker> são boas.</example>
      </rule>


      <rule id='BRASILEIRISMO_EXPERIMENTO' name='[pt-PT][Brasileirismo] experimento → experiência'>
          <!-- Created by Tiago F. Santos , Portuguese rule, 2017-04-12 -->
          <pattern>
              <token postag="[AD]..M[SP].+" postag_regexp='yes'/>
              <marker>
                  <token regexp='yes'>experimentos?</token>
              </marker>
          </pattern>
          <message>Grafia do Brasil. Substitua por <suggestion><match no='2' postag='NCM(.)000' postag_replace='NCF$1000'>experiência</match></suggestion>.</message>
          <example correction='experiência'>Vai começar o <marker>experimento</marker>.</example>
          <example correction='experiências'>Vão começar os <marker>experimentos</marker>.</example>
      </rule>


      <rule id='BRASILEIRISMO_PRIVADA' name="[pt-PT][Brasileirismo] 'privada sanitária', 'vaso sanitário' → retrete">
          <!-- Created by Tiago F. Santos , Portuguese rule, 2017-04-12 -->
          <pattern>
              <token regexp='yes'>privada|vaso</token>
              <token regexp='yes'>sanitári[ao]</token>
          </pattern>
          <message>Grafia do Brasil. Substitua por <suggestion>retrete</suggestion>.</message>
          <example correction='retrete'><marker>privada sanitária</marker>.</example>
          <example correction='retrete'><marker>vaso sanitário</marker>.</example>
      </rule>


      <rule id='BRASILEIRISMO_REVISAR' name='[pt-PT][Brasileirismo] revisar → rever'>
          <!-- Created by Tiago F. Santos , Portuguese rule, 2017-04-12 -->
          <pattern>
              <token inflected='yes'>revisar</token>
          </pattern>
          <message>Grafia do Brasil. Substitua por <suggestion><match no='1' postag='V.+' postag_regexp='yes'>rever</match></suggestion>.</message>
          <example correction='Reviste'><marker>Revisaste</marker> o texto antes de enviar.</example>
      </rule>


      <rule id="BRASILEIRISMO_SOBRADO" name="[pt-PT][Brasileirismo] sobrado → vivenda">
          <!-- Created by Tiago F. Santos , Portuguese rule, 2017-04-12 -->
          <pattern>
              <token case_sensitive='yes'>sobrado
              <exception postag_regexp='yes' postag='V.[^P].+'/></token>
      </pattern>
      <message>Grafia do Brasil. Substitua por <suggestion>vivenda</suggestion>.</message>
      <example correction="vivenda">O <marker>sobrado</marker> do António está à venda.</example>
  </rule>


  <rule id='BRASILEIRISMO_TIMES' name='[pt-PT][Brasileirismo] time → equipa'>
      <!-- Created by Tiago F. Santos , Portuguese rule, 2017-04-12 -->
      <antipattern>
          <token regexp='yes'>part|full</token>
          <token min='0'>-</token>
          <token regexp='yes'>times?</token>
      </antipattern>
      <pattern case_sensitive='yes'>
          <token regexp='yes'>times?</token>
      </pattern>
      <message>Grafia do Brasil. Substitua por <suggestion>equipa<match no='1' regexp_match='time(s?)' regexp_replace='$1' include_skipped='all'/></suggestion>, ou inglesa para <suggestion>tempo<match no='1' regexp_match='time(s?)' regexp_replace='$1' include_skipped='all'/></suggestion>.</message>
      <example correction='equipas|tempos'>Nossos <marker>times</marker> vão jogar hoje.</example>
      <example>O jornal The <marker>Times</marker> é britânica.</example>
  </rule>


  <rule id='BRASILEIRISMO_XINGAR' name='[pt-PT][Brasileirismo] xingar → gozar'>
      <!-- Created by Tiago F. Santos , Portuguese rule, 2017-04-12 -->
      <pattern case_sensitive='yes'>
          <token regexp='yes'>xing.+</token>
      </pattern>
      <message>Grafia do Brasil. Substitua por <suggestion><match no='1' regexp_match='xing(.+)' regexp_replace='goz$1'/></suggestion>.</message>
      <example correction='gozou'>Ela o <marker>xingou</marker> por não cortar o gramado.</example><!-- TODO Add xingar POSs to tagger -->
      <example>os rios Juruá, Purus, Madeira, Tapajós e Xingu.</example>
  </rule>


  <rule id='ZERO_IN_DAYS_OF_THE_MONTH' name="[pt-PT] Datas: zeros nos dias do mês">
      <!--       Created by Tiago F. Santos,  2019-09-05      -->
      <pattern>
          <token regexp='yes'>0\d</token>
          <token min='0'>de</token>
          <token regexp='yes'>&meses_ano;|&meses_ano_abrev;</token>
      </pattern>
      <message>A convenção padrão não utiliza o zero no dia do mês em datas escritas por extenso.</message>
      <suggestion><match no='1' include_skipped='all' regexp_match='0(.)' regexp_replace='$1'/> <match no='2' include_skipped='all'/> \3</suggestion>
      <url>https://ciberduvidas.iscte-iul.pt/consultorio/perguntas/datas-grafia/13231</url>
      <example correction="3 de agosto">A peça estreia na sexta-feira, <marker>03 de agosto</marker>.</example>
  </rule>


  </category>


  <category id="AO90_RULES_PT_PT" name="[pt-PT] Regras do Acordo Ortográfico de 90 (pós-AO90)" type="misspelling" default='on'>


      <rulegroup id="AO90_AVÉ_MARIA" name="[pt-PT][AO90] avé/ave Maria">
      <!-- Created by Marco A.G.Pinto, Portuguese rule 2022-08-13 (Checked/Enhanced) (25-JUL-2022+) -->
          <rule>        
              <pattern>
                  <marker>
                      <token>avé</token>
                  </marker>
                  <token min="0" spacebefore="no" regexp='yes'>[,]</token>
                  <token regexp='yes'>Marias?</token>
              </pattern>
              <message>Segundo o AO90, deve substituir por <suggestion>ave</suggestion>.</message>
              <example correction="ave">Vamos rezar uma <marker>avé</marker>, Maria, cheia de graça.</example>
          </rule>

          <rule>
              <pattern>
                  <marker>
                      <token regexp='yes'>av[eé]</token>
                      <token spacebefore="no" regexp='yes'>[-]</token>
                      <token spacebefore="no" regexp='yes'>Marias?</token>
                  </marker>                
              </pattern>
              <message>Segundo o AO90, deve substituir por <suggestion>ave \3</suggestion>.</message>
              <example correction="ave Maria">Vamos rezar uma <marker>avé-Maria</marker>, cheia de graça.</example>
          </rule>

      </rulegroup>


      <rule id="AO90_TONIC_SYLLABLES" name="[pt-PT][AO90] Terminações sem acento">
          <pattern>
              <token regexp='yes'>.+((?:óid[oae]|óic[oa]|ói[ao])s?)$
              <exception postag_regexp='yes' postag='NP.+'/></token>
      </pattern>
      <message>Palavras com esta terminação não são acentuadas, segundo o Acordo Ortográfico de 90.</message>
      <suggestion><match no='1' regexp_match='ó' regexp_replace='o'/></suggestion>
      <url>http://www.portaldalinguaportuguesa.org/recursos.html?action=novoacordo</url>
      <short>Palavra alterada pelo AO90</short>
      <example correction="abrotanoides"><marker>abrotanóides</marker>.</example>
      <example correction="acaroide"><marker>acaróide</marker>.</example>
      <example correction="agnostozoico"><marker>agnostozóico</marker>.</example>
      <example correction="jiboia"><marker>jibóia</marker>.</example>
  </rule>


  <rulegroup id='AO90_COMPOUNDS_GENERIC_PREFIX' name='[pt-PT][AO90] Hifenizador de palavras'>
      <!--            COMPOSTAS DO NOVO ACORDO ORTOGRÁFICO          -->
      <!-- Created by Tiago F. Santos , Portuguese rule, 2016-12-02 -->
      <!--  <url>http://www.portaldalinguaportuguesa.org/INDEX.PHP?action=vop&page=crit1</url>
          <url>http://pucrs.br/gpt/hifen.php</url>
          <url>https://ciberduvidas.iscte-iul.pt/consultorio/perguntas/prefixos-e-hifen/17908</url>
      <url>https://ciberduvidas.iscte-iul.pt/artigos/rubricas/idioma/o-uso-do-hifen-segundo-o-acordo-ortografico/3195</url>-->
      <url>https://pt.wikipedia.org/wiki/Uso_do_h%C3%ADfen_conforme_o_Acordo_Ortogr%C3%A1fico_de_1990</url>
      <!--
          MARCOAGPINTO inserted global antipatterns for all subrules on top using the logic (2-MAR-2023+)
      -->

      <!-- MARCOAGPINTO 2023-05-12 (Checked/Enhanced) (2-MAR-2023+) *START* -->
      <antipattern>
          <token regexp='no'>extra</token>
          <token postag='VMP00.+|SPS00|(SPS00:)?[DP][ADIPRT].+|Z0.+|RG|CC' postag_regexp='yes'/>
          <example>A ferramenta tem regras gramaticais extra criadas por profissionais.</example>
          <example>... ao chegar a essa conclusão, desenhar volta a ser um prazer, e a concentração no trabalho traz como extra uns quilinhos a menos.</example>
          <example>Nick faz um salto perfeito por cima do avião Extra 300 pilotado pelo experiente Glen, que passa raspando pelo solo, entre as duas rampas que possibilitara...</example>
          <example>Pra consumir mídia, jogos e redes sociais, ele pode ser uma boa e o valor extra só deve ser levado em conta se você quer ficar com o iPad por mais uns dois anos.</example>
          <example>... Celebração de Harold Pinter foi bem recebido; Um teatro, o Irish Repertory Theatre, acrescentou um extra três semanas para a corrida do show.</example>
          <example>... uma consequência direta do fato de três orbitais formula_2 combinam-se e espalham os seis elétrons extra sobre os seis átomos de carbono.</example>
      </antipattern>
      <!-- MARCOAGPINTO 2023-05-12 (Checked/Enhanced) (2-MAR-2023+) *END* -->

      <!-- MARCOAGPINTO 2022-12-09 + 2022-12-15 (Checked/Enhanced) (25-JUL-2022+) *START* -->
      <antipattern>
          <token regexp='yes'>auto|bio|micro|quilo</token>
          <token postag='D[AI].+|SPS00:D[AI].+|CS|CC|SPS00|SP000' postag_regexp='yes'/>
          <example>Leia a reportagem completa no Semanário nas bancas e através do link na bio do @jornalexpresso.</example>
          <example>Ficou registado no auto que se tratara de um acidente.</example>
          <example>Vamos compor os auscultadores e o micro frente aos lábios.</example>
          <example>Como ele fica na bancada, o micro que esta ligado a ele é um K6 que uso para ler datasheet, abrir esquemas, gravador de pic, eprom, etc.</example>
      </antipattern>
      <!-- MARCOAGPINTO 2022-12-09 + 2022-12-15 (Checked/Enhanced) (25-JUL-2022+) *END* --> 

      <!-- MARCOAGPINTO 2022-01-12 (Checked/Enhanced) (1-JAN-2022+) *START* -->
      <!--
          As atualizações do extra são automáticas.
          O extra está desativado.
          O extra sugere correções/melhorias ortográficas e gramaticais.
          O CardBook (extra Thunderbird) é ótimo.

          Na pós é que senti um pouco dessa "bobice".
          Pós é o que gosto de fazer, já vendo estes tipos de produtos mas pretendo colocar uma empresa e pretendo ...
          As pós são boas.
      -->
      <antipattern>
          <token regexp='yes'>extra|pós</token>
          <token postag='SPS.+|CS|CC|V.+|NP.+' postag_regexp='yes'>
              <exception postag_regexp='yes' postag='VMN0000|VMP00.+|NC.+|AQ.+'/>
          </token>
      </antipattern>
      <antipattern>
          <token>pós</token>
          <token>são</token>
      </antipattern>
      <!-- MARCOAGPINTO 2022-01-12 (Checked/Enhanced) (1-JAN-2022+) *END* -->

      <!-- MARCOAGPINTO 2022-01-12 (1-JAN-2022+) *START* -->
      <!--
          Os preços em Che Lagarto Bonito podem variar dependendo da sua estadia (ex: suas datas, políticas do hotel etc.).
          Ex: carretéis, dói, herói, chapéu, anéis.
          Ex: Liso ou ondulado.
      -->
      <antipattern>
          <token regexp='no'>ex</token>
          <token spacebefore='no' postag='_PUNCT' postag_regexp='no'/>
      </antipattern>
      <!-- MARCOAGPINTO 2022-01-12 (1-JAN-2022+) *END* -->

      <!-- MARCOAGPINTO 2022-01-12 (1-JAN-2022+) *START* -->
      <!--
          E na colisão entre esses dois mundos tão distintos, será suficiente apenas a atração para uni-los?
          Uni-vos a nós.
          Trabalhadores do mundo, uni-vos!
      -->
      <antipattern>
          <token regexp='no'>uni</token>
          <token regexp='yes' spacebefore='no'>&tracos_de_separacao;</token>
          <token regexp='yes' spacebefore='no'>[ao]s?|l[ao]s?|lh[aeo]s?|n[ao]s?|me|se|te|vos</token>
      </antipattern>
      <!-- MARCOAGPINTO 2022-01-12 (1-JAN-2022+) *END* -->

      <rule>
          <pattern>
              <token regexp='yes'>ex|sota|soto|vice|vizo|grã|pós|pré|pró|recém</token>
              <!-- além|aquém|bem|sem|grão are better dealt by PortugueseCompoundRule.java -->
              <token>
                  <exception regexp='yes'>[-,.!?\(\)]</exception>
                  <exception postag='C.|R.|S.+' postag_regexp='yes'/>
              </token>
          </pattern>
          <message>Palavra hifenizada.</message>
          <suggestion>\1-\2</suggestion>
          <example correction='vice-diretor'>Tem uma reunião marcada com o <marker>vice diretor</marker>.</example>
      </rule>
      <rule>
          <pattern>
              <token>
                  <exception regexp='yes'>[-,.!?\(\)]</exception>
                  <exception postag='(?:C|R|S|NP).+' postag_regexp='yes'/>
              </token>
              <token regexp='yes'>açu|guaçu|mirim</token>
              <!-- These suffixes are used in Brazilian Portuguese -->
          </pattern>
          <message>Palavra hifenizada.</message>
          <suggestion>\1-\2</suggestion>
          <example correction='Escuteiro-Mirim'>Manual do  <marker>Escuteiro Mirim</marker></example>
      </rule>
      <rule>
          <pattern>
              <token regexp='yes'>&prefixos_hifenizados_h;</token>
              <!-- além|aquém|sem|grão|bem|mal|contra|entre|sobre|ante are better dealt by PortugueseCompoundRule.java -->
              <token regexp='yes'>h.+
              <exception regexp='yes'>[-,.!?\(\)]</exception>
              <exception postag='C.|R.|S.+' postag_regexp='yes'/>
          </token>
      </pattern>
      <message>Palavra provavelmente hifenizada. Pretende dizer </message>
      <suggestion>\1-\2</suggestion>
      <example correction='co-herdada'>A análise do ADN mostrou uma mutação <marker>co herdada</marker> por todos os membros da família afetados.</example>
      <!--	<example correction='sobre-humano'>Fez um esforço <marker>sobre humano</marker> para obter bons resultados.</example>-->
      <example correction='sub-hepática'>Prescrevi uma ecografia à região <marker>sub hepática</marker>.</example>
  </rule>

  <!--	TODO Rule for (des|in)-h... -> (des|in)...	-->

  <rule>
      <pattern>
          <token regexp='yes'>co|p(?:r[eo]|os)|re|bi|tri|tetra|penta|hexa</token>
          <token min='0' regexp='yes' spacebefore='no'>&hifen;</token>
          <token regexp='yes' case_sensitive="yes" spacebefore='no'>[^hrs].+</token>
      </pattern>
      <message>Este prefixo não é hifenizado neste contexto. Pretende dizer </message>
      <suggestion>\1<match no='3' case_conversion="startlower"/></suggestion>
      <example correction='codependência'>Vivem em regime de <marker>co-dependência</marker>.</example>
  </rule>
  <rule>
      <pattern>
          <token regexp='yes'>não|quase</token>
          <token regexp='yes' spacebefore='no'>&hifen;</token>
          <token/>
      </pattern>
      <message>Este prefixo não é hifenizado neste contexto. Pretende dizer </message>
      <suggestion>\1 \3</suggestion>
      <example correction='não agressão'>O pacto de <marker>não-agressão</marker> foi a prioridade do dia.</example>
  </rule>
  <rule>
      <antipattern>
          <token regexp='yes'>horas?</token>
          <token>extra</token>
      </antipattern>
      <pattern>
          <token regexp='yes'>extra|in(?:fra|tra)|supra|ultra|mega</token>
          <!-- contra are better dealt by PortugueseCompoundRule.java -->
          <token regexp='yes'>a.+
          <exception postag='C.|R.|S.+' postag_regexp='yes'/></token>
  </pattern>
  <message>Palavra hifenizada.</message>
  <suggestion>\1-\2</suggestion>
  <example correction='infra-acústico'>O som foi produzido no espetro <marker>infra acústico</marker>.</example>
      </rule>
      <rule>
          <pattern>
              <token regexp='yes'>extra|in(?:fra|tra)|supra|ultra|mega</token>
              <token min='0' regexp='yes' spacebefore='no'>&hifen;</token>
              <token regexp='yes'>[^ahrs].+
              <exception postag='C.|R.|S.+' postag_regexp='yes'/></token>
      </pattern>
      <message>Este prefixo não é hifenizado neste contexto.</message>
      <suggestion>\1<match no='3' case_conversion="startlower"/></suggestion>
      <example correction='megalítico'>O artefato encontrado provém do período <marker>mega lítico</marker> altos.</example>
      <example type='correct'>O <marker>Extra está</marker> desativado.</example>
  </rule>
  <rule>
      <antipattern>
          <token>contra</token>
          <token regexp='yes'>ventos?</token>
          <token>e</token>
          <token>marés</token>
      </antipattern>
      <antipattern>
          <token>para</token>
          <token regexp='yes' spacebefore='no'>&hifen;</token>
          <token regexp='yes'>a(?:pendicite|xial)|b(?:alas|risas?)|c(?:entelhas|hispas|hoques?|huvas?|inzas|ostas)|e(?:stilhaços|stopilhas?)|f(?:ios|ogos?)|h(?:élio|idrog[êé]nic?[ao]|istória)|l(?:amas?|uz(?:es)?)|muros?|pelotes?|raios|s(?:ol|óis)|ventos?</token>
      </antipattern>
      <pattern>
          <token regexp='yes'>contra|justa|tetra|p(?:ara|enta)|h(?:exa|epta)|nona|deca</token>
          <token regexp='yes' spacebefore='no'>&hifen;</token>
          <token regexp='yes'>[^ahrs].+</token>
      </pattern>
      <message>Este prefixo não é hifenizado neste contexto.</message>
      <suggestion>\1<match no='3' case_conversion="startlower"/></suggestion>
      <!--TODO: move to a new rule, compounds.txt? <example correction='paraquedistas'>São <marker>para-quedistas</marker>.</example>-->
      <example correction='pentacampeões'>São <marker>penta-campeões</marker>.</example>
  </rule>
  <rule>
      <antipattern>
          <token regexp='yes'>horas?</token>
          <token>extra</token>
      </antipattern>
      <pattern>
          <token>extra</token>
          <token min='0' regexp='yes' spacebefore='no'>&hifen;</token>
          <token regexp='yes'>ção|conjugal|continental|contratual|tivo|to|tor|dição|ditar|escolar|fino|ir|legal|muros|ordinário|parlamentar|polação|polar|programa|terrestre|territorial|territorialidade|uterino|vagância|vaganciar|vagante|vaginal|vasação|vasado|vasante|vasão|vasar|versão|viar|vio</token>
      </pattern>
      <message>Neste contexto deve unir as palavras.</message>
      <suggestion>\1<match no='3' case_conversion="startlower"/></suggestion>
      <example correction='extraterrestre'>A rocha encontrada é de origem <marker>extra terrestre</marker>.</example>
  </rule>
  <rule>
      <pattern>
          <token>tele</token>
          <!-- ante|entre|sobre are better dealt by PortugueseCompoundRule.java -->
          <token regexp='yes'>e.+</token>
      </pattern>
      <message>Palavra hifenizada.</message>
      <suggestion>\1-\2</suggestion>
      <example correction='tele-educação'>Os filhos tiveram que recorrer à <marker>tele educação</marker>.</example>
  </rule>
  <rule>
      <pattern>
          <token>tele</token>
          <token min='0' regexp='yes' spacebefore='no'>&hifen;</token>
          <token regexp='yes'>[^ehrs].+</token>
      </pattern>
      <message>Este prefixo não é hifenizado neste contexto.</message>
      <suggestion>\1<match no='3' case_conversion="startlower"/></suggestion>
      <example correction='televisão'>Nem tudo o que aparece na <marker>tele-visão</marker> é verdade.</example>
  </rule>
  <rule>
      <pattern>
          <token regexp='yes'>&prefixos_i;</token>
          <token regexp='yes'>i.+
          <exception case_sensitive='yes' regexp='yes'>\p{Lu}.+</exception></token>
  </pattern>
  <message>Palavra hifenizada.</message>
  <suggestion>\1-\2</suggestion>
  <example correction='anti-intelectuais'>Tive que superar atitudes <marker>anti intelectuais</marker> antes de conseguir apresentar o trabalho.</example>
      </rule>
      <rule>
          <pattern>
              <token regexp='yes'>&prefixos_i;</token>
              <token min='0' regexp='yes' spacebefore='no'>&hifen;</token>
              <token regexp='yes'>[^ihrs].+
              <exception case_sensitive='yes' regexp='yes'>\p{Lu}.+</exception>
              <exception postag_regexp='yes' postag='[RS].+'/></token>
      </pattern>
      <message>Este prefixo não é hifenizado neste contexto.</message>
      <suggestion>\1<match no='3' case_conversion="startlower"/></suggestion>
      <example correction='minimercados'>Os <marker>mini-mercados</marker> abrem em todo o lado.</example>
      <example>... protestos anti-Maduro ...</example>
  </rule>
  <rule>
      <pattern>
          <token regexp='yes'>&prefixos_o;|&prefixos_o_2;|arqui
          <exception case_sensitive='yes'>Homo</exception></token>
      <token regexp='yes'>o.+</token>
  </pattern>
  <message>Palavra hifenizada.</message>
  <suggestion>\1-\2</suggestion>
  <example correction='micro-ondas'>Aquece 10 minutos no <marker>micro ondas</marker> altos.</example>
      </rule>
      <rule>
          <antipattern>
              <token regexp='yes'>auto|quilo</token>
              <token regexp='yes'>d[aeo]s?|policial|falantes?</token>
          </antipattern>
          <pattern>
              <token regexp='yes'>&prefixos_o;|&prefixos_o_2;|arqui
              <exception case_sensitive='yes'>Homo</exception></token>
          <token min='0' regexp='yes' spacebefore='no'>&hifen;</token>
          <token regexp='yes'>[^hors].+</token>
      </pattern>
      <message>Este prefixo não é hifenizado neste contexto.</message>
      <suggestion>\1<match no='3' case_conversion="startlower"/></suggestion>
      <example correction='biodiversidade'>...apresenta índices de <marker>bio-diversidade</marker> altos.</example>
      <example>Ficou registado no <marker>auto que</marker> se tratara de um acidente.</example>
  </rule>
  <rule>
      <antipattern>
          <token>centro</token>
          <token regexp='yes' spacebefore='no'>&hifen;</token>
          <token regexp='yes' spacebefore='no'>direita|esquerda</token>
      </antipattern>
      <pattern>
          <token regexp='yes'>&prefixos_o_ambiguos;</token>
          <token regexp='yes' spacebefore='no'>&hifen;</token>
          <token regexp='yes' spacebefore='no'>[^hors].+</token>
      </pattern>
      <message>Este prefixo não é hifenizado neste contexto.</message>
      <suggestion>\1<match no='3' case_conversion="startlower"/></suggestion>
      <example correction='eurocéticos'>Os <marker>euro-céticos</marker> têm dúvidas em relação ao europeísmo.</example>
  </rule>
  <!-- TODO special rules for  ante|contra|entre|sobre  -->
  <rule>
      <antipattern>
          <token regexp='yes'>horas?</token>
          <token>extra</token>
      </antipattern>
      <pattern>
          <token regexp='yes'>extra|infra|intra|supra|ultra|mega|tele|&prefixos_i;|&prefixos_o;|&prefixos_o_2;|arqui
          <exception case_sensitive='yes'>Homo</exception></token>
      <token min='0' regexp='yes' spacebefore='no'>&hifen;</token>
      <token regexp='yes'>r.+</token>
  </pattern>
  <message>Este prefixo não é hifenizado neste contexto.</message>
  <suggestion>\1r<match no='3' case_conversion="startlower"/></suggestion>
  <example correction='arquirrival'>O F.C. Porto é <marker>arqui-rival</marker> do S.L.Benfica.</example>
      </rule>
      <rule>
          <antipattern>
              <token>retro</token>
              <token>satanás</token>
          </antipattern>
          <antipattern>
              <token regexp='yes'>horas?</token>
              <token>extra</token>
          </antipattern>
          <pattern>
              <token regexp='yes'>extra|infra|intra|supra|ultra|mega|tele|&prefixos_i;|&prefixos_o;|&prefixos_o_2;|arqui
              <exception case_sensitive='yes'>Homo</exception></token>
          <token min='0' regexp='yes' spacebefore='no'>&hifen;</token>
          <token regexp='yes'>s.+</token>
      </pattern>
      <message>Este prefixo não é hifenizado neste contexto.</message>
      <suggestion>\1s<match no='3' case_conversion="startlower"/></suggestion>
      <example correction='multissecular'>Esta é uma história <marker>multi secular</marker>.</example>
      <example>Vade retro satanás!</example>
  </rule>
  <rule>
      <pattern>
          <token regexp='yes'>hiper|inter|super</token>
          <token regexp='yes'>r.+</token>
      </pattern>
      <message>Palavra hifenizada.</message>
      <suggestion>\1-\2</suggestion>
      <example correction='super-resistente'>Estamos a desenvolver um liga <marker>super resistente</marker>.</example>
  </rule>
  <rule>
      <!-- MARCOAGPINTO 2021-07-16 (25-JUN-2021+) *START* -->
      <!--
          Ele fecha o hiper no fim.
          Fiquei super sem jeito quando a minha mãe me beijou perto dos meus amigos.
      -->
      <antipattern>
          <token regexp='yes'>hiper|inter|super</token>
          <token postag='SPS.+|CS|CC|V.+' postag_regexp='yes'>
              <exception postag_regexp='yes' postag='AQ0.+|NC.+'/>
          </token>
      </antipattern>
      <!-- MARCOAGPINTO 2021-07-16 (25-JUN-2021+) *END* -->
      <pattern>
          <token regexp='yes'>hiper|inter|super</token>
          <token min='0' regexp='yes' spacebefore='no'>&hifen;</token>
          <token regexp='yes'>[^hr\d]\p{L}+
          <exception case_sensitive='yes'>AMOLED</exception></token>
  </pattern>
  <message>Este prefixo não é hifenizado neste contexto.</message>
  <suggestion>\1<match no='3' case_conversion="startlower"/></suggestion>
  <example correction='hiperventilar'>É natural <marker>hiper-ventilar</marker>.</example>

  <example>Ele fecha o hiper no fim.</example>
  <example>Fiquei super sem jeito quando a minha mãe me beijou perto dos meus amigos.</example>
      </rule>
      <rule>
          <pattern>
              <token regexp='yes'>ob|sub</token>
              <!-- ab (latim)|sob is better dealt by PortugueseCompoundRule.java -->
              <token regexp='yes' case_sensitive="yes">[br].+</token>
          </pattern>
          <message>Palavra hifenizada.</message>
          <suggestion>\1-\2</suggestion>
          <!--  <example correction='ab-rogar'>Pretende-se <marker>ab rogar</marker> as novas referências, no início do ano.</example>-->
          <example correction='sub-reino'>No <marker>sub reino</marker> dos Eumetazoa podemos encontrar...</example>
      </rule>
      <rule>
          <pattern>
              <token regexp='yes'>ob|sub</token>
              <!-- ab (latim)|sob is better dealt by PortugueseCompoundRule.java -->
              <token min='0' regexp='yes' spacebefore='no'>&hifen;</token>
              <token regexp='yes' case_sensitive="yes">[^,.!\(\)brh\d]\p{L}+</token>
          </pattern>
          <message>Este prefixo não é hifenizado neste contexto.</message>
          <suggestion>\1<match no='3' case_conversion="startlower"/></suggestion>
          <!--	<example correction='abdicar'>Pretende <marker>ab-dicar</marker> dos seus direitos...</example>-->
          <example correction='subnível'>Em caso de emergência, saia pelo <marker>sub nível</marker> 1.</example>
      </rule>
      <rule>
          <pattern>
              <token regexp='yes'>circum|pan
              <exception case_sensitive='yes'>PAN</exception></token>
          <token regexp='yes'>[mnaeiouh]\p{L}+</token>
      </pattern>
      <message>Palavra hifenizada.</message>
      <suggestion>\1-\2</suggestion>
      <example correction='Circum-navegação'><marker>Circum navegação</marker> é uma viagem marítima em torno de um lugar.</example>
  </rule>
  <rule>
      <pattern>
          <token regexp='yes'>circum|pan
          <exception case_sensitive='yes'>PAN</exception></token>
      <token min='0' regexp='yes' spacebefore='no'>&hifen;</token>
      <token regexp='yes'>[^,.!\(\)mnaeiouh\d]\p{L}+
      <exception regexp='yes'>escrev.+|paniscus|troglodytes</exception></token>
        </pattern>
        <message>Este prefixo não é hifenizado neste contexto.</message>
        <suggestion>\1<match no='3' case_conversion="startlower"/></suggestion>
        <example correction='panteístas'>As crenças <marker>pan-teístas</marker> são próximas das filosofias orientais.</example>
        <example> O chimpanzé, Pan troglodytes, e o bonobo, Pan paniscus, são encontrados nas proximidades do rio Congo.</example>
    </rule>
    <rule>
        <pattern>
            <token>circum</token>
            <token min='0' regexp='yes' spacebefore='no'>&hifen;</token>
            <token inflected='yes'>escrever</token>
        </pattern>
        <message>Palavra hifenizada.</message>
        <suggestion>circun<match no='3' regexp_match='esc' regexp_replace='sc'/></suggestion>
        <example correction='circunscrito'>O fogo está <marker>circum-escrito</marker>.</example>
    </rule>
</rulegroup>


<rulegroup id='AO90_ACCENTUATED_PREFIXES' name='[pt-PT][AO90] Prefixos acentuados'>
    <!-- Created by Tiago F. Santos , Portuguese rule, 2017-08-15 -->
    <rule>
        <pattern>
            <marker>
                <token regexp='yes'>alem|aquem|pre</token>
                <token regexp='yes' spacebefore='no'>&hifen;</token>
            </marker>
            <token spacebefore='no'/>
        </pattern>
        <message>Este prefixo é acentuado.</message>
        <suggestion><match no='1' regexp_match='e' regexp_replace='é'/>\2</suggestion>
        <example correction='Além-'>Crónicas de <marker>Alem-</marker>Mar.</example>
    </rule>
    <rule>
        <pattern>
            <marker>
                <token>recem</token>
                <token regexp='yes' spacebefore='no'>&hifen;</token>
            </marker>
            <token spacebefore='no'/>
        </pattern>
        <message>Este prefixo é acentuado.</message>
        <suggestion>recém\2</suggestion>
        <example correction='Recém-'>Crónicas das <marker>Recem-</marker>Casadas.</example>
    </rule>
    <rule>
        <pattern>
            <marker>
                <token regexp='yes'>pos|pro</token>
                <token regexp='yes' spacebefore='no'>&hifen;</token>
            </marker>
            <token spacebefore='no'/>
        </pattern>
        <message>Este prefixo é acentuado.</message>
        <suggestion><match no='1' regexp_match='o' regexp_replace='ó'/>\2</suggestion>
        <example correction='pós-'>O período <marker>pos-</marker>moderno.</example>
    </rule>
</rulegroup>


<rule id='AO90_HIPHEN_REMOVALS' name='[pt-PT][AO90] Palavras que deixam de ser hifenizadas'>
    <!-- Created by Tiago F. Santos , Portuguese rule, 2017-04-19 -->
    <regexp>(?:c(?:a(?:b(?:e(?:ça(?:-(?:de-(?:c(?:a(?:r(?:neiro|taz)|valo|sal)|obra)|a(?:(?:lho-choch|sn)o|bóbora|velã)|(?:t(?:remoç|urc)|burr|vent)o|p(?:o(?:nte|rco)|rego|au)|m(?:edusa|otim)|s(?:ecção|érie)|lista)|no-ar)|s-(?:de-(?:c(?:a(?:r(?:neiro|taz)|sal)|obra)|s(?:(?:anto-antóni|ecçã)o|érie)|a(?:lho-chocho|bóbora|velã)|(?:t(?:remoç|urc)|vent)o|p(?:onte|rego|au)|m(?:edusa|otim)|lista)|no-ar))|lo(?:s-d(?:e-(?:raposa|anjo)|as-feiticeiras)|-d(?:as-feiticeiras|e-anjo)))|os?-de-(?:esquad|guer)ra)|(?:p(?:it(?:ão-de-(?:(?:mar-e-guer|bandei)r|(?:corve|fraga)t)|ões-de-(?:(?:mar-e-guer|bandei)r|fragat))|a-de-chuv)|chorros?-da-arei|gas?-na-saquinh)a|ixa(?:-d(?:e-(?:r(?:essonância|ufo)|(?:pirolit|ócul)os|música|ar)|os-pirolitos)|s-de-(?:(?:pirolit|ócul)os|música|rufo|ar))|r(?:a(?:s-de-(?:nó-cego|pau)|-de-(?:nó-cego|pau))|t(?:(?:ões|ão)-de-visita|as?-de-prego)|ne-de-so(?:is|l)|reiras?-de-tiro)|mi(?:sa(?:-d(?:e-(?:(?:onze-vara|vénu)s|forças?)|o-pano)|s-de-(?:(?:onze-var|forç)a|vénu)s)|nhos?-de-ferro)|v(?:alo(?:-d(?:e-(?:batalh|fris)a|o-cão)|s-d(?:e-batalha|o-cão))|eiras?-da-noite)|s(?:ca(?:s-de-(?:carvalho|noz)|-de-(?:carvalho|noz))|acos?-de-couro)|n(?:a(?:(?:is|l)-d[ae]-arei|-de-roc)a|to(?:-d[eo]|s-de)-cisne)|tingas?-de-bode)|o(?:r(?:es-de-(?:(?:tijol|vinh)o|laranja)|-de-(?:(?:tijol|vinh)o|laranja)|po-a-corpo)|nto(?:s-d(?:a-carochinha|o-vigário)|-d(?:a-carochinha|o-vigário))|va(?:-do-ladr(?:ões|ão)|s-do-ladrão)|m(?:idas?-de-urso|es?-e-dorme)|letes?-de-forças)|h(?:a(?:péu(?:-de-(?:so(?:is|l)|chuva)|s-de-(?:chuva|sol))|lotinhas-do-gerês)|uvas?-de-ouro|efe-de-fila)|(?:ent(?:áureas?-menor-perfolhad|ro-de-mes)|éus?-da-boc)a|â(?:nhamos?-de-manila|maras?-de-ar)|u(?:rral-de-trapiche|s?-de-judas)|ravagem-do-centeio)|p(?:a(?:i(?:-d(?:e-(?:(?:velhac|menin|tod)os|santo)|os-meninos)|s-d(?:e-(?:velhacos|santo)|os-meninos))|u(?:-(?:d(?:e-(?:(?:cabe|fi)leira|sabão)|o-ar)|a-pique)|s-(?:de-sabão|a-pique))|po(?:-de-(?:anjo|peru|rola)|s-de-(?:anjo|peru))|l(?:pos-de-aranha|ha-de-abade)|ssarinho-a-olhar|z(?:es)?-de-alma|r-ou-pernão)|e(?:d(?:r(?:a(?:-d(?:e-(?:(?:a(?:mol|fi)|cev)ar|(?:sang|toq)ue|águia|raio)|a(?:s-amazonas|-lua)|o-(?:so(?:is|l)|ar))|s-d(?:e-(?:(?:a(?:mol|fi)|cev)ar|águia|toque|raio)|o-(?:sol|ar)|a-lua))|inha-na-boca)|aços?-de-asno)|rna(?:-de-(?:serra|pau)|s-de-pau)|ito-de-(?:canga|morte)|les?-de-vinho)|é(?:-de-(?:c(?:a(?:n(?:(?:tig)?a|deeiro)|valo|bra)|humbo)|a(?:l(?:feres|tar)|tleta|migo)|(?:galinh|danç)a|(?:molequ|lebr)e|(?:ven|pa)to|b(?:anco|oi))|s-de-(?:(?:galinh|atlet)a|c(?:humbo|abra)|lebre|vento|boi))|ã(?:o-(?:d(?:e-(?:(?:passarinh|gal)o|aç(?:ú|u)car|l(?:eite|ó))|o-chile)|por-Deus)|es-d(?:e-(?:(?:passarinh|gal)o|l(?:eite|ó)|açucar)|o-chile))|i(?:n(?:go(?:-de-tocha|s-de-ovos)|ho-de-flandres)|(?:(?:ões|ão)-das-nica|anos?-dos-preto)s|olho-de-cobra)|o(?:r(?:ta(?:-(?:a-port|da-ru)|s-a-port)a|es-do-sol)|mo(?:-de-ad(?:ões|ão)|s-de-adão)|ntas?-de-lança)|r(?:e(?:ss(?:ões|ão)-de-ar|tos?-e-branco)|ontos?-a-(?:vesti|come)r|íncipe-de-gales)|ó(?:-de-(?:(?:sapat|talc)o|chipre|arroz|goa)|s-de-(?:chipre|arroz|goa))|ôr(?:-do-so(?:is|l)|s-do-sol))|b(?:i(?:c(?:h(?:o(?:s-d(?:o-(?:burac|ouvid|mat)o|e-sete-cabeças)|-d(?:o-(?:burac|ouvid|mat)o|e-sete-cabeças))|a(?:s-de-(?:sete-cabeças|rabear)|-de-(?:sete-cabeças|rabear)))|o(?:-de-(?:p(?:a(?:pagai|t)o|omba)|g(?:avião|ás)|mocho|obra)|s-de-(?:p(?:a(?:pagai|t)o|omba)|g(?:avião|ás)|obra)))|lhete(?:s-de-(?:identidade|visita)|-de-(?:identidade|visita))|fe-de-caneca)|o(?:ca(?:-de-(?:f(?:avas|ogo)|si(?:no|ri)|incêndio)|s-de-(?:(?:incêndi|fog|lob)o|si(?:no|ri)))|(?:t(?:(?:ões|ão)-de-our|as?-de-elástic)|(?:ns|m)-de-bic)o|la(?:s-(?:ao-cesto|de-neve)|-(?:ao-cesto|de-neve))|a-vai-ela)|a(?:r(?:riga(?:s-de-(?:freira|bicho)|-de-(?:freira|bicho))|ba-de-baleia|ca-de-ouro)|ba(?:-de-(?:camelo|moça)|s-de-camelo)|l(?:ões|ão)-de-ensaio|irros?-de-lata)|ra(?:ço(?:-de-(?:preguiça|armas|ferro)|s-de-(?:preguiça|ferro))|vos?-de-mundão|nco-de-baleia)|(?:ênç(?:ões|ão)-de-deu|uchas?-dos-caçadore)s|e(?:xigas?-de-lobo|ijos?-de-moça)|álsamo-do-canadá)|f(?:o(?:go(?:-d(?:e-(?:sant(?:o-ant(?:ões|ão)|elmo)|(?:bengal|vist)a|artifício)|o-ar)|s-d(?:e-(?:(?:sant(?:o-antã|elm)|artifíci)o|(?:bengal|vist)a)|o-ar))|cinho(?:s-de-(?:(?:burr|porc)o|tenca)|-de-(?:(?:burr|porc)o|tenca))|ra(?:s-d(?:e-jogo|a-lei)|-d(?:e-jogo|a-lei))|lh(?:a-de-flandres|os-de-sinhá))|a(?:to(?:-de-(?:(?:saia-e-cas|mac)ac|trein|banh)|s-de-(?:macac|trein|banh))o|c(?:es?-a-face|a-de-mato)|rinhas?-de-pau|zs?-de-conta)|i(?:(?:lho-d(?:e-parid|a-terr)|sca(?:is|l)-de-linh|(?:ns|m)-de-seman)a|o(?:s-de-(?:prumo|ovos)|-de-prumo))|e(?:bre-d(?:os-(?:três-dia|feno)s|e-malta)|rro-de-(?:engomar|romã)|zes-de-ouro)|r(?:adinho-d[ae]-mão-furada|entes?-a-frente|utos-do-mar)|u(?:mos?-da-terra|la-de-gabu)|lor-de-enxofre)|m(?:a(?:r(?:i(?:a-da(?:s-pernas-compridas|-fonte)|do-de-bolas)|c(?:o-de-colónia|a-de-judas)|mita-de-gigante)|nga-de-(?:alpaca|eixo)|çã-de-ad(?:ões|ão)|tutas?-e-meia)|e(?:s(?:tre(?:-de-(?:cerimóni|arm|obr)|s-de-(?:cerimóni|obr))as|(?:inha|as?)-de-cabeceira)|nina-d(?:e-cinco-olhos|o-olho)|adinha-de-ouro|ias?-de-leite)|ã(?:e(?:-d(?:e-(?:aluguer|santo)|a-lua)|s-d(?:e-santo|a-lua))|o(?:-de-(?:(?:barc|obr)a|judas)|s-de-obra))|o(?:scas-de-mil(?:ões|ão)|ços?-de-forcado|ntes?-de-vénus|rtes?-em-pé)|ulhers?-a-dias)|a(?:z(?:u(?:is-d(?:a-prússia|e-metileno)|l-d(?:a-prússia|e-metileno))|eite(?:s-de-(?:cheiro|pau)|-de-(?:cheiro|pau)))|l(?:godão-(?:d(?:as-(?:laranj|oliv)eiras|e-vidro)|em-rama)|m(?:écega-do-brasi[ls]|as?-do-padeiro)|finetes?-de-ama)|r(?:co(?:-d(?:a-(?:alianç|chuv)a|e-deus)|s-da-(?:alianç|chuv)a)|r(?:uda-dos-muros|oz-de-cuxá))|judante(?:s-de-(?:ordens|campo)|-de-(?:ordens|campo))|n(?:gus?-de-caroço|jos?-da-guarda)|m(?:igos?-da-onça|a-de-leite)|çúcar-de-madeira|chas?-de-armas|utos?-de-fé)|t(?:e(?:rra(?:-(?:de-(?:s(?:evilh|ien)a|ninguém)|a-terra)|s-a-terra)|sta(?:s-de-(?:ferro|ponte)|-de-(?:ferro|ponte)))|i(?:nta(?:s-d(?:os-pobres|a-china)|-d(?:os-pobres|a-china))|r(?:as?-que-ti|o-de-guer)ra)|o(?:r(?:rão-de-alicante|nas?-e-torna)|ucinhos?-do-céu|pas?-a-tudo)|r(?:o(?:(?:uxas?|ixa)-de-ovos|mba-de-boi)|intas?-e-um)|êtes?-à-tête|énis-de-mesa)|r(?:abo(?:s-de-(?:(?:a(?:ndorinh|rrai)|sai)a|(?:cav|g)alo|leque|tatu)|-de-(?:(?:a(?:ndorinh|rrai)|sai)a|(?:cav|g)alo|leque|tatu))|e(?:lógio(?:s-d(?:a-morte|e-ponto)|-d(?:a-morte|e-ponto))|sina-de-jalapa)|o(?:sa-d(?:e-o[iu]ro|os-ventos)|upa-de-franceses)|és-do-ch(?:ões|ão))|s(?:a(?:l-de-(?:s(?:eldlitz|aturno)|(?:júpit|glaub)er|azedas|epsom|vichy)|c(?:a-de-carv(?:ões|ão)|o-de-areia)|ída-de-(?:banho|praia)|is-de-azedas)|o(?:p(?:inha-de-massa|a-de-urso)|l-(?:de-gata|e-dó))|ul-rio-grandense)|v(?:i(?:n(?:ho(?:-de-(?:c(?:heiro|aju)|maçãs?|palma)|s-de-(?:cheiro|maçãs))|t(?:e-e-(?:quatro-horas|um)|ém-de-santo-antónio))|ola-d(?:e-a(?:rame|mor)|a-terra)|dro-de-cheiro)|erbos?-de-encher|olta-no-meio)|l(?:i(?:xa(?:s-de-(?:lei|pau)|-de-(?:lei|pau))|mpas?-pára-brisas|nha-de-água)|íngua(?:-de-(?:(?:vead|gat)o|trapos|sogra)|s-de-gato)|ua(?:-de-me(?:is|l)|s-de-mel)|eite-de-ca(?:is|l))|o(?:lho(?:-de-(?:mosquito|sogra|tigre|boi)|s-de-boi)|co(?:-do-coraç(?:ões|ão)|s-do-coração)|ficia(?:is|l)-às-ordens|itavos-de-fina(?:is|l)|relhas-de-abade)|g(?:(?:aitas?-de-(?:beiço|fole)|rosso-de-nápole|ás-dos-pântano|essos?-de-pari)s|u(?:inchos?-da-tainha|arda-de-corpo))|á(?:gua(?:s-de-(?:(?:forç|mes)a|végeto|lume)|-de-(?:(?:forç|mes)a|végeto|lume))|rvores?-da-vida)|d(?:ente(?:s-de-(?:serra|lobo)|-de-coelho)|(?:anças?-de-são-vit|oenças?-do-son)o|ia-a-dia)|zé(?:s-(?:d(?:os-anzóis|a-véstia)|faz-formas)|-(?:d(?:os-anzóis|a-véstia)|faz-formas))|n(?:(?:egros?-de-fum|ós?-de-adã)o|ortes?-rio-grandense|ão-sei-quês?|ariz-de-cera)|j(?:uiz(?:s-de-(?:campo|linha)|-de-(?:campo|linha))|ardi(?:ns|m)-de-infância)|qu(?:arto(?:s-de-fina(?:is|l)|-de-fina(?:is|l))|eijinho-do-céu)|u(?:(?:nhas?-de-fom|p-to-dat)e|mbigo-de-freira)|e(?:aus?-de-toilette|spuma-do-mar)|hás?-de-haver|és-não-és)</regexp>
    <message>Esta palavra já não é hifenizada.</message>
    <!--<suggestion><match no="0" regexp_match="-" regexp_replace=" "/></suggestion>-->
    <url>http://www.portaldalinguaportuguesa.org/recursos.html?action=novoacordo</url>
    <example type='incorrect'>Soluções <marker>terra-a-terra</marker> têm resistência.</example>
    <example type='correct'>Soluções <marker>terra a terra</marker> têm resistência.</example>
</rule>


<rule id='AO90_MONTHS_CASING' type='grammar' name='[pt-PT][AO90] Capitalização de Meses e Estações do Ano'>
    <!-- Created by Tiago F. Santos , Portuguese rule, 2017-01-25 -->
    <antipattern>
        <token>Rio</token>
        <token>de</token>
        <token>Janeiro</token>
    </antipattern>
    <antipattern>
        <token>25</token>
        <token>de</token>
        <token>Abril</token>
    </antipattern>
    <antipattern>
        <token>Revolução</token>
        <token>de</token>
        <token>Outubro</token>
    </antipattern>
    <antipattern>
        <token>Primavera</token>
        <token>Árabe</token>
    </antipattern>
    <antipattern>
        <token regexp='yes'>Jan|Fev|Abr|Mai|Jun|Jul|Ago|Set|Out|Nov</token>
        <token postag_regexp='yes' postag='NP.+|UNKNOWN'/>
    </antipattern>
    <pattern case_sensitive='yes'>
        <token negate_pos='yes' postag='SENT_START'/>
        <marker>
            <token regexp='yes'>(?:Janeiro|Fevereiro|Março|Abril|Maio|Junho|Julho|Agosto|Setembro|Outubro|Novembro|Dezembro)s?|(?:Jan|Fev|Abr|Mai|Jun|Jul|Ago|Set|Out|Nov)|Invernos?|Primaveras?|Ver(?:ão|ões)|Outonos?|Estios?</token><!-- TODO |Mar|Dez create subrule for these cases -->
        </marker>
    </pattern>
    <message>Segundo o Acordo Ortográfico de 90, os meses e as estações do ano deixam de ser capitalizados.</message>
    <suggestion><match no='2' case_conversion='alllower'/></suggestion>
    <url>http://www.uc.pt/noticias/02_NL_2011/05_2011/2011_05_ManualNovoAcordoOrtografico.pdf/</url>
    <short>Erro de capitalização.</short>
    <example correction='janeiro'>O ano novo chinês é a 28 de <marker>Janeiro</marker>.</example>
    <example correction='inverno'>Este <marker>Inverno</marker> está a ser muito seco.</example>
    <example correction='set'>22 <marker>Set</marker> – início do outono.</example>
    <example>Junho é um mês de muitas chuvas.</example>
    <example>1) Jan Rogoziński, A brief history of the Caribbean : fr...</example>
    <example correction='jan'>1 <marker>Jan</marker> 2002 - As moedas e notas físicas de euro entraram em circulação, tornando-se a moeda de uso corrente entre os membros originais.</example>
</rule>


<rulegroup id='AO90_WEEKDAYS_CASING_PT_PT' type='grammar' name='[pt-PT][AO90] Capitalização dos Dias da Semana'>
    <!-- Created by Tiago F. Santos , Portuguese rule, 2017-01-26 -->

    <rule>

        <antipattern>
            <token postag='SENT_START'/>
            <token postag='_QUOT'/>
            <token>Ter</token>
            <example>"Ter borboletas no estômago" indica aquela estranha sensação que se experimenta quando se está apaixonad...</example>
        </antipattern>

        <antipattern>
            <token>Ter</token>
            <token postag='NP.+' postag_regexp='yes'/>
            <example>Ter Stegen</example>
        </antipattern>

        <!-- MARCOAGPINTO 2022-08-13 (Checked/Enhanced) (25-JUL-2022+) *START* -->
        <!--
            Os principais cuidados com seu pet Ter um cachorrinho em casa para te fazer companhia é muito bom!
            - Ter cuidado especial ao escolher sua senha, evitando senhas óbvias tais como seu nome, seu e-mail, sobr...
            · Ter desenvolvido e implantado projetos na tecnologia Sharepoint.
            – Ter um momento em família, com todos reunidos, além das refeições.
            Confessava Ter sido sempre bastante orgulhoso dos haveres herdados e sobretudo daquele filho tão perfeito...
            - Dedicação: Ter vontade de servir, ser prestável e estabelecer uma relação de empatia.
            Aprimorar a velocidade do Como Fazer Seu Website De Vendas Online Ter Sucesso - Byte A Byte a alegria do usuário (acesse o meu primeiro desse post), mas isto também poss...
            Vinte e três Plantas Pra Ter Dentro De Apartamento Com Muito Charme!
        -->
        <antipattern>
            <token>Ter</token>
            <token postag='[DP][ADIPR].+|SPS00:[DP][ADIPR].+|VMP00.+|NC.+|AQ.+|SPS00_?|CC|CS|RG|I|RM|RN' postag_regexp='yes'/>
            <example>A tríade é simples Ser > Fazer > Ter.</example>
            <example>Os principais cuidados com seu pet Ter um cachorrinho em casa para te fazer companhia é muito bom!</example>
            <example>- Ter cuidado especial ao escolher sua senha, evitando senhas óbvias tais como seu nome, seu e-mail, sobr...</example>
            <example>· Ter desenvolvido e implantado projetos na tecnologia Sharepoint.</example>
            <example>– Ter um momento em família, com todos reunidos, além das refeições.</example>
            <example>Confessava Ter sido sempre bastante orgulhoso dos haveres herdados e sobretudo daquele filho tão perfeito...</example>
            <example>- Dedicação: Ter vontade de servir, ser prestável e estabelecer uma relação de empatia.</example>
            <example>Aprimorar a velocidade do Como Fazer Seu Website De Vendas Online Ter Sucesso - Byte A Byte a alegria do usuário (acesse o meu primeiro desse post), mas isto também poss...</example>
            <example>Vinte e três Plantas Pra Ter Dentro De Apartamento Com Muito Charme!</example>
        </antipattern>
        <!-- MARCOAGPINTO 2022-08-13 (Checked/Enhanced) (25-JUL-2022+) *END* -->

        <pattern case_sensitive='yes'>
            <token>
                <exception postag_regexp='yes' postag='SENT_START|NP.+'/></token>
            <marker>
                <token regexp='yes'>Sábados?|Domingo|(?:Seg|Ter|Qua|Qui|Sex|S[aá]b|Dom)</token>
            </marker>
            <token>
                <exception postag_regexp='yes' postag='NP.+|UNKNOWN'/></token>
        </pattern>
        <message>Segundo o Acordo Ortográfico de 90, os dias da semana deixam de ser capitalizados.</message>
        <suggestion><match no='2' case_conversion='alllower'/></suggestion>
        <url>http://www.uc.pt/noticias/02_NL_2011/05_2011/2011_05_ManualNovoAcordoOrtografico.pdf/</url>
        <example correction='domingo'>O torneio é no próximo <marker>Domingo</marker>.</example>
        <example correction='sáb'>A nova temporada estreia em <marker>Sáb</marker>. 24 dez 2016.</example>
        <example correction='ter'>A última temporada estreiou na <marker>Ter</marker>. 27 dez 2016.</example>
        <example>A data coincide com o aniversário do imperador Dom Pedro II.</example>
        <example>Nas eleições de 1946, o general Juan Domingo Perón se apresentou como candidato do Partido Lab...</example>
        <example>"Ter trabalho e despesa."</example>
    </rule>

    <rule>
        <pattern case_sensitive='yes'>
            <token negate_pos='yes' postag='SENT_START'/>
            <marker>
                <token regexp='yes'>(?:Segunda|Terça|Quarta|Quinta|Sexta)s?-[Ff]eiras?</token>
            </marker>
        </pattern>
        <message>Segundo o Acordo Ortográfico de 90, os dias da semana deixam de ser capitalizados.</message>
        <suggestion><match no='2' case_conversion='alllower'/></suggestion>
        <url>http://www.uc.pt/noticias/02_NL_2011/05_2011/2011_05_ManualNovoAcordoOrtografico.pdf/</url>
        <example correction='segundas-feiras'>As <marker>Segundas-feiras</marker> são sempre difíceis.</example>
        <example>Segundas-feiras são sempre difíceis.</example>
    </rule>

</rulegroup>


<rule id='AO90_CARDINAL_POINTS_CASING' type='grammar' name='[pt-PT][AO90] Capitalização de Pontos Cardeais'>
    <!-- Created by Tiago F. Santos , Portuguese rule, 2017-01-26 -->
    <antipattern case_sensitive='yes'>
        <token>Médio</token>
        <token>Oriente</token>
    </antipattern>
    <antipattern>
        <token regexp='yes'>em|(?:n|pel)[ao]s?</token>
        <token regexp='yes' case_sensitive='yes'>&pontos_cardeais_capitalizados;</token>
        <token regexp='yes'>d[eao]s?</token>
        <token regexp='yes' case_sensitive='yes'>\p{Lu}.+</token>
    </antipattern>
    <antipattern>
        <token postag='SENT_START'/>
        <token postag='_PUNCT'/>
        <token>Este</token>
    </antipattern>
    <antipattern>
        <token regexp='yes'>sentidos?|direção</token>
        <token regexp='yes'>&pontos_cardeais_capitalizados;</token>
        <token regexp='yes'>&hifen;|para</token>
        <token regexp='yes'>&pontos_cardeais_capitalizados;</token>
    </antipattern>
    <antipattern>
        <token>de</token>
        <token regexp='yes'>&pontos_cardeais_capitalizados;</token>
        <token regexp='yes'>a|para</token>
        <token regexp='yes'>&pontos_cardeais_capitalizados;</token>
    </antipattern>
    <!-- MARCOAGPINTO 2020-07-14 (2-JUL-2020+) *START* -->
    <!-- ""Este era um lugar bem agradável."" -->
    <!-- "Este sistema funciona muito bem." -->
    <antipattern>
        <token>este</token>
        <token postag='NC[CFM]S000' postag_regexp='yes'/>
    </antipattern>
    <!-- MARCOAGPINTO 2020-07-14 (2-JUL-2020+) *END* -->
    <pattern case_sensitive='yes'>
        <token>
            <exception regexp='yes'>[Pp][oó]lo|[Zz]onas?|[Rr]egi(ão|ões)|[Oo]|[Dd]o|[Nn]o|[Pp]arte|[Hh]emisfério|\-|\p{Lu}\p{Ll}+</exception>
            <exception postag_regexp='yes' postag='SENT_START|NP.+'/></token>
        <marker>
            <token regexp='yes'>&pontos_cardeais_capitalizados;
            <exception postag_regexp='yes' postag='NP..[^G].+'/></token>
    </marker>
</pattern>
<message>Segundo o Acordo Ortográfico de 90, os pontos cardeais deixam de ser capitalizados, excepto se se referem a uma região específica.</message>
<suggestion><match no='2' case_conversion='alllower'/></suggestion>
<url>http://www.uc.pt/noticias/02_NL_2011/05_2011/2011_05_ManualNovoAcordoOrtografico.pdf/</url>
<example correction='sul'>Trás-os-Montes é a <marker>Sul</marker> do rio Douro.</example>
<example>Estas vão se reduzindo em direção ao Pólo Sul.</example>
<example>Rodeia o polo Sul, e por esse motivo está quase completamente coberto de gelo.</example>
<example>Este elevador é capaz de carregar 10 pessoas por vez.</example>
<example>A maior parte dos corais no Norte da Grande Barreira estão mortos.</example>
<example>A maioria dos corais na parte Norte da Grande Barreira estão mortos.</example>
<example>Atenção! Acidente na A1 no sentido Norte-Sul. </example>
    </rule>


    <rulegroup id='AO90_BEM_FEITO' name='[pt-PT][AO90] Bem-feito/Bem feito!'>
        <rule>
            <antipattern>
                <token postag='SENT_START'/>
                <token>Bem</token>
                <token regexp='yes'>feit[ao]</token>
                <token regexp='yes'>[!\?]</token>
            </antipattern>
            <pattern>
                <token>bem</token>
                <token regexp='yes'>feit[ao]s?</token>
            </pattern>
            <message>Segundo o Acordo Ortográfico de 90, o adjetivo deve ser hifenizado, enquanto que a interjeição não deve ser hifenizada.</message>
            <suggestion>\1-\2</suggestion>
            <example correction='bem-feito'>Este programa está mesmo <marker>bem feito</marker>!</example>
            <example>Bem feito!</example>
        </rule>
        <rule>
            <pattern>
                <token postag='SENT_START'/>
                <marker>
                    <token regexp="yes">bem-feit[ao]</token>
                    <token regexp='yes'>[!\?]</token>
                </marker>
            </pattern>
            <message>Segundo o Acordo Ortográfico de 90, o adjetivo deve ser hifenizado, enquanto que a interjeição não deve ser hifenizada.</message>
            <suggestion><match no="2" regexp_match="-" regexp_replace=" "/>\3</suggestion>
            <example correction='Bem feito!'><marker>Bem-feito!</marker></example>
            <example>Este programa está mesmo <marker>bem-feito</marker>!</example>
        </rule>
    </rulegroup>


    <rulegroup id='AO90_HAVER_DE' name='[pt-PT][AO90] Haver + de'>
        <!-- Created by Tiago F. Santos , Portuguese rule, 2017-01-07 -->
        <url>https://ciberduvidas.iscte-iul.pt/consultorio/perguntas/sobre-supressao-do-hifen-na-forma-verbal-ha-de-depois-do-novo-acordo/29531</url>
        <rule>
            <pattern>
                <token regexp='yes'>heis?|hás?|hão</token>
                <token regexp='yes' spacebefore='no'>&hifen;</token>
                <token>de</token>
            </pattern>
            <message>Segundo o Acordo Ortográfico de 90, esta forma já não é hifenizada.</message>
            <suggestion>\1 \3</suggestion>
            <example correction='Hás de'><marker>Hás-de</marker> comprar uma casa.</example>
            <example correction='Hei de'><marker>Hei-de</marker> ir ao Congo.</example>
        </rule>
        <rule>
            <antipattern>
                <token regexp='yes'>às?</token>
                <token>de</token>
                <token regexp='yes'>uma?|uns</token>
            </antipattern>
            <antipattern>
                <token>ás</token>
                <token>de</token>
                <token regexp='yes'>&naipes;</token>
            </antipattern>
            <pattern>
                <token negate='yes' regexp='yes'>&hifen;</token>
                <marker>
                    <token regexp='yes'>eis?|ás?|ão</token>
                    <token min='0' regexp='yes'>-|–|—</token>
                    <token>de</token>
                </marker>
            </pattern>
            <message>Segundo o Acordo Ortográfico de 90, o verbo haver não é hifenizado nem leva 'h'.</message>
            <suggestion>h<match no='2' case_conversion='alllower'/> \4</suggestion>
            <example correction='Hás de'><marker>Ás-de</marker> comprar uma casa.</example>
            <example>All In na blind com Ás de Copas e Ás de Ouros.</example>
            <example>Os espanhóis realizaram outra expedição similar à de Orellana.</example>
        </rule>
        <rule>
            <pattern>
                <token regexp='yes'>às?</token>
                <token regexp='yes' spacebefore='no'>&hifen;</token>
                <token>de</token>
            </pattern>
            <message>Segundo o Acordo Ortográfico de 90, o verbo haver não é hifenizado nem leva 'h'.</message>
            <suggestion>há<match no='1' regexp_match='.(s?)' regexp_replace='$1'/> \3</suggestion>
            <example correction='Hás de'><marker>Às-de</marker> comprar uma casa.</example>
            <example>Os espanhóis realizaram outra expedição similar à de Orellana.</example>
        </rule>
    </rulegroup>


    <rule id="AO90_POLO_CAPITALIZATION" name="[pt-PT][AO90] Polo Norte/Sul">
    <!-- Created by Tiago F. Santos , Portuguese rule, 2017-08-08 -->
        <antipattern case_sensitive='yes'>
            <token regexp='yes'>P[oó]lo</token>
            <token regexp='yes'>Norte|Sul</token>
        </antipattern>
        <pattern>
            <token regexp='yes'>p[oó]lo</token>
            <token regexp='yes'>norte|sul</token>
        </pattern>
        <message>Segundo o AO90, deve capitalizar esta expressão geográfica.</message>
        <suggestion><match no='1' case_conversion='startupper'/> <match no='2' case_conversion='startupper'/></suggestion>
        <example correction="Polo Norte">O <marker>polo norte</marker> é no Ártico.</example>
        <example correction="Polo Sul">O <marker>polo Sul</marker> é no Antártico.</example>
        <example>O <marker>Polo Norte</marker> é no Ártico.</example>
    </rule>


</category>


<category id="AO45_RULES_PT_PT" name="[pt-PT] Regras do Acordo Ortográfico de 45 (pré-AO90)" type="misspelling" default='off'>

    <rule id='AO45_MONTHS_CASING' type='grammar' name='[pt-PT][AO45] Capitalização de Meses e Estações do Ano'>
        <!-- Created by Tiago F. Santos , Portuguese rule, 2017-01-26 -->
        <pattern case_sensitive='yes'>
            <token regexp='yes'>(?:&meses_ano_pt_pt;)s?|(?:&meses_ano_abrev_pt_pt;)|invernos?|primaveras?|ver(?:ão|ões)|estios?|outonos?
            <exception regexp='yes'>mar|dez</exception></token>
    </pattern>
    <message>Segundo o Acordo Ortográfico de 45, os meses e as estações do ano devem ser capitalizados.</message>
    <suggestion><match no='1' case_conversion='startupper'/></suggestion>
    <url>http://www.uc.pt/noticias/02_NL_2011/05_2011/2011_05_ManualNovoAcordoOrtografico.pdf/</url>
    <example correction='Janeiro'>O ano novo chinês é a 28 de <marker>janeiro</marker>.</example>
    <example correction='Inverno'>Este <marker>inverno</marker> está a ser muito seco.</example>
    <example correction='Set'>22 <marker>set</marker> - início do Outono.</example>
    <example>Só faltam dez dias para as férias.</example>
</rule>


<rulegroup id='AO45_WEEKDAYS_CASING' type='grammar' name='[pt-PT][AO45] Capitalização dos Dias da Semana'>
    <!-- Created by Tiago F. Santos , Portuguese rule, 2017-01-26 -->
    <rule>
        <pattern case_sensitive='yes'>
            <token regexp='yes'>sábados?|domingo|s[aá]b|dom</token>
        </pattern>
        <message>Segundo o Acordo Ortográfico de 90, os dias da semana são capitalizados.</message>
        <suggestion><match no='1' case_conversion='startupper'/></suggestion>
        <url>http://www.uc.pt/noticias/02_NL_2011/05_2011/2011_05_ManualNovoAcordoOrtografico.pdf/</url>
        <example correction='Domingo'>O torneio é no próximo <marker>domingo</marker>.</example>
        <example correction='Sáb'>A nova temporada estreia em <marker>sáb</marker> 24 dez 2016.</example>
    </rule>
    <rule>
        <pattern case_sensitive='yes'>
            <token regexp='yes'>(?:segunda|terça|quarta|quinta|sexta)s?-[Ff]eiras?|(?:seg|ter|qua|qui|sex)-[Ff]eiras?</token>
        </pattern>
        <message>Segundo o Acordo Ortográfico de 45, os dias da semana são capitalizados.</message>
        <suggestion><match no='1' regexp_match="Feiras" regexp_replace="feiras" case_conversion='startupper'/></suggestion>
        <url>http://www.uc.pt/noticias/02_NL_2011/05_2011/2011_05_ManualNovoAcordoOrtografico.pdf/</url>
        <example correction='Segundas-feiras'>As <marker>segundas-feiras</marker> são sempre difíceis.</example>
        <!-- TODO: another rule: <example correction='Segundas-feiras'>As <marker>segundas-Feiras</marker> são sempre difíceis.</example>-->
        <!--<example correction='Ter'>A última temporada estreou em <marker>ter</marker>, 27 Dez 2016.</example>--><!-- TODO seperate abrev and exclude ter -->
    </rule>
</rulegroup>


<rulegroup id='AO45_CARDINAL_POINTS_CASING' type='grammar' name='[pt-PT][AO45] Capitalização de Pontos Cardeais'>
    <rule>
        <pattern case_sensitive='yes'>
            <marker>
                <token regexp='yes'>&pontos_cardeais;
                <exception>este</exception></token>
        </marker>
        <token negate='yes' regexp='yes'>&hifen;</token>
    </pattern>
    <message>Segundo o Acordo Ortográfico de 45, os pontos cardeais são capitalizados.</message>
    <suggestion><match no='1' case_conversion='startupper'/></suggestion>
    <url>http://www.uc.pt/noticias/02_NL_2011/05_2011/2011_05_ManualNovoAcordoOrtografico.pdf/</url>
    <example correction='Sul'>Trás-os-Montes é a <marker>sul</marker> do rio Douro.</example>
    <example>Devolva este livro assim que puder.</example>
</rule>
<rule>
    <pattern case_sensitive='yes'>
        <token regexp='yes'>[Pp]ólo|[Zz]onas?|[Rr]egi(ão|ões)|[Vv]entos?|[Oo]ndas?|[Oo]ndulação|[Ss]well|[Direc?ção]|[Oo]|[Dd]o|[Nn]o|-</token>
        <token min='0'>a</token>
        <token regexp='yes'>l?este</token>
    </pattern>
    <message>Segundo o Acordo Ortográfico de 45, os pontos cardeais são capitalizados.</message>
    <suggestion><match no='1' include_skipped='all'/> <match no='2' include_skipped='all'/> <match no='3' case_conversion='startupper'/></suggestion>
    <url>http://www.uc.pt/noticias/02_NL_2011/05_2011/2011_05_ManualNovoAcordoOrtografico.pdf/</url>
    <example correction='zona Este'>Os biomas são mais diversos na <marker>zona este</marker> da Europa.</example>
</rule>
<rule>
    <pattern case_sensitive='yes'>
        <token regexp='yes'>[Aa]</token>
        <token regexp='yes'>l?este</token>
        <token regexp='yes'>[dn][eao]s?</token>
    </pattern>
    <message>Segundo o Acordo Ortográfico de 45, os pontos cardeais são capitalizados.</message>
    <suggestion>\1 <match no='2' case_conversion='startupper'/> \3</suggestion>
    <url>http://www.uc.pt/noticias/02_NL_2011/05_2011/2011_05_ManualNovoAcordoOrtografico.pdf/</url>
    <example correction='A Este da'><marker>A este da</marker> Europa, os biomas são mais diversos.</example>
</rule>
    </rulegroup>


    <rule id='AO45_HAVER_DE' name='[pt-PT][AO45] Haver-de'>
        <pattern>
            <marker>
                <token regexp='yes'>heis?|hás?|hão</token>
                <token>de</token>
            </marker>
            <token postag='VMN000.+' postag_regexp='yes'/>
        </pattern>
        <message>Segundo o Acordo Ortográfico de 45, esta forma é hifenizada.</message>
        <suggestion>\1-\2</suggestion>
        <example correction='Hás-de'><marker>Hás de</marker> comprar uma casa.</example>
        <example correction='Hei-de'><marker>Hei de</marker> ir ao Congo.</example>
    </rule>


    <rule id="AO45_PELO_PÊLO" name="[pt-PT][AO45] pelo/pêlo" default="off">
    <!-- Created by Marco A.G. Pinto   -->
        <pattern>
            <token>muito</token>
            <token>pelo</token>
            <token inflected='yes'>ser</token>
        </pattern>
        <message>Substitua por <suggestion>muito pêlo \3</suggestion>.</message>
        <example correction="muito pêlo é">Para quem tem animais com <marker>muito pelo é</marker> bom.</example>
    </rule>


</category>


<category id='CONFUSED_WORDS_PT_PT' name="[pt-PT] Confusão de Palavras">

    <rule id='PARONYM_PREMIO_252_PT' name='[pt-PT] Parónimo: premio'>
        <pattern>
            <token regexp='yes'>&art_detecao_paronimos;</token>
            <token min='0' postag='A.+' postag_regexp='yes'/>
            <token regexp='yes'>premios?</token>
        </pattern>
        <message>Esta palavra é um verbo. Se pretende referir-se a um nome ou adjetivo, deve utilizar a forma acentuada.</message>
        <suggestion><match no='1' include_skipped='all'/> <match no='2' include_skipped='all'/> prémio<match no='3' regexp_match='.+?(s?)$' regexp_replace='$1'/></suggestion>
        <url>https://pt.wiktionary.org/wiki/prémio</url>
        <example correction='no prémio'><marker>no premio</marker>.</example>
        <example correction='nos prémios'><marker>nos premios</marker>.</example>
    </rule>
    <rule id='PARONYM_PREMIO_252_PT2' name='[pt-PT] Parónimo: premio'>
        <pattern>
            <token regexp='yes' inflected="yes">&verbos_auxiliares_part_passado;|dever|poder|querer|costumar</token>
            <marker>
                <token regexp='yes'>premios?</token>
            </marker>
        </pattern>
        <message>Esta palavra é um verbo. Se pretende referir-se a um nome ou adjetivo, deve utilizar a forma acentuada.</message>
        <suggestion>prémio<match no='2' regexp_match='.+?(s?)$' regexp_replace='$1'/></suggestion>
        <url>https://pt.wiktionary.org/wiki/prémio</url>
        <example correction='prémio'>E tem <marker>premio</marker> para todos.</example>
        <example correction='prémios'>E tem <marker>premios</marker> para todos.</example>
    </rule>


    <rule id='AUTO-FALANTE' name="[pt-PT] Confusão: Auto-falante/Altifalante">
        <pattern>
            <token>auto</token>
            <token regexp='yes' min='0'>&tracos_de_separacao;</token>
            <token regexp='yes'>falantes?</token>
        </pattern>
        <message>Possível confusão de termos.</message>
        <suggestion><match no='3' postag='AQ0C(.)0' postag_replace='AQ0C$10'>altifalante</match></suggestion>
        <suggestion>alto-\3</suggestion>
        <example correction="altifalante|alto-falante">O <marker>auto-falante</marker> está avariado.</example>
        <example correction="altifalantes|alto-falantes">Os <marker>auto-falantes</marker> estão avariados.</example>
    </rule>


    <rule id='CRIAR_QUERER' name="[pt-PT] Confusão: Criar/Querer">
        <pattern>
            <marker>
                <token regexp='yes'>cria[ms]?|criamos</token>
            </marker>
            <token postag="VMN0000">
                <exception>saber</exception> <!-- "Ele cria saber." -->
            </token>
        </pattern>
        <message>Possível confusão de termos.</message>
        <suggestion><match no='1' postag_regexp='yes' postag='V.+'>querer</match></suggestion>
        <example correction="querias">Tu <marker>crias</marker> comprar o livro.</example>
        <example correction="queria">Ele <marker>cria</marker> comprar o livro.</example>
        <example correction="queriam">Eles <marker>criam</marker> comprar o livro.</example>
        <example correction="queria">É o que eu <marker>cria</marker> dizer.</example>
        <example>Ele cria saber.</example>
    </rule>


</category>



    <category id='TRANSLATION_ERRORS_PT_PT' name="[pt-PT] Erros de Tradução" type="mistranslation" tone_tags="academic">
        <!-- IDEA foreign_terms -->


        <rule id='ERRO_TRADUÇÃO_ESTIMAÇÃO_MÁXIMA_SEMELHANÇA_PT_PT' name="[pt-PT] Erro tradução: estimação máxima 'semelhança' → 'verosimilhança'(PT)">
            <!--
                In pt_PT: verosimilhança
                In pt_BR: verossimilhança
            -->
            <pattern>
                <token skip="4" regexp="yes" inflected='yes' >estimativa|estimação|estimador</token>
                <token>máxima</token>
                <marker>
                    <token regexp="yes">semelhança|equivalência</token>
                </marker>
            </pattern>
            <message>Expressão não pode ser traduzida literalmente.</message>
            <suggestion>verosimilhança</suggestion>
            <example correction='verosimilhança'>A estimativa de máxima <marker>semelhança</marker> é usada em Estatística.</example>
        </rule>


        <rule id='ERRO_TRADUÇÃO_FURTO_ROUBO_IDENTIDADE' name="[pt-PT] Erro tradução: 'furto' de identidade → 'usurpação'">
            <pattern>
                <marker>
                    <token skip="4" inflected='yes' regexp='yes'>furtar|roubar</token>
                </marker>
                <token regexp='yes'>identidades?</token>
            </pattern>
            <message>Expressão não pode ser traduzida literalmente.</message>
            <suggestion><match no='1' postag='V.+' postag_regexp='yes'>usurpar</match></suggestion>
            <example correction="usurpou">Alguém <marker>roubou</marker> a identidade do dono da empresa.</example>
            <example>Alguém <marker>usurpou</marker> a minha identidade.</example>
            <example>Achamos que este cara <marker>usurpou</marker> a identidade dele.</example>
            <example>Este senhor <marker>usurpou</marker> ao Rui a identidade dele.</example>
        </rule>


    </category>



<category id="TYPOGRAPHY" name="[pt-PT] Tipografia">
    <rule type="locale-violation" id='CURRENCY_PLACEMENT_PT_FOREIGN' name="[pt-PT] Posição dos símbolos de moeda: '100£ (£100)">
        <pattern>
            <token regexp="yes">\d+([,.]\d+)*</token>
            <token regexp="yes">&currency_symbols;
            <exception>€</exception>
        </token>
    </pattern>
    <message>Símbolos de moeda internacionais se escrevem, via de regra, antes do valor.</message>
    <suggestion>\2\1</suggestion>
    <url>https://pt.wikipedia.org/wiki/Euro#Conven.C3.A7.C3.B5es_de_escrita</url>
    <short>Mova o símbolo da moeda para antes do valor</short>
    <example correction="£100">Deve <marker>100£</marker>.</example>
    <example correction="£100.00">Deve <marker>100.00£</marker>.</example>
    <example>Preciso de 400€.</example>
</rule>

<rule type="locale-violation" id='CURRENCY_PLACEMENT_EUR' name="[pt-PT] Posição do símbolo do euro: '€100 (100 €)">
    <pattern>
        <token>€</token>
        <token regexp="yes">\d+([,.]\d+)*</token>
    </pattern>
    <message>O símbolo do euro deve seguir o valor monetário.</message>
    <suggestion>\2&nbsp;\1</suggestion>
    <url>https://pt.wikipedia.org/wiki/Euro#Conven.C3.A7.C3.B5es_de_escrita</url>
    <short>Mova &quot;€&quot; para depois do valor</short>
    <example correction="100&nbsp;€">Deve <marker>€100</marker>.</example>
</rule>

<rule type="locale-violation" id='CURRENCY_SPACE_PT_FOREIGN' name="[pt-PT] Espaçamento entre símbolos e valores monetários: '$ 100' ($100)">
    <pattern>
        <token regexp="yes">&currency_symbols;
        <exception>€</exception>
    </token>
    <token regexp="yes" spacebefore="yes">\d+([,.]\d+)*</token>
</pattern>
<message>Os símbolos monetários internacionais não se separam do valor por um espaço.</message>
<suggestion>\1\2</suggestion>
<url>https://pt.wikipedia.org/wiki/Euro#Conven.C3.A7.C3.B5es_de_escrita</url>
<short>Remover o espaço</short>
<example correction="R$100">Custa <marker>R$ 100</marker>.</example>
      </rule>

      <rule type="locale-violation" id='CURRENCY_SPACE_EUR' name="[pt-PT] Espaçamento entre o símbolo do euro e valores monetários: '100€' (100 €)">
          <pattern>
              <token regexp="yes">\d+([,.]\d+)*</token>
              <token spacebefore="no">€</token>
          </pattern>
          <message>O símbolo do euro se separa do valor monetário por um espaço.</message>
          <suggestion>\1&nbsp;\2</suggestion>
          <url>https://pt.wikipedia.org/wiki/Euro#Conven.C3.A7.C3.B5es_de_escrita</url>
          <short>Adicionar um espaço</short>
          <example correction="100&nbsp;€">Custa <marker>100€</marker>.</example>
      </rule>
  </category>
</rules>




© 2015 - 2024 Weber Informatics LLC | Privacy Policy