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

<!--suppress CheckTagEmptyBody -->
<!DOCTYPE rules [
    <!ENTITY weekdays "понеділок|вівторлк|середа|четвер|п'ятниця|субота|неділя">
    <!ENTITY months "січень|лютий|березень|квітень|травень|червень|липень|серпень|вересень|жовтень|листопад|грудень|січня|лютого|березня|квітня|травня|червня|липня|серпня|вересня|жовтня|листопада|грудня">
    <!ENTITY abbrevMonths "січ|лют|бер|кві|тра|чер|лип|сер|вер|жов|лис|гру">
    <!ENTITY hours "перший|другий|третій|четвертий|п'ятий|шостий|сьомий|восьмий|дев'ятий|десятий|одинадцятий|дванадцятий|тринадцятий|чотирнадцятий|п'ятнадцятий|шістнадцятий|сімнадцятий|вісімнадцятий|дев'ятнадцятий">
]>

<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 id="GRAMMAR" name="Граматика">

    <rule id="PREP_BEFORE_VERB" name="Прийменник перед дієсловом">
      <antipattern>
        <token regexp="yes">о?крім|замість|(за)?для|(за)?ради</token>
        <token postag_regexp="yes" postag="verb.*inf.*"/>
      </antipattern>
      <antipattern>
        <token case_sensitive="no">о</token>
        <token postag_regexp="yes" postag="verb.*impr.*"/>
      </antipattern>
      <antipattern>
        <token inflected="yes" regexp="yes">група|турнір|гепатит</token>
        <token case_sensitive="yes" regexp="yes">[А-Я]</token>
      </antipattern>
      <pattern>
        <token postag_regexp="yes" postag="prep.*">
          <exception negate_pos="yes" postag_regexp="yes" postag="prep.*" />
        </token>
        <token postag_regexp="yes" postag="verb.*">
          <exception negate_pos="yes" postag_regexp="yes" postag="verb.*" />
        </token>
      </pattern>
      <message>Прийменник \1 перед дієсловом <suggestion>\2</suggestion></message>
      <example correction="їхати">Їм треба <marker>в їхати</marker>.</example>
      <example correction="будь"><marker>для будь</marker> кого</example>
      <!-- ловимо іншим правилом
      <example correction="грати">потрапляти <marker>за грати</marker>.</example>
      -->
      <example>Їм треба їхати.</example>
      <example>Їм треба в'їхати.</example>
      <example>Просто взяти.</example>
      <example>Справедливості заради скажемо</example>
      <example>Справедливості заради хочеться зауважити</example>
      <example>Просто неба.</example>
      <example>Це більше задля годиться</example>
      <example>задля годиться</example>
      <example>не залишається нічого іншого, крім чекати.</example>
      <example>Наїхали на Мела Гібсона</example>
      <example>О покладіть мені квіти</example>
      <example>заради скажемо</example>
      <example>кількість захворювань на гепатит В зменшилась у вісім разів.</example>
      <example>О слався, о слався, сміливцю...</example>
    </rule>

    <rulegroup id="MODAL_WORD" name="Узгодження з модальними словами">
      <rule>
        <antipattern>
          <token regexp="yes">чим|як|скільки|тільки</token>
          <token inflected="yes">можна</token>
        </antipattern>
        <pattern>
          <token regexp="yes">варто|годі|можна|треба|повинно
            <exception scope="previous" regexp="yes">кого</exception>
          </token>
          <token regexp="yes" min="0">було|буде</token>
          <token regexp="yes" min="0">би?</token>
          <token min="0">не</token>
          <marker>
            <token postag_regexp="yes" postag="verb.*">
              <exception postag_regexp="yes" postag="verb.*:inf.*"/>
              <exception regexp="yes">було|буде</exception>
              <exception negate_pos="yes" postag_regexp="yes" postag="verb.*"/>
            </token>
          </marker>
        </pattern>
        <message>Дієслово після модального слова має йти інфінітивом: <suggestion><match no="5" postag_regexp="yes" postag="verb.*:inf.*"/></suggestion></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>
        <example>Повинен їхати</example>
        <example>Йому треба писати</example>
        <example>Чи варто їм таке писати?</example>
        <example>Чи варто було їм таке писати?</example>
        <example>Треба буде таке писати</example>
        <example>В кого треба видалено.</example>
        <example>можна буде встояти.</example>
        <example>Комерційний підхід до треб є незрозумілим</example>
        <example>конгрес повинен був сформулювати</example>
        <!--  verb:inf:coll not in default dictionary
        <example>Не можна встоять.</example>
         -->
      </rule>

      <rule>
        <antipattern>
          <token regexp="yes">чим|як|скільки|тільки|наскільки</token>
          <token inflected="yes" regexp="yes">з?могти</token>
        </antipattern>
        <!-- TODO: можливо, треба додати «мала» у словник, як noun? -->
        <antipattern>
          <token>мала</token>
          <!-- TODO: for some reason fails "Та мала виявилася неговіркою."
          <token regexp="yes" min="0">би?</token>
          -->
          <token min="0">не</token>
          <token postag_regexp="yes" postag="verb.*?(past:f|pres:s:3|futr:s:3).*"/>
        </antipattern>
        <antipattern>
          <token regexp="yes">мав|міг|мусив</token>
          <token regexp="yes">був|було</token>
        </antipattern>
        <antipattern>
          <token regexp="yes">мали|могли|мусили</token>
          <token regexp="yes">бул[ио]</token>
        </antipattern>
        <pattern>
          <token inflected="yes" regexp="yes" postag_regexp="yes" postag="verb.*">мати|мусити|могти|змогти
            <exception regexp="yes">може|мати|мало</exception>
          </token>
          <token regexp="yes" min="0">би?</token>
          <token min="0">не</token>
          <marker>
            <token postag_regexp="yes" postag="verb.*">
              <exception postag_regexp="yes" postag="verb.*:inf.*"/>
              <exception negate_pos="yes" postag_regexp="yes" postag="verb.*"/>
              <!--
              <exception inflected="yes">бути</exception>
              -->
            </token>
          </marker>
        </pattern>
        <message>Дієслово після модального слова має йти інфінітивом: <suggestion><match no="4" postag_regexp="yes" postag="verb.*:inf.*"/></suggestion></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>
        <example correction="бути">Винні мають <marker>були</marker> покарані</example>
        <example>Має їхати</example>
        <example>чи може мав важливіші справи</example>
        <example>Він як міг уникав спонтанного спілкування.</example>
        <example>І чим могли допомагали відновлювати.</example>
        <!--
        <example>мала була лягати</example>
        -->
        <example>мав був налякати</example>
        <example>мав був додому вертати</example>
        <example>Та мала виявилася неговіркою.</example>
        <example>Мала не прокинулася навіть тоді</example>
        <example>Мав було розказати і про свою біду</example>
        <example>дівчата, що мали були утікати</example>
      </rule>

      <rule>
        <pattern>
        <!-- |братися|старатися -->
          <token regexp="yes" inflected="yes">бажати|благати
            <exception postag_regexp="yes" postag="(advp|insert).*"/>
            <exception scope="previous" regexp="yes">кого</exception>
          </token>
          <token regexp="yes" min="0">би?</token>
          <token min="0">не</token>
          <marker>
            <token postag_regexp="yes" postag="verb.*">
              <exception postag_regexp="yes" postag="verb.*:(inf|past:n|futr:s:3).*"/>
              <exception negate_pos="yes" postag_regexp="yes" postag="verb.*"/>
              <exception inflected="yes" postag_regexp="yes" postag="verb:imperf:(past|futr).*">бути</exception>
            </token>
          </marker>
        </pattern>
        <message>Дієслово після модального слова має йти інфінітивом: <suggestion><match no="4" postag_regexp="yes" postag="verb.*:inf.*"/></suggestion></message>
        <example correction="працювати">Вони не бажали <marker>працювали</marker>.</example>
        <example correction="стріляти">Вони благали не <marker>стрілятимуть</marker>.</example>
        <!-- TODO:
        <example correction="розбудити">старався не <marker>розбудить</marker>.</example>
         -->
        <example>братися не хочуть</example>
        <example>багато старатися не доведеться</example>
      </rule>

      <rule>
        <pattern>
          <token inflected="yes" postag_regexp="yes" postag="adj:.:v_naz.*">повинний</token>
          <token regexp="yes" min="0">би?</token>
          <token inflected="yes" postag_regexp="yes" postag="verb:imperf:(past|futr).*" min="0">бути</token>
          <token min="0">не</token>
          <marker>
            <token postag_regexp="yes" postag="verb.*">
              <exception postag_regexp="yes" postag="verb.*:inf.*"/>
              <exception negate_pos="yes" postag_regexp="yes" postag="verb.*"/>
              <exception inflected="yes" postag_regexp="yes" postag="verb:imperf:(past|futr).*">бути</exception>
            </token>
          </marker>
        </pattern>
        <message>Дієслово після модального слова має йти інфінітивом: <suggestion><match no="5" postag_regexp="yes" postag="verb.*:inf.*"/></suggestion></message>
        <example correction="писати">Повинен <marker>писатиме</marker>.</example>
        <example correction="плакати">Повинна не <marker>плакатиме</marker>.</example>
        <example correction="писати">Повинен би був <marker>писатиме</marker>.</example>
        <example>Повинен їхати</example>
        <example>І вони на всьому готовому живуть.</example>
        <!--  verb:inf:coll not in default dictionary
        <example>суспільство повинно довірять не лише програмі дій</example>
         -->
      </rule>
    </rulegroup>

    <rulegroup id="zgidno_z" name="Згідно з">
      <rule>
        <pattern>
          <token>згідно</token>
          <marker>
            <token postag_regexp="yes" postag="(noun|adj).*"/>
          </marker>
        </pattern>
        <message>Згідно з чим</message>
        <suggestion>з <match no="2" postag="((?:noun|adj).*?)v_(?:rod|dav)(.*)" postag_replace="$1v_oru$2" postag_regexp="yes"/></suggestion>
        <example correction="з статутом">згідно <marker>статуту</marker></example>
        <example correction="з теперішніми">згідно <marker>теперішніх</marker> умов</example>
        <example correction="з якими">згідно <marker>яких</marker></example>
        <example>згідно зі статутом</example>
        <example>згідно з правилом</example>
      </rule>
      <rule>
        <pattern>
          <token>згідно</token>
          <marker>
            <token regexp="yes">до|за</token>
            <token postag_regexp="yes" postag="(noun|adj).*"/>
          </marker>
        </pattern>
        <message>Згідно з чим</message>
        <suggestion>з <match no="3" postag="((?:noun|adj).*?)v_(?:rod|dav|oru)(.*)" postag_replace="$1v_oru$2" postag_regexp="yes"/></suggestion>
        <example correction="з статутом">згідно <marker>за статутом</marker></example>
        <example correction="з правилом">згідно <marker>до правила</marker></example>
      </rule>
    </rulegroup>

    <rule id="ZAVIDUVACH" name="Завідувач">
      <pattern>
        <token inflected="yes" regexp="yes">завідувач|завідувачка|зав|зав\.</token>
        <marker>
          <token postag_regexp="yes" postag="adj.*v_oru.*" min="0"/>
          <token postag_regexp="yes" postag="noun.*v_oru.*">
            <exception postag_regexp="yes" postag="noun.*v_rod.*|.*pron.*"/>
          </token>
        </marker>
      </pattern>
      <message>Завідувач(ка) чого</message>
      <suggestion><match no="2" postag_regexp="yes" postag="(adj.*)v_oru(.*)" postag_replace="$1v_rod$2"/> <match no="3" postag_regexp="yes" postag="(noun.*)v_oru(.*)" postag_replace="$1v_rod$2"/></suggestion>
      <!-- TODO: change code to remove space -->
      <example correction="відділу">завідувача <marker>відділом</marker></example>
      <example correction="відділу">зав <marker>відділом</marker></example>
      <example correction="відділу"> зав. <marker>відділом</marker></example>
      <example correction="сьомого відділу">завідувачки <marker>сьомим відділом</marker></example>
      <example>завідувачем ним же створеної</example>
    </rule>

    <rulegroup id="NAVCHATY_CHOGO" name="Навчати чого">
      <rule>
        <pattern>
          <token inflected="yes" regexp="yes">навч[иа]ти|навча(вши|ючи)|навчивши</token>
          <token postag_regexp="yes" postag="noun:anim.*?:v_zna.*|noun.*?v_zna.*pron:pers.*" min="0"/>
          <marker>
            <unify>
              <feature id="gender"/>
              <feature id="case"/>
              <token postag_regexp="yes" postag="adj:.:v_dav.*" min="0"/>
              <token postag_regexp="yes" postag="noun:inanim:.:v_dav.*">
                <exception postag_regexp="yes" postag="noun:.*:v_(rod|zna|oru).*|noun:anim.*:v_naz.*|adv.*"/>
  <!--               <exception scope="next">нікому</exception>  --> <!-- не вірити -->
              </token>
            </unify>
          </marker>
        </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>
        <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>
        <!-- TODO:
        <example correction="">якій навчали <marker>художній майстерності</marker> обдарованих дітей</example>
         -->
        <example>навчати математики.</example>
        <example>навчати елементарної математики.</example>
        <example>навчати фаху.</example>
        <example>навчати їх.</example>
        <example>навчило її нікому не вірити.</example>
        <example>Чого навчила вас ця поразка?</example>
        <example>якого мене навчили друзі.</example>
        <example>Цьому мав би навчити попередній досвід.</example>
        <example>якої їх навчив їхній лідер,</example>
      </rule>

      <rule>
        <pattern>
          <token inflected="yes" regexp="yes">навч[иа]ти|навча(вши|ючи)|навчивши</token>
          <token regexp="yes" min="0">би?</token>
          <token postag_regexp="yes" postag="noun:anim.*?:v_zna.*|noun.*?v_zna.*?pron:pers.*" min="0"/>
          <marker>
            <token postag_regexp="yes" postag="(noun|adj):.:v_dav.*">
              <exception postag_regexp="yes" postag="noun.*?:v_rod.*"/>
              <exception regexp="yes">їх|його|її</exception>
            </token>
          </marker>
          <or> 
            <token regexp="yes">[\p{Punct}–—-]</token>
            <token postag_regexp="yes" postag="conj.*"/>
          </or>
        </pattern>
        <message>Навчати чого</message>
        <example correction="">Мене навчили <marker>головному</marker> — бачити кінцеву мету</example>
        <example correction="">навчити дітей <marker>елементарному</marker> й прищепити любов</example>
        <example correction="">навчити дітей <marker>тому</marker>, що любов...</example>
        <example>а він навчив її,</example>
      </rule>

      <rule>
        <antipattern>
          <token regexp="yes">їх|його|її</token>
          <unify>
            <feature id="gender"/>
            <feature id="case"/>
            <token postag_regexp="yes" postag="adj:.:v_rod.*" min="0"/>
            <token postag_regexp="yes" postag="noun:inanim:.:v_rod.*"/>
          </unify>
        </antipattern>
        <pattern>
          <token inflected="yes" regexp="yes">навч[иа]ти|навча(вши|ючи)|навчивши</token>
          <token regexp="yes">їх|його|її</token>
          <marker>
            <token postag_regexp="yes" postag="adj:.:v_dav.*" min="0"/>
            <token postag_regexp="yes" postag="noun:inanim:.:v_dav.*">
              <exception postag_regexp="yes" postag="noun:inanim:.:v_oru.*|adv.*"/>
            </token>
          </marker>
        </pattern>
        <message>Навчати чого</message>
        <example correction="">навчають її <marker>іноземним мовам</marker>.</example>
        <example correction="">навчити їх <marker>здоровому способу</marker> життя.</example>
        <example>навчають її живопису.</example>
      </rule>

      <rule>
        <antipattern>
          <token inflected="yes" regexp="yes">навч[иа]тися|навча(вши|ючи)сь|навчившись</token>
          <unify>
            <feature id="gender"/>
            <feature id="case"/>
            <token postag_regexp="yes" postag="adj:.:v_rod.*" min="0"/>
            <token postag_regexp="yes" postag="noun:inanim:.:v_rod.*"/>
          </unify>
        </antipattern>
        <pattern>
          <token inflected="yes" regexp="yes">навч[иа]тися|навча(вши|ючи)сь|навчившись</token>
          <marker>
            <token postag_regexp="yes" postag="adj:.:v_dav.*" min="0"/>
            <token postag_regexp="yes" postag="noun:inanim:.:v_dav.*">
              <exception postag_regexp="yes" postag="noun:anim:.:v_naz.*|adv.*|.*?numr.*"/>
            </token>
          </marker>
          <token>
            <exception postag_regexp="yes" postag="verb.*"/>
            <exception>нікому</exception> <!-- не вірити -->
          </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>
        <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 correction="">навчилася <marker>бойовим мистецтвам</marker>.</example>
        <example correction="">Мир нехай навчається <marker>добру</marker>.</example>
        <!-- TODO: 
        <example correction="">навчаються <marker>професійному співу</marker> діти.</example>
        <example correction="">уперто навчається <marker>спокійному подружньому коханню</marker>,</example>
         -->
        <example correction="">якій навчалися <marker>художній майстерності</marker> у цій школі</example>
        <example>навчатися менеджменту.</example>
        <example>вони навчалися далі, обираючи собі професію</example>
        <example>Куди піти навчатись ентузіастам із фотоапаратами.</example>
        <example>навчалися індійці.</example>
        <example>навчаються китайці.</example>
        <example>навчатися досі</example>
        <example>навчилася нікому не вірити.</example>
        <example>Але довго навчатися йому не довелося.</example>
        <example>навчатися власним коштом.</example>
        <example>не маючи можливості навчатися самому.</example>
        <example>доведеться таки навчитися цим провокаціям протистояти.</example>
        <example>там теж навчаються тисячі студентів, які потім...</example>
        <example>навчитися самій робити хліб</example>
      </rule>
    </rulegroup>

    <rulegroup id="CONSISTENCY_NOUN_NUMERIC_FRACTIONAL" name="Узгодженість числа іменників з дробовими числівниками">
      <rule>
        <pattern>
          <token postag_regexp="yes" postag="numr:[fp].*|number"/>
          <token regexp="yes">десятих|десяті|сотих|соті|.*тисячних|.*тисячні|третіх|треті|четвертих|чверті|четверті</token>
          <marker>
            <token postag_regexp="yes" postag="noun:inanim:.:.*">
              <exception postag_regexp="yes" postag="noun:inanim:[mfnp]:v_rod.*|.*(predic|pron).*"/>
              <exception regexp="yes">класи|гра|біографій|витрат|голосів|грошей|занять|заяв|інвестицій|локомотивів|мінус|місць|плюс|потреб|потужностей|рейсів|сімей|смертей|фірм|шлюбів|творів|.*господарств|експонатів|країн|країн-.*</exception>
            </token>
          </marker>
        </pattern>
        <message>Після дробового числівника іменник має стояти в родовому відмінку однини</message>
        <suggestion><match no="3" postag_regexp="yes" postag="(.*):.:v_...(.*)" postag_replace="$1:[mnf]:v_rod$2"/></suggestion>
        <example correction="відсотка">дві десятих <marker>відсотки</marker></example>
        <example correction="відсотка">дві третіх <marker>відсотки</marker></example>
        <example correction="відсотка">три четверті <marker>відсотки</marker></example>
        <example>дві десяті відсотка</example>
        <example>через десяті руки</example>
        <example>дві третіх країн-членів</example>
        <example>дві десяті мм</example>
        <example>три чверті місць</example>
        <example>три чверті їх слухати неможливо</example>
        <example>на три чверті він ними був заповнений</example>
        <example>три чверті громадян</example>
        <example>усі три чверті гра була рівною</example>
        <example>два десятих класи</example>
        <example>заради цих двох сотих треба дуже багато попрацювати</example>
      </rule>
      <rule>
        <pattern>
          <marker>
            <token>два</token>
          </marker>
          <token regexp="yes">десятих|сотих|.*тисячних|третіх|четвертих</token>
          <token regexp="yes" inflected="yes">відсоток|.*метр|секунда|мільйон|мільярд</token>
        </pattern>
        <message>Десяті, соті, тисячні тощо — жіночого роду</message>
        <suggestion>дві</suggestion>
        <!--
        <suggestion><match no="1" postag_regexp="yes" postag="(numr):m(:.*)" postag_replace="$1:f$2"/></suggestion>
        -->
        <example correction="дві"><marker>два</marker> десятих відсотки</example>
        <example correction="дві"><marker>два</marker> третіх метра</example>
        <example>заради цих двох сотих треба дуже багато попрацювати</example>
        <example>не вистачило дві десятих секунди</example>
      </rule>
      <rule>
        <pattern>
          <marker>
            <token>півтора</token>
          </marker>
          <token regexp="yes">десятих|сотих|.*тисячних|третіх|четвертих</token>
          <token regexp="yes" inflected="yes">відсоток|.*метр|секунда|мільйон|мільярд</token>
        </pattern>
        <message>Десяті, соті, тисячні тощо — жіночого роду</message>
        <suggestion>півтори</suggestion>
        <example correction="півтори"><marker>півтора</marker> сотих секунди</example>
        <example>не вистачило півтора метри</example>
      </rule>
      <rule>
        <antipattern>
          <token regexp="yes">[12][0-9]{3},[12][0-9]{3}</token>
          <token regexp="yes">рр\.</token>
        </antipattern>
        <antipattern>
          <token regexp="yes">.*,5</token> <!-- ,5 - виняток: 4,5 роки може читатися як «чотири з половиною роки» -->
        </antipattern>
        <pattern>
          <token regexp="yes">.*,[1-9]+</token>
          <marker>
            <token postag_regexp="yes" postag="noun.*?:.:.*">
              <exception postag_regexp="yes" postag="noun.*?:[mfn]:v_rod.*|.*pron.*|adv.*"/>
              <exception regexp="yes">тис|куб|кал|рази|разу|раз|разів</exception>
              <exception case_sensitive="yes" regexp="yes">[А-ЯІЇЄҐ].*</exception>
            </token>
          </marker>
        </pattern>
        <message>Після десяткового дробу іменник має стояти в родовому відмінку однини: <suggestion><match no="2" postag_regexp="yes" postag="(.*):.:v_...(.*)" postag_replace="$1:[mnf]:v_rod$2"/></suggestion></message>
        <example correction="кілограма">2,4 <marker>кілограми</marker></example>
        <example correction="мільйона">2,4 <marker>мільйони</marker></example>
        <example correction="мільйона">2,54 <marker>мільйони</marker></example>
        <example>або у 2,2 <marker>раз</marker>.</example> <!-- handled by rule below -->
        <example>або у 2,2 <marker>рази</marker>.</example> <!-- handled by rule below -->
        <example>33,77 тонни</example>
        <example>2,19 бала</example>
        <example>33,77 мм</example>
        <example>33,77 тис</example>
        <example>33,5 роки</example>
        <example>33,5 Терещенко</example>
        <example>1998,1999 рр.</example> <!-- should have space after comma, see next rule -->
        <example>із результатом 28,91 вона посіла третє місце</example>
        <example>Становлять відповідно 0,5 і 0,3 її оцінки.</example>
        <example>це на 0,21 краще за попередній рекорд світу.</example>
      </rule>
      <rule>
        <pattern>
          <token regexp="yes">[12][0-9]{3},[12][0-9]{3}</token>
        </pattern>
        <message>Можливо, пропущений пробіл між роками?</message>
        <example correction=""><marker>1975,2002</marker></example>
        <example>33,22</example>
      </rule>
      <rule>
        <pattern>
          <token regexp="yes">.*,[1-9]+</token>
          <marker>
            <token regexp="yes">раз|рази|разу|разів</token>
          </marker>
        </pattern>
        <message>Після десяткового дробу вживаємо «раза»</message>
        <suggestion>раза</suggestion>
        <url>http://www.kulturamovy.org.ua/KM/pdfs/mix/61-12-65-26.pdf</url>
        <example correction="раза">або у 2,2 <marker>раз</marker>.</example>
        <example correction="раза">або у 2,2 <marker>рази</marker>.</example>
        <example correction="раза">або у 2,2 <marker>раз</marker>.</example>
        <example>або у 2,2 раза.</example>
        <example>або у 2 рази.</example>
      </rule>
    </rulegroup>

    <rulegroup id="CONSISTENCY_NUMERIC_FRACTIONAL" name="Узгодженість дробових числівників">
      <rule>
        <pattern>
          <token regexp="yes">дві|три|чотири</token>
          <marker>
            <token regexp="yes">десятих|сотих|тисячних|третіх|четвертих</token>
          </marker>
        </pattern>
        <message>У дробовому числівнику після два, три, чотири має йти десяті, соті…</message>
        <suggestion><match no="2" postag_regexp="yes" postag="(.*):.:v_...(.*)" postag_replace="$1:p:v_naz$2"/></suggestion>
        <example correction="десяті">дві <marker>десятих</marker></example>
        <example correction="соті">три <marker>сотих</marker></example>
        <!-- TODO: false positive
            <example>перше місце, три других і чотири третіх</example>
        -->
      </rule>
    </rulegroup>


    <rulegroup id="CONSISTENCY_NOUN_NUMERIC_WHOLE" name="Узгодженість числа іменників з цілими числівниками">
      <rule>
        <pattern>
          <token regexp="yes">два|дві|три|чотири|.*(?&lt;!1)[234]</token>
          <token>з</token>
          <token regexp="yes">половиною|третиною|чвертю</token>
          <token postag_regexp="yes" postag="adj.*" min="0"/>
          <marker>
            <token postag_regexp="yes" postag="noun.*?:[fm]:v_rod.*">
              <exception postag_regexp="yes" postag="noun.*?:p:v_naz.*"/>
            </token>
          </marker>
        </pattern>
        <message>Після числівника, що закінчується на 2-4, іменник має стояти в називному відмінку множини: <suggestion><match no="5" postag="noun.*?:p:v_naz.*" postag_regexp="yes"/></suggestion></message>
        <url>http://mova.kreschatic.kiev.ua/228.htm</url>
        <example correction="тижні">24 з половиною <marker>тижня</marker></example>
        <example correction="тижні">24 з половиною довгих <marker>тижня</marker></example>
        <example>двадцять три з половиною дні</example>
        <example>дві з половиною тисячі</example>
        <example>Дві з половиною людини</example>
      </rule>

      <rule>
        <antipattern>
          <token regexp="yes">від|до|протягом|[ув]продовж|близько|після|для|більше|менше</token>
          <token postag_regexp="yes" postag="adj.*?:p:v_rod.*" min="0"/>
          <token regexp="yes">.*[234],5</token>
        </antipattern>
        <antipattern>
          <token regexp="yes">.*[234],5</token>
          <token regexp="yes">тис|коп</token>
        </antipattern>
        <pattern>
          <token regexp="yes">.*(?&lt;!1)[234],5</token>
          <token postag_regexp="yes" postag="adj.*" min="0"/>
          <marker>
            <token postag_regexp="yes" postag="noun.*?:p:v_rod.*">
              <exception postag_regexp="yes" postag="noun.*?:(p:v_naz|[mfn]:v_rod).*"/>
            </token>
          </marker>
        </pattern>
        <message>Після числівника, що закінчується на 2-4 і потім «,5», іменник має стояти в називному відмінку множини (якщо вимовляємо «з половиною»), або в родовом відмінку однини (якщо вимовляємо «і п'ять десятих»)</message>
        <suggestion><match no="3" postag="noun.*?:p:v_naz.*" postag_regexp="yes"/></suggestion>
        <suggestion><match no="3" postag="noun.*?:[mfn]:v_rod.*" postag_regexp="yes"/></suggestion>
        <url>http://mova.kreschatic.kiev.ua/228.htm</url>
        <example correction="мільйони|мільйона">2,5 <marker>мільйонів</marker></example>
        <example correction="тижні|тижня">2,5 <marker>тижнів</marker></example>
        <example correction="ночі">2,5 <marker>ночей</marker></example>
        <example>14,5 років</example>
        <example>отримало 12,4 тисяч</example>
        <example>від 2,5 до 4,5 років</example>
        <example>протягом останніх 3,5 років</example>
        <!-- TODO: розібратися чи тут 2 == двоє
        <example>2,5 постраждалих</example>
        -->
        <!-- handled by another rule -->
        <example>3,5 тис</example>
      </rule>

      <rule>
        <antipattern>
          <token regexp="yes">соті|десяті|.*[234]</token>
          <token case_sensitive="yes" postag_regexp="yes" postag="noun.*?:m:v_rod.*" regexp="yes">[А-ЯІЇЄҐ].*</token>
        </antipattern>
        <antipattern>
          <token regexp="yes">на|о|з</token>
          <token regexp="yes">[12][0-9]?[—–-][12][0-9]?</token>
          <token regexp="yes">дня|ночі|ранку|вечора</token>
        </antipattern>
        <antipattern>
          <token regexp="yes">[0-9]+[—–-][0-9]+</token>
          <token regexp="yes">рівня|ступеня|вище|нижче</token>
        </antipattern>
        <pattern>
          <token postag_regexp="yes" postag=".*num.*" regexp="yes">два|дві|обидва|обидві|три|чотири|[^,]*(?&lt;!1)[234]
            <exception postag_regexp="yes" postag="date|time"/>
            <exception scope="previous" regexp="yes">[:/.№]|статт[яі]|пункті?|частин[аи]|[а-яіїєґ]+\.|\.</exception> <!-- ст.,ч.,п. тощо -->
          </token>
          <token postag_regexp="yes" postag="adj.*" min="0">
            <exception regexp="yes">треті|четверті|десяті|соті|тисячні</exception>
            <!-- caught by CONSISTENCY_NUMERIC_FRACTIONAL -->
            <exception regexp="yes">третіх|четвертих|десятих|сотих|тисячних</exception>
            <exception postag_regexp="yes" postag="noun:.*?:p:v_naz.*"/>
          </token>
          <marker>
            <token postag_regexp="yes" postag="noun.*?:m:v_rod.*" regexp="yes">.*[ая]
              <exception postag_regexp="yes" postag="noun.*?:p:v_naz.*|noun.*:m:v_rod.*:prop.*"/>
              <exception regexp="yes">січня|березня|квітня|травня|червня|липня|серпня|вересня|жовтня|листопада|грудня</exception>
              <exception regexp="yes">друга|брата|дуба|дядька|чоловіка|берега|.*нина</exception>
            </token>
          </marker>
        </pattern>
        <message>Після числівника, що закінчується на 2-4, іменник має стояти в називному відмінку множини: <suggestion><match no="3" postag="noun.*?:p:v_naz.*" postag_regexp="yes"/></suggestion></message>
        <url>http://mova.kreschatic.kiev.ua/228.htm</url>
        <example correction="вулики">двадцять три <marker>вулика</marker></example>
        <example correction="тижні">24 <marker>тижня</marker></example>
        <example correction="автомобілі">обидва <marker>автомобіля</marker></example>
        <example correction="автомобілі">обидва синіх <marker>автомобіля</marker></example>
        <example correction="двори">дитину 3 <marker>двора</marker> спровадила</example>
        <example>о 12-14 дня</example>
        <example>1-2 рівня</example>
        <example>5-7 ступеня</example>
        <example>вдень 12-14 вище нуля</example>
        <example>а 12-14 лютого Рада має прийняти</example>
        <example>два Києва</example>
        <example>двадцять три вулики</example>
        <example>двадцять три дні</example>
        <example>три чверті</example>
        <example>співвласника ДБК-3 Петра Шелюка</example>
        <example>1/2 шилінга</example>
        <example>після поразки 0:2 Базилевича</example>
        <example>три головні завдання</example>
        <example>2,2 мільйона</example>
        <example>три століття</example>
        <example>три роки тому</example>
        <example>дві третіх шлунка</example>
        <example>дві десятих відсотка</example>
        <example>1992 року</example>
        <example>три тис. грн.</example>
        <example>3 липня 1998р.</example>
        <example>ст. 33 документа</example>
        <example>статті 43 Закону</example>
        <example>заспівали дві пісні короля футболу</example>
        <example>випередивши на дві соті Давида Ньясу з Катару</example>
        <example>двадцять два слобожанина</example>
        <example>сорок три киянина</example>
        <example>два імені</example>
        <example>три галченяти</example>
        <example>чотири племені</example>
        <example>чотири друга</example>
        <example>22 рази</example>
        <!-- двоїна: http://irbis-nbuv.gov.ua/cgi-bin/irbis_nbuv/cgiirbis_64.exe?C21COM=2&I21DBN=UJRN&P21DBN=UJRN&IMAGE_FILE_DOWNLOAD=1&Image_file_name=PDF/Ukrm_2011_2_8.pdf -->
        <example>2 друга</example>
        <example>2 брата</example>
        <example>2 чоловіка</example>
        <example>2 дядька</example>
        <example>2 берега</example>
        <!-- adj/v_rod + noun/v_naz -->
        <example>Дві людських руки</example>
        <example>Два білих горнятка</example>
      </rule>

      <rule>
        <pattern>
          <token regexp="yes" inflected="yes">п'ять|шість|сім|вісім|дев'ять|десять|.*надцять|двадцять|тридцять|сорок|.*десят|дев'яносто|сотня|сто|двісті|триста|чотириста|п'ятьсот|шістьсот|сімсот|вісімсот|дев'ятсот|тисяча|мільйон|мільярд</token>
          <token>з</token>
          <token regexp="yes">половиною|третиною|чвертю</token>
          <token postag_regexp="yes" postag="adj.*" min="0"/>
          <marker>
            <token postag_regexp="yes" postag="noun:(in)?anim:m:v_naz.*" regexp="yes">(нано|мікро|мілі|дека|кіло|мега|гіга|тера|пета)?(герц|байт|біт|бар|бер|ват|вольт|солдат|децибел|рентген|моль|мікрон|грам|аршин|лат|карат)
              <exception case_sensitive="yes">ВАТ</exception>
            </token>
          </marker>
        </pattern>
        <message>Після числівника, що закінчується на 5-9 або 0, іменник має стояти в родовому відмінку множини: <suggestion><match no="5" postag="noun:(in)?anim:p:v_rod.*" postag_regexp="yes"/></suggestion></message>
        <example correction="мілібарів">десять з чвертю <marker>мілібар</marker></example>
        <example correction="солдатів">дві сотні з половиною <marker>солдат</marker></example>
        <example correction="солдатів">дві сотні з половиною хоробрих <marker>солдат</marker></example>
        <example>п'ять з половиною <marker>разів</marker></example>
        <example>тримали п'ять бейсбольних біт</example>
      </rule>

<!-- generates mostly FP
      <rule>
        <antipattern>
          <token regexp="yes">[0-9]*</token>
          <token regexp="yes">року|роки|р\.|&months;|&abbrevMonths;</token>
        </antipattern>
        <pattern>
          <token regexp="yes">[0-9 ]*[5-90]|[0-9 ]+11</token>
          <token postag_regexp="yes" postag="adj.*" min="0"/>
          <marker>
            <token postag_regexp="yes" postag="noun:(in)?anim:(.:v_naz|[mfn]:v_rod).*">
              <exception postag_regexp="yes" postag="noun:(in)anim:p:v_rod.*"/>
            </token>
          </marker>
        </pattern>
        <message>Після числівника, що закінчується на 5-9 або 0, іменник має стояти в родовому відмінку множини</message>
        <suggestion><match no="3" postag="noun:(in)?anim:p:v_rod.*" postag_regexp="yes"/></suggestion>
        <example correction="градусів">5 <marker>градуси</marker></example>
        <example correction="градусів">5 <marker>градуса</marker></example>
        <example correction="ночей">10 <marker>ніч</marker></example>
        <example correction="ночей">10 <marker>ночі</marker></example>
        <example>1995 року</example>
        <example>1995 р.</example>
        <example>5 липня</example>
      </rule>
-->
      <rule>
        <antipattern>
          <token regexp="yes">тис|тон</token>
        </antipattern>
        <pattern>
          <token regexp="yes">([0-9 ]*[5-90]|[0-9 ]*1[1-4]),5</token>
          <token postag_regexp="yes" postag="adj.*" min="0"/>
          <marker>
            <token postag_regexp="yes" postag="noun:(in)?anim:.:v_naz.*">
              <exception postag_regexp="yes" postag="noun:(in)?anim:(p:v_rod|[mfn]:v_rod).*"/>
            </token>
          </marker>
        </pattern>
        <message>Після числівника, що закінчується на 5-9 і потім «,5», іменник має стояти в родовому відмінку множини (якщо вимовляємо «з половиною»), або в родовом відмінку однини (якщо вимовляємо «і п'ять десятих»)</message>
        <suggestion><match no="3" postag="noun:(in)?anim:p:v_rod.*" postag_regexp="yes"/></suggestion>
        <suggestion><match no="3" postag="noun:(in)?anim:[mfn]:v_rod.*" postag_regexp="yes"/></suggestion>
        <example correction="градусів|градуса">5,5 <marker>градуси</marker></example>
        <example correction="градусів|градуса">13,5 <marker>градуси</marker></example>
        <example correction="ночей|ночі">10,5 <marker>ніч</marker></example>
        <example>0,5 курки</example>
        <example>зібрано 6,5 куб. м сміття</example>
        <!-- handled by another rule -->
        <example>19,5 тис гривень</example>
        <example>18,5 тон сміття</example>
      </rule>

      <rule>
        <antipattern>
          <token inflected="yes">бейсбольний</token>
          <token inflected="yes">біта</token>
        </antipattern>
        <pattern>
          <token regexp="yes" inflected="yes">п'ять|шість|сім|вісім|дев'ять|нуль|десять|двадцять|тридцять|сорок|.*десят|дев'яносто|сотня|сто|двісті|триста|чотириста|п'ятьсот|шістьсот|сімсот|вісімсот|дев'ятсот|тисяча|мільйон|мільярд|([0-9 ]*[05-9]|[0-9 ]*1[1-4])
            <exception postag_regexp="yes" postag=".*:v_oru.*"/>
            <exception scope="previous" regexp="yes">[:./№]</exception>
            <exception regexp="yes">(1[0-9]{3}|20[0-2][0-9])</exception>
          </token>
          <token postag_regexp="yes" postag="adj.*" min="0"/>
          <marker>
            <!--
                <token postag_regexp="yes" postag="noun:m:v_naz.*" regexp="yes">.*[бвгґджйзклмнпрстфхцчшщ]ь?
                <exception scope="previous">хвилин за</exception>
                <exception postag_regexp="yes" postag="noun:p:v_rod.*|verb.*|predic.*"/>
                <exception regexp="yes" case_sensitive="yes">[А-ЯІЇЄҐ].*</exception>
                <exception regexp="yes">раз|чоловік|тис|куб|як|абзац|клас|канал|номер|плюс|поверх|пункт</exception>
                </token>
            -->
            <token postag_regexp="yes" postag="noun:(in)?anim:m:v_(naz|rod).*" inflected="yes" regexp="yes">(нано|мікро|мілі|дека|кіло|мега|гіга|тера|пета)?(герц|байт|біт|бар|бер|ват|вольт|солдат|децибел|рентген|моль|мікрон|грам|аршин|лат|карат)
              <exception case_sensitive="yes">ВАТ</exception>
            </token>
          </marker>
        </pattern>
        <message>Після числівника, що закінчується на 5-9 або 0, іменник має стояти в родовому відмінку множини: <suggestion><match no="3" postag="noun:(in)?anim:p:v_rod.*" postag_regexp="yes"/></suggestion></message>
        <!--
            <example correction="грамів">сто <marker>грам</marker></example>
            <example correction="грамів">100 <marker>грам</marker></example>
        -->
        <example correction="байтів">10 <marker>байт</marker></example>
        <example correction="мілібарів">10 <marker>мілібар</marker></example>
        <example correction="солдатів">дві сотні <marker>солдат</marker></example>
        <example correction="солдатів">дві сотні хоробрих <marker>солдат</marker></example>
        <example correction="солдатів">п'ять <marker>солдат</marker></example>
        <example correction="мікронів">13 <marker>мікрон</marker></example>
        <example correction="мікронів">13 <marker>мікрона</marker></example>
        <example>п'ять <marker>раз</marker></example>
        <example>хвилин за 10 спікер увійшов</example>
        <example>до 16 вхід заборонено</example>
        <example>в 40 став наймолодшим</example>
        <example>50 тис. людей</example>
        <example>сто грамів</example>
        <example>100 грамів</example>
        <example>10 разів</example>
        <example>10 раз</example>
        <example>10 номер</example>
        <example>У 2008 президент</example>
        <example>10 плюс 5</example>
        <example>о 17.15 патріарх буде в місті</example>
        <example>«5 канал»</example>
        <example>у свої сімдесят два роки</example>
        <example>на виборах-2007 Блок Литвина</example>
        <example>127 Шевченко Євген Валерійович</example>
        <example>керував сотнею німець</example>
        <example>комендантом сотні став Віталій</example>
        <example>ці мільйони слід шукати там</example>
        <example>тримали 75 бейсбольних біт</example>
        <!-- handled by another rule -->
        <example>19 тис гривень</example>
      </rule>

      <rule>
        <pattern>
          <token regexp="yes" inflected="yes">п'ять|шість|сім|вісім|дев'ять|нуль|десять|двадцять|тридцять|сорок|.*десят|дев'яносто|сотня|сто|двісті|триста|чотириста|п'ятьсот|шістьсот|сімсот|вісімсот|дев'ятсот|([0-9 ]*[05-9]|[0-9 ]*1[1-4])</token>
          <marker>
            <token regexp="yes">мільйон[аи]|мільярд[аи]|трильйон[аи]</token>
          </marker>
        </pattern>
        <message>Після числівника, що закінчується на 5-9 або 0, іменник має стояти в родовому відмінку множини: <suggestion><match no="2" postag="noun:(in)?anim:p:v_rod.*" postag_regexp="yes"/></suggestion></message>
        <example correction="мільйонів">10 <marker>мільйона</marker></example>
        <example correction="мільярдів">вартістю 56 <marker>мільярда</marker> євро</example>
      </rule>

      <rule>
        <pattern>
          <token regexp="yes" inflected="yes">([0-9 ]*[05-9]|[0-9 ]*1[1-4]),5</token>
          <marker>
            <token regexp="yes">мільйони|мільярди|трильйони</token>
          </marker>
        </pattern>
        <message>Після числівника, що закінчується на 5-9 або 0, і потім «,5», іменник має стояти в родовому відмінку множини (якщо вимовляємо «з половиною»), або в родовом відмінку однини (якщо вимовляємо «і п'ять десятих»)</message>
        <suggestion><match no="2" postag="noun:(in)?anim:p:v_rod.*" postag_regexp="yes"/></suggestion>
        <suggestion><match no="2" postag="noun:(in)?anim:[mfn]:v_rod.*" postag_regexp="yes"/></suggestion>
        <example correction="мільйонів|мільйона">7,5 <marker>мільйони</marker></example>
        <example correction="мільярдів|мільярда">вартістю 56,5 <marker>мільярди</marker> євро</example>
      </rule>

      <rule>
        <pattern>
          <token regexp="yes">([1-9][0-9 \u00A0]*)[02-9]1
            <exception scope="previous" regexp="yes">[:./№]</exception>
            <exception regexp="yes">(1[0-9]{3}|20[0-2][0-9])</exception>
          </token>
          <token postag_regexp="yes" postag="adj.*" min="0">
            <exception postag_regexp="yes" postag="noun.*?:[mfn]:.*"/>
          </token>
          <marker>
            <token postag_regexp="yes" postag="noun.*?:p:.*">
              <exception postag_regexp="yes" postag=".*:[mfn]:.*|.*pron:pers.*|adv.*"/>
              <exception regexp="yes">рр\.</exception>
            </token>
          </marker>
        </pattern>
        <message>Після числівника, що закінчується на 1, іменник має стояти в однині</message>
        <example type="incorrect">271 <marker>депутатів</marker> проголосовали</example>
        <example type="incorrect">1 271 <marker>депутатів</marker> проголосовали</example>
        <example type="incorrect">всього 441 <marker>рази</marker>.</example>
        <example type="incorrect">10931 <marker>глядачів</marker>.</example>
        <example>11 депутатів проголосовали</example>
        <example>на тлі претендента 001 доходи великої родини</example>
        <example>27 депутатів проголосовали</example>
        <example>проти 441 зараз.</example>
        <example>залишилася 781 тонна пестицидів.</example>
        <example>В 1999-2001 рр. він був секретарем.</example>
        <example>В 604-562 або 561 рр. до н.е.</example>
        <example>Про знеструмлення будинків 10 та 101 нас не повідомили.</example>
      </rule>
    </rulegroup>

    <rulegroup id="PIVTORA_WITH_NOUNS" name="Узгодженість «півтора» з іменниками">
      <rule>
        <pattern>
          <marker>
            <token>півтора</token>
          </marker>
          <token postag_regexp="yes" postag="noun.*?:f:.*">
            <exception postag_regexp="yes" postag="noun.*?:[nm]:(nv|v_rod).*"/>
          </token>
        </pattern>
        <message>В жіночому роді правильно: <suggestion>півтори</suggestion></message>
        <example correction="півтори"><marker>півтора</marker> доби</example>
        <example correction="півтори"><marker>півтора</marker> тисячі</example>
        <example>півтори доби</example>
      </rule>
      <rule>
        <pattern>
          <token regexp="yes">півтор[аи]</token>
          <marker>
            <token postag_regexp="yes" postag="(noun.*?|adj):p:.*">
              <exception postag_regexp="yes" postag="(noun.*?|adj):[nmf]:v_rod.*"/>
              <exception inflected="yes">раз</exception>  <!-- special case in the rule below -->
              <exception regexp="yes">десятих|сотих|тисячних</exception>
            </token>
          </marker>
        </pattern>
        <message>Після «півтора» треба вживати родовий однини</message>
        <!--  <match no="2" postag_regexp="yes" postag="adj:p:.*" postag_replace="adj:[mnf]:v_rod.*"/>  -->
        <suggestion><match no="3" postag_regexp="yes" postag="((noun|adj).*?):p:.*" postag_replace="$1:[mnf]:v_rod.*"/></suggestion>
        <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>півтора рази</example> <!-- ingore this mistake here, it'll be caght by rule below -->
        <example>півтора тисячі</example> <!-- ingore this mistake here, it'll be caght by rule above -->
        <example>якихось півтори десятих</example>
      </rule>
      <rule>
        <pattern>
          <token>півтора</token>
          <marker>
            <token postag_regexp="yes" postag="noun.*?:[mn]:.*">
              <exception postag_regexp="yes" postag="noun.*?:[nmfp]:(nv|v_rod).*"/>
              <exception inflected="yes">раз</exception>  <!-- special case in the rule below -->
            </token>
          </marker>
        </pattern>
        <message>Після «півтора» треба вживати родовий однини: <suggestion><match no="2" postag_regexp="yes" postag="(noun.*?:[mn]):v_...(.*)" postag_replace="$1:v_rod$2"/></suggestion></message>
        <example correction="копальника">півтора <marker>копальнику</marker></example>
        <example correction="відра">півтора <marker>відрі</marker></example>
        <example correction="десятка">півтора <marker>десятку</marker></example>
        <example>півтора літра</example>
        <example>півтора рази</example> <!-- ingore this mistake here, it'll be caght by rule below -->
      </rule>
      <rule>
        <pattern>
          <token regexp="yes">півтор[аи]</token>
          <marker>
            <token regexp="yes">раз|рази|разу|разів</token>
          </marker>
        </pattern>
        <message>Після «півтора» треба вживати родовий однини: «півтора раза»</message>
        <suggestion>раза</suggestion>
        <url>http://www.kulturamovy.org.ua/KM/pdfs/mix/61-12-65-26.pdf</url>
        <example correction="раза">півтора <marker>раз</marker>.</example>
        <example correction="раза">півтора <marker>рази</marker>.</example>
        <example correction="раза">півтора <marker>раз</marker>.</example>
        <example>півтора кілограма</example>
        <example>або у 2 рази.</example>
      </rule>
      <rule>
        <pattern>
          <marker>
            <token>півтори</token>
          </marker>
          <token postag_regexp="yes" postag="noun.*?:[mn]:.*">
            <exception postag_regexp="yes" postag="noun.*?:[fp]:(nv|v_rod).*"/>
          </token>
        </pattern>
        <message>В чоловічому та середньому роді правильно: «<suggestion>півтора</suggestion>»</message>
        <example correction="півтора"><marker>півтори</marker> відра</example>
        <example correction="півтора"><marker>півтори</marker> кухля</example>
        <example>півтора відра</example>
        <example>півтори доби</example>
        <example>півтора кухля</example>
        <example>півтори сотні</example> <!-- ingore this mistake here, it'll be caght by rule above -->
        <example>роки півтора тому</example>
      </rule>
    </rulegroup>

    <rulegroup id="TIME" name="Час">
      <rule>
        <pattern>
          <token>пів</token>
          <token postag_regexp="yes" postag="adj:f:v_rod.*" regexp="yes" inflected="yes">&hours;</token>
        </pattern>
        <message>Правильно: <suggestion>(о) пів на <match no="2" postag_regexp="yes" postag="adj:f:v_zna.*"/></suggestion></message>
        <suggestion>(о) пів до <match no="2" postag_regexp="yes" postag="adj:f:v_rod.*"/></suggestion>
        <example correction="(о) пів на першу|(о) пів до першої"><marker>пів першої</marker> приїхав і він</example>
        <example>пів на першу приїхав і він</example>
      </rule>

      <rule>
        <pattern>
          <marker>
            <token regexp="yes">[ву]</token>
          </marker>
          <token postag_regexp="yes" postag="adj:f:v_mis.*" regexp="yes" inflected="yes">&hours;</token>
          <token>годині</token>
        </pattern>
        <message>Правильно: <suggestion>о</suggestion></message>
        <example correction="о">аж <marker>у</marker> третій годині ночі</example>
        <example>аж о третій годині ночі</example>
      </rule>
      <rule>
        <pattern>
          <marker>
            <token regexp="yes">[ву]</token>
          </marker>
          <token regexp="yes">[1-9]-і?й|[12][0-9]-і?й</token>
          <token>годині</token>
        </pattern>
        <message>Правильно: <suggestion>о</suggestion></message>
        <example correction="о">аж <marker>у</marker> 10-й годині ночі</example>
        <example>аж о 5-ій годині ночі</example>
      </rule>
      <rule>
        <pattern>
          <token regexp="yes">[ву]</token>
          <token postag_regexp="yes" postag="num.*"/>
          <token>годин</token>
          <token postag_regexp="yes" postag="num.*"/>
          <token postag_regexp="yes" postag="num.*" min="0"/>
          <token>хвилин</token>
        </pattern>
        <message>Правильно: <suggestion>о <match no="2"/> <match no="3"/>і <match no="4"/> <match no="5"/> <match no="6"/></suggestion></message>
        <suggestion><match no="2"/> <match no="3"/> до <match no="4"/></suggestion>
        <example correction="о п'ять годині двадцять п'ять хвилин|п'ять годин до двадцять"><marker>в п'ять годин двадцять п'ять хвилин</marker></example>
        <example>п'ять хвилин на дев'яту</example>
      </rule>
      <rule>
        <pattern>
          <token regexp="yes">[ву]</token>
          <token regexp="yes">(2[0-4]|1[0-9]|[1-9]):[0-9]{2}</token>
        </pattern>
        <message>Правильно: <suggestion>о <match no="2"/></suggestion></message>
        <example correction="о 17:00">почнеться <marker>в 17:00</marker> за місцевим часом</example>
        <example>з рахунком 22:33</example>
      </rule>

      <rule>
        <pattern>
          <!--
              <token postag_regexp="yes" postag="num.*"/>
          -->
          <token postag_regexp="yes" postag="adj:f:v_mis.*" regexp="yes" inflected="yes">&hours;</token>
          <token>годині</token>
          <marker>
            <token postag_regexp="yes" postag="num.*" min="0"/>
            <token postag_regexp="yes" postag="adj.*"/>
            <token>хвилині</token>
          </marker>
        </pattern>
        <message>Правильно: <suggestion>…надцять хвилин</suggestion></message>
        <example correction="…надцять хвилин">о першій годині <marker>двадцятій хвилині</marker></example>
        <example correction="…надцять хвилин">о першій годині <marker>тридцять п'ятій хвилині</marker></example>
        <example>о першій годині двадцять п'ять хвилин</example>
      </rule>
      <rule>
        <pattern>
          <token regexp="yes">[1-9]-і?й|[12][0-9]-і?й</token>
          <token>годині</token>
          <marker>
            <token postag_regexp="yes" postag="num.*" min="0"/>
            <token postag_regexp="yes" postag="adj.*"/>
            <token>хвилині</token>
          </marker>
        </pattern>
        <message>Правильно: <suggestion>…надцять хвилин</suggestion></message>
        <example correction="…надцять хвилин">о 10-й годині <marker>двадцять п'ятій хвилині</marker></example>
        <example>о 10-й годині двадцять п'ять хвилин</example>
      </rule>
      <rule>
        <pattern>
          <token>без</token>
          <token postag_regexp="yes" postag="num.*" min="1" max="2"/>
          <token min="0">хвилин</token>
          <token postag_regexp="yes" postag="adj:f:v_naz.*" regexp="yes" inflected="yes">&hours;</token>
        </pattern>
        <message>Правильно: <suggestion>за <match no="2" postag_regexp="yes" postag="numr:p:v_naz.*"/> <match no="3"/> <match no="4"/></suggestion></message>
        <suggestion><match no="2" postag_regexp="yes" postag="numr:p:v_naz.*"/> <match no="3"/> до <match no="4" postag_regexp="yes" postag="adj:f:v_rod.*"/></suggestion>
        <example correction="за десять третя|десять до третьої"><marker>без десяти третя</marker></example>
        <example correction="за двадцять хвилин третя|двадцять хвилин до третьої"><marker>без двадцяти хвилин третя</marker></example>
        <example correction="за два хвилин сьома|за двоє хвилин сьома|за дві хвилин сьома|два хвилин до сьомої|двоє хвилин до сьомої|дві хвилин до сьомої"><marker>без двадцяти двох хвилин сьома</marker></example>
        <example>за десять хвилин третя</example>
      </rule>
      <rule>
        <antipattern>
          <token postag_regexp="yes" postag="adj:f:v_rod.*" regexp="yes" inflected="yes">&hours;</token>
          <token regexp="yes">половини|треті|чверті|частини</token>
        </antipattern>
        <pattern>
          <token postag_regexp="yes" postag="num.*" min="1" max="2"/>
          <token>хвилин</token>
          <marker>
            <token postag_regexp="yes" postag="adj:f:v_rod.*" regexp="yes" inflected="yes">&hours;</token>
          </marker>
        </pattern>
        <!-- TODO: use java code to get previous hour?? -->
        <message>Правильно: <suggestion>по [<match no="3" postag_regexp="yes" postag="adj:f:v_mis.*"/> - 1 година]</suggestion></message>
        <suggestion>на <match no="3" postag_regexp="yes" postag="adj:f:v_zna.*"/></suggestion>
        <example correction="по [третій - 1 година]|на третю">п'ять хвилин <marker>третьої</marker></example>
        <example correction="по [дев'ятій - 1 година]|на дев'яту">5 хвилин <marker>дев'ятої</marker></example>
        <example correction="по [сьомій - 1 година]|на сьому">двадцять п'ять хвилин <marker>сьомої</marker></example>
        <example>п'ять хвилин по восьмій</example>
        <example>п'ять хвилин на дев'яту</example>
        <example>11 хвилин другої половини зустрічі</example>
        <example>11 хвилин сьомої частини</example>
      </rule>
    </rulegroup>

    <rule id="U_YEAR" name="У XXXX року">
      <pattern>
        <token regexp="yes">[ув]</token>
        <token regexp="yes">[0-9]{4}</token>
        <token>року</token>
      </pattern>
      <message>Правильно: <suggestion><match no="1"/> <match no="2"/> році</suggestion></message>
      <suggestion><match no="2"/> року</suggestion>
      <example correction="в 2010 році|2010 року">ще <marker>в 2010 року</marker></example>
      <example>в 60-х роках</example>
    </rule>

    <rulegroup id="PASSIVE_PREDICATE" name="Пасивний предикат або пасивний атрибут (ev. апозиція) з інструменталем дієвої особи">
      <rule>
        <pattern>
          <token postag_regexp="yes" postag="noun.*v_zna.*|adj:n:v_zna:&amp;pron:(gen|dem).*"/>
          <marker>
            <token postag_regexp="yes" postag="verb.*:impers.*">
              <exception regexp="yes">визнано|названо|призначено|.*обрано|обумовлено|.*укомплектовано|зумовлено</exception>
            </token>
            <token postag_regexp="yes" postag="adj.*v_oru.*" min="0" max="2">
              <exception regexp="yes">тим|таким</exception>
            </token>
            <token postag_regexp="yes" postag="noun:anim.*v_oru.*|.*v_oru.*pron:pers.*">
              <exception negate_pos="yes" postag_regexp="yes" postag="noun:anim.*v_oru.*.*|.*v_oru.*pron:pers.*"/>
              <exception postag_regexp="yes" postag="&lt;(adv|insert)&gt;"/>
              <exception regexp="yes">тим|таким|персоною|днями|цими</exception>
            </token>
            <!-- TODO: особа-діяч може бути не лише :anim
                <token postag_regexp="yes" postag="noun.*v_oru.*"/>
            -->
          </marker>
        </pattern>
        <message>Невластива мові конструкція: пасивний предикат</message>
        <url>http://kurylo.wikidot.com/3-nevlastyva-ukrainskii-movi-konstruktsiia:pasyvnyi-predykat</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>
        <example>церковні терміни використано тією мірою.</example>
        <example>це викликано тим, що</example>
        <example>його обрано президентом</example>
        <example>документ виписано таким чином</example>
        <example>Яку роль відведено Ульянченко</example>
        <!-- TODO: див. вище
            <example correction="">Справу <marker>порушено судом</marker></example>
            <example type="incorrect">Справу <marker>порушено міським судом</marker></example>
        -->
        <example correction="">Користувача <marker>авторизовано адміністратором</marker>.</example>
        <!--
            <example correction="">Все <marker>зроблено самими учасниками</marker></example>
            <example correction="">Потепління <marker>ускладнено нашою недолугою діяльністю</marker></example>
        -->
      </rule>
    </rulegroup>

    <rule id="VIDMINA_CHOLOVICHYH_PRIZVYSCH" name="Відмінювання чоловічих прізвищ">
      <antipattern>
        <token postag_regexp="yes" postag="noun.*:f.*:fname.*"/>
        <token regexp="yes">і|й|та</token>
        <token postag_regexp="yes" postag="noun.*:m.*:fname.*"/>
        <token postag_regexp="yes" postag="noun.*:lname.*"/>
      </antipattern>
      <pattern>
        <token postag_regexp="yes" postag="noun.*:m.*:fname.*">
          <exception postag_regexp="yes" postag="noun.*:m:v_(naz|kly).*:fname.*"/>
          <exception postag_regexp="yes" postag="noun.*:f.*:fname.*"/>
          <exception regexp="yes">Тому|Ніколи</exception>
          <exception postag_regexp="yes" postag="noun.*:prop(?!:fname).*"/>
          <exception scope="previous" inflected="yes" regexp="yes">король|отець|патріарх|святий</exception>
        </token>
        <marker>
          <token postag_regexp="yes" postag="noun.*:m:v_naz.*:lname.*">
            <exception postag_regexp="yes" postag="noun.*:m:v_[^n].*:lname.*"/>
            <exception postag_regexp="yes" postag="noun.*:m:v_naz.*:fname.*"/>
            <!--
                <exception postag_regexp="yes" postag="noun.*:prop(?!:lname).*"/>
            -->
          </token>
        </marker>
      </pattern>
      <message>Чоловіче прізвище відмінюється разом з іменем</message>
      <!--
          <suggestion><match no="1" postag_regexp="yes" postag="(noun.*:m.*:)fname(.*)" postag_replace="$1lname.*">\2</match></suggestion>
      -->
      <url>http://pravopys.kiev.ua/pravopys.aspx?SectionID=1765</url>
      <example correction="">Бульвар Тараса <marker>Шевченко</marker></example>
      <example correction="">прийшов до Андрія <marker>Громико</marker> секретар.</example>
      <example correction="">прийшов до Петра <marker>Порошенко</marker> секретар.</example>
      <example>Прийшов Тарас Шевченко</example>
      <example>Картина Жені Шевченко</example>
      <example>Тому Путін цілком здатен...</example>
      <example>Ніколи Ковтуненко не був паном</example>
      <example>У Києві Шлемкевич працював секретарем</example>
      <example>Ну, будь здоровий, Семене Гурко!</example>
      <example>агент Сергія Шандор Варга</example>
      <example>Син Павла Мартин теж став бурмистром</example>
      <example>після смерті короля Данила Галич почав утрачати свою велич</example>
      <example>...на Донеччину Московського Патріарха Кирила Янукович ходив за ним по п’ятах</example>
      <example>спитав у отця Харитона Казанцев</example>
      <example>у соборі Святого Петра Ющенко</example>

      <!-- Лишаємо для іншого правила -->
      <example>Подружжю Наталі та Сергія Гедзь судилося вписати свої імена...</example>
      <example>виготовлені Людмилою і Мирославом Куць</example>
      <example>Людмили та Юрія Миськів</example>

      <!-- Важко розрізнити на граматичному рівні
          <example>Прибіг до Єремії Тишкевич</example>
          <example>охолодив Арсена Метелиця</example>
          <example>де    колись приймав Андрія Донець</example>
          <example>За нею увійшов Андрій, за Андрієм Рибалко</example>
          <example>У партії з Анандом Пономарьов розіграв</example>
          <example>як підвів Миколу Марчук</example>
          <example>під наглядом Петера Йоханссон став</example>
      -->
    </rule>

    <rulegroup id="PLURAL_LAST_NAME" name="Множина прізвищ">
      <rule>
        <antipattern>
          <token inflected="yes" postag_regexp="yes" postag="noun:inanim:n:.*">подружжя</token>
          <token postag_regexp="yes" postag="noun:anim:f:v_rod.*:lname.*"/>
          <token regexp="yes">і|й|та</token>
          <token postag_regexp="yes" postag="noun:anim:m:v_rod.*:lname.*"/>
        </antipattern>
        <pattern>
          <token inflected="yes" postag_regexp="yes" postag="noun:inanim:n:.*">подружжя</token>
          <marker>
            <token postag_regexp="yes" postag="noun:anim:[fm]:v_naz:prop:lname.*">
              <exception postag_regexp="yes" postag="noun:anim:p:v_rod:prop:lname.*"/>
            </token>
          </marker>
        </pattern>
        <message>Після «подружжя» прізвище має стояти в родовому відмінку множини</message>
        <suggestion><match no="2" postag_regexp="yes" postag="(noun:anim:)[fm]:v_...(:prop:lname.*)" postag_replace="$1p:v_rod$2"/></suggestion>
        <example correction="Обам">Подружжя <marker>Обама</marker>.</example>
        <example correction="Кличків">Подружжя <marker>Кличко</marker>.</example>
        <example>Подружжя Бушів.</example>
        <example>Подружжя Роше.</example>
        <example>подружжя Цвігун і Ковальчука</example>
      </rule>
      <rule>
        <antipattern>
          <token inflected="yes" postag_regexp="yes" postag="noun:anim:p:.*">брат</token>
          <token postag_regexp="yes" postag="noun:anim:m:v_naz.*:fname.*"/>
          <token regexp="yes">і|й|та</token>
          <token postag_regexp="yes" postag="noun:anim:m:v_naz.*:fname.*"/>
        </antipattern>
        <pattern>
          <token inflected="yes" postag_regexp="yes" postag="noun:anim:p:.*">брат</token>
          <marker>
            <token postag_regexp="yes" postag="noun:anim:m:v_naz:prop:lname.*">
              <exception postag_regexp="yes" postag="noun:anim:p:v_rod:prop:lname.*"/>
            </token>
          </marker>
        </pattern>
        <message>Після «брати́» прізвище має стояти в множині</message>
        <!-- TODO: figure out how to inflect 2nd token by the 1st inflection
        <suggestion><match no="2" postag_regexp="yes" postag="(noun:anim:)m:v_...(:prop:lname.*)" postag_replace="$1p:v_naz$2"/></suggestion>
         -->
        <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>Брати Меладзе.</example>
        <example>брати Франк і Рональд</example>
      </rule>
    </rulegroup>

    <rulegroup id="SAMYI_WITH_ADJ" name="Самий з прикметниками">
      <!-- TODO: якщо робити це правило загальним фальшивих помилок більше ніж правильних позначень,
          тож поки що обмежимося лише двома більш-менш стабільними випадками
      -->
      <antipattern>
        <token regexp="yes">як|що|де|куди|хто</token>
        <token>саме</token>
      </antipattern>
      <antipattern>
        <unify>
          <feature id="gender"/>
          <feature id="case"/>

          <token regexp="yes" inflected="yes">той|такий|цей|отой</token>
          <token inflected="yes">самий</token>
        </unify>
      </antipattern>
      <!-- can't unify over part же so need 1 more antipattern -->
      <antipattern>
        <token regexp="yes" inflected="yes">той|такий|цей|отой</token>
        <token regexp="yes">же?</token>
        <token inflected="yes">самий</token>
      </antipattern>

      <!-- comps -->
      <rule>
        <pattern>
          <unify>
            <feature id="gender"/>
            <feature id="case"/>

            <token inflected="yes">самий</token>
            <token postag_regexp="yes" postag="adj.*:comps.*">
              <exception regexp="yes">(що|як)най.*</exception>
            </token>
          </unify>
        </pattern>
        <message>Замість «самий» + прикметник найвищого ступеня треба вживати якнай-, щонай-</message>
        <suggestion>як<match no="2"/></suggestion>
        <suggestion>що<match no="2"/></suggestion>
        <suggestion>щояк<match no="2"/></suggestion>
        <example correction="Якнайкращий|Щонайкращий|Щоякнайкращий"><marker>Самий найкращий</marker>.</example>
        <example correction="Якнайгірша|Щонайгірша|Щоякнайгірша"><marker>Сама найгірша</marker>.</example>
        <!-- handled by other rules in this group -->
        <example>самий перший</example>
        <example>повторювати те саме щонайменше нудно</example>
        <example>і, що саме найцікавіше,</example>
        <example>і куди саме найоптимальніше їхати</example>
        <example>вирішують, як саме найкраще заохотити</example>
        <example>Не можу сказати, де саме найкраще сприймали</example>
        <example>— на ту саму найчисельнішу фракцію</example>
        <example>увімкніть радіо на той самий найтихіший рівень гучності</example>
        <example>Йдеться про той самий найдешевший рослинний жир</example>
      </rule>

      <!-- compr -->
      <rule>
        <pattern>
          <unify>
            <feature id="gender"/>
            <feature id="case"/>

            <token inflected="yes">самий
            </token>
            <token postag_regexp="yes" postag="adj.*?:compc.*">
              <exception postag_regexp="yes" postag="verb.*"></exception>
              <exception case_sensitive="yes" regexp="yes">[А-ЯІЇЄҐ].*</exception>
            </token>
          </unify>
        </pattern>
        <message>Замість «самий» + прикметник треба вживати найвищий ступінь</message>
        <suggestion>най<match no="2"/></suggestion>
        <example correction="Найкращий"><marker>Самий кращий</marker>.</example>
        <example correction="Найгірша"><marker>Сама гірша</marker>.</example>
        <example>Сама прийшла</example>
        <example>Саме кращий</example>
        <example>в ту саму світлу кімнату</example>
        <example>Йдеться про той самий дешевший рослинний жир</example>
        <example>і куди саме оптимальніше їхати</example>
        <example>вирішують, як саме краще заохотити</example>
        <example>Не можу сказати, де саме краще сприймали</example>
        <example>ті ж самі вищі суди вирішать, що та чи інша справа</example>
        <!-- handled by other rules in this group -->
        <example>Самий найкращий</example>
        <example>Самий добрий</example>
      </rule>

      <!-- compb -->
      <rule>
        <antipattern>
          <token inflected="yes">вищий</token>
          <token inflected="yes">навчальний</token>
        </antipattern>
        <pattern>
          <unify>
            <feature id="gender"/>
            <feature id="case"/>

            <token>самий
            </token>
            <token postag_regexp="yes" postag="adj.*?:v_(naz|zna).*?:compb.*">
              <exception postag_regexp="yes" postag="verb.*"></exception>
              <exception case_sensitive="yes" regexp="yes">[А-ЯІЇЄҐ].*</exception>
              <exception postag_regexp="yes" postag="noun:anim:p:.*" regexp="yes" inflected="yes">хворий|учений|постраждалий</exception>
            </token>
          </unify>
        </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>
        <example>Самий цвіт</example>
        <example>Саме такий</example>
        <example>той самий страшний сон</example>
        <example>лише самих економічних санкцій</example>
        <example>і куди саме добре поїхати</example>
        <example>вирішують, як саме  заохотити</example>
        <example>де саме смачно поїсти</example>
        <example>та й самі хворі</example>
        <example>активність самих учених, які</example>
        <example>у скільки обійдеться цей самий гарантований контроль</example>
        <example>докласти такий же самий хороший підзаконний акт</example>
        <example>самим вищим навчальним закладом</example>
        <!-- handled by other rules in this group -->
        <example>Самий найкращий</example>
        <example>Самий кращий</example>
      </rule>

      <!-- саме краще, що в нас є -->
      <rule>
        <pattern>
          <unify>
            <feature id="gender"/>
            <feature id="case"/>

            <marker>
              <token inflected="yes">самий
              </token>
              <token postag_regexp="yes" postag="adj.*?:comp[bc].*">
                <exception postag_regexp="yes" postag="verb.*"></exception>
                <exception>дуже</exception>
                <exception case_sensitive="yes" regexp="yes">[А-ЯІЇЄҐ].*</exception>
                <exception postag_regexp="yes" postag="noun:anim:p:.*" regexp="yes" inflected="yes">хворий|учений|постраждалий</exception>
              </token>
            </marker>
          </unify>
          <token>,</token>
          <token regexp="yes" inflected="yes">що|який</token>
        </pattern>
        <message>Замість «самий» + прикметник треба вживати найвищий ступінь</message>
        <example correction=""><marker>Саме краще</marker>, що в нас є.</example>
        <example correction=""><marker>Сама краща</marker>, яка в нас є.</example>
        <example>суцільнозерновий хліб, посипаний насінням, такий самий малий.</example>
        <example>і самий цвіт, що знайти його важко</example>
        <example>Той самий учений, що описав</example>
        <example>і самих хворих, які нібито не дотримувалися</example>
        <example>ті ж самі вищі суди вирішать, що та чи інша справа</example>
      </rule>

      <!-- саме краще — дітям -->
      <rule>
        <pattern>
          <unify>
            <feature id="gender"/>
            <feature id="case"/>

            <marker>
              <token inflected="yes">самий
<!--
                <exception scope="previous" regexp="yes" inflected="yes">який|лише</exception>
-->
              </token>
              <token postag_regexp="yes" postag="adj.*?:comp[bc].*">
                <exception postag_regexp="yes" postag="verb.*"></exception>
                <exception>дуже</exception>
              </token>
            </marker>
          </unify>
          <token regexp="yes">[—–-]</token>
        </pattern>
        <message>Замість «самий» + прикметник треба вживати найвищий ступінь</message>
        <example correction=""><marker>Саме краще</marker> — ливарний цех.</example>
        <example>Самий цвіт —</example>
        <example>Сама прийшла — сама пішла</example>
        <example>Саме такий — зелений.</example>
        <example>Саме вони — партизани, були початком.</example>
      </rule>

      <!-- самий перший -->
      <rule>
        <pattern>
          <unify>
            <feature id="gender"/>
            <feature id="case"/>

            <token inflected="yes">самий
            </token>
            <token inflected="yes" regexp="yes">перший|найперший
              <exception case_sensitive="yes" regexp="yes">[А-ЯІЇЄҐ].*</exception>
            </token>
          </unify>
        </pattern>
        <message>Замість «самий перший» треба вживати найвищий ступінь: <suggestion>найперший</suggestion></message>
        <example correction="Найперший"><marker>Самий перший</marker>.</example>
        <example>самі першими втікали</example>
        <example>Та сама Перша кінна армія</example>
        <example>На самому Першому Національному пояснили</example>
      </rule>
    </rulegroup>

    <rulegroup id="kraschiy_vs_naikraschiy" name="Кращий і найкращий">
      <antipattern>
        <token inflected="yes">кращий</token>
        <token min="0">,</token>
        <token regexp="yes">за|від|ніж|як</token>
      </antipattern>

      <rule>
        <antipattern>
          <token>чи</token>
          <token>не</token>
          <token>краще</token>
        </antipattern>
        <pattern>
          <token regexp="yes">далеко|чи</token>
          <token>не</token>
          <marker>
            <token inflected="yes">кращий</token>
          </marker>
        </pattern>
        <message>Коли мається на увазі найвищий ступінь порівняння, слід вживати <suggestion>найкращий</suggestion>?</message>
        <example correction="найкращий">Кіно — чи не <marker>кращий</marker> інструмент</example>
        <example correction="найкращий">... була далеко не <marker>кращим</marker> способом...</example>
        <example>був не кращий, ніж сталінський</example>
        <example>Гітлерівський режим нічим не кращий сталінського</example>
        <example>Він — не кращий і не гірший</example>
        <example>на мою думку, далеко не кращий за них.</example>
        <example>І чи не краще було б зробити інакше.</example>
        <example>Виявився чи не кращим, ніж цього року.</example>
      </rule>

      <rule>
        <antipattern>
          <token>кращий</token>
          <token>і</token>
          <token>не</token>
          <token>гірший</token>
        </antipattern>
        <pattern>
          <token regexp="yes">[—–-]|це|зараз</token>
          <token>не</token>
          <marker>
            <token>кращий</token>
          </marker>
        </pattern>
        <message>Коли мається на увазі найвищий ступінь порівняння, слід вживати <suggestion>найкращий</suggestion>?</message>
        <example correction="найкращий">блокування — не <marker>кращий</marker> варіант</example>
        <example correction="найкращий">Зараз не <marker>кращий</marker> період для прийняття важливих рішень.</example>
        <example>Він — не кращий і не гірший</example>
        <!-- TODO:
        <example>— Та й у мене — не кращий, — зітхнула Явдоха.</example>
        <example> емоції, як відомо, не кращий порадник</example>
        -->
      </rule>

      <rule>
        <antipattern>
          <token inflected="yes">кращий</token>
          <token>і</token>
          <token>не</token>
          <token inflected="yes">гірший</token>
        </antipattern>
        <pattern>
          <token>був</token>
          <token>не</token>
          <marker>
            <token inflected="yes">кращий</token>
          </marker>
        </pattern>
        <message>Коли мається на увазі найвищий ступінь порівняння, слід вживати <suggestion>найкращий</suggestion>?</message>
        <example correction="найкращий">Це був не <marker>кращий</marker> матч Роналдо</example>
        <example>був не кращий, ніж сталінський</example>
        <example>був не кращим і не гіршим</example>
      </rule>

      <rule>
        <pattern>
          <token>не</token>
          <marker>
            <token inflected="yes">кращий</token>
          </marker>
          <token inflected="yes" regexp="yes">час|період|вихід|спосіб</token>
        </pattern>
        <message>Коли мається на увазі найвищий ступінь порівняння, слід вживати <suggestion>найкращий</suggestion>?</message>
        <example correction="найкращий">Зараз не <marker>кращий</marker> час починати справу.</example>
      </rule>

    </rulegroup>

    <rulegroup id="BIL_MASC" name="Біль - ч.р.">
      <rule>
        <pattern>
          <token postag_regexp="yes" postag="adj:f:.*">
            <exception postag_regexp="yes" postag="adj:m:.*"/>
            <exception postag_regexp="yes" postag="(part|conj).*"/>
            <exception regexp="yes" inflected="yes">мережаний|невинний|тонкий|сам</exception>
          </token>
          <token inflected="yes" postag_regexp="yes" postag="noun:inanim:f:.*">біль
            <exception>білі</exception>
            <exception case_sensitive="yes">Біль</exception>
          </token>
        </pattern>
        <message>Іменник біль - чоловічого роду</message>
        <suggestion><match no="1" postag_regexp="yes" postag="(adj):f:(.*)" postag_replace="$1:m:$2"/> <match no="2" postag_regexp="yes" postag="(noun:inanim):f:(.*)" postag_replace="$1:m:$2"/></suggestion>
        <example correction="сильний біль"><marker>сильна біль</marker></example>
        <example>Стояла біла, як біль, так перелякалася.</example>
        <example>Лице біллю білували.</example>
        <example>увесь їхній біль</example>
        <example>пошибає душу мою болем</example>
        <example>Помітивши гіркоту на стиснутих вустах Арсена та біль у його почервонілих очах</example>
        <example>можу сама біль втамувати</example>
        <example>Христина Біль</example>
      </rule>
     <!-- забагато фальшивих:
      * як могла, терпіла біль
      *  заробила головний біль і витратила
      * якщо біль спровокувала банальна    перевтома
      <rule>
        <pattern>
          <token postag_regexp="yes" postag="verb.*:f(:.*|$)"/>
          <token>біль</token>
        </pattern>
        <message>Іменник біль - чоловічого роду</message>
        <suggestion><match no="1" postag_regexp="yes" postag="(verb.*):f(.*)" postag_replace="$1:m$2"/> <match no="2" postag_regexp="yes" postag="(noun:inanim):f:(.*)" postag_replace="$1:m:$2"/></suggestion>
        <example correction="почавсь біль|почався біль"><marker>почалася біль</marker></example>
        <example>собі завдала болю</example>
      </rule>
      <rule>
        <pattern>
          <token>біль</token>
          <token postag_regexp="yes" postag="(part|adv).*" min="0"/>
          <token postag_regexp="yes" postag="verb.*:f(:.*|$)"/>
        </pattern>
        <message>Іменник біль - чоловічого роду</message>
        <suggestion><match no="1" postag_regexp="yes" postag="(noun:inanim):f:(.*)" postag_replace="$1:m:$2"/> <match no="2"/> <match no="3" postag_regexp="yes" postag="(verb.*):f(.*)" postag_replace="$1:m$2"/></suggestion>
        <example correction="біль почавсь|біль почався"><marker>біль почалася</marker> раптово</example>
        <example correction="біль не проходив"><marker>біль не проходила</marker></example>
      </rule>
     -->
    </rulegroup>

    <rulegroup id="KLYCHNYI_AND_IMPERATIVE" name="Кличний та наказова форма" default="on">
      <rule>
        <pattern>
          <token postag_regexp="yes" postag="noun.*:v_kly.*">
            <exception negate_pos="yes" postag_regexp="yes" postag="noun.*:v_kly.*"/>
          </token>
          <token postag_regexp="yes" postag="part.*" min="0"/>
          <token postag_regexp="yes" postag="verb.*:impr.*">
            <exception negate_pos="yes" postag_regexp="yes" postag="verb.*impr.*"/>
          </token>
        </pattern>
        <message>Можливо, пропущена кома після кличного?</message>
        <suggestion><match no="1"/>, <match no="2"/> <match no="3"/></suggestion>
        <example correction="Олено, поклич"><marker>Олено поклич</marker> тата.</example>
        <example correction="Олено, не розлий"><marker>Олено не розлий</marker> молоко.</example>
      </rule>

<!-- забагато фальшивих спрацьовувань, напр.
    * Отоді, куме, заживем,
    * 
      <rule>
        <pattern>
          <token postag_regexp="yes" postag="noun.*:v_kly.*">
            <exception negate_pos="yes" postag_regexp="yes" postag="noun.*:v_kly.*"/>
            <exception postag_regexp="yes" postag="(part|conj|prep).*"/>
          </token>
          <token>,</token>
          <token postag_regexp="yes" postag="verb.*:futr:p:1.*">
            <exception postag_regexp="yes" postag="verb.*impr.*"/>
          </token>
        </pattern>
        <message>Можливо, дієслово має стояти у наказовій формі?</message>
        <suggestion><match no="1"/>, <match no="3" postag_regexp="yes" postag="verb.*impr:p:1.*"/></suggestion>
        <!-
        <example correction="Олено, підім|Олено, підімо"><marker>Олено, пішли</marker> додому.</example>
        ->
        <example correction="Ірмо, повернімось|Ірмо, повернімося|Ірмо, повернімся">Пані <marker>Ірмо, повернемося</marker> до театру.</example>
        <example>Яким, вибачте, фанатичним бажанням</example>
      </rule>
-->
      <rule>
        <pattern>
<!--
          <or>
            <token postag="SENT_START"/>
            <token regexp="yes">[!?:;,…"«“„\(\)\[\]/–—-]</token>
          </or>
-->
          <token postag="SENT_START"/>
          <token postag_regexp="yes" postag="noun:anim(:.:v_naz|:f:v_zna|:m:v_dav).*">
            <exception postag_regexp="yes" postag="noun:anim:.*:v_kly.*"/>
            <exception postag_regexp="yes" postag="noun.*(lname).*|.*pron.*|(intj|part).*"/>
            <exception regexp="yes">.*-.*|типу|чорт</exception>
            <!--
            <exception>ласка</exception>
            <exception regexp="yes">честь|милість|високість</exception>
            -->
          </token>
          <token>,</token>
          <token postag_regexp="yes" postag="verb.*:impr(:s:2|:p:1).*">
            <exception negate_pos="yes" postag_regexp="yes" postag="verb.*impr.*"/>
            <exception postag_regexp="yes" postag="verb.*insert.*"/>
            <!--TODO: якщо знай, бач.., не виділені комою, вони не отримують тегу insert після зняття омонімії -->
            <exception case_sensitive="yes" regexp="yes">.*\.|[А-ЯІЇЄҐ].*|знай|бач|бачте|скажімо|дякуй|дякуйте</exception>
          </token>
        </pattern>
        <message>Можливо, іменник має бути у кличному відмінку?</message>
        <suggestion><match no="2" postag_regexp="yes" postag="(noun:anim:.:)(v_naz|v_zna|v_dav)(.*)" postag_replace="$1v_kly$3"/>, <match no="4"/></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>
        <example>Олі та Віті, ходім</example>
        <example>... (Conservative Party) конституція, див. Хартія свободи...</example>
        <example>будь ласка, скажіть мені</example>
        <example>Ваша честь, дивіться.</example>
        <example>та я феміністка, відчепіться</example>
        <example>Я, повірте, навіть не знав</example>
        <!-- dynamic tagger does not work on v_kly yet -->
        <example>Екс-вкладники, готуйтеся до нових черг!</example>
        <example>Гей, збирайтеся, панове молодці</example>
        <example>Христя, знай, озиралася з повозки</example>
        <example>Яким, вибачте, фанатичним бажанням</example>
        <example>Іпатій Потій (1541–1613) — ...</example>
        <example>Дівчина знай опускала туди</example>
        <example>Чорт забирай!</example>
        <example>Бобові перетріть крізь сито</example>
        <example>Рибу з'їж сам</example>
        <example>Настю відправ додому</example>
      </rule>
    </rulegroup>

    <rulegroup id="VONO_IMPERF" name="Воно + безособова форма">
      <rule>
        <pattern>
          <token>воно</token>
          <token postag_regexp="yes" postag="verb:.*:impers.*">
            <exception negate_pos="yes" postag_regexp="yes" postag="verb:.*:impers.*"/>
          </token>
        </pattern>
        <message>Неправильна конструкція</message>
        <suggestion>його <match no="2"/></suggestion>
        <suggestion><match no="1"/> <match no="2" regexp_match="(.*)о" regexp_replace="$1е"/></suggestion>
        <example correction="його зафіксовано|воно зафіксоване">І так <marker>воно зафіксовано</marker> в законі.</example>
        <example>воно приховано існувало багато років</example>
      </rule>
      <rule>
        <antipattern>
          <token>все</token>
          <token>решта</token>
        </antipattern>
        <pattern>
          <token>решта</token>
          <token postag_regexp="yes" postag="verb:.*:impers.*">
            <exception negate_pos="yes" postag_regexp="yes" postag="verb:.*:impers.*"/>
          </token>
        </pattern>
        <message>Неправильна конструкція</message>
        <suggestion>решту <match no="2"/></suggestion>
        <suggestion><match no="1"/> <match no="2" regexp_match="(.*)о" regexp_replace="$1а"/></suggestion>
        <example correction="решту зафіксовано|решта зафіксована">А <marker>решта зафіксовано</marker> в законі.</example>
        <example>все решта зафіксовано</example>
      </rule>
    </rulegroup>

    <rulegroup id="SEKTOR_GAZA" name="Сектор Газа">
      <rule>
        <pattern>
          <token>сектор</token>
          <token case_sensitive="yes">Газа</token>
        </pattern>
        <message>Правильно: <suggestion>Сектор Гази</suggestion></message>
        <example correction="Сектор Гази">Приїхав в <marker>Сектор Газа</marker> в лютому.</example>
        <example correction="Сектор Гази">Приїхав в <marker>сектор Газа</marker> в лютому.</example>
      </rule>
      <rule>
        <pattern case_sensitive="yes">
          <token>сектор</token>
          <token>Гази</token>
        </pattern>
        <message>Правильно: <suggestion>Сектор Гази</suggestion></message>
        <example correction="Сектор Гази">Приїхав в <marker>сектор Гази</marker> в лютому.</example>
      </rule>
    </rulegroup>

    <rulegroup id="diyakuvaty_chomu" name="Дякувати чому" default="off">
      <rule>
        <antipattern>
<!--
          <unify>
            <feature id="person"/>
-->
          <token inflected="yes" regexp="yes">дякувати|подякувати
            <exception postag_regexp="yes" postag="verb:.*(:impr|:[12]).*"/>
          </token>
          <token postag_regexp="yes" postag="adj.*v_naz.*" min="0"/>
          <token postag_regexp="yes" postag="noun:.*v_naz.*"/>
<!--
          </unify>
-->
        </antipattern>
<!--
        <antipattern>
          <token postag_regexp="yes" postag="noun:.*v_dav.*"/>
          <token inflected="yes" regexp="yes">дякувати|подякувати
            <exception postag_regexp="yes" postag="verb:.*(:impr|:[12]).*"/>
          </token>
          <token postag_regexp="yes" postag="adj.*v_naz.*" min="0"/>
          <token postag_regexp="yes" postag="noun:.*v_naz.*"/>
        </antipattern>
-->
        <pattern>
          <token inflected="yes" regexp="yes">дякувати|подякувати</token>
          <token postag_regexp="yes" postag="adj.*v_zna.*" min="0">
            <exception postag_regexp="yes" postag="noun:.*:v_dav.*"/>
            <exception regexp="yes">його|її</exception>
          </token>
          <token postag_regexp="yes" postag="noun.*v_zna.*">
            <exception postag_regexp="yes" postag="noun.*:v_dav.*|.*predic.*|.*numr.*"/>
            <exception regexp="yes">його|її</exception>
          </token>
        </pattern>
        <message>Правильно: <suggestion><match no="1"/> <match no="2"/> <match no="3" postag_regexp="yes" postag="(noun.*:)v_zna(.*)" postag_replace="$1v_dav$2"/></suggestion></message>
        <example correction="дякує компанії">«ДТ» <marker>дякує компанію</marker> «ИнтВестДистрибьюшн».</example>
        <example correction="дякуватимемо директорові|дякуватимемо директору">Ми <marker>дякуватимемо директора</marker> компанії.</example>
        <!-- TODO:
        <example correction="подякувала холдинг">Учасниця <marker>подякувала холдинг</marker> за подарунок.</example>
        <example correction="подякував небу">Він <marker>подякував небо</marker> за дощ.</example>
        -->

        <example>Дякую мільйон разів</example>
        <example>Дякуав сотий раз</example>
        <example>Він подякував тим, хто опікувався мною.</example>
        <example>і подякував козак дівчині.</example>
        <example>І подякувати слід незалежно від того</example>
        <example>Уряду дякує холдинг.</example>
        <example>Україні дякували іноземні уряди</example>
        <example>Саме «діркам» мають дякувати шахтарські селища регіону</example>
        <example>Подякувала мати за науку</example>
        <!-- handled by the next rule -->
        <example>подякувала його сестру</example>
        <example>Будемо дякувати його.</example>
      </rule>
      <rule>
        <pattern>
          <token inflected="yes" regexp="yes">дякувати|подякувати</token>
          <token regexp="yes">його|її</token>
          <token postag_regexp="yes" postag="noun.*v_zna.*">
            <exception postag_regexp="yes" postag="noun.*:v_dav.*|.*predic.*|.*numr.*"/>
          </token>
        </pattern>
        <message>Правильно: <suggestion><match no="1"/> <match no="2"/> <match no="3" postag_regexp="yes" postag="(noun.*:)v_zna(.*)" postag_replace="$1v_dav$2"/></suggestion></message>
        <example correction="подякувала його сестрі"><marker>подякувала його сестру</marker>.</example>
        <example correction="дякувати його сміливості">Будемо <marker>дякувати його сміливість</marker>.</example>
        <!-- handled by the rule below -->
        <example>Подякувати його треба.</example>
        <example>Будемо дякувати його.</example>
      </rule>
      <rule>
        <pattern>
          <marker>
            <token inflected="yes" regexp="yes">дякувати|подякувати</token>
            <token regexp="yes">його|її</token>
          </marker>
          <token>
            <exception postag_regexp="yes" postag="noun.*(v_zna|v_dav).*"/>
          </token>
        </pattern>
        <message>Правильно: <suggestion><match no="1"/> <match no="2" postag_regexp="yes" postag="(noun.*:)v_zna(.*)" postag_replace="$1v_dav$2"/></suggestion></message>
        <example correction="подякувала йому"><marker>подякувала його</marker>.</example>
        <example correction="подякувати йому"><marker>подякувати його</marker> треба.</example>
        <example correction="подякувати йому"><marker>подякувати його</marker> вдруге.</example>
        <!-- handled by the rule above -->
        <example>Будемо дякувати його сестру.</example>
      </rule>
    </rulegroup>

    <rulegroup id="vybachaty_kogo" name="Вибачати кого">
      <rule>
        <pattern>
          <token inflected="yes" regexp="yes">вибачати|вибачити|пробачати|пробачити</token>
          <unify>
            <feature id="gender"/>
            <feature id="case"/>
            <token postag_regexp="yes" postag="adj.*" min="0"/>
            <token postag_regexp="yes" postag="noun:anim.*?(:[pm]:v_rod|:[fn]:v_zna).*">
              <exception  postag_regexp="yes" postag="noun:anim:.:v_dav.*"/>
            </token>
          </unify>
        </pattern>
        <message>Правильно: <suggestion><match no="1"/> <match no="2" postag_regexp="yes" postag="(adj.*?)(?:v_rod|v_zna)(.*)" postag_replace="$1v_dav$2"/> <match no="3" postag_regexp="yes" postag="(noun:anim:.:)(?:v_rod|v_zna)(.*)" postag_replace="$1v_dav$2"/></suggestion></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>
        <example>вибачити все йому</example>
      </rule>
    </rulegroup>


    <rule id="DASYSH" name="Дасиш, їсиш, відповісиш">
      <pattern>
        <marker>
          <token regexp="yes">.*дасиш|.*їсиш|.+вісиш
            <exception postag_regexp="yes" postag="[a-z].*"/>
          </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>
      <example>вивісиш</example>
    </rule>

    <rule id="V_SHOCI" name="В шоці">
      <pattern>
        <token regexp="yes">[ув]</token>
        <token postag_regexp="yes" postag="adj.*" min="0"/>
        <token>шоці</token>
      </pattern>
      <message>Неправильна форма «шоці»</message>
      <suggestion>шокований</suggestion>
      <suggestion>(кого) взяв/охопив шок</suggestion>
      <suggestion><match no="1"/> <match no="2"/> шоку</suggestion>
      <example correction="шокований|(кого) взяв/охопив шок|в легкому шоку">я <marker>в легкому шоці</marker></example>
    </rule>

<!--
    TODO: досить складна логіка
    <rulegroup id="NE_Z_PRUKMETNYKAMY" name="Не з прикметниками">
      <rule>
        <pattern>
          <token postag_regexp="yes" postag="adv.*" regexp="yes" >ні.*</token>
          <marker>
            <token postag_regexp="yes" postag="adj.*" regexp="yes" >не.*</token>
          </marker>
        </pattern>
        <message>Не з прикметником пишеться окремо</message>
        <example correction="">Нітрохи <marker>нецікава</marker> лекція.</example>
      </rule>
    </rulegroup>
-->

  </category>

  <category id="LOGICAL_ERRORS" name="Логічні помилки">
    <rulegroup id="INVALID_DATE" name="Неправильна дата, наприклад '31 лютого 2014'">
      <rule>
        <pattern>
          <marker>
            <token>31</token>
            <token regexp="yes">квітень|квітня|кві|червень|червня|вересень|вересня|вер|листопад|листопада|лис</token>
          </marker>
        </pattern>
        <message>Місяць \2 має лише 30 днів.</message>
        <example correction="">Це трапилося <marker>31 листопада</marker> 2014 р.</example>
        <example>Це трапилося <marker>30 листопада</marker> 2014 р.</example>
      </rule>
      <rule>
        <pattern>
          <marker>
            <token regexp="yes">3[01]</token>
            <token regexp="yes">лютий|лютого|лют</token>
          </marker>
        </pattern>
        <message>Лютий має 28 днів або 29 днів у переступному році.</message>
        <example correction="">Це трапилося <marker>30 лютого</marker> 2014 р.</example>
        <example>Це трапилося <marker>28 лютого</marker> 2014 р.</example>
      </rule>
    </rulegroup>

    <rule id="YEAR_20001" name="Забагато нулів в номері року">
      <pattern>
        <token regexp="yes">&months;|рік</token>
        <token regexp="yes">200\d\d</token>
      </pattern>
      <message>Можливо <suggestion><match no="1"/> <match no="2" regexp_match="200" regexp_replace="20"/></suggestion>?</message>
      <short>Помилка друку?</short>
      <example>Мою поїздку запланували на травень 2014 р.</example>
      <example correction="травень 2014">Мою поїздку запланували на <marker>травень 20014</marker> р.</example>
    </rule>

    <rulegroup id="DATE_WEEKDAY1" name="День тижня не відповідає даті">
      <!-- "понеділок, 7 жовтня 2014" -->
      <rule>
        <pattern>
          <token regexp="yes">&weekdays;</token>
          <token>,</token>
          <token regexp="yes">\d\d?</token>
          <token regexp="yes">&months;|&abbrevMonths;</token>
          <token regexp="yes">\d\d\d\d</token>
        </pattern>
        <filter class="org.languagetool.rules.uk.DateCheckFilter" args="year:\5 month:\4 day:\3 weekDay:\1"/>
        <message>Днем тижня \3 \4 \5 є не \1, а {realDay}.</message>
        <example correction="">Конференція відбудеться в <marker>понеділок, 7 жовтня 2014</marker> р.</example>
        <example correction="">Конференція відбудеться в <marker>понеділок, 7 жов 2014</marker> р.</example>
        <example>Конференція відбудеться у вівторок, 7 жовтня 2014 р.</example>
        <example>Конференція відбудеться у вівторок, 7 жов 2014 р.</example>
      </rule>
    </rulegroup>
  </category>

</rules>
