Пример 1.

Необходимо удалить строки таблицы, относящиеся к версии Фортран, из первой таблицы HTML-документов для описания библиотечных программ, которая имеет вид, например, для п/п AMOOR со 2-й по 12-ю строку:

<table cellpadding="0" cellspacing="0" width="99%">
 <tr>
  <td style="color: #AA00AA" style="text-align: left" width="48%">
      Текст подпрограммы и версий ( Фортран )<br>
      <a href="../am_f/am00r.zip"> am00r.zip </a>,
      <a href="../am_f/am00d.zip"> am00d.zip </a>,
      <a href="../am_f/am00c.zip"> am00c.zip </a>
  <td style="color: #AA00AA" style="text-align: left" width="52%">
      Тексты тестовых примеров  ( Фортран )<br>
      <a href="../tam/tam00r.zip"> tam00r.zip </a>,
      <a href="../tam/tam00d.zip"> tam00d.zip </a>,
      <a href="../tam/tam00c.zip"> tam00c.zip </a>
 <tr>
  <td style="color: #AA00AA" style="text-align: left" width="48%">
      Текст подпрограммы и версий ( Си )<br>
      <a href="../am_c/am00r_c.zip"> am00r_c.zip </a>,
      <a href="../am_c/am00d_c.zip"> am00d_c.zip </a>,
      <a href="../am_c/am00c_c.zip"> am00c_c.zip </a>
  <td style="color: #AA00AA" style="text-align: left" width="52%">
      Тексты тестовых примеров  ( Си )<br>
      <a href="../tam_c/tam00r_c.zip"> tam00r_c.zip </a>,
      <a href="../tam_c/tam00d_c.zip"> tam00d_c.zip </a>,
      <a href="../tam_c/tam00c_c.zip"> tam00c_c.zip </a>
</table>
Контекст поиска: Контекст замены:
==============================================================
|3[block=1]|%%<table
Контроль появления блока в первый раз (начальный тег таблицы);


|3|{<tr>} #[BlockEdit(selsp,sysfile1)]
Блоковая функция BlockEdit сохраняет в файле sysfile1 лексемы с min и max номерами строк блока редактирования {10}, содержащих тег <tr> ;


|3|$$</table>
Контроль конца блока (конечный тег таблицы);


|3|%$ #[BlockOper(del,{10},0,
&1|sysfile1 ..&2|sysfile1 - 1)]
Блоковая функция BlockOper удаляет из блока редактирования {10} группу строк, относящихся к первому тегу <tr> (со 2-й по 12-ю строку HTML-таблицы);
==============================================================
В контексте замены использованы блоковые функции и аппарат подстановки лексем 1 и 2 из системного файла sysfile1, созданного при нахождении контекста <tr> внутри блока редактирования .


Пример 2.

Документ, описывающий программу, предназначен для просмотра в Интернете и написан с использованием тегов языка HTML. Он состоит из нескольких разделов, имеющих заголовки, отмеченные тегом <h3>, и, возможно, отделенного от заголовка несколькими пробелами. Например, документ содержит строки:

 . . . . . . . . . .
<h3> Использование

  int zf17r_c(S_fp funcd, real *a, real *b, real *eps,
            real *root, integer *itmax, integer *ierr)

<h3>   Параметры
 . . . . . . . . . .
      FUNСD - ...
//       ~
      А     - ...
//    ~
      В     - ...
//    ~
      ЕРS   - ...
//    ~~
      RООТ  - ...
//     ~~~
      IТМАХ - ...
//     ~~~~
      IЕRR  - ...
//     ~
 . . . . . . . . . .

<h3>   Версии
 . . . . . . . . . .
  . . . . . . . . .
<h3>  Вызываемые программы
 . . . . . . . . . .
 . . . . . . . . . .
<h3> Пример использования
 . . . . . . . . . .
В разделе "Параметры" символы параметров идентификаторов набраны в верхнем регистре и изначально содержат русские буквы, совпадающие по начертанию с латинскими (они для наглядности выделены строкой-комментария, начинающейся с символов '//'). Необходимо в процессе редактировния заменить русские буквы на соответствующие им латинские, перевести идентификаторы на нижний регистр и удалить строки-комментарии.

Контекст поиска: Контекст замены:
==============================================================
|1|%%{<h3> *Параметры}
Контроль начала раздела "Параметры";


|1|{[АВЕКМНОРСТХУA-Z]+[АВЕКМНОРСТХУA-Z0-9]* } #[BlockEdit(selcn,sysfile1,_{1}..{1}_)]
Блоковая функция BlockEdit сохраняет в файле sysfile1 лексемы с номером строки блока редактирования, содержащей идентификатор (в качестве допустимых символов идентификатора фигурируют латинские буквы A-Z и совпадающие по начертанию русские АВЕКМНОРСТХУ), и номерами начала _{1} и конца {1}_ диапазона символов идентификатора в строке;


|1|{%// ?*} #[BlockEdit(selln,sysfile2)]
Блоковая функция BlockEdit сохраняет в файле sysfile2 лексемы с номером строки блока, содержащей комментарий;


|1|$${<h3> *Версии}
Контроль конца раздела "Параметры" (начало раздела "Версии");


|1|%$ #[BlockConv({10},0,sysfile1,eneq,dn)]
Блоковая функция BlockConv переводит символы блока редактирования {10}, указанные в системном файле sysfile1, из русских в латинские и переводит их на нижний регистр;


|1|%$ #[BlockOper(del,{10},0,sysfile2,0,True)]
Блоковая функция BlockOper удаляет из блока редактирования {10} строки-комментарии, указанные в системном файле sysfile2 и записывает блок в выходной файл;
==============================================================
В результате редактирования раздел "Параметры" будет иметь идентификаторы вида:
<h3>   Параметры
 . . . . . . . . . .
      funcd - ...
      a     - ...
      b     - ...
      eps   - ...
      root  - ...
      itmax - ...
      ierr  - ...
 . . . . . . . . . .