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

org.languagetool.rules.uk.grammar-spelling.xml Maven / Gradle / Ivy

The newest version!
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/print.xsl" title="Pretty print" ?>
<?xml-stylesheet type="text/css" href="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/rules.css" title="Easy editing stylesheet" ?>
<!--
Ukrainian grammar and typo rules for LanguageTool
Copyright (C) 2007 Andriy Rysin

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
-->

<!DOCTYPE rules [
    <!ENTITY punct_std "[,.:;!?…/()\[\]&quot;«»„“”–—-]|[.!?]{2,3}">
    <!ENTITY punct_dash "[–—-]">
    <!ENTITY punct_quote "[&quot;«»„“”]">
    <!ENTITY punct_quote_left "[&quot;«„“”]">
]>

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

  <category name="Орфографія" id="SPELLING">

    <!-- group: дефіс -->

    <rulegroup id="SLOVA_Z_NAPIV_RAZOM" name="Слова з префіксом «напів» пишемо разом">
      <rule>
        <pattern>
          <marker>
            <token>напів</token>
            <token postag_regexp="yes" postag="(noun|adj|adv).*"></token>
          </marker>
        </pattern>
        <message>Слова з «напів» пишемо разом <suggestion>напів<match no="2"/></suggestion></message>
        <short>Правильно писати разом</short>
        <example correction="напівгіркий">У цього овоча <marker>напів гіркий</marker> присмак.</example>
        <example correction="напіввагон">Зелений <marker>напів вагон</marker></example>
      </rule>

      <rule>
        <pattern>
          <marker>
            <token regexp="yes">напів[-–][а-яіїєґ].*</token>
          </marker>
        </pattern>
        <message>Слова з «напів» пишемо разом <suggestion><match no="1" regexp_match="(напів)[-–](.*)" regexp_replace="$1$2"/></suggestion></message>
        <short>Правильно писати разом</short>
        <example correction="напівгіркий">У цього овоча <marker>напів-гіркий</marker> присмак.</example>
        <example correction="напіввагон">Зелений <marker>напів-вагон</marker></example>
      </rule>
    </rulegroup>

    <rule id="piv_with_proper_noun_1992" name="«пів-» з власними назвами (правопис 1992)" default="off">
      <pattern>
        <marker>
          <token>пів</token>
          <!--
              <token regexp="yes">Європи|Києва|України|Польщі|Росії|Харкова|Америки|Австралії|Туреччини|Австрії|Відня|Китаю|Кореї|Франції|Іспанії|Італії|Угорщини|Москви|Казані|Швейцарії</token>
          -->
          <token postag_regexp="yes" postag="noun:.*:v_rod.*:prop.*"></token>
        </marker>
      </pattern>
      <message>«пів» з усіма власними назвами пишемо через дефіс: <suggestion><match no="1"/>-<match no="2"/></suggestion></message>
      <short>Правильно писати через дефіс</short>
      <example correction="пів-Європи">Снігопади паралізували <marker>пів Європи</marker>.</example>
      <example correction="пів-Євро́пи">Снігопади паралізували <marker>пів Євро́пи</marker>.</example>
      <example>Снігопади паралізували пів-Європи.</example>
    </rule>

    <rule id="piv_before_iotized_1992" name="«пів'» перед йотованими (правопис 1992)" default="off">
      <pattern>
        <marker>
          <token>пів</token>
          <token case_sensitive="yes" regexp="yes">[яюєї].*</token>
        </marker>
      </pattern>
      <message>«пів» із загальними назвами на я, ю, є, ї пишемо через апостроф. Ви мали на увазі <suggestion>пів'<match no="2"/></suggestion>?</message>
      <short>Правильно «пів'яблука» тощо</short>
      <example correction="пів'яблука">З'їсти <marker>пів яблука</marker>.</example>
      <example>З'їсти пів'яблука.</example>
      <example correction="Пів'їдальні"><marker>Пів їдальні</marker> займали столи.</example>
      <example>Пів'їдальні займали столи. </example>
      <example correction="пів'юаня">Вартість квитка – <marker>пів юаня</marker>.</example>
      <example>Вартість квитка – пів'юаня.</example>
      <example>об'їздив пів Європи</example>
    </rule>

    <rulegroup id="piv_okremo_2019" name="«пів» пишемо окремо">
      <rule>
        <pattern>
          <token regexp="yes">пів['–-][а-яіїєґ'].*
            <exception>пів-на-пів</exception>
            <exception postag_regexp="yes" postag="noun(?!.*ua_1992).*"/>
          </token>
        </pattern>
        <message>За правописом 2019 «пів» з іменниками пишемо окремо, якщо це слово не становить єдине поняття</message>
        <suggestion><match no="1" regexp_match="([пП]ів)['–-]?([а-яіїєґА-ЯІЇЄҐ].*)" regexp_replace="$1 $2" /></suggestion>
        <example correction="пів яблука">з'їв <marker>пів'яблука</marker>.</example>
        <example correction="Пів ящика">з'їв <marker>Пів'ящика</marker>.</example>
        <example correction="пів України">з'їв <marker>пів-України</marker>.</example>
        <example correction="пів Європи">з'їв <marker>пів'Європи</marker>.</example>
        <example>пів'ют</example>
        <example>півколо</example>
      </rule>

      <rule>
        <pattern>
          <token regexp="yes" postag_regexp="yes" postag="noun.*?:nv.*">пів[^'–-][а-яіїєґ'].*
            <exception postag_regexp="yes" postag="noun(?!.*ua_1992).*"/>
          </token>
        </pattern>
        <message>За правописом 2019 «пів» з іменниками пишемо окремо, якщо це слово не становить єдине поняття</message>
        <suggestion><match no="1" regexp_match="(пів)([а-яіїєґ'].*)" regexp_replace="$1 $2" /></suggestion>
        <example correction="пів огірка">з'їв <marker>півогірка</marker>.</example>
        <example correction="пів року">цілих <marker>півроку</marker>.</example>
        <example>півколо</example>
        <example>південноафриканський</example>
      </rule>
    </rulegroup>

    <rulegroup id="top_with_num_2019" name="Топ- з числівниками">
      <url>https://check.nlp.net.ua/rules/top_with_num_2019</url>
      <rule>
        <pattern>
          <token regexp="yes">топ-[0-9]+</token>
        </pattern>
        <message>За правописом 2019 компонент топ- із числівниками не поєднуваний</message>
        <suggestion><match no="1" regexp_match="(?iu)(топ)-([0-9]+)" regexp_replace="найкращі $2"/></suggestion>
        <suggestion><match no="1" regexp_match="(?iu)(топ)-([0-9]+)" regexp_replace="найбільші $2"/></suggestion>
        <example correction="найкращі 100|найбільші 100"><marker>топ-100</marker>.</example>
      </rule>

      <rule>
        <pattern>
          <token postag_regexp="yes" postag="numr:.*:bad" regexp="yes">топ-.*</token>
        </pattern>
        <message>За правописом 2019 компонент топ- із числівниками не поєднуваний</message>
        <suggestion><match no="1" regexp_match="(?iu)(топ)-(.*)" regexp_replace="найкращі $2"/></suggestion>
        <suggestion><match no="1" regexp_match="(?iu)(топ)-(.*)" regexp_replace="найбільші $2"/></suggestion>
        <example correction="найкращі десять|найбільші десять"><marker>топ-десять</marker>.</example>
      </rule>
    </rulegroup>

    <rulegroup id="pryslivnykovi_spoluky_cherez_defis" name="Прислівникові сполуки через дефіс">
      <rule>
        <pattern>
          <token>давним</token>
          <token>давно</token>
        </pattern>
        <message>Правильно: <suggestion>давним-давно</suggestion></message>
        <example correction="давним-давно">Це було <marker>давним давно</marker>.</example>
      </rule>
      <rule>
        <pattern>
          <token>навіки</token>
          <token>віків</token>
        </pattern>
        <message>Правильно: <suggestion>навіки-віків</suggestion></message>
        <example correction="навіки-віків">це вже <marker>навіки віків</marker>.</example>
      </rule>
      <rule>
        <pattern>
          <token>віч</token>
          <token>на</token>
          <token>віч</token>
        </pattern>
        <message>Правильно: <suggestion>віч-на-віч</suggestion></message>
        <example correction="віч-на-віч">Зустрілися <marker>віч на віч</marker>.</example>
      </rule>
      <rule>
        <pattern>
          <token regexp="yes">[ву]сього</token>
          <token>на</token>
          <token>всього</token>
        </pattern>
        <message>Правильно: <suggestion>\1-на-всього</suggestion></message>
        <example correction="всього-на-всього">Їх було <marker>всього на всього</marker> троє.</example>
      </rule>
      <rule>
        <pattern>
          <token regexp="yes">[ву]сього</token>
          <token>навсього</token>
        </pattern>
        <message>Правильно: <suggestion>\1-на-всього</suggestion></message>
        <example correction="всього-на-всього">Їх було <marker>всього навсього</marker> троє.</example>
      </rule>
      <rule>
        <pattern>
          <token regexp="yes">[ву]сього-навсього</token>
        </pattern>
        <message>Правильно: <suggestion>всього-на-всього</suggestion></message>
        <example correction="всього-на-всього">Їх було <marker>всього-навсього</marker> троє.</example>
      </rule>
      <rule>
        <pattern>
          <token>як</token>
          <token>не</token>
          <token>як</token>
        </pattern>
        <message>Правильно: <suggestion>як-не-як</suggestion></message>
        <example correction="як-не-як">але <marker>як не як</marker> пішло.</example>
      </rule>
      <rule>
        <pattern>
          <token>де</token>
          <token>не</token>
          <token>де</token>
        </pattern>
        <message>Правильно: <suggestion>де-не-де</suggestion></message>
        <example correction="де-не-де">але <marker>де не де</marker> пішло.</example>
      </rule>
      <rule>
        <pattern>
          <token>коли</token>
          <token>не</token>
          <token>коли</token>
        </pattern>
        <message>Правильно: <suggestion>коли-не-коли</suggestion></message>
        <example correction="коли-не-коли">але <marker>коли не коли</marker> працювало.</example>
      </rule>
      <rule>
        <pattern>
          <token>хоч</token>
          <token>не</token>
          <token>хоч</token>
        </pattern>
        <message>Правильно: <suggestion>хоч-не-хоч</suggestion></message>
        <example correction="хоч-не-хоч">але <marker>хоч не хоч</marker> зробив.</example>
      </rule>
      <rule>
        <pattern>
          <token>з</token>
          <token>давніх</token>
          <token>давен</token>
        </pattern>
        <message>Правильно: <suggestion>з давніх-давен</suggestion></message>
        <example correction="з давніх-давен">так <marker>з давніх давен</marker> повелося.</example>
      </rule>
      <rule>
        <pattern>
          <token>з</token>
          <token>діда</token>
          <token>прадіда</token>
        </pattern>
        <message>Правильно: <suggestion>з діда-прадіда</suggestion></message>
        <example correction="з діда-прадіда">так <marker>з діда прадіда</marker> повелося.</example>
      </rule>
      <rule>
        <pattern>
          <token>без</token>
          <token>кінця</token>
          <token>краю</token>
        </pattern>
        <message>Правильно: <suggestion>без кінця-краю</suggestion></message>
        <example correction="без кінця-краю">і так <marker>без кінця краю</marker>.</example>
      </rule>
      <rule>
        <pattern>
          <token>на</token>
          <token case_sensitive="yes">гора</token>
        </pattern>
        <message>Правильно: <suggestion>на-гора</suggestion></message>
        <example correction="на-гора">видавати <marker>на гора</marker>.</example>
        <example>натякаючи, що на Гора поширюється «аморальність» поведінки Клінтона</example>
      </rule>
      <rule>
        <pattern>
          <token>по</token>
          <token>латині</token>
        </pattern>
        <message>Правильно: <suggestion>по-латині</suggestion></message>
        <example correction="по-латині">шпарити <marker>по латині</marker>.</example>
      </rule>
<!-- десь колись може писатися окремо
      <rule>
        <pattern>
          <token>десь</token>
          <token>колись</token>
        </pattern>
        <message>Правильно: <suggestion>десь-колись</suggestion></message>
        <example correction="десь-колись">і <marker>десь колись</marker>.</example>
      </rule>
-->
      <rule>
        <pattern>
          <token regexp="yes">куди|коли</token>
          <token>небудь</token>
        </pattern>
        <message>Правильно: <suggestion>\1-небудь</suggestion></message>
        <example correction="куди-небудь">поїхав <marker>куди небудь</marker>.</example>
      </rule>

      <rule>
        <pattern>
          <token>отож</token>
          <token regexp="yes">то|бо</token>
        </pattern>
        <message>Правильно: <suggestion>\1-\2</suggestion></message>
        <example correction="отож-бо">А <marker>отож бо</marker> й воно.</example>
      </rule>
    </rulegroup>

    <rulegroup id="WORDS_WITH_DASH" name="Слова через дефіс">
      <rule>
        <antipattern>
          <token>що</token>
          <token>буде</token>
        </antipattern>
        <antipattern>
          <token>як</token>
          <token>є</token>
        </antipattern>
        <antipattern>
          <token>будь</token>
          <token>що</token>
          <token>,</token>
          <token>а</token>
        </antipattern>
        <pattern>
          <token>будь</token>
          <token regexp="yes" inflected="yes">де|що|як|хто|чий|коли|який|котрий</token>
        </pattern>
        <message>Це слово пишеться через дефіс: <suggestion>\1-\2</suggestion></message>
        <example correction="будь-де">І в нас і <marker>будь де</marker>.</example>
        <example correction="будь-якому">І в нас і в <marker>будь якому</marker> місці.</example>
        <example>будь що буде</example>
        <!--        <example>будь як усі</example> -->
        <example>будь як є</example>
        <example>Будь що, а першого вересня</example>
      </rule>
      <rule>
        <pattern>
          <token regexp="yes">де|хто|коли|який|котрий</token>
          <token>будь</token>
        </pattern>
        <message>Це слово пишеться через дефіс: <suggestion>\1-\2</suggestion></message>
        <example correction="де-будь">І в нас і <marker>де будь</marker>.</example>
        <example>Колись ви казали, що будь у вас друге життя...</example>
      </rule>
      <rule>
        <pattern>
          <token>все</token>
          <token>таки</token>
        </pattern>
        <message>Це слово пишеться через дефіс: <suggestion>\1-\2</suggestion></message>
        <example correction="все-таки">Ви <marker>все таки</marker> вирішили піддатися спокусі.</example>
      </rule>
      <rule>
        <pattern>
          <token>пліч</token>
          <token>о</token>
          <token>пліч</token>
        </pattern>
        <message>Це слово пишеться через дефіс: <suggestion>\1-\2-\3</suggestion></message>
        <example correction="пліч-о-пліч">і <marker>пліч о пліч</marker> билися зі своїми.</example>
      </rule>

      <rule>
        <pattern>
          <token regexp="yes">Нь?ю</token>
          <token inflected="yes" regexp="yes">Йорк|Джер[сз]і</token>
        </pattern>
        <message>Це слово пишеться через дефіс: <suggestion>Нью-\2</suggestion></message>
        <example correction="Нью-Йорк">у <marker>Нью Йорк</marker>.</example>
      </rule>

      <rule>
        <pattern>
          <token>де</token>
          <token regexp="yes">факто|юре</token>
        </pattern>
        <message>Це слово пишеться через дефіс: <suggestion>\1-\2</suggestion></message>
        <example correction="де-факто"><marker>де факто</marker>.</example>
      </rule>
    </rulegroup>

    <rule id="dva_prizvyscha" name="Два прізвища через дефіс">
      <pattern>
        <token regexp="yes">Джексона-Веніка|Колесніченка-Ківалова|Молотова-Ріббентропа</token>
      </pattern>
      <message>Два прізвища пишуться через (довге) тире</message>
      <suggestion><match no="1" regexp_match="(.*?)-(.*?)" regexp_replace="$1 — $2"/></suggestion>
      <example correction="Джексона — Веніка">поправка <marker>Джексона-Веніка</marker>.</example>
    </rule>

    <rulegroup id="skladni_neozhacheni_zaymennyky" name="Складні неозначені займенники">
      <rule>
        <pattern>
          <marker>
            <token regexp="yes">бо|чорт|хто</token>
            <token>зна</token>
            <token inflected="yes" regexp="yes">котрий|чий|який|хто|що|де|як|коли|куди|звідки</token>
          </marker>
        </pattern>
        <message>Орфографічна помилка</message>
        <suggestion><match no="1"/><match no="2"/>-<match no="3"/></suggestion>
        <example correction="бозна-якому"><marker>бо зна якому</marker></example>
        <example correction="хтозна-що"><marker>хто зна що</marker></example>
        <example>бозна в якому</example>
        <example>і хтозна, що діятиметься</example>
      </rule>

      <rule>
        <pattern>
          <marker>
            <token regexp="yes">казна|хтозна|чортзна|бозна</token>
            <token inflected="yes" regexp="yes">котрий|чий|який|хто|що|де|як|коли|куди|звідки</token>
          </marker>
        </pattern>
        <message>Орфографічна помилка</message>
        <suggestion><match no="1"/>-<match no="2"/></suggestion>
        <example correction="казна-якому"><marker>казна якому</marker></example>
        <example>казна щомісяця одержуватиме</example>
      </rule>
    </rulegroup>

    <rulegroup id="SLOVA_BEZ_DEFISU" name="Слова без дефісу">
      <rule>
        <antipattern>
          <token regexp="yes">[«"“„]</token>
          <token case_sensitive="yes" regexp="yes">[А-ЯІЇЄҐ].*</token>
          <token regexp="yes">[»"”“]</token>
        </antipattern>
        <pattern>
          <!-- to speed up slow rule: these don't happen often: геліо|гідро|космо|метео|мілі|палео|рентгено|стерео|фоно  -->
          <token regexp="yes">(авіа|авто|агро|анти|аудіо|біо|вело|відео|водо|газо|гео|гіпер|давньо|екзо|еко|екстра|електро|етно|загально|зоо|ізо|квазі|кіно|контр|лже|макро|мета|мікро|моно|мото|мульти|нео|пост|псевдо|радіо|соціо|супер|теле|транс|турбо|ультра|фото)[-–][а-яіїєґ][^-]{2,35}
            <exception inflected="yes" regexp="yes">аудіо-відео|геліо-кадмієвий|водо-водяний|супер-пупер.*|водо-водо.*</exception>
            <!-- will be handled by 2019 spelling rule -->
            <exception regexp="yes">контр[-–]адмір.*</exception>
            <exception case_sensitive="yes" regexp="yes">.+[–-][А-ЯІЇЄҐ].*</exception>
          </token>
        </pattern>
        <message>Пишеться разом <suggestion><match no="1" regexp_match="(.*)[-–](.*)" regexp_replace="$1$2"/></suggestion></message>
        <url>http://www.pravopys.net/#search=25-33</url>
        <short>Правильно писати разом</short>
        <example correction="мультивалютний"><marker>мульти-валютний</marker> обмін.</example>
        <example correction="ультрагіркий">У цього овоча <marker>ультра-гіркий</marker> присмак.</example>
        <example correction="Квазісмішний"><marker>Квазі-смішний</marker> жарт.</example>
        <!-- 
        <example correction="гідроаеропорт"><marker>гідро-аеропорт</marker>.</example>
         -->
        <example correction="екопоселення"><marker>еко-поселення</marker></example>
        <example correction="супербагатії">яку складають <marker>супер-багатії</marker></example>
        <example>анти-Забужко</example>
        <example>мета-2013</example>
        <example>контр-адмірал</example>
        <example>на «Супер-нова»</example>
        <example>не багато-не мало</example>
      </rule>

      <rule>
        <pattern>
          <token regexp="yes">анти|віце|екс|квазі|лже|супер|ультра</token>
          <token regexp="yes" case_sensitive="yes" postag_regexp="yes" postag="noun.*?prop.*">[А-ЯІЇЄҐ][а-яіїєґ']{3,35}
            <exception>Нова</exception>
          </token>
        </pattern>
        <message>Із власною назвою компонента <match no="1"/> пишеться через дефіс</message>
        <suggestion><match no="1"/>-<match no="2"/></suggestion>
        <url>http://www.pravopys.net/#search=25-33</url>
        <short>Правильно писати разом</short>
        <example correction="екс-Югославія"><marker>екс Югославія</marker>.</example>
        <example>супер Нова</example>
        <!-- handled by rule above -->
        <example>екс капітан</example>
      </rule>

      <rule>
        <pattern>
          <token regexp="yes">(багато|високо|мало|низько)[-–][а-яіїєґ][^-]{2,35}
            <exception regexp="yes">багато[–-](пре)?багато|високо[–-](пре)?високо|низько[–-]низ(ен)?ько|мало[–-]помалу|мало[–-]мало</exception>
            <!-- TODO: exception for everything tagged -->
            <exception regexp="yes">(багато|мало)[–-](хто|кому|кого|ким|що|чого|чому|чим|багато|мало|коли|де)</exception>
            <exception case_sensitive="yes" regexp="yes">.+[–-][А-ЯІЇЄҐ].*</exception>
          </token>
        </pattern>
        <message>Пишеться разом <suggestion><match no="1" regexp_match="(.*)[-–](.*)" regexp_replace="$1$2"/></suggestion></message>
        <url>http://www.pravopys.net/#search=25-33</url>
        <short>Правильно писати разом</short>
        <example correction="Багатоповерховий"><marker>Багато-поверховий</marker> будинок.</example>
        <example>багато-багато</example>
        <example>багато-кому</example>
        <example>мало-багато</example>
        <example>високо-високо</example>
        <example>мало-не</example>
        <example>село Мало-Янисоль</example>
        <example>Високо-Литовськ</example>
        <example>мало-коли</example>    <!-- пишеться окремо -->
      </rule>
    </rulegroup>

    <!-- group: пропущено пробіл -->

    <rule id="spryvodu" name="Сприводу">
      <pattern>
        <token>сприводу</token>
      </pattern>
      <message><suggestion>з приводу</suggestion></message>
      <example correction="з приводу"><marker>сприводу</marker> подання.</example>
    </rule>

    <!-- group: non-standard word categories -->

    <rulegroup id="ALT_SPELLING" name="Альтернативний правопис">
      <rule>
        <pattern>
          <token postag_regexp="yes" postag=".*:alt.*">
            <!-- negate_pos fails for when we have accent char in the last word with dot
            <exception negate_pos="yes" postag_regexp="yes" postag=".*:alt.*|SENT_END|PARA_END" />
            -->
            <exception postag_regexp="yes" postag="[a-z](?!.*:(slang|alt|arch|bad|subst)).*" />
          </token>
        </pattern>
        <message>Слово, написане не за чинним правописом</message>
        <example correction=""><marker>диференціялу</marker></example>
        <example correction=""><marker>ґрантовий</marker></example>
        <example correction=""><marker>ґра́нтовий</marker></example>
        <example correction=""><marker>ґра́нтовий</marker>.</example>
        <example correction=""><marker>ґурка</marker></example> <!-- alt + arch -->
        <example>проекту</example>
        <example>проєкту</example>
        <example>хоче прорости</example>
        <example>в ролі стюарда</example>
      </rule>
    </rulegroup>

    <rule id="DASYSH" name="Дасиш, їсиш, відповісиш">
      <pattern>
        <marker>
          <token regexp="yes" postag_regexp="yes" postag="verb.*:subst">.*дасиш|.*їсиш|.+вісиш</token>
        </marker>
      </pattern>
      <message>Правильно: <suggestion><match no="1" regexp_match="(.*)ш" regexp_replace="$1"/></suggestion></message>
      <example correction="віддаси"><marker>віддасиш</marker>.</example>
      <example correction="їси"><marker>їсиш</marker>.</example>
      <example correction="розповіси"><marker>розповісиш</marker>.</example>
      <!-- we can't speculate on words we don't know - could be good like: попопросиш
      <example correction="надаси"><marker>надасиш</marker>.</example>
      -->
      <example>вивісиш</example>
      <example>просиш</example>
    </rule>

    <rule id="SUBSTANDARD_FORMS" name="Форми поза мовною нормою">
      <pattern>
        <token postag_regexp="yes" postag=".*subst.*">
          <exception negate_pos="yes" postag_regexp="yes" postag=".*:(slang|alt|arch|bad|subst).*|SENT_END|PARA_END"/>
        </token>
      </pattern>
      <message>Ця форма не відповідає мовній нормі</message>
      <example correction=""><marker>визволи</marker>.</example>
      <example correction="">і став <marker>роздовбаєм</marker></example> <!-- slang + subst -->
      <example correction=""><marker>гребнем</marker></example> <!-- slang + bad -->
    </rule>

    <rulegroup id="VERB_SUBSTANDARD_FORMS" name="Просторічні форми">
      <rule>
        <antipattern>
          <token case_sensitive="yes" regexp="yes">[А-ЯІЇЄҐ]([а-яіїєґ']+|\.)</token>
          <token case_sensitive="yes" regexp="yes">[А-ЯІЇЄҐ][а-яіїєґ']+</token>
        </antipattern>
        <pattern>
          <token postag_regexp="yes" postag="verb.*?(futr|pres):p:1.*?:subst.*">
            <exception negate_pos="yes" postag_regexp="yes" postag="verb.*?:p:1.*?:(slang|alt|arch|bad|subst).*|SENT_END|PARA_END"/>
          </token>
        </pattern>
        <message>Форми теп. і майб. ч. на -м(ся) є просторічними. Нормативними є форми на -мо: <suggestion><match no="1" regexp_match="^(.*?)(ся)?$" regexp_replace="$1о$2"/></suggestion></message>
        <url>http://pravopys.net/#search=80-85</url>
        <example correction="підемо">Сьогодні <marker>підем</marker> в кіно.</example>
        <example correction="прогуляємося">Підемо <marker>прогуляємся</marker>.</example>
        <example correction="Підемо"><marker>Підем</marker> в кіно завтра.</example>
        <example correction="Скажемо">…<marker>Скажем</marker> їм.</example>
        <example>прозвали Сергієм Підрахуєм</example>
        <example>В.Кукольником, П.Подієм, І.Орлом</example>
        <example>хотять</example>
        <example>Оглянімося</example>
      </rule>
  
      <rule>
        <pattern>
          <token postag_regexp="yes" postag="verb.*?:3.*?:subst.*">
            <exception negate_pos="yes" postag_regexp="yes" postag="verb.*?:3.*?:(slang|alt|arch|bad|subst).*|SENT_END|PARA_END"/>
          </token>
        </pattern>
        <message>Ця дієслівна форма є просторічною</message>
        <suggestion><match no="1" postag_regexp="yes" postag="(verb.*):subst(.*)" postag_replace="$1$2"/></suggestion>
        <example correction="хочуть">щось <marker>хотять</marker>.</example>
        <example correction="ходить">хтось <marker>ходе</marker>.</example>
      </rule>
    </rulegroup>

    <!-- group: abbreviations -->

    <rulegroup id="ABBREVIATIONS_WRONG_DOT" name="Скорочення - зайва крапка">
      <!-- TODO: c - секунда, c. - село/сторінка; м — метр, м. — місто; т - тонна, т. - точка -->
      <url>https://r2u.org.ua/data/other/%D0%94%D0%A1%D0%A2%D0%A3_3582-97.pdf</url>
      <rule>
        <antipattern>
          <token>.</token>
          <token regexp="yes">&punct_dash;</token>
          <token regexp="yes">(авт\.|ред\.)</token>
        </antipattern>
        <pattern>
          <token case_sensitive="yes" regexp="yes">[мк]?г|мкг|грн|год|крб|м?л|[мнсдк]м|мкм|[нм]с|мкс|смт|трлн|хв|млн|млрд</token>
          <token negate_pos="yes" postag_regexp="yes" postag="SENT_END|PARA_END">.</token>
        </pattern>
        <message>Стягнені скорочення та метричні одиниці пишуться без крапки: <suggestion><match no="1"/></suggestion></message>
        <example correction="грн">100 <marker>грн.</marker> в банк.</example>
        <example correction="год">Двадцять <marker>год.</marker> їзди.</example>
        <example correction="грн">40 800 грн при комерційній ціні лише 3 400 <marker>грн.</marker> за одиницю!</example>
        <example>Двадцять год.</example>
        <example>12,75 грн.</example>
        <example>В м. Київ.</example>
        <example>Прийшов Л. Коцюба.</example>
        <example>штрафували на 30 тисяч злотих (близько 54 000 грн. – Авт.), конфіскували у нього машину.</example>
        <example>населення Землі налічує 257 млн. </example>
      </rule>

      <rule>
        <pattern>
          <token regexp="yes">млн\.|млрд\.</token>
        </pattern>
        <message>Стягнені скорочення пишуться без крапки: <suggestion><match no="1" regexp_match="(.*)\." regexp_replace="$1"/></suggestion></message>
        <example correction="млн">всього 20 <marker>млн.</marker> осіб.</example>
      </rule>

      <rule>
        <pattern>
          <token case_sensitive="yes">смт</token>
          <token>.</token>
        </pattern>
        <message>Стягнені скорочення та метричні одиниці пишуться без крапки: <suggestion><match no="1"/></suggestion></message>
        <example correction="смт">розташовано у <marker>смт.</marker> Луків.</example>
      </rule>

      <rule>
        <pattern>
          <token regexp="yes">[0-9,-]+|кв\.|куб\.</token>
          <marker>
            <token case_sensitive="yes" regexp="yes">([смкд]|мк)?м\.?</token>
            <token negate_pos="yes" postag_regexp="yes" postag="SENT_END|PARA_END">.</token>
          </marker>
          <token case_sensitive="yes" negate="yes" regexp="yes">[А-ЯІЇЄҐ].*</token>
        </pattern>
        <message>Метричні одиниці пишуться без крапки: <suggestion><match no="2"/></suggestion></message>
        <example correction="м">100 <marker>м.</marker> дороги.</example>
        <example correction="м">100 кв. <marker>м.</marker> дороги.</example>
        <example>Останні 100 м.</example>
        <example>Прийшов М. Гориня.</example>
        <example>Проїхали м. Львів.</example>
        <example>Листи надсилайте на адресу: 79026    м. Львів, вул. Володимира Великого</example>
        <!-- TODO: важко розрізнити секунди від села від сторінки -->
        <!--
            <example correction="с">Останніх 37,8 <marker>с.</marker> шляху.</example>
            <example>Проїхали с. Веселе.</example>
        -->
      </rule>

      <rule>
        <pattern case_sensitive="yes">
          <token>р.</token>
          <token>р.</token>
        </pattern>
        <message>Роки скорочено пишуться <suggestion>рр.</suggestion></message>
        <example correction="рр.">70-80 <marker>р.р.</marker></example>
      </rule>

      <rule>
        <pattern case_sensitive="yes">
          <token>рр</token>
        </pattern>
        <message>Роки скорочено пишуться <suggestion>рр.</suggestion></message>
        <example correction="рр.">70-80 <marker>рр</marker>,</example>
      </rule>

      <rule>
        <pattern case_sensitive="yes">
          <token regexp="yes">[0-9]{2,4}[-–][0-9]{2,4}</token>
          <marker>
            <token regexp="yes" max="2">р\.?
              <exception scope="next" regexp="yes">н\.?</exception>
            </token>
          </marker>
        </pattern>
        <message>Роки скорочено пишуться <suggestion>рр.</suggestion></message>
        <example correction="рр.">1970-1980 <marker>р. р.</marker>,</example>
        <example correction="рр.">70–80 <marker>р.р.</marker>,</example>
        <example correction="рр.">70-80 <marker>р р</marker>,</example>
        <example correction="рр.">2000-2010 <marker>р.</marker>,</example>
        <example correction="рр.">77–80 <marker>р.</marker>,</example>
        <example correction="рр.">79-80 <marker>р</marker>,</example>
        <example>2005-2006 р.н.</example>
      </rule>

      <rule>
        <pattern case_sensitive="yes">
          <token regexp="yes">[0-9]{2,4}
            <exception scope="previous" regexp="yes">[№§$€]</exception>
          </token>
          <token regexp="yes">—</token>
          <token regexp="yes">[0-9]{2,4}</token>
          <marker>
            <token regexp="yes" max="2">р\.?
              <exception scope="next" regexp="yes">н\.?</exception>
            </token>
          </marker>
        </pattern>
        <message>Роки скорочено пишуться <suggestion>рр.</suggestion></message>
        <example correction="рр.">1970—1980 <marker>р. р.</marker>,</example>
        <example correction="рр.">70—80 <marker>р.р.</marker>,</example>
        <example correction="рр.">70—80 <marker>р р</marker>,</example>
        <example correction="рр.">70—80 <marker>р.</marker>,</example>
        <example>№ 268 — 1938 р.</example>
        <example>2005—2006 р.н.</example>
      </rule>
    </rulegroup>

    <rulegroup id="ABBREVIATIONS_MISSING_DOT" name="Скорочення - пропущена крапка">
      <rule>
        <antipattern>
          <token regexp="yes">коп|тис</token>
          <token regexp="yes">[….!?]|[.!?]{2,3}</token>   <!-- dot may still happen separately - tokenizing all cases properly is hard -->
        </antipattern>
        <pattern>
          <token regexp="yes">.*[0-9]</token>
          <marker>
            <token regexp="yes">коп|тис</token>
          </marker>
        </pattern>
        <message>Скорочення з відкиданням літер пишуться з крапкою: <suggestion><match no="2"/>.</suggestion></message>
        <example correction="коп.">зросла на 50—70 <marker>коп</marker>/л</example>
        <example correction="коп.">496 грн 75 <marker>коп</marker> за екземпляр</example>
        <example correction="тис.">штраф у 150 <marker>тис</marker> гривень</example>
        <example correction="тис.">штраф у 150 <marker>тис</marker></example>
        <example correction="тис.">штраф у 150&#xA; <marker>тис</marker> гривень</example>
        <example>це $400&#xA;   тис.», – розповідає Олег.</example>
        <example>це 100 тис…</example>
        <example>це 100 тис...</example>
      </rule>
    </rulegroup>

    <rule id="dot_with_gram_hryven" name="Крапка з грамами і гривнями">
      <pattern>
        <token regexp="yes">[0-9]([0-9, ]*)</token>
        <marker>
          <token>гр.</token>
        </marker>
      </pattern>
      <message>Грами скорочено пишемо: <suggestion>г</suggestion>; гривні скорочено пишемо <suggestion>грн</suggestion></message>
      <example correction="г|грн">800 <marker>гр.</marker> м'яса.</example>
      <example correction="г|грн">1 000 <marker>гр.</marker> 80 коп.</example>
    </rule>

    <rule id="UL_VS_VUL" name="ул. і вул.">
      <pattern>
        <marker>
          <token>ул</token>
          <token>.</token>
        </marker>
      </pattern>
      <message>Правильно: <suggestion>вул.</suggestion></message>
      <example correction="вул.">на <marker>ул.</marker> Городецькій.</example>
      <example>вул.</example>
    </rule>

    <!-- group: правопис 2019 -->

    <rule id="habar_2019" name="Хабара і хабаря">
      <pattern>
        <token inflected="yes" postag_regexp="yes" postag=".*ua_1992.*">хабар
          <exception postag_regexp="yes" postag=".*ua_2019.*"/>
        </token>
      </pattern>
      <message>За правописом 2019 хабар відмінюється, як м'яка група</message>
      <suggestion><match no="1" postag_regexp="yes" postag="(.*?)ua_1992(.*)" postag_replace="$1ua_2019$2" /></suggestion>
      <example correction="хабаря">дав <marker>хабара</marker>.</example>
      <example correction="хабарем"><marker>хабаром</marker>.</example>
      <example>хабарі</example>
    </rule>

    <!-- group: р.в.ч.р -->

    <rule id="vitra" name="Вітра">
      <antipattern>
        <token regexp="yes" inflected="yes">шукати|ловити</token>
        <token min="0" regexp="yes">би?</token>
        <token min="0" postag_regexp="yes" postag="adv(?!p).*"/>
        <token>вітра</token>
      </antipattern>
      <pattern>
        <token>вітра</token>
      </pattern>
      <message>За винятком декількох сталих зворотів р.в. від слова «вітер» є <suggestion>вітру</suggestion></message>
      <example correction="вітру">десь <marker>вітра</marker>.</example>
      <example>шукав вітра в полі</example>
      <example>шукай тепер вітра в полі</example>
    </rule>

    <rule id="tumana" name="Тумана">
      <pattern>
        <token>тумана</token>
      </pattern>
      <message>У значенні природного явища р.в.<suggestion>туману</suggestion></message>
      <example correction="туману"><marker>тумана</marker> напустив.</example>
    </rule>

    <rule id="BABUSIV" name="Бабусів">
      <pattern>
        <token regexp="yes">бабусів(-.+)?</token>
      </pattern>
      <message>Неправильна форма</message>
      <suggestion>бабусь</suggestion>
      <suggestion>бабусин</suggestion>
      <example correction="бабусь|бабусин">до тих <marker>бабусів-дідусів</marker>.</example>
    </rule>

    <rule id="IHOR_VOCATIVE" name="Кличний для «Ігор»">
      <pattern>
        <token case_sensitive="yes">Ігоре</token>
      </pattern>
      <message>Правильно: <suggestion>Ігорю</suggestion></message>
      <url>http://www.bbc.co.uk/blogs/ukrainian/ponomariv</url>
      <example correction="Ігорю">Агов, <marker>Ігоре</marker>!</example>
    </rule>


    <!-- group: зайвий пробіл -->

    <rule id="zakordon" name="Закордон і за кордон">
      <antipattern>
        <token>закордон</token>
        <token min="0" max="2"/>
        <token inflected="yes" regexp="yes">(до)?помагати|(до)?помогти</token>
      </antipattern>
      <pattern>
        <token>закордон
          <exception scope="previous" postag_regexp="yes" postag="prep.*|adj:m:v_zna:rinanim.*"/>
          <exception scope="previous" regexp="yes">[«"„]|це</exception>
        </token>
      </pattern>
      <message>Можливо ви мали на увазі <suggestion>за кордон</suggestion>?</message>
      <example correction="за кордон">поїхав <marker>закордон</marker>.</example>
      <example>взнати про закордон</example>
      <example>взнати «закордон»</example>
      <example>далекий «закордон»</example>
      <example>закордон нам не допоможе</example>
    </rule>

    <rule id="za_te" name="«За те» і «зате»">
      <pattern>
        <token negate="yes">,</token>
        <marker>
          <token>зате
            <exception case_sensitive="yes">Зате</exception>
          </token>
        </marker>
        <token>,</token>
        <token>що</token>
      </pattern>
      <message>Можливо треба: <suggestion>за те</suggestion>?</message>
      <example correction="за те">А не <marker>зате</marker>, що вони скоїли</example>
      <example>Цікаво, зате, що вони</example>
      <example>— Зате, щоправда,</example>
    </rule>

    <rulegroup id="stretch_plivka" name="Стретч плівка">
      <rule>
        <pattern>
          <token regexp="yes">стре[йт]ч</token>
          <token>плівка</token>
        </pattern>
        <message>Правильно: <suggestion>стретч-плівка</suggestion></message>
        <example correction="стретч-плівка">отака <marker>стрейч плівка</marker>.</example>
      </rule>
    </rulegroup>

    <rule id="vid_teper" name="Від тепер">
      <pattern>
        <token>від</token>
        <token>тепер</token>
      </pattern>
      <message>Відтепер пишеться разом</message>
      <suggestion>відтепер</suggestion>
      <example correction="відтепер"><marker>від тепер</marker> і до кінця.</example>
    </rule>

    <rule id="ne_perelyvky" name="Не переливки">
      <pattern>
        <token>не</token>
        <token>переливки</token>
      </pattern>
      <message>Присудкове слово <suggestion>непереливки</suggestion> пишеться разом</message>
      <example correction="непереливки">буде <marker>не переливки</marker>.</example>
    </rule>

    <rule id="na_pryzvolyasche" name="На призволяще">
      <pattern>
        <token>на</token>
        <token>призволяще</token>
      </pattern>
      <message><suggestion>напризволяще</suggestion> пишеться разом</message>
      <example correction="напризволяще">кинути <marker>на призволяще</marker>.</example>
    </rule>

    <rule id="chym_duzh" name="Чим дуж">
      <pattern>
        <token>чим</token>
        <token>дуж</token>
      </pattern>
      <message><suggestion>чимдуж</suggestion> пишеться разом</message>
      <example correction="чимдуж"><marker>чим дуж</marker>.</example>
    </rule>

    <rulegroup id="ne_syla" name="Не сила">
      <rule>
        <pattern>
          <marker>
            <token>не</token>
            <token>сила</token>
          </marker>
          <token postag_regexp="yes" postag="verb.*?inf.*"/>
        </pattern>
        <message><suggestion>несила</suggestion> перед інфінітивом пишеться разом</message>
        <example correction="несила">і <marker>не сила</marker> терпіти</example>
      </rule>

      <rule>
        <pattern>
          <marker>
            <token>не</token>
            <token>сила</token>
          </marker>
          <token regexp="yes">було|буде</token>
        </pattern>
        <message><suggestion>несила</suggestion> перед інфінітивом пишеться разом</message>
        <example correction="несила">і <marker>не сила</marker> було терпіти</example>
      </rule>
    </rulegroup>

    <rule id="v_odnochas" name="В одночас">
      <pattern>
        <token>в</token>
        <token>одночас</token>
      </pattern>
      <message>«Одночас» пишеться разом</message>
      <suggestion>водночас</suggestion>
      <example correction="водночас"><marker>в одночас</marker>.</example>
    </rule>

    <!-- group: іноземні -->

    <rule id="DASH_STREET" name="-стріт/-стрит">
      <pattern>
        <token regexp="yes" case_sensitive="yes">[А-ЯІЇЄҐ].*-[Сс]трит</token>
      </pattern>
      <message>Чинний правопис передбачає -стріт (також укр. літера і ближча до англ. звука [i:] в слові street)</message>
      <example correction=""><marker>Бейкер-стрит</marker>.</example>
    </rule>

    <rule id="DASH_CITY" name="-ситі/-сіті">
      <pattern>
        <token regexp="yes" case_sensitive="yes">[А-ЯІЇЄҐ].*-[Сс][иі]ті</token>
      </pattern>
      <message>Чинний правопис передбачає -сіті, однак в мовній практиці поширений також варіант -ситі, адже укр. літера и ближча до англ. звука [ɪ] в слові city</message>
      <example correction=""><marker>Канзас-Сіті</marker>.</example>
      <example correction=""><marker>Канзас-Ситі</marker>.</example>
    </rule>

    <rule id="DASH_RIVER" name="-ривер/-рівер">
      <pattern>
        <token regexp="yes" case_sensitive="yes">[А-ЯІЇЄҐ].*-[Рр]івер</token>
      </pattern>
      <message>Правильно: <suggestion><match no="1" regexp_match="([А-ЯІЇЄҐ].*-[Рр])[иі](вер)" regexp_replace="$1и$2"/></suggestion></message>
      <example correction="Іст-Ривер"><marker>Іст-Рівер</marker>.</example>
    </rule>

    <!-- group: числівники та числа -->

    <rulegroup id="DIGITS_AND_LETTERS" name="Цифри та літери">
      <rule>
      <!--
        <antipattern>
          <token regexp="yes">[«"„]</token>
          <token regexp="yes" spacebefore="no">[а-яіїєґ'-][а-яіїєґ]+[0-9]</token>
        </antipattern>
        -->
        <pattern>
          <marker>
            <token case_sensitive="yes" regexp="yes">[А-ЯІЇЄҐ][а-яіїєґ'-]*[а-яіїєґ]+</token>
            <token regexp="yes" spacebefore="no">[0-9]+</token>
          </marker>
        </pattern>
        <message>Відсутній дефіс або пробіл між словом і числом</message>
        <suggestion><match no="1"/>-<match no="2"/></suggestion>
        <suggestion><match no="1"/> <match no="2"/></suggestion>
        <example correction="Мі-17|Мі 17"><marker>Мі17</marker></example>
        <example>СО2</example>
        <example>абстракція11</example>
        <example>"Приват24 для бізнесу"</example>
        <example>Ан32-П</example>
      </rule>

      <rule>
        <antipattern>
          <token regexp="yes">([кдсмн]|мк)?м</token>
          <token regexp="yes" spacebefore="no">[23]</token>
        </antipattern>
        <pattern>
          <marker>
            <token regexp="yes">[а-яіїєґ][а-яіїєґ'.-]*</token>
            <token regexp="yes" spacebefore="no">[0-9][0-9.,:–—-]*%?</token>
          </marker>
        </pattern>
        <message>Відсутній дефіс або пробіл між словом і числом</message>
        <suggestion><match no="1"/> <match no="2"/></suggestion>
        <suggestion><match no="1"/>-<match no="2"/></suggestion>
        <example correction="мої 1|мої-1">А <marker>мої1</marker>.</example>
        <example correction="культивувати 170|культивувати-170">почали <marker>культивувати170</marker> років</example>
        <example correction="до 1600|до-1600"><marker>до1600</marker> ккал</example>
        <example correction="Євро 2012|Євро-2012">на хвилі <marker>Євро2012</marker></example>
        <example correction="майже 100|майже-100"><marker>майже100</marker>%.</example>
        <example correction="тримаємо 12–15|тримаємо-12–15"><marker>тримаємо12–15</marker> хвилин</example>
        <example>20 мм2</example>
        <!-- CO2 in cyrillic -->
        <example>СО2</example>
        <example>ми скористалися службою «Інфо300»</example>
        <example>АН4774087</example>
        <example>ТУ4-2441</example>
        <example>в підпункті 14а</example>
      </rule>

      <rule>
        <pattern>
          <marker>
            <token regexp="yes">[А-ЯІЇЄҐа-яіїєґ'-][а-яіїєґ]+[0-9]+[а-яіїєґ]+
            </token>
          </marker>
        </pattern>
        <message>Цифри всередині слова</message>
        <suggestion><match no="1" regexp_match="([А-ЯІЇЄҐа-яіїєґ'-])([0-9]+)([а-яіїєґ'-])" regexp_replace="$1$3"/></suggestion>
        <suggestion><match no="1" regexp_match="([А-ЯІЇЄҐа-яіїєґ'-])([0-9]+)([а-яіїєґ'-])" regexp_replace="$1 $2 $3"/></suggestion>
        <example correction="напередодні|напе 1 редодні"><marker>напе1редодні</marker></example>
        <example>40х40х30</example>
      </rule>

      <rule>
        <antipattern>
          <token regexp="yes">[А-ЯІЇЄҐ].*</token>
          <token regexp="yes">,</token>
          <token regexp="yes">[0-9,-]*[0-9,][а-яіїєґ'][а-яіїєґ'-]*</token>
        </antipattern>
        <antipattern>
          <token regexp="yes">номер.*|буд\.|нумерац.*|[/№]</token>
          <token regexp="yes">[0-9,-]*[0-9,][а-яіїєґ'][а-яіїєґ'-]*</token>
        </antipattern>
        <antipattern>
          <token>«</token>
          <token regexp="yes">[0-9,-]*[0-9,][а-яіїєґ'][а-яіїєґ'-]*</token>
          <token>»</token>
        </antipattern>
        <antipattern>
          <token regexp="yes">[0-9]{1,3}[а-яіїєґ]?</token>
          <token regexp="yes">,|і|та</token>
          <token regexp="yes">[0-9]{1,3}[а-яіїєґ]</token>
        </antipattern>
        <pattern>
          <marker>
            <token regexp="yes">[$+-]?[0-9,-]*[0-9,][а-яіїєґ'][а-яіїєґ'-]*[.²³]?
              <exception case_sensitive="yes">1С</exception>
              <exception regexp="yes">[0-9]+'|[0-9]+к</exception>
              <exception case_sensitive="yes" regexp="yes">[+-]?[0-9,-]*[0-9][оo][СC]</exception>  <!-- both lat and cyr o and C, taken care by rule below -->
            </token>
          </marker>
        </pattern>
        <message>Відсутній дефіс або пробіл між числом і словом (або пропущена кома після назви вулиці, або вжито тире на позначення мінуса)</message>
        <suggestion><match no="1" regexp_match="([0-9,-]*[0-9,])([а-яіїєґ'-])" regexp_replace="$1 $2"/></suggestion>
        <suggestion><match no="1" regexp_match="([0-9,-]*[0-9,])([а-яіїєґ'-])" regexp_replace="$1-$2"/></suggestion>
        <example correction="21 відсоток|21-відсоток">набрав <marker>21відсоток</marker>.</example>
        <example correction="505 грн|505-грн"><marker>505грн</marker>.</example>
        <example correction="5,05 грн|5,05-грн"><marker>5,05грн</marker>.</example>
        <example correction="1989 го|1989-го">15 лютого <marker>1989го</marker>.</example>
        <example correction="0,4-10 кВ|0,4-10-кВ">напруги <marker>0,4-10кВ</marker>.</example>
        <!--TODO: for some reason antipattrn tiggers here when no space between тис. and ,
        <example correction="6 те|6-те">5-те місце — $10 тис., <marker>6те</marker> місце — $6 тис..</example>
        -->
        <example>Естафета 4х100 м.</example>
        <example>Грушевського, 9а</example>
        <example>Грушевського, буд. 9а</example>
        <example>14,7оС</example>
        <example>та ж вулиця, номер 8ж</example>
        <example>автобусом № 441, 41к</example>
        <example>Будівля №36а</example>
        <example>у справі № 8/348а</example>
        <example>1С</example>
        <example>23° 27'</example>
        <example>програма «4М».</example>
        <example>від 27 грудня 1978 року за №44у—279 вирок</example>
      </rule>

      <!-- we now smart enough to split tokens of year and letter -->
      <rule>
        <pattern>
          <marker>
            <token regexp="yes">[$+-]?[0-9,-]*[0-9]</token>
            <token regexp="yes" spacebefore="no">[а-яіїєґ][а-яіїєґ'.-]*
              <exception postag_regexp="yes" postag="noun.*:abbr:prop:fname"/>
            </token>
          </marker>
        </pattern>
        <message>Відсутній дефіс або пробіл між числом і словом</message>
        <suggestion><match no="1"/> <match no="2"/></suggestion>
        <suggestion><match no="1"/>-<match no="2"/></suggestion>
        <example correction="1981 р.|1981-р.">З <marker>1981р.</marker></example>
        <example>концерти № 1 Л. Бетховена</example>
      </rule>
    </rulegroup>

    <rulegroup id="numr_suffix_recommend" name="Нарощування числівників (рекомендації)">
      <url>https://check.nlp.net.ua/rules/naroschuvannya_chyslivnykiv</url>

      <!-- done by stricter rule below -->
      <antipattern>
         <token regexp="yes">[0-9]+[-–][а-яіїєґ]+</token>
         <token regexp="yes" inflected="yes">рік|сторінка|століття|тисячоліття|ст\.</token>
      </antipattern>
      
      <rule>
        <pattern>
          <marker>
            <token postag_regexp="yes" postag="adj.*numr.*bad.*" regexp="yes">[0-9]+[-–][а-яіїєґ]{2,5}</token>
          </marker>
        </pattern>
        <message>Якщо порядковий числівник закінчується на приголосний або на йотований ю, ї, пишемо тільки останню букву, а інакше - дві останні.</message>
        <example correction="">І <marker>50-тої</marker> бригади</example>
        <example correction="">І <marker>50–того</marker> класу</example>
        <example correction=""><marker>1-ший</marker> поверх.</example>
        <example correction="">у <marker>2-гій</marker> Київський гімназії.</example>
        <example correction="">між <marker>3-тім</marker> та 4-м валом</example>
        <example correction="">між 3-м та <marker>4-тим</marker> валом</example>
        <example correction="">в <marker>70-тих</marker>.</example>
        <example correction="">у пункті <marker>3-тьому</marker></example>
        <example>базується 173-тя десантна бригада</example>
        <example>11-та ракетка.</example>
        <example>між 13-м та 14-им валом</example>
        <example>7-ма ракетка.</example>
        <example>11-а ракетка</example>
        <example>в 70-х.</example>
        <example>на 12-му поверсі</example>
        <example>1990-і</example>
        <!-- done by stricter rule below -->
        <example>в 1970-их роках</example>
      </rule>
      
      <!--  ий, ій, им, ім, -а, -у, -е, -і, -ї?, -ю?, -є?, -ю? -->
      <rule>
        <pattern>
          <marker>
            <token postag_regexp="yes" postag="adj.*numr(?!.*bad).*" regexp="yes">[0-9]+[-–]([иі][йм]|ої|ою)</token>
          </marker>
        </pattern>
        <message>Якщо порядковий числівник закінчується на приголосний або на йотований ю, ї, пишемо тільки останню букву, а інакше - дві останні.</message>
        <suggestion><match no="1" regexp_match="([0-9]+[-–])([иі]([йм])|о([їю]))" regexp_replace="$1$3$4"></match></suggestion>
        <example correction="50-м">І <marker>50-им</marker> номером</example>
        <example correction="2002-й">По <marker>2002-ий</marker>.</example>
        <example correction="4-ї"><marker>4-ої</marker> ракети.</example>
        <example correction="8-ю"><marker>8-ою</marker> ракеткою.</example>
        <example>173-тя десантна бригада</example>
        <example>11-та ракетка.</example>
        <example>7-ма ракетка.</example>
        <example>3-тє місце.</example>
        <example>3-тя ракета.</example>
      </rule>

      <rule>
        <pattern>
          <marker>
            <token postag_regexp="yes" postag="adj.*numr(?!.*bad).*" regexp="yes">[0-9]+[-–]([ауеієя])
              <exception scope="previous" regexp="yes" inflected="yes">[№§]|пункт</exception>
            </token>
          </marker>
        </pattern>
        <message>Якщо порядковий числівник закінчується на приголосний або на йотований ю, ї, пишемо тільки останню букву, а інакше - дві останні.</message>
        <suggestion><match no="1" regexp_match="([0-9]+[-–])([ауеієя])" regexp_replace="$1ш$2"></match></suggestion>
        <suggestion><match no="1" regexp_match="([0-9]+[-–])([ауеієя])" regexp_replace="$1г$2"></match></suggestion>
        <suggestion><match no="1" regexp_match="([0-9]+[-–])([ауеієя])" regexp_replace="$1т$2"></match></suggestion>
        <suggestion><match no="1" regexp_match="([0-9]+[-–])([ауеієя])" regexp_replace="$1м$2"></match></suggestion>
        <example correction="50-ша|50-га|50-та|50-ма">І <marker>50–а</marker> цистерна</example>
        <example correction="1-ше|1-ге|1-те|1-ме"><marker>1-е</marker> місце.</example>
        <example correction="3-шє|3-гє|3-тє|3-мє"><marker>3-є</marker> місце.</example>
        <example correction="3-шя|3-гя|3-тя|3-мя"><marker>3-я</marker> ракета.</example>
        <example>173-тя десантна бригада</example>
        <example>за 13-м валом</example>
        <example>4-ї ракети.</example>
        <example>№6-у</example>
        <example>у пункті 14–а</example>
      </rule>

      <!-- складно: 3-ю (третю) - bd, але 3-ю (третьою) - ok -->
      <rule>
        <pattern>
          <marker>
            <token postag_regexp="yes" postag="adj:f:v_zna:&amp;numr(?!.*bad).*" regexp="yes">.*(?!&lt;1)[34]+[-–]ю</token>
          </marker>
          <token postag_regexp="yes" postag="(adj|noun:.*):f:v_zna.*">
            <exception postag_regexp="yes" postag="(adj|noun:.*):f:v_oru.*"/>
          </token>
        </pattern>
        <message>Якщо порядковий числівник закінчується на приголосний або на йотований ю, ї, пишемо тільки останню букву, а інакше - дві останні.</message>
        <suggestion>тю</suggestion>
        <example correction="тю">І <marker>3-ю</marker> частину</example>
        <example>вечорами 125-ю вулицею бродять</example>
        <example>вечорами 13-ю вулицею бродять</example>
      </rule>
    </rulegroup>

    <rulegroup id="numr_suffix_pravopys" name="Нарощування числівників (за правописом)">
      <url>https://check.nlp.net.ua/rules/naroschuvannya_chyslivnykiv</url>
      <rule>
        <pattern>
          <marker>
            <token postag_regexp="yes" postag="num.*bad" regexp="yes">[0-9]+[-–][а-яіїєґ]+</token>
          </marker>
        </pattern>
        <message>Це кількісний числівник, а нарощують лише порядкові числівники</message>
        <suggestion><match no="1" regexp_match="([0-9]+)[-–].*" regexp_replace="$1"/></suggestion>
        <url>https://check.nlp.net.ua/rules/naroschuvannya_chyslivnykiv</url>
        <example correction="10">А не <marker>10-ти</marker> класів</example>
        <example correction="33">А не <marker>33-ма</marker> класами</example>
        <example correction="42">на <marker>42-ві</marker> позиції</example>
        <example>між 1990-ми і 2000-ми</example>
        <example>38-ма паралель</example>
      </rule>

      <rule>
        <antipattern>
          <token regexp="yes">на|[ув]</token>
          <token postag_regexp="yes" postag="adj:[mnf]:.*num.*" regexp="yes">([0-9]{2}|[0-9]{4})[-–][а-яіїєґ]+</token>
          <token regexp="yes">році|столітті|тисячолітті|поспіль</token>
        </antipattern>
        <antipattern>
          <token regexp="yes" inflected="yes">на|[ув]|[ув]же|мій|свій|її|його</token>
          <token postag_regexp="yes" postag="adj:[mnf]:.*num.*" regexp="yes">([0-9]{2}|[0-9]{4})[-–][а-яіїєґ]+</token>
          <token inflected="no">рік</token>
        </antipattern>
        <antipattern>
          <token regexp="yes" inflected="yes">піти|минути|йти|жити|розміняти|виповнюватися|набігти|мешкати</token>
          <token min="0" max="2" regexp="yes">тоді|лише</token>
          <token postag_regexp="yes" postag="adj:[mnf]:.*num.*" regexp="yes">([0-9]{2})[-–][а-яіїєґ]+</token>
          <token inflected="no">рік</token>
        </antipattern>
        <antipattern>
          <token postag_regexp="yes" postag="adj:[mnf]:.*num.*" regexp="yes">([0-9]{2})[-–][а-яіїєґ]+</token>
          <token inflected="yes">рік</token>
          <token postag_regexp="yes" postag="noun:inanim:.:v_rod.*"/>
        </antipattern>
        <antipattern>
          <token postag_regexp="yes" postag="verb.*"/>
          <token postag_regexp="yes" postag="adj:[mnf]:.*num.*" regexp="yes">([0-9]{4})[-–][йі]</token>
          <token>роком</token>
        </antipattern>
        <pattern>
          <marker>
            <token postag_regexp="yes" postag="adj:[mnf]:.*num.*" regexp="yes">([0-9]{2}|[0-9]{4})[-–][а-яіїєґ]+</token>
          </marker>
          <token postag_regexp="yes" postag="noun:inanim:[mfn].*" inflected="yes" regexp="yes">рік|сторінка|століття|тисячоліття|р\.|ст\.</token>
        </pattern>
        <message>За чинним правописом не нарощуємо числівника в позначенні певного року (але нарощуємо, якщо проміжок), століття, тисячоліття як дат, а також сторінки видання</message>
        <suggestion><match no="1" regexp_match="([0-9]+)[-—].*" regexp_replace="$1"/></suggestion>
        <example correction="1990">А не <marker>1990-го</marker> року</example>
        <example correction="33">А не <marker>33-та</marker> сторінка</example>
        <example correction="50">з <marker>50-ї</marker> сторінки</example>
        <example>1990-го</example>
        <example>у 20-х роках</example>
        <example>з 50-х років</example>
        <!-- Якщо йдеться про роки якогось періоду (а не дати), то нарощуємо: на 20-му році незалежності, на 87-му році життя -->
        <example>на 20-му році незалежності</example>
        <example>87–й рік навчання</example>
        <example>Зерову йшов 48-й рік</example>
        <example>Уже 17-й рік там панує режим</example>
        <example>чи то 4–й, чи 6–й рік до початку нового літочислення</example>
        <example>йшов тоді 29-й рік</example>
        <example>оголосила 1995-й роком</example>
        <!-- TODO:
        <example>Мені від роду 87–й рік.</example>
        -->
      </rule>

      <rule>
        <pattern>
          <marker>
            <token postag_regexp="yes" postag="adj:[mnf]:.*num.*" regexp="yes">([0-9]{1,3})[-–][а-яіїєґ]+</token>
          </marker>
          <token postag_regexp="yes" postag="noun:inanim:[mfn].*" inflected="yes" regexp="yes">клас|курс|група|студія|канал</token>
        </pattern>
        <message>Згідно з рекомендаціями мовознавців не нарощуємо числівника, якщо він разом із наступним іменником становить назву класу, курсу, групи, студії, каналу тощо</message>
        <suggestion><match no="1" regexp_match="([0-9]+)[-—].*" regexp_replace="$1"/></suggestion>
        <example correction="3">І <marker>3-го</marker> класу</example>
        <example correction="2">А на <marker>2-му</marker> курсі</example>
        <example correction="7">з <marker>7-го</marker> каналу</example>
        <example>у 20-х роках</example>
        <example>У жовтні 1787-го курс становив</example>
      </rule>

      <rule>
        <pattern>
          <token regexp="yes" case_sensitive="yes">[XVI]+[-–][а-яіїє]{1,4}</token>
        </pattern>
        <message>За чинним правописом після римських цифр закінчення не пишемо</message>
        <suggestion><match no="1" regexp_match="([IVX]+)[-–][а-яіїє]+" regexp_replace="$1"/></suggestion>
        <example correction="III">починаючи з <marker>III-го</marker> кварталу.</example>
        <example correction="IX">на <marker>IX-му</marker> з'їзді.</example>
        <example>на IX з'їзді.</example>
      </rule>
    </rulegroup>

    <!-- group: латинські літери -->
    
    <rulegroup id="LATIN_LETTERS_IN_SENTENCE" name="Латинські літери в реченні">
      <rule>
        <pattern>
          <token regexp="yes">.*[а-яіїєґ]</token>
          <token regexp="yes">,</token>
          <marker>
            <token case_sensitive="yes">a</token>
          </marker>
          <token regexp="yes">[а-яіїєґ].*</token>
        </pattern>
        <message>Потенційна помилка: латинська літера замість української</message>
        <suggestion>а</suggestion>
        <example correction="а">2014 року, <marker>a</marker> то й раніше.</example>
        <!--
        <example>заробітна плата, a й b — числа</example>
        -->
      </rule>

      <rule>
        <pattern>
          <token regexp="yes">([12][0-9])?[0-9][0-9]</token>
          <marker>
            <token case_sensitive="yes" regexp="yes" max="2">pp?</token>
          </marker>
        </pattern>
        <message>Потенційна помилка: латинські літери замість українських</message>
        <suggestion><match no="2" regexp_match="p" regexp_replace="р"/></suggestion>
        <example correction="рр">врахували в 1990 <marker>pp</marker>.</example>
        <example correction="р">врахували в 90 <marker>p</marker>.</example>
        <example correction="р">врахували в 90 <marker>p</marker>. р.</example>
      </rule>

      <rule>
        <pattern>
          <token regexp="yes">.*[а-яіїєґ]</token>
          <token regexp="yes" min="0">[:,»)-]</token>
          <marker>
            <token case_sensitive="yes">i</token>
          </marker>
          <token regexp="yes">[а-яіїєґ].*</token>
        </pattern>
        <message>Потенційна помилка: латинська літера замість української</message>
        <suggestion>і</suggestion>
        <example correction="і">врахували це, <marker>i</marker> головним героєм.</example>
        <example correction="і">так <marker>i</marker> не запрацювала.</example>
      </rule>
      <rule>
        <pattern>
          <token regexp="yes" case_sensitive="yes">В2В.*</token>
        </pattern>
        <message>Потенційна помилка: українські літери замість латинських</message>
        <suggestion><match no="1" regexp_match="В2В(.*)" regexp_replace="B2B$1"/></suggestion>
        <example correction="B2B-маркетинг">врахували це, <marker>В2В-маркетинг</marker>.</example>
      </rule>
      <rule>
        <pattern>
          <token regexp="yes" case_sensitive="yes">рН.*</token>
        </pattern>
        <message>Потенційна помилка: українські літери замість латинських</message>
        <suggestion><match no="1" regexp_match="рН(.*)" regexp_replace="pH$1"/></suggestion>
        <example correction="pH">врахували рівень <marker>рН</marker>.</example>
      </rule>
      <rule>
        <pattern>
          <token case_sensitive="yes">ІВМ</token>
        </pattern>
        <message>Потенційна помилка: українські літери замість латинських</message>
        <suggestion>IBM</suggestion>
        <example correction="IBM">врахували в <marker>ІВМ</marker>.</example>
      </rule>
      <rule>
        <pattern>
          <token regexp="yes" case_sensitive="yes">МН-?17</token>
        </pattern>
        <message>Потенційна помилка: українські літери замість латинських</message>
        <suggestion><match no="1" regexp_match="МН(.*)" regexp_replace="MH$1"/></suggestion>
        <example correction="MH-17">рейс <marker>МН-17</marker>.</example>
      </rule>
      <rule>
        <pattern>
          <token regexp="yes">АІ-[а-яіїєґ].*</token>
        </pattern>
        <message>Потенційна помилка: українські літери замість латинських</message>
        <suggestion><match no="1" regexp_match="АІ-(.*)" regexp_replace="AI-$1"/></suggestion>
        <example correction="AI-сканування">таке собі <marker>АІ-сканування</marker>.</example>
      </rule>
      <rule>
        <pattern>
          <token case_sensitive="yes" regexp="yes">ВВС([-—].+)?</token>
        </pattern>
        <message>Потенційна помилка: українські літери замість латинських</message>
        <suggestion><match no="1" regexp_match="ВВС([-—].+)?" regexp_replace="BBC$1"/></suggestion>
        <suggestion><match no="1" regexp_match="ВВС([-—].+)?" regexp_replace="Бі-Бі-Сі$1"/></suggestion>
        <example correction="BBC|Бі-Бі-Сі">повідомляє <marker>ВВС</marker> Україна.</example>
        <example correction="BBC-Україна|Бі-Бі-Сі-Україна">повідомляла <marker>ВВС-Україна</marker>.</example>
      </rule>
      <rule>
        <pattern>
          <token case_sensitive="yes">МІТ</token>
        </pattern>
        <message>Потенційна помилка: українські літери замість латинських у скороченні</message>
        <suggestion>MIT</suggestion>
        <example correction="MIT">поступив у <marker>МІТ</marker>.</example>
      </rule>
      <rule>
        <pattern>
          <token case_sensitive="yes">ІРО</token>
        </pattern>
        <message>Потенційна помилка: українські літери замість латинських у скороченні</message>
        <suggestion>IPO</suggestion>
        <example correction="IPO">виходить на <marker>ІРО</marker>.</example>
      </rule>
      <rule>
        <pattern>
          <token regexp="yes">ІР-[а-яіїєґ].*</token>
        </pattern>
        <message>Потенційна помилка: українські літери замість латинських</message>
        <suggestion><match no="1" regexp_match="ІР(.*)" regexp_replace="IP$1"/></suggestion>
        <example correction="IP-адреса"><marker>ІР-адреса</marker>.</example>
        <example>ІР-21</example>
      </rule>
      <rule>
        <pattern>
          <token regexp="yes">МАС-адрес.*</token>
        </pattern>
        <message>Потенційна помилка: українські літери замість латинських</message>
        <suggestion><match no="1" regexp_match="МАС(.*)" regexp_replace="MAC$1"/></suggestion>
        <example correction="MAC-адреса"><marker>МАС-адреса</marker>.</example>
      </rule>
      <rule>
        <pattern>
          <token case_sensitive="yes" regexp="yes">СО2?</token>
        </pattern>
        <message>Потенційна помилка: українські літери замість латинських</message>
        <suggestion><match no="1" regexp_match="СО(.*)" regexp_replace="CO$1"/></suggestion>
        <example correction="CO">рівень <marker>СО</marker> в крові.</example>
        <example correction="CO2">рівень <marker>СО2</marker> в крові.</example>
      </rule>
    </rulegroup>

    <!-- group: велика літера -->

    <rule id="z_velykoiy" name="Назви з великої">
      <pattern>
        <and>
          <token case_sensitive="yes" regexp="yes">[а-яіїєґ].*</token>
          <token regexp="yes" inflected="yes">богородиця|господь|благовіщення|великдень|різдво|покрова|євангеліє
            <exception regexp="yes" inflected="yes">покров|господа|великодній</exception>
          </token>
        </and>
      </pattern>
      <message>За чинним правописом назви свят, культових книг тощо пишемо з великої літери</message>
      <suggestion><match no="1" case_conversion ="startupper"/></suggestion>
      <example correction="Різдва">готувався до <marker>різдва</marker></example>
      <example>по тонкому покрову</example>
      <example>така затишна господа</example>
    </rule>

<!-- 
    з пробілом: ДСТУ 3582-97 (1997) http://www.stu.cn.ua/media/files/pdf/DSTU_3582-97.pdf
    без пробіла: ДСТУ 3582-13 (2013) http://lib.npu.edu.ua/full_txt/DSTU_3582_2013.pdf

    <rulegroup id="I_T_P" name="і т.п." default="off">
      <rule>
        <regexp>т\.(д|п|ін)\.</regexp>
        <message>Правильно <suggestion>т. \1.</suggestion>?</message>
        <example correction="т. п.">путівки, дачі і <marker>т.п.</marker></example>
      </rule>
      <rule>
        <regexp>н\.е\.</regexp>
        <message>Правильно <suggestion>н. е.</suggestion>?</message>
        <example correction="н. е."> у 79 році <marker>н.е.</marker></example>
      </rule>
    </rulegroup>
-->
  </category>

  <category id="TYPOGRAPHY" name="Типографія" type="typographical">
    <!-- short dash is replaced with '-' in tagger, so we have to use Java rule to catch it -->
    <!-- 
    <rulegroup id="long_dash" name="Риска" default="off">
      <rule>
        <pattern>
          <token regexp="yes">[а-яіїєґ']+[—–][а-яіїєґ']+</token>
        </pattern>
        <message>Риска всередині слова. Всередині слова вживайте дефіс, між словами виокремлюйте риску пробілами.</message>
        <suggestion><match no="1" regexp_match="(.*)[—–](.*)" regexp_replace="$1-$2"/></suggestion>
        <suggestion><match no="1" regexp_match="(.*)[—–](.*)" regexp_replace="$1 — $2"/></suggestion>
        <example correction="січень-лютий|січень — лютий"><marker>січень—лютий</marker></example>
        <example correction="яскраво-рожевий|яскраво — рожевий"><marker>яскраво–рожевий</marker>.</example>
        <example correction="Вовка-Волкова|Вовка — Волкова"><marker>Вовка—Волкова</marker></example>
      </rule>
    </rulegroup>
    -->

    <rulegroup id="word_with_long_dash" name="Слова з довгим тире без пробілу">
      <rule>
        <pattern>
          <marker>
            <token regexp="yes">[а-яіїєґ][а-яіїєґ'-]*</token>
            <token spacebefore="no">—</token>
          </marker>
          <token spacebefore="yes"/>
        </pattern>
        <message>Довге тире після слова без пробілу</message>
        <suggestion>\1 —</suggestion>
        <suggestion>\1-</suggestion>
        <example correction="зими —|зими-"><marker>зими—</marker> літа</example>
        <example>зими&#xa0;— літа</example>
      </rule>
    </rulegroup>

    <!-- group: символи -->

    <rulegroup id="KVT_HOD" name="кВт*год">
      <rule>
        <pattern>
          <token>кВт</token>
          <token>/</token>
          <token>год</token>
        </pattern>
        <message>Правильно: <suggestion>кВт·год</suggestion></message>
        <example correction="кВт·год">15 <marker>кВт/год</marker>.</example>
      </rule>

      <rule>
        <pattern>
          <token>кВт</token>
          <token>/</token>
          <token>г</token>
        </pattern>
        <message>Правильно: <suggestion>кВт·год</suggestion></message>
        <example correction="кВт·год">15 <marker>кВт/г</marker>.</example>
      </rule>

      <rule>
        <pattern>
          <token regexp="yes">кВт[*∙]г</token>
        </pattern>
        <message>Правильно: <suggestion>кВт·год</suggestion></message>
        <example correction="кВт·год">15 <marker>кВт*г</marker>.</example>
        <example correction="кВт·год">15 <marker>кВт∙г</marker>.</example>
      </rule>
    </rulegroup>

    <rule id="UPPER_INDEX_FOR_M" name="Верхній індекс для метрів" default="off">
      <pattern>
        <token regexp="yes">([кдсмн]|мк)?м</token>
        <token regexp="yes" spacebefore="no">[23]</token>
      </pattern>
      <message>Можливо, потрібен верхній індекс?</message>
      <suggestion><match no="1"/>²</suggestion>
      <suggestion><match no="1"/>³</suggestion>
      <example correction="км²|км³">900 тис. <marker>км2</marker></example>
      <example correction="м²|м³">900 <marker>м3</marker></example>
      <example>20 скм3</example>
    </rule>

    <rule id="DEGREES_FOR_C" name="Знак градусів">
      <pattern>
        <token case_sensitive="yes" regexp="yes">[+-]?[0-9,-]*[0-9][оo][СC]</token> <!-- both lat and cyr o and C -->
      </pattern>
      <message>Можливо, потрібен знак градуса?</message>
      <suggestion><match no="1" regexp_match="([+-]?[0-9,-]*[0-9])[оo][СC]" regexp_replace="$1°C"/></suggestion>
      <example correction="27°C">температура знизиться до <marker>27оC</marker>.</example>
      <example>20 ОС</example>
    </rule>

    <rule id="invalid_apostrophe" name="Неправильний символ апострофа">
      <regexp>([а-яіїєґ'-]*[бвджзклмнпрстфхш])[&quot;”‟`´]([єїюя][а-яіїєґ'-]*)</regexp>
      <message>Можливо вжито неправильний символ апострофа?</message>
      <suggestion>\1'\2</suggestion>
      <example correction="прим'ятий">він <marker>прим"ятий</marker>.</example>
      <example correction="прим'ятий">він <marker>прим´ятий</marker>.</example>
    </rule>

  </category>

</rules>




© 2015 - 2024 Weber Informatics LLC | Privacy Policy